Wednesday, April 8, 2009

Sunday, March 29, 2009

IIS 5 vs IIS 6.0

IIS 5 vs IIS 6

When a request comes in, inetinfo.exe process in IIS 5 hosts aspnet_isapi.dll and forwards the request to it. The aspnet_isapi.dll will create a new instance of aspnet_wp.exe worker process. This process will host the .NET runtime and forward the request to it.
Because the aspnet_isapi.dll and .NET runtime are in two separate processes, they use a named pipe to communicate.
IIS 6 doesn’t directly host aspnet_isapi.dll, instead IIS 6 always creates a separate instance of w3wp.exe worker process and all processing occurs inside of this process which hosts both aspnet_isapi.dll and the .NET runtime.This improves the performance because no named pipe is needed.
IIS uses a device driver named HTTP.SYS to route incoming requests to the proper application pool.

Monday, January 19, 2009

Abstract Class Vs Interface

If you anticipate creating multiple versions of your component, create an abstract class. Abstract classes provide a simple and easy way to version your components. By updating the base class, all inheriting classes are automatically updated with the change. Interfaces, on the other hand, cannot be changed once created. If a new version of an interface is required, you must create a whole new interface.

If the functionality you are creating will be useful across a wide range of disparate objects, use an interface. Abstract classes should be used primarily for objects that are closely related, whereas interfaces are best suited for providing common functionality to unrelated classes.

If you are designing small, concise bits of functionality, use interfaces. If you are designing large functional units, use an abstract class.
If you want to provide common, implemented functionality among all implementations of your component, use an abstract class. Abstract classes allow you to partially implement your class, whereas interfaces contain no implementation for any members.

Saturday, December 27, 2008


A SharePoint site is a Web site that provides a central storage and collaboration space for documents, information, and ideas. A SharePoint site is a tool for collaboration, just like a telephone is a tool for communication, or a meeting is a tool for decision making. A SharePoint site helps groups of people (whether work teams or social groups) share information and work together. For example, a SharePoint site can help you:

* Coordinate projects, calendars, and schedules.
* Discuss ideas and review documents or proposals.
* Share information and keep in touch with other people.

SharePoint sites are dynamic and interactive -- members of the site can contribute their own ideas and content as well as comment on or contribute to other people's.

Agile Methodolgoy


Agile methodologies generally promote:
1)A project management process that encourages frequent inspection and adaptation;
2)a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.
3)Agile chooses to do things in small increments with minimal planning, rather than long-term planning. Iterations are short time frames (known as 'timeboxes') which typically last from one to four weeks.
4)Each iteration is worked on by a team through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders
5)This helps to minimize the overall risk, and allows the project to adapt to changes more quickly. Documentation is produced as required by stakeholders.
6)Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office to facilitate such communication. Team size is typically small (5-9 people) to help make team communication and team collaboration easier. Larger development efforts may be delivered by multiple teams working toward a common goal or different parts of an effort. This may also require a coordination of priorities across teams.


WPF is programmed with your favorite .NET language, Silverlight is currently programmed with JavaScript only (there's was talk of cross-platform .NET support coming)
Silverlight does not support some of the more advanced concepts of WPF such as controls, templating, 3D
Silverlight integrates right into an HTML page where as WPF XAML files have to be loaded via a frame if they want to mix with HTML content
Simpler security model for Silverlight vs. WPF XBAPs