<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-17486674</id><updated>2011-11-14T09:56:13.717-08:00</updated><category term='WWF'/><category term='Architecture'/><category term='Windows Workflow Foundation'/><title type='text'>Farukh Ali Farooq</title><subtitle type='html'>A Student of Computer Science</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-17486674.post-2557442601917697202</id><published>2009-01-18T07:48:00.001-08:00</published><updated>2009-01-19T21:30:39.797-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Windows Workflow Foundation'/><category scheme='http://www.blogger.com/atom/ns#' term='WWF'/><category scheme='http://www.blogger.com/atom/ns#' term='Architecture'/><title type='text'>Overview of windows workflow foundation architecture</title><content type='html'>&lt;span xmlns=""&gt;&lt;p&gt;&lt;strong&gt;Introduction:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Whenever I came to know about Windows Workflow Foundation (WWF) a very basic question comes up in my mind, "Why Windows Workflow foundation?"&lt;br /&gt;&lt;/p&gt;&lt;p&gt;If you look at different products of Microsoft they have more or less workflow capabilities or at least support. For example Share point portal server, BizTalk Server etc. Especially BizTalk Server includes sophisticated workflow capabilities.&lt;/p&gt;&lt;p&gt;Anyhow later on I have concluded that all these workflow solutions have deficiencies. For example BizTalk Server does not have runtime workflow definition support which is normally required in BPM or even in System to System workflow solutions. Rather than enhancing all these products again and again Microsoft has decided to come up a highly flexible Workflow solution so that they can meet versatile workflow development requirements.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;What are the common workflow requirements?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Following are the major workflow requirements which are striking in my mind right now.&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Application workflows for example leave approval.&lt;/li&gt;&lt;li&gt;Document Life cycle management.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Business process management.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Web Application page flows.&lt;/li&gt;&lt;li&gt;Integrating different systems.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Now what is an effective workflow solution?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I think an effective workflow solution involves not only process modeling and business rules, but also monitoring and analytics in order to respond to exceptions and other note worthy events. It should also enable the business user to define new workflows and business rules on the fly and also editing existing ones without the involvement of software developers.&lt;/p&gt;&lt;p&gt;Windows workflow foundation is an attempt to entertain all these real time rich workflow requirements through one common framework. So that organizations and individuals can enhance and reuse their workflow solutions in different applications.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;WWF is a framework not a specific product. It is part of .net framework and it provides a foundation for developing machine to machine workflows to highly people centric workflow applications.WWF addresses all above common requirements. The idea behind WWF is component based development. A component in WWF is Activity which needs to be inherited from the base activity class. In the world of WWF, activity is execution unit which can be composite or standalone.&lt;/p&gt;&lt;p&gt;WWF is based on highly flexible layered architecture. WWF is comprises of following three layers. See figure 1 for reference.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Workflow Design.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Workflow Runtime.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Workflow Hosting.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6DCCaPvSk5M/SXNP3UGVU3I/AAAAAAAAAGA/HKv7hkyTgCw/s1600-h/WWF+Ach.JPG"&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;span xmlns=""&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;span xmlns=""&gt;&lt;span&gt;&lt;span xmlns=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_6DCCaPvSk5M/SXVgQcidkFI/AAAAAAAAAGI/uoiOYJkZOoo/s1600-h/Windows+Workflow+Foundation+Arch.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_6DCCaPvSk5M/SXVgQcidkFI/AAAAAAAAAGI/uoiOYJkZOoo/s320/Windows+Workflow+Foundation+Arch.jpg" alt="" id="BLOGGER_PHOTO_ID_5293242772698796114" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;div&gt;&lt;strong&gt;Workflow Design&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;span&gt;&lt;p&gt;   At this layer workflows are developed using activities. You can define sequential, state machine and flow chart types workflow. I will further iterate all these in next posts. You can also write business rules policies and can use these policies with in your workflows. Custom workflow models can also be developed using the base framework if required.&lt;br /&gt;In sequential workflow actions are executed through predefined order. For example for getting register for a course you will follow a sequence of steps. In State machine workflow order of actions is not predefined. It is implemented through set of states and transition between states is made based on events. For example in a banking application messages between banks may be send through different mediums for instance Swift, Fax, Signed email etc.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/span&gt;&lt;br /&gt;&lt;li&gt;&lt;div&gt;&lt;strong&gt;Workflow Runtime&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;   The runtime layer is heart of windows workflow foundation. It contains critical services from workflow framework point of view. The execution service is responsible for scheduling activities, Event handling, exception, tracking etc. Tracking service creates tracking events and passes these events to hosting layer. State management manages states that can also be persisted. Scheduler service schedules execution of activities. Rules service for business policy execution.&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;&lt;span&gt;&lt;strong&gt;Workflow Hosting&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span&gt;Workflow hosting includes default implementation of following services, custom services can also be developed both to replace existing services and to add new ones if required.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;Persistence&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Tracking&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Transaction&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Communication&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Threading&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Timer&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;span&gt;All above services are obvious requirement of a workflow solution. Persistence is required for long running workflows. If a workflow process takes days or weeks to complete for example student's admission process, a workflow engine can't retain instances of workflows for such longer period in memory. Tracking is required for the visibility of system at runtime. Communication is required to communicate with different components and services within application and with external world as well.  Likewise Timer for calculating event triggering time, Threading for performance and responsiveness and Transactions for reliability and integrity. All these services are pluggable you can develop your own for your specific scenario and requirements.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;From execution point of view WWF runtime is responsible for execution of workflow instances. It creates and raises events those are further handle through appropriate interfaces at host layer. This is a brief introduction of WWF architecture, in my next post I will try to further excavate in WWF and create an example of sequential workflow.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-2557442601917697202?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/2557442601917697202/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=2557442601917697202' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/2557442601917697202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/2557442601917697202'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2009/01/overview-of-windows-workflow-foundation.html' title='Overview of windows workflow foundation architecture'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_6DCCaPvSk5M/SXVgQcidkFI/AAAAAAAAAGI/uoiOYJkZOoo/s72-c/Windows+Workflow+Foundation+Arch.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113049746292329163</id><published>2005-10-28T04:04:00.001-07:00</published><updated>2009-01-27T03:29:55.139-08:00</updated><title type='text'>A very good question answer session related to Architecture</title><content type='html'>&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We would appreciate any guidance you may have to offer on the following&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;From experience are there any particular areas that need attention up-front that might be overlooked?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Long discussion; will need a separate session for this.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Security – what measures have you taken to ensure that the application is secure?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Application security is not a short term task. Like other software development activities it should be practiced through out the SDLC.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;In our mode of development, application security is a continuous process. Our process includes…&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Application Threat modelling: At the beginning of project, we did application threat modelling. During this process we have identified and quantified the application threats and have established a security document. We encourage our developers to go through the check list on periodic basis&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Establishment of secure development standards and team training&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Verification of code security during peer reviews&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;What is authentication method is used?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are using our own custom authentication mechanism. We have developed a generic portal application in which we can host our ASPX files. This portal provides mechanisms for application level user authentication and per resource authorisation. This portal provides role based security mechanism. Administrator can define different application roles and respective functions (web forms) associated with this particular role along with rights (can read, can edit etc). Then users can be associated with one or many application roles.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;All passwords are stored in database after they are properly hashed with a salt.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How do you handle security - re: different levels of access to areas of the system?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Explained above.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Is a single user id used to access the main database?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Yes, during development phase. For testing phase we have proposed to create different users at database level with different sets of rights based upon high level user role (like FX trader should have right to access FX related tables).&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;In beginning we decided to create db users against every user in our application. But this dramatically reduces the possibility of connection pooling. So we dropped this idea. Other way around can be, create db users for particular role (there can be many users attached to a role). Authenticate a user using db user with minimum rights and then switch to db user who has enough rights to access data according to his rights.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;There can be many possibilities. Please search for Microsoft Patterns and Practices.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;If a single user is used, does it have restricted database access?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Explained above.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How is auditing handled?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;None yet. We are currently evaluating procedures for it.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Portal Layout and Site navigation – what methods do you use to control site-layout?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are just using CSS based application design.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I would &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;highly &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;recommend you to use Master pages and themes/skin features provided by ASP .NET 2.0. I wish we had this feature in ASP .NET 1.1.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Scalability – the application should scale to 500 users. What Load testing do you do and what tools do you use? &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are practicing standard routines to make the application scalable. Currently we haven’t done any load testing. The option that we have debated is to involve third party services who have the infrastructure and experience in this domain.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Testing of components / web application&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Internal procedures are being followed like in case of QA, developing test cases, test case execution, bug reporting and rectification cycle. In case of developers we conduct peer reviews and unit testing. &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are not currently deploying any Test driven development approaches.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How do you achieve database independence? We have a large number (~ 100) of Oracle PL/SQL stored procedures which would have to be rewritten in Transact SQL.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We have developed our own database access layer making use of the design of ADO .NET. On database level, we strongly discourage placing business logic. We only create stored procedures for Querying and DML operations using standard SQL. There are scenarios where we needed to impart business logic in stored procedures, but this is very rare. &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;You will be using ADO .NET 2.0 which provides built in mechanism to achieve database independence. It provides creation of different objects (like connections etc) based upon factory pattern. It has some other exciting features which can be used to make an application more scalable. These features may include asynchronous reads and promote-able transactions etc&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How do you achieve Multilanguage, multi locale, multicurrency support?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Currently our application is not multilingual and multi locale. However it is multi currency. However these features have been initially thought through and require a separate discussion thread.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How do you control paging?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Currently we are not, but when in future we will need it, we will do it at stored procedure level instead of at presentation tier. We have decided this while considering scalability issues.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Is anyone at Lahore using Visual Studio 2005 or planning to use it in the future?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;At Lahore office, nobody is using it officially. At personal level, some team members of inBanking including myself have been using Visual Studio 2005 since its CTP releases. About future plans, I can’t answer this. You have to ask higher management/architects who are responsible for such decisions.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;With Visual Studio 2005 Microsoft offers either the Team Suite or Visual Source Safe 2005 which of these will you be using and why?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Not a question for me, but if I am ever asked, I will vote for Team System. I have advocated this above.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Do you run the application under IIS 5.0 or IIS 6.0?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are developing and testing our application using IIS 5.0.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Does the application only run under Internet Explorer or is it Browser independent?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We have recently run a cycle to make our application available in latest versions of four major browsers (MS IE, Fire Fox, Opera and Netscape).&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We have also established a document explaining areas to focus on to make a web application (such as ours) browser independent. This document is currently in construction phase.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;What were the main difficulties that you had to overcome in the development of the inBanking and ePOS products?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;There were many issues and I think it require a separate discussion thread.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Are there any pitfalls that you can forewarn us of?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Should be carried out in separate thread.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We do not have much information on the ePOS product can you let us know aht it entails&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We have copies of the TRAPEZE design document (2004) and TRAPEZE functional specification for the inBanking product. Are there more recent versions of these documents? Is the user manual for the product available.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;No major revisions has been conducted as yet&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How do you handle errors within the application?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We have developed our own exception handling and logging framework. &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I would recommend you to visit Patterns and Practices section and check out Exception Handling and logging block. I recommend using this application block. We are evaluating switching to it as well.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;GUI Design/Layout - have you used CSS? How difficult has this been? Should we consider using the new master template system within .NET 2005? &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;strongly &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;recommend you to use Master pages and skins/themes. &lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;What tool is used to create layout? e.g. Dreamweaver, GoLive etc…&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We use Dream weaver MX&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;What points should be borne in mind re: Scalability / Multiple users?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;There can be many issues and I think it require a separate discussion thread. We have not documented any practices.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I personally think that such practices should be documented and should be made available at organisation level.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Here I would like to throw some light on what we are keeping in mind to achieve scalability…&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Open connection only when it is needed&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Open connection as late as you can&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Close it as early as possible&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Identify data which is rarely modified in database and establish data caching policy&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;In ASP .NET 2.0 you can even cache at web controls level&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Do not place heavy objects in View State&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Where ever it is possible, use typed datasets&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Recommended deployment strategies&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Establishment of session server&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Establishment of web forms&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How have you performed stress testing?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;We are not currently performing any application stress testing.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;When bolting onto an existing system that contains business rules logic, and new rules are required (e.g. governing user access in the web system), have these been separated from the main business rules?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Can’t get what you are trying to ask.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Does ePOS use the business rules of the underlying system or is it standalone?&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Is security testing of the application done using automated tools or using 3rd party?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;No automated tools are being currently used other then FX Cop. FX Cop is provided as built in feature in Visual Studio 2005. It not only provides mechanism to check the application code for known security issues but also tests the application for scalability issues, naming conventions etc.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Was the design of the GUI in-house or passed to 3rd party? Was a static prototype created initially for look and feel?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;It is In-house production and there is no third party involvement.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How have you handled the control of web interface navigation &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Turn off browser buttons? &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Stop right clicking?&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Expire pages to force a refresh?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Turning off browser buttons: can be done if you start your application in full screen and No buttons mode.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Stop right clicking: can be done quite easily using some java scripts freely available on internet.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Expiring pages: It is a very complex issue. Pages are cached at different levels in their life cycle and these levels may involve IIS itself, ISP, proxy and then at browser. If we set page expiry date in past, page is not cached at most of the levels. This is the only measure we are currently taking. For more information, please google this topic. I would love to hear feed back from you as well.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;How are your ASP.NET projects organised? What file structure is used in the web app / project / source control?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Application level: All resource files are placed in logical grouping (using folders)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Project: Logical grouping&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Source Control: Same as file structure but following the rules asserted by our QE department.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Are documents produced via the browser? If so how (e.g. PDF / HTML)?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;None yet&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Are Reports produced via the browser, if so how?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;None yet&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Does any data persist from session to session that is not stored in the main database (e.g. incomplete records)? If so how is this handled?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;None&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Is client side validation (i.e javascript) used or avoided?&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I do not advocate the idea of avoiding client side validation. In our application we have used client side validation extensively. But since security rule number one is not to trust any input coming in, hence, we also validate it on server. In ASP .NET we can validate all the inputs by simply calling &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;this&lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Courier New;font-size:85%;"  &gt;.Page.IsValid.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I would highly recommend usage of Regular expressions to validate &lt;/span&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;all &lt;/span&gt;&lt;/strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;the input fields. You should establish a separate infrastructure tier which should not only provide regular expressions to validate integers, doubles etc but also complex inputs where business rules are to be followed (like standards runs 3m, 6m and money short cuts 10m for 10 million etc)&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Other pointers of interest:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;Consider ATLAS (alias of AJAX, for asynchronous XML calls.), updating application UI without page refresh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113049746292329163?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113049746292329163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113049746292329163' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049746292329163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049746292329163'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/very-good-question-answer-session.html' title='A very good question answer session related to Architecture'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113049620019634598</id><published>2005-10-28T03:42:00.000-07:00</published><updated>2005-10-28T03:43:20.256-07:00</updated><title type='text'>.NET Data Access Architecture Guide</title><content type='html'>&lt;a href="http://msdn.microsoft.com/vbasic/using/arch/default.aspx?pull=/library/en-us/dnbda/html/daag.asp"&gt;http://msdn.microsoft.com/vbasic/using/arch/default.aspx?pull=/library/en-us/dnbda/html/daag.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113049620019634598?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113049620019634598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113049620019634598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049620019634598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049620019634598'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/net-data-access-architecture-guide.html' title='.NET Data Access Architecture Guide'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113049573811631511</id><published>2005-10-28T03:35:00.000-07:00</published><updated>2005-10-28T03:35:39.706-07:00</updated><title type='text'>Architecture and Design</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/ita_TheITAVisualStudioNETProject.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/ita_TheITAVisualStudioNETProject.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113049573811631511?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113049573811631511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113049573811631511' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049573811631511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049573811631511'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/architecture-and-design.html' title='Architecture and Design'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113049558767334664</id><published>2005-10-28T03:32:00.000-07:00</published><updated>2005-10-28T03:33:07.896-07:00</updated><title type='text'>Enterprise Application Architecture Perspectives</title><content type='html'>Information in the enterprise architecture can be viewed from many perspectives and it can satisfy many needs. But four general perspectives are important and are commonly used. These are the business, application, information, and technology perspectives.&lt;br /&gt;&lt;p&gt;&lt;u&gt;&lt;strong&gt;The business perspective&lt;/strong&gt;&lt;br /&gt;&lt;/u&gt;The business perspective describes how a business works. It includes broad business strategies along with plans for moving the organization from its current state to an envisaged future state. It will typically include the following: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;The enterprise's high-level objectives and goals. &lt;/li&gt;&lt;li&gt;The business processes carried out by the entire enterprise, or a significant portion of the enterprise.&lt;/li&gt;&lt;li&gt;The business functions performed.&lt;/li&gt;&lt;li&gt;Major organizational structures.&lt;/li&gt;&lt;li&gt;The relationships between these elements. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;The application perspective &lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The application perspective defines the enterprise's application portfolio and is application-centered. This view will typically include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Descriptions of automated services that support the business processes. &lt;/li&gt;&lt;li&gt;Descriptions of the interaction and interdependencies (interfaces) of the organization's application systems. &lt;/li&gt;&lt;li&gt;Plans for developing new applications and revising old applications based on the enterprises objectives, goals, and evolving technology platforms. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;The information perspective&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The information perspective describes what the organization needs to know to run its business processes and operations. It includes:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Standard data models. &lt;/li&gt;&lt;li&gt;Data management policies. &lt;/li&gt;&lt;li&gt;Descriptions of the patterns of information production and consumption in the organization.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;&lt;u&gt;The technology perspective&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The technology perspective lays out the hardware and software supporting the organization. It includes, but is not limited to:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Desktop and server hardware.&lt;/li&gt;&lt;li&gt;Operating systems. &lt;/li&gt;&lt;li&gt;Network connectivity components. &lt;/li&gt;&lt;li&gt;Printers.&lt;/li&gt;&lt;li&gt;Modems.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For detailed Information&lt;/p&gt;&lt;p&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnea/html/eaarchover.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnea/html/eaarchover.asp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113049558767334664?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113049558767334664/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113049558767334664' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049558767334664'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049558767334664'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/enterprise-application-architecture.html' title='Enterprise Application Architecture Perspectives'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113049401939606137</id><published>2005-10-28T02:44:00.000-07:00</published><updated>2005-10-28T03:06:59.406-07:00</updated><title type='text'>Things to do before starting to develop a project</title><content type='html'>Coding Standards&lt;br /&gt;Commenting Standards&lt;br /&gt;Threat Modeling&lt;br /&gt;Exception/Logging&lt;br /&gt;Authorization, Authentication and Auditing&lt;br /&gt;concurrency avoid policy&lt;br /&gt;Fesibility to existing components&lt;br /&gt;External interface requirements&lt;br /&gt;Knowedle sharing platform&lt;br /&gt;Interface establishment code&lt;br /&gt;Deployment Stretegies&lt;br /&gt;Components Defination (Library Infrastructure)&lt;br /&gt;Code Structure&lt;br /&gt;Caching Policy&lt;br /&gt;Recursive code paterns&lt;br /&gt;caching policy&lt;br /&gt;Assumptions related to Hardware, Software etc&lt;br /&gt;GUI Controls&lt;br /&gt;Scaling stratigy&lt;br /&gt;Technology selection&lt;br /&gt;secondary technologies Ajax etc&lt;br /&gt;GUI Expectations&lt;br /&gt;Reporting&lt;br /&gt;Architecture Tiers etc...&lt;br /&gt;Data Container for traveling data between tiers&lt;br /&gt;Data Base independence&lt;br /&gt;Front end independence&lt;br /&gt;Development Language&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113049401939606137?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113049401939606137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113049401939606137' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049401939606137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113049401939606137'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/things-to-do-before-starting-to.html' title='Things to do before starting to develop a project'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023713171464843</id><published>2005-10-25T03:45:00.000-07:00</published><updated>2005-10-25T03:45:31.793-07:00</updated><title type='text'>How to roll back transaction completely</title><content type='html'>If a run-time statement error (such as a constraint violation) occurs in a batch, the default behavior in SQL Server is to roll back only the statement that generated the error. You can change this behavior using the SET xact_abort statement. After SET xact_abort ON is executed, any run-time statement error causes an automatic rollback of the current transaction. Compile errors, such as syntax errors, are not affected by SET&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023713171464843?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023713171464843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023713171464843' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023713171464843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023713171464843'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/how-to-roll-back-transaction.html' title='How to roll back transaction completely'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023692511444078</id><published>2005-10-25T03:39:00.000-07:00</published><updated>2005-10-25T03:42:05.190-07:00</updated><title type='text'>web application performance tips(asp.net)</title><content type='html'>I am a student of computer science at this time i am trying to write down some tips for web application performance boast, For this i have collected some data from microsoft articles, wrox professional Asp.net performance book etc and from my personal experiences.I must highly appreciate your comments, corrections and additions.------------------------------------------------------------------------------------------------&lt;br /&gt;&lt;strong&gt;Tips&lt;/strong&gt;&lt;br /&gt;1-Review your database code to see if you have request paths that go to the database more than once. Each of those round-trips decreases the number of requests per second your application can serve. By returning multiple resultsets in a single database request, you can cut the total time spent communicating with the database. You'll be making your system more scalable, too, as you'll cut down on the work the database server is doing managing requests.&lt;br /&gt;&lt;br /&gt;2-The ASP.NET DataGrid exposes a wonderful capability: data paging support. When paging is enabled in the DataGrid, a fixed number of records is shown at a time. Additionally, paging UI is also shown at the bottom of the DataGrid for navigating through the records. The paging UI allows you to navigate backwards and forwards through displayed data, displaying a fixed number of records at a time.one that i want to mention in this respect is, in this case your datagrid will be bound to all result set what if client needs only 10% data of this result set??? so in this case i would like to recomend little bit different approach that can be done with the help of stored procedure. i just want to suggest that you must return the actual number of records that are needed and size and there correct calculation beacuse it can be displayed correctly on client side.&lt;br /&gt;&lt;br /&gt;3- In ideal scanario of application dployment whenver your data layer is seprately working on data server, effective connection pooling can increase your performance.&lt;br /&gt;&lt;br /&gt;4- Effective caching can greatly increase your application performance but if it is not done intelligently than it is so harmful for your application like out of memory exception etc. There are several rules for caching data. First, if data can be used more than once it's a good candidate for caching. Second, if data is general rather than specific to a given request or user, it's a great candidate for the cache. If the data is user- or request-specific, but is long lived, it can still be cached, but may not be used as frequently. Third, an often overlooked rule is that sometimes you can cache too much that can create an out-of-memory error. Therefore, caching should be bounded. There are a several great features of the Cache that you need to know. The first is that the Cache implements a least-recently-used algorithm, allowing ASP.NET to force a Cache purge—automatically removing unused items from the Cache—if memory is running low. Secondly, the Cache supports expiration dependencies that can force invalidation. These include time, key, and file. Time is often used, but with ASP.NET 2.0 a new and more powerful invalidation type is being introduced: database cache invalidation. This refers to the automatic removal of entries in the cache when data in the database changes.&lt;br /&gt;&lt;br /&gt;5- Per request cache is also very good option in some cases, small improvements to frequently traversed code paths can lead to big, overall performance gains. This can be done in asp.net by using HttpContext.Items.&lt;br /&gt;&lt;br /&gt;6- you can achive performance gains by using worker threads in case of heavy processing.&lt;br /&gt;&lt;br /&gt;7- If you have an ASP.NET page that generates output, whether HTML, XML, images, or any other data, and you run this code on each request and it generates the same output, you have a great candidate for page output caching. By simply adding this line to the top of your page . At this point i do agree that page out put cache does not make your application more efficient but it can reduce burden on servers.&lt;br /&gt;&lt;br /&gt;8- There are a number of drawbacks to the use of view state, however. First of all, it increases the total payload of the page both when served and when requested. There is also an additional overhead incurred when serializing or deserializing view state data that is posted back to the server. Lastly, view state increases the memory allocations on the server. Several server controls, the most well known of which is the DataGrid, tend to make excessive use of view state, even in cases where it is not needed. The default behavior of the ViewState property is enabled, but if you don't need it, you can turn it off at the control or page level. Within a control, you simply set the EnableViewState property to false, or you can set it globally within the page using this setting: If you are not doing postbacks in a page or are always regenerating the controls on a page on each request, you should disable view state at the page level.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023692511444078?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023692511444078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023692511444078' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023692511444078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023692511444078'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/web-application-performance-tipsaspnet.html' title='web application performance tips(asp.net)'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023627538137464</id><published>2005-10-25T03:27:00.000-07:00</published><updated>2005-10-25T03:31:15.436-07:00</updated><title type='text'>Business Rules Framework</title><content type='html'>Business Rules Composer:&lt;br /&gt;                                              This application enables you to define vocabularies and build and test rules. The rule-building experience is as simple as dragging and dropping facts and setting properties. You can also publish and deploy policies from here.&lt;br /&gt;Rules Engine Deployment Wizard:&lt;br /&gt;                           Vocabularies and policies are stored in a SQL Server rule store database. To help you move a vocabulary or policy to another computer, this wizard provides import/export functionality. You can also deploy or undeploy a policy.&lt;br /&gt;Rules Engine:&lt;br /&gt;                       This is the runtime engine that processes your policies. The engine evaluates rules, based on their facts, and decides which actions need to be executed. It also supports complexities like dealing with forward chaining. Forward chaining refers to the situation where your rule conditions modify the facts used in your policy, as the underlying facts change, the engine determines when it needs to re-evaluate your rule conditions&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023627538137464?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023627538137464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023627538137464' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023627538137464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023627538137464'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/business-rules-framework.html' title='Business Rules Framework'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023582600426264</id><published>2005-10-25T03:23:00.000-07:00</published><updated>2005-10-25T03:23:46.046-07:00</updated><title type='text'>configuration of iis with asp.net and other related issues</title><content type='html'>aspnet_regiis.exe -i&lt;br /&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;306005"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;306005&lt;/a&gt;&lt;a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;318465"&gt;http://support.microsoft.com/default.aspx?scid=kb;en-us;318465&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023582600426264?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023582600426264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023582600426264' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023582600426264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023582600426264'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/configuration-of-iis-with-aspnet-and.html' title='configuration of iis with asp.net and other related issues'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023426379011598</id><published>2005-10-25T02:54:00.000-07:00</published><updated>2005-10-25T02:57:43.836-07:00</updated><title type='text'>Understanding the .NET Framework - The .NET Architecture</title><content type='html'>&lt;a href="http://www.aspfree.com/c/a/.NET/Understanding-the-.NET-Framework/1/"&gt;http://www.aspfree.com/c/a/.NET/Understanding-the-.NET-Framework/1/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023426379011598?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023426379011598/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023426379011598' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023426379011598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023426379011598'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/understanding-net-framework-net.html' title='Understanding the .NET Framework - The .NET Architecture'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023395910822494</id><published>2005-10-25T02:50:00.000-07:00</published><updated>2005-10-25T02:52:39.156-07:00</updated><title type='text'>Specifying the tab order in ASP.NET controls</title><content type='html'>In the body tag write this code to set the focus on the first controlonload="javascript:document.Form1.TextBox1.focus();&lt;br /&gt;Every control has a property, TAB INDEXstart numbering the tab index of the controls starting from 1The controls that you do not intend to specify tab order, assign them -1 tab indexNote: if 0 'zero' is assigned to the controls then the tab order is in the order the controls were added to the form&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023395910822494?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023395910822494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023395910822494' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023395910822494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023395910822494'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/specifying-tab-order-in-aspnet.html' title='Specifying the tab order in ASP.NET controls'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851515896290537</id><published>2005-10-05T05:23:00.000-07:00</published><updated>2005-10-05T05:25:58.963-07:00</updated><title type='text'>Implementation of Factory pattern, Smart Client and Refletion.</title><content type='html'>all these tricks can be achived throug reflection. An amazing thing that i thinks alot in my early programming days. And in end i got all these functionalities through reflectin.a smart client is an windows based application that is dynamically reffering some assemblies, those resides somewhere else with the help of iis.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SmartClient objSmartClient = new SmartClient();&lt;br /&gt;//display splash screenSplash splash = new Splash();&lt;br /&gt;splash.Show();&lt;br /&gt;Application.DoEvents();&lt;br /&gt;// Set the URL to load the Assembly fromstring&lt;br /&gt;strURL = @"C:\Documents and Settings\alif\My Documents\dotnetprojects\SmartServer\bin\Debug\Smart.exe";&lt;br /&gt;// Set the class to callstring&lt;br /&gt;sClassName = "MySmartClient.SmartForm";Assembly assemblyContent = null;&lt;br /&gt;assemblyContent = Assembly.LoadFrom(strURL);splash.Close();&lt;br /&gt;// Create a object for the ClassType&lt;br /&gt;typeContent = assemblyContent.GetType(sClassName);&lt;br /&gt;// Invoke the method. Here we are invoking the&lt;br /&gt;Main method.typeContent.InvokeMember ("Main", BindingFlags.Public BindingFlags.InvokeMethod BindingFlags.Static, null, null, null);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851515896290537?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851515896290537/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851515896290537' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851515896290537'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851515896290537'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/10/implementation-of-factory-pattern.html' title='Implementation of Factory pattern, Smart Client and Refletion.'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023671853281320</id><published>2005-09-23T03:35:00.000-07:00</published><updated>2005-10-25T03:38:38.636-07:00</updated><title type='text'>Biztalk Server 2004 Business Rule Engine Basic concepts</title><content type='html'>&lt;strong&gt;Basic concepts BRE&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;Facts&lt;/strong&gt; are the entities that your rules consume and manipulate – examples include an element that appears in an XML document, a column in a database table, or even a method exposed by a .NET component.&lt;br /&gt;A &lt;strong&gt;vocabulary&lt;/strong&gt; is a collection of facts, and its purpose is both to apply meaningful, user-defined definition names to those facts and to provide a unit of versioning&lt;br /&gt;A &lt;strong&gt;rule&lt;/strong&gt; is a statement that defines the behavior of one aspect of a business process. rules are made up of facts, conditions and actions.&lt;br /&gt;A &lt;strong&gt;policy&lt;/strong&gt; is a set of rules, packaged and versioned as a unit. Policies are what you develop, test, and deploy when working with the Business Rules Framework&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023671853281320?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023671853281320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023671853281320' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023671853281320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023671853281320'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/09/biztalk-server-2004-business-rule.html' title='Biztalk Server 2004 Business Rule Engine Basic concepts'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023708242149743</id><published>2005-09-12T03:42:00.000-07:00</published><updated>2005-10-25T03:44:42.476-07:00</updated><title type='text'>Single Sign-On (SSO)</title><content type='html'>&lt;strong&gt;SSO&lt;/strong&gt;&lt;br /&gt;Enterprise Single Sign-On (SSO) provides services to store and transmit encrypted user credentials across local and network boundaries, including domain boundaries. SSO stores the credentials in the Credential database. Because SSO provides a generic single sign-on solution, middleware applications and custom adapters can leverage SSO to securely store and transmit user credentials across the environment.The sub services of the Enterprise Single Sign-On (SSO) service are:&lt;br /&gt;&lt;strong&gt;Mapping&lt;/strong&gt;. This component maps the user account in the Windows system to the user accounts in the back-end systems (affiliate applications).&lt;br /&gt;&lt;strong&gt;Lookup&lt;/strong&gt;. This component looks up the user credentials in the Credential database in the back-end system. This is the SSO runtime component.&lt;br /&gt;&lt;strong&gt;Administration&lt;/strong&gt;. This component manages the affiliate applications and the mappings for each affiliate application.&lt;br /&gt;&lt;strong&gt;Secret&lt;/strong&gt;. This component generates the master secret and distributes it to the other SSO servers in the system. It is only active on the Single Sign-On server that is acting as the master secret server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023708242149743?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023708242149743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023708242149743' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023708242149743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023708242149743'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/09/single-sign-on-sso.html' title='Single Sign-On (SSO)'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851633110228006</id><published>2005-09-05T05:44:00.000-07:00</published><updated>2005-10-05T05:45:31.103-07:00</updated><title type='text'>Calling Unmanaged Dll's from Managed Code</title><content type='html'>Calling Unmanaged Dll's from Managed CodeThis is a very comprehensive Tutorial on the underlying PInvoke that is responsile for calling the C++ Dll's from the Code of C#.&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkplatforminvoketutorial.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/csref/html/vcwlkplatforminvoketutorial.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851633110228006?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851633110228006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851633110228006' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851633110228006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851633110228006'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/09/calling-unmanaged-dlls-from-managed.html' title='Calling Unmanaged Dll&apos;s from Managed Code'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023652087312617</id><published>2005-08-25T03:33:00.000-07:00</published><updated>2005-10-25T03:35:20.923-07:00</updated><title type='text'>DOT NET frequently asked questions</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/faq111700.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/faq111700.asp&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.eponymous.eclipse.co.uk/dotnetfaq.htm#1.1"&gt;http://www.eponymous.eclipse.co.uk/dotnetfaq.htm#1.1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/index.php?p=74"&gt;http://www.techinterviews.com/index.php?p=74&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetspider.com/technology/kbpages/1068.aspx"&gt;http://www.dotnetspider.com/technology/kbpages/1068.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.techinterviews.com/index.php?p=54"&gt;http://www.techinterviews.com/index.php?p=54&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.dotnetspider.com/technology/kbpages/1070.aspx"&gt;http://www.dotnetspider.com/technology/kbpages/1070.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx"&gt;http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023652087312617?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023652087312617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023652087312617' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023652087312617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023652087312617'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/dot-net-frequently-asked-questions.html' title='DOT NET frequently asked questions'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851455173641858</id><published>2005-08-17T05:12:00.000-07:00</published><updated>2005-10-05T05:15:51.736-07:00</updated><title type='text'>Mapping in Biztalk(between different documnts or schemas)</title><content type='html'>The transformation defined in a map can be simple, such as copying a name and address from one document to another. Direct data copies like this are expressed by using a link, which is shown in BizTalk Mapper as a line connecting the appropriate elements in the source schema with their counterparts in the destination schema. More complex transformations are also possible by using functoids. A functoid is a chunk of executable code that can define arbitrarily complex mappings between XML schemas, and BizTalk Mapper represents it as a box on the line connecting the elements being transformed. Because some of those transformations are fairly common, BizTalk Server 2004 includes a number of built-in functoids. These built-in functoids are grouped into categories that include the following:·&lt;br /&gt;&lt;strong&gt;Mathematical functoids.&lt;/strong&gt;&lt;br /&gt;Perform operations such as adding, multiplying, and dividing the values of fields in the source document and storing the result in a field in the target document.&lt;br /&gt;&lt;strong&gt;Conversion functoids.&lt;/strong&gt;&lt;br /&gt;Convert a numeric value to its ASCII equivalent and vice-versa.&lt;br /&gt;&lt;strong&gt;Logical functoids.&lt;/strong&gt;&lt;br /&gt;Used to determine whether an element or attribute should be created in the target document based on a logical comparison between specified values in the source document. Those values can be compared for equality, greater than/less than, and in other ways.&lt;br /&gt;&lt;strong&gt;Cumulative functoids.&lt;/strong&gt;&lt;br /&gt;Compute averages, sums, or other values from various fields in the source document, and then store the result in a single field in the target document.Database functoids. Access information stored in a database&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851455173641858?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851455173641858/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851455173641858' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851455173641858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851455173641858'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/mapping-in-biztalkbetween-different.html' title='Mapping in Biztalk(between different documnts or schemas)'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851407070605481</id><published>2005-08-14T05:06:00.000-07:00</published><updated>2005-10-05T05:12:15.143-07:00</updated><title type='text'>SQL Server 2005(Yukon) specialities &amp; .NET Integration and What It Does for You</title><content type='html'>The most evident change in Yukon is a far greater integration with the .NET Framework. The current versions of SQL Server 2000 are accessible via CLR-hosted assemblies, but the DBMS engine itself is not integrated with .NET. As a result, multi-tiered deployment involves bridging technologies like ADO.NET, and database coding is constrained to Microsoft's own SQL dialect, Transact-SQL (aka T-SQL). In contrast, Yukon will host a CLR directly in the DBMS engine, meaning that code written in C#, VB.NET, and other .NET languages can be executed by SQL Server. (This is in addition to Transact-SQL.)&lt;br /&gt;Given the greater expressiveness of C# and VB.NET, this feature will greatly facilitate coding, and it will remove the requirement that programmers learn advanced features of SQL to perform straightforward tasks. In fact, should they wish to, developers can code stored procedures, triggers, and user-defined functions (UDFs) entirely in .NET languages. Microsoft uses the System.Data.SqlServer namespace to provide this .NET access to SQL Server. (Readers who are members of Microsoft's MSDN network can download beta versions of Yukon and the needed .NET files from the MSDN website to begin testing this functionality.)&lt;br /&gt;Yukon will also be better integrated with Microsoft's flagship IDE, Visual Studio .NET. While this environment supports the .NET languages well, SQL Server and T-SQL are not exactly first-class citizens with the plenary support enjoyed by C# and VB.NET. The new version of SQL Server aims to correct this by being more tightly integrated with Visual Studio (via plug-ins) so as to provide better support for T-SQL and XML, and by adding support for OLAP technologies, such as XML for Analysis (XML/A, an OLAP and business intelligence interface) and Multidimensional Expression (MDX, a syntax for querying multidimensional data in SQL Server). In addition, Visual Studio .NET 2005 (code-named Whidbey) is slated to include a set of advanced reporting controls for Yukon.&lt;br /&gt;&lt;strong&gt;Notification Service&lt;/strong&gt;&lt;br /&gt;A problem that pervades all database development is the question of the currency of the data: Has the data I am using been updated? This question underlies data-locking schemes, two-phased commits, and almost all important database activities.One infrequently discussed activity where this problem is a chronic nuisance is data cached by applications themselves, specifically Web applications. Why cache the data if it has to be reread each time to make sure no update has occurred?This question is addressed directly in Yukon by a new notification service. In its simplest form, this enables developers to identify certain commands to SQL Server by use of a notification tag. This notification requests that the database inform the application anytime that running the same command would generate different results. In this way, applications that cache data can simply query this notification (which is stored in a queue) and determine whether a data refresh is warranted.&lt;br /&gt;&lt;strong&gt;Expanded XML Support&lt;/strong&gt;&lt;br /&gt;Previous versions of SQL Server supported XML via the use of "shredding," which is the parsing of XML tag components into the corresponding relational table columns. Yukon supports XML natively. Although, it will not become a true XML database (a category that is a specialty niche), Yukon will offer a native XML data type. This enhancement lifts XML from the category of "bunch of strings" to a type with which unique activities are associated. For example, SQL Server 2005 will enable queries to portions of an XML document, validation of the document against an XML schema, and even modification of the XML document in place. As for the underlying representation, the XML data is stored as a binary large object (BLOB), which enables the database to perform compression whenever possible.Queries against XML data can be performed using XML Query (XQuery), which is an evolving specification from the W3C often used in conjunction with XPath. Yukon will implement the statically typed subset of this "SQL of XML," based on the W3C's working draft of November 15, 2003.&lt;br /&gt;&lt;strong&gt;Web Services—&lt;/strong&gt;&lt;br /&gt;Dramatic ImprovementYukon's support for Web services is a dramatic improvement over previous releases. Notably, the DBMS engine will serve as an HTTP listener. This functionality means that Web services can be developed in the database tier and accessed without a middle tier listener such as IIS. Literally send the HTTP SOAP request to a URL which is listened to by SQL Server and you can execute ad hoc T-SQL commands. For every listener, SQL Server 2005 sets up a separate URL, so it is possible to expose many Web services directly from the database engine.This innovation means that SQL Server can be accessed without recourse to ODBC, JDBC, or ADO. Consequently, it will be particularly attractive to sites that use Web services to integrate disparate databases. And it will be especially useful for applications that run on intermittently connected endpoints (such as handheld devices) and which need quick connect capabilities.(The HTTP listener capability, by the by, is currently supported only on Windows Server 2003 due to the need for the specific HTTP driver that comes with that version of the operating system.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851407070605481?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851407070605481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851407070605481' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851407070605481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851407070605481'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/sql-server-2005yukon-specialities-net.html' title='SQL Server 2005(Yukon) specialities &amp; .NET Integration and What It Does for You'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851396646884076</id><published>2005-08-11T10:56:00.000-07:00</published><updated>2005-10-05T05:06:06.470-07:00</updated><title type='text'>Understanding Biztalk Server</title><content type='html'>Biztalk server is used for integration of different applications, work flow implementation etc.You can use BizTalk Server 2004 in a variety of ways. Traditionally, BizTalk Server has been used for application integration, where the following two scenarios are most important:· Connecting applications within a single organization, commonly referred to as enterprise application integration (EAI)· Connecting applications in different organizations, often called business-to-business (B2B) integrationApplicatins can be hetrogenious or homogenious or mixture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851396646884076?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851396646884076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851396646884076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851396646884076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851396646884076'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/understanding-biztalk-server.html' title='Understanding Biztalk Server'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851245499885381</id><published>2005-08-09T04:33:00.000-07:00</published><updated>2005-10-05T04:40:55.000-07:00</updated><title type='text'>Sending and Receiving Messages in Biztalk: Adapters</title><content type='html'>Because the BizTalk Server 2004 engine must talk to a wide range of other software, it relies on a range of adapters to make this possible. An adapter is an implementation of a communication mechanism, such as a particular protocol.&lt;br /&gt;·&lt;strong&gt; SOAP adapter&lt;/strong&gt;. Enables sending and receiving messages by using SOAP over HTTP. Because SOAP is the core protocol for Web services, this adapter gives BizTalk Server 2004 the ability to interact in a Web services world. As usual with Web services, URLs are used to identify the sending and receiving systems.&lt;br /&gt;&lt;strong&gt;·BizTalk Message Queuing adapter&lt;/strong&gt;. Enables sending and receiving messages by using BizTalk Message Queuing (MSMQT). BizTalk Message Queuing is an implementation of the Microsoft Message Queuing (MSMQ) protocol that can receive and send MSMQ messages from and to the MessageBox database. It is not a replacement for MSMQ, but rather an efficient way to use the MSMQ transport with BizTalk Server.&lt;br /&gt;· &lt;strong&gt;File adapter.&lt;/strong&gt; Enables reading from and writing to files in the Windows file system. Because the applications involved in a business process can often access the same file system, either locally or across a network, exchanging messages through files can be a convenient option.&lt;br /&gt;&lt;strong&gt;· HTTP adapter.&lt;/strong&gt; Enables sending and receiving information by using HTTP. The BizTalk Server 2004 engine exposes one or more URLs to allow other applications to send data to it, and it can use this adapter to send data to other URLs.&lt;br /&gt;&lt;strong&gt;· SMTP adapter.&lt;/strong&gt; Enables sending messages by using Simple Mail Transfer Protocol (SMTP). Standard e-mail addresses are used to identify the parties.&lt;br /&gt;&lt;strong&gt;· SQL adapter.&lt;/strong&gt; Enables reading and writing information from and to a SQL Server database.&lt;br /&gt;&lt;strong&gt;· Base EDI adapter.&lt;/strong&gt; Enables sending and receiving messages by using the American National Standards Institute (ANSI) X-12 and Electronic Data Interchange for Administration, Commerce, and Trade (EDIFACT) standards.&lt;br /&gt;&lt;strong&gt;· FTP adapter.&lt;/strong&gt; Enables exchange of files between BizTalk and FTP servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851245499885381?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851245499885381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851245499885381' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851245499885381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851245499885381'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/sending-and-receiving-messages-in.html' title='Sending and Receiving Messages in Biztalk: Adapters'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-112851191280187404</id><published>2005-08-05T04:29:00.000-07:00</published><updated>2005-10-05T04:31:52.803-07:00</updated><title type='text'>Authentication in ASP.NET: .NET Security Guidance</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/authaspdotnet.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/authaspdotnet.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-112851191280187404?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/112851191280187404/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=112851191280187404' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851191280187404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/112851191280187404'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/authentication-in-aspnet-net-security.html' title='Authentication in ASP.NET: .NET Security Guidance'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023594727143386</id><published>2005-08-01T03:25:00.000-07:00</published><updated>2005-10-25T03:25:47.316-07:00</updated><title type='text'>transaction handling in Biztalk Server 2004</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/ed17b4fc-ddc1-4a41-a134-7d11b2ea3a87.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/BTS_2004WP/html/ed17b4fc-ddc1-4a41-a134-7d11b2ea3a87.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023594727143386?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023594727143386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023594727143386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023594727143386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023594727143386'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/08/transaction-handling-in-biztalk-server.html' title='transaction handling in Biztalk Server 2004'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023380447224895</id><published>2005-07-25T02:49:00.000-07:00</published><updated>2005-10-25T02:50:09.896-07:00</updated><title type='text'>Creating functions in SQL Server</title><content type='html'>&lt;a href="http://www.sqlteam.com/item.asp?ItemID=1955"&gt;http://www.sqlteam.com/item.asp?ItemID=1955&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023380447224895?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023380447224895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023380447224895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023380447224895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023380447224895'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/07/creating-functions-in-sql-server.html' title='Creating functions in SQL Server'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023589642171199</id><published>2005-07-24T03:23:00.000-07:00</published><updated>2005-10-25T03:24:56.466-07:00</updated><title type='text'>Biztalk Server Architecture</title><content type='html'>1-BizTalk Server receives messages from external applications, services, processes, and systems. BizTalk Server uses receive pipelines to convert messages from their external format to XML data and persists these messages to the MessageBox database. This completes the "Publishing" of messages.&lt;br /&gt;2-BizTalk Server may then process the messages with orchestrations by using the Business Rule Engine with these processes. These processes are considered as "Subscribers" to the messages that were published to the MessageBox database. The processes may have a need to send the message to other applications or to trading partners, which results in the orchestration processes "publishing" a new message to the MessageBox database.&lt;br /&gt;3-BizTalk Server uses send pipelines to convert the XML data to their external format. The Send adapter then sends the messages to their external applications, services, processes, and systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023589642171199?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023589642171199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023589642171199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023589642171199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023589642171199'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/07/biztalk-server-architecture.html' title='Biztalk Server Architecture'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023602134193990</id><published>2005-05-22T02:26:00.000-07:00</published><updated>2005-10-25T03:27:05.526-07:00</updated><title type='text'>Feelings about biztalk server 2004</title><content type='html'>If anybody's telling you that BizTalk Server 2004 (BTS) is the best Microsoft product to come along in quite a spell, believe it. If they tell you that it's the closest thing to ERP that Microsoft has yet accomplished, believe it. If they tell you it's easy to use and sets the bar higher for distributed application configuration, you can safely laugh in their faces.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023602134193990?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023602134193990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023602134193990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023602134193990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023602134193990'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/05/feelings-about-biztalk-server-2004.html' title='Feelings about biztalk server 2004'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023518737718021</id><published>2005-03-25T03:12:00.000-08:00</published><updated>2005-10-25T03:13:07.423-07:00</updated><title type='text'>.NET Security Guidance</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_security" target="_self"&gt;Security Considerations&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_relationship" target="_self"&gt;Relationship Between IIS and ASP.NET&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_authentication" target="_self"&gt;Authentication Methods&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_securityweb" target="_self"&gt;Security for Web Services&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_code" target="_self"&gt;Code Access Security&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/en-us/dnbda/html/authaspdotnet.asp?frame=true#authaspdotnet_channel" target="_self"&gt;Channel Security&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/authaspdotnet.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/authaspdotnet.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023518737718021?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023518737718021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023518737718021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023518737718021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023518737718021'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/03/net-security-guidance.html' title='.NET Security Guidance'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023696070552677</id><published>2005-03-22T03:42:00.000-08:00</published><updated>2005-10-25T03:42:40.753-07:00</updated><title type='text'>A very nice and healthy article on asp.net security</title><content type='html'>&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetch08.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetsec/html/SecNetch08.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023696070552677?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023696070552677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023696070552677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023696070552677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023696070552677'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/03/very-nice-and-healthy-article-on.html' title='A very nice and healthy article on asp.net security'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023544192151722</id><published>2005-03-07T03:13:00.000-08:00</published><updated>2007-07-15T23:35:06.340-07:00</updated><title type='text'>FAQ of Interviews in Pakistan</title><content type='html'>Polymorphism&lt;br /&gt;Types&lt;br /&gt;Inheritence&lt;br /&gt;Configuration management&lt;br /&gt;Namespaces&lt;br /&gt;Machine.config&lt;br /&gt;Merge ModulesSecurity in Web Services&lt;br /&gt;Availibility&lt;br /&gt;XML Parsers: DOM SAXDll&lt;br /&gt;Loading in .NET&lt;br /&gt;Encapsulation&lt;br /&gt;Marshalling&lt;br /&gt;Showing tree in a datagrid Forms in User Controls&lt;br /&gt;Calling User Controls Dynamically&lt;br /&gt;Parameter passing in java script&lt;br /&gt;Difference between pure virtual and interface&lt;br /&gt;Pinvoke&lt;br /&gt;Why "New" is not used to create an object of String&lt;br /&gt;Difference between String and StringBuffer&lt;br /&gt;Can we set a Property of a class ByRef?&lt;br /&gt;What is best suited "DataReader" or "DataSet" on desktop and web applications?&lt;br /&gt;Factory Pateren?&lt;br /&gt;Single Call, Singleton, Coupling, Cohesion&lt;br /&gt;What is IDictionary?&lt;br /&gt;Proxy and Stub&lt;br /&gt;Interface and Abstract classs&lt;br /&gt;suence of constructor calling&lt;br /&gt;viewstate and session&lt;br /&gt;implicit and explicit function Object as parameter byref by val&lt;br /&gt;What is platformPolymorphism in NEW&lt;br /&gt;is NEW a function or an operator&lt;br /&gt;MVC Design Pattern&lt;br /&gt;Template, Strategy Patterns&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023544192151722?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023544192151722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023544192151722' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023544192151722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023544192151722'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2005/03/faq-of-interviews-from-muhammad.html' title='FAQ of Interviews in Pakistan'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023511287932326</id><published>2004-10-14T03:11:00.000-07:00</published><updated>2005-10-25T03:11:52.933-07:00</updated><title type='text'>Association, Aggregation and Composition</title><content type='html'>Associations indicate that the two classes have a relationship as discussed above. Composition and aggregation indicate something more about the relationship:Composition indicates that one class belongs to the other. A polygon is made up of several points. If the polygon is destroyed, so are the points.Aggregation is similar to composition, but is a less rigorous way of grouping things. An order is made up of several products, but a product continues to exist even if the order is destroyed&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023511287932326?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023511287932326/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023511287932326' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023511287932326'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023511287932326'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2004/10/association-aggregation-and.html' title='Association, Aggregation and Composition'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023435307999232</id><published>2004-09-25T02:57:00.000-07:00</published><updated>2005-10-25T02:59:13.166-07:00</updated><title type='text'>ASP.NET Security: 8 Ways to Avoid Attack</title><content type='html'>&lt;a href="http://www.devx.com/security/Article/20898"&gt;http://www.devx.com/security/Article/20898&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023435307999232?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023435307999232/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023435307999232' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023435307999232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023435307999232'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2004/09/aspnet-security-8-ways-to-avoid-attack.html' title='ASP.NET Security: 8 Ways to Avoid Attack'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023490938925823</id><published>2004-08-26T03:07:00.000-07:00</published><updated>2005-10-25T03:08:29.436-07:00</updated><title type='text'>Overriding And Shadows</title><content type='html'>Overloading allows a subclass to add a new variation of a method. As long as the new variation has a different method signature, it can have the same name as an existing method on the base class.Shadowing, on the other hand, entirely replaces all variations of the method from the base class, leaving the subclass with only a single version of the method—the one we created through shadowing. Shadowing does not extend an interface, but rather replaces existing methods.Overriding allows a subclass to alter or replace an existing method with the permission of the base class designer. Shadowing can be done without the permission of the base class designer, which is a risky proposition and one that requires extensive testing because the base class was never designed with such a thing in mind.&lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet12252001.asp"&gt;http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnadvnet/html/vbnet12252001.asp&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023490938925823?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023490938925823/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023490938925823' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023490938925823'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023490938925823'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2004/08/overriding-and-shadows.html' title='Overriding And Shadows'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113023360221301286</id><published>2004-06-25T01:13:00.000-07:00</published><updated>2005-10-25T02:46:42.393-07:00</updated><title type='text'>Multi-threaded .NET TCP Server</title><content type='html'>&lt;a href="http://www.codeproject.com/dotnet/dotnettcp.asp"&gt;http://www.codeproject.com/dotnet/dotnettcp.asp&lt;/a&gt;&lt;a href="http://www.theserverside.net/developmentor/index.tss"&gt;www.theserverside.net/developmentor/index.tss&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113023360221301286?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113023360221301286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113023360221301286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023360221301286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113023360221301286'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2004/06/multi-threaded-net-tcp-server.html' title='Multi-threaded .NET TCP Server'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-17486674.post-113022798089212001</id><published>2004-06-25T01:10:00.000-07:00</published><updated>2005-10-25T01:13:00.896-07:00</updated><title type='text'>passing objects over sockets</title><content type='html'>This article focusses on passing objects passing through the sockets. The main focus is on the issue that what if we have vb objects at one end and vb.NET objects at the other. And we are willing to pass these objects.relavant material&lt;a href="http://www.vbip.com/books/1861007396/chapter_7396_01.asp"&gt;http://www.vbip.com/books/1861007396/chapter_7396_01.asp&lt;/a&gt;&lt;a href="http://www.c-sharpcorner.com/Network/SocketProgDTRP.asp"&gt;http://www.c-sharpcorner.com/Network/SocketProgDTRP.asp&lt;/a&gt;multicasting&lt;a href="http://www.vbip.com/books/1861007353/chapter_contents.asp"&gt;http://www.vbip.com/books/1861007353/chapter_contents.asp&lt;/a&gt;TCP layers&lt;a href="http://burks.brighton.ac.uk/burks/pcinfo/hardware/ethernet/tcpip.htm"&gt;http://burks.brighton.ac.uk/burks/pcinfo/hardware/ethernet/tcpip.htm&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/17486674-113022798089212001?l=farukhali.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://farukhali.blogspot.com/feeds/113022798089212001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=17486674&amp;postID=113022798089212001' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113022798089212001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/17486674/posts/default/113022798089212001'/><link rel='alternate' type='text/html' href='http://farukhali.blogspot.com/2004/06/passing-objects-over-sockets.html' title='passing objects over sockets'/><author><name>Farukh Ali Farooq</name><uri>http://www.blogger.com/profile/04898565004599089559</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
