Friday, 10 August 2007

All about .NET Framework 3.0

All about .NET Framework 3.0

Introduction:

I have been come across many people thinking that WinFx is not related to .NET Framework. The funniest answer I have gotten is that it is a fix related to Windows PC protection similar to WinFix. It is good decision from Microsoft for changing its name from .NET Framework 3.0. This article gives a clear explanation about the additional technologies/features that are included in .NET Framework 3.0, namely Windows Presentation Foundation (WPF), Windows Workflow Foundation (WF), Windows Communication Foundation (WCF) and Windows Card Space (WCS).

What Happens when we install Framework 3.0:

Does it install new version of the Framework? No. It is just an upgraded Framework from 2.0 that comes along with WPF (Avalon), WCF (Indigo), WCS (InfoCard) and WF. It is a Framework that sits on the top of the 2.0 Framework along with Common Language Runtime (CLR) and BCL (Base Class Library). Framework 3.0 comes with CLR version 2.0. We are still using version 2.0 compilers for the Framework 3.0. So if we have Framework 2.0 installed in our system, it will install managed API's that are required for workflow, presentation, communication, etc. If Framework 2.0 is not installed, it will install Framework 2.0 and then install all other upgraded required components. The serious question that comes to mind is "why the version number is changed if we are still using 2.0 compliers." The reason for choosing the new version number is Avalon, Indigo, Workflow, and Info card are all major new pieces of platform technology.

Features:

· Managed Code Programming Model

· Includes WWF, WPF, WCF

· Delivers sophisticated User Experience

· New user interface code model with vector graphic support using WPF

· Advanced web services functionality using WCF

· Built in work flow for advanced business applications using WF

· Advanced security against phishing using WCS


Framework 3.0 is a layer above the .NET Framework 2.0 with the 4 major new components as mentioned earlier. The .NET application development takes place above the Framework 3.0. There is no up gradation to Visual Studio 2005, CLR 2.0, ADO.NET 2.0 and base class library. All these are part of .NET Framework 2.0. These technologies are developed as managed code API's, therefore, all these technologies can be used in any .NET supported programming languages like C#, VB, J#, etc.

Windows Presentation Foundation (WPF):

This is formerly known as the code named "Avalon," a graphical feature in Framework 3.0 that makes easy to build next generation web applications with the help of rich User Interface (UI), documents and media. This is used to display more advanced graphics that helps a developer to improve his/her designing skills using programming skills, which would be quite challenging. We developers can produce outstanding user interfaces using multimedia and document services in WPF. We can also make use of vector graphics, user interface, 2D and 3D drawing, fixed and adaptive documents, typography, raster graphics, animation, data binding, audio, video and develop graphic/animation through declarative programming. WPF allows developers as well as designers to collaborate and develop awesome visual user interfaces. Here are the two different developer environments that are used to make developer and designer work together.

1. Microsoft Visual Studio

2. Microsoft Expression Interactive Designer

The language that is used to develop application user interfaces in WPF is called XAML (Extensible Application Markup Language). XAML is based on XML (Extensible Markup Language). Separation of model and view is possible in XAML by placing design related information in FileName.xaml file and business logic is placed in FileName.xaml.cs file.

Core Components

The major components of WPF are:

1. Presentation Framework

2. Presentation Core

3. MILCore (Media Integration Layer)

4. DirectX

Presentation Framework and Presentation core are written in managed code. The DirectX engine is responsible for displaying. MILCore is written in unmanaged code in order to enable tight integration with DirectX. MILCore (MILCore.dll) also consists of a composition engine which is responsible for performance reasons.

Microsoft Silverlight:

WPF comes with its subset Microsoft Silverlight formerly named as Windows Presentation Foundation Everywhere (WPF/E) and is a subset of WPF which depends on XAML and JavaScript. Silverlight is a cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences for the Web and mobile applications. Silverlight offers a flexible programming model that supports AJAX, VB, C#, Python, and Ruby, and integrates with existing Web applications. It is lightweight, just 1 MB download and pretty fast. We can play many videos simultaneously without stuttering or dropping frames. No doubt WPF is next-generation graphics API. More explanation on Silverlight is out of the scope of this article. For more details on Silverlight, visit http://www.microsoft.com/silverlight.

Windows Workflow Foundation (WF):

"Workflow" is a declarative way of implementing result oriented business process in software. WWF is a programming model that helps in defining, building, executing, debugging and managing work flow related applications that are in sync with business processes. It consists of a Microsoft NET Framework version 3.0 namespace, an in-process workflow engine, and designers for Visual Studio 2005.

We can build as many work flow styles as we need based on the requirement.

Graphical designer and debugger are provided to implement work flow related software. We can make use of imperative code along with declarative modeling. It enables us to build workflow software that is more flexible and transparent.

Core Components

WF core components include:

1. Base Activity Library: This provides functionality for control flow, conditions, event handling, state management and invoking web service. One can build his or her own custom domain specific activities using the base activity.

2. Runtime Engine: This is responsible for Workflow execution and state management.

3. Runtime Services: This provides hosting flexibility and communication.

4. Visual Designer: It is responsible for graphical and code-based construction.

Once a workflow model is compiled, it can be executed inside any windows process including console applications, WinForms applications, Windows Services, ASP.NET Web sites, and Web services. Extensible Object Modeling Language [XOML] based on XAML is the language that is used for declaring the structure of workflow, business logic for the workflow.

In order to create workflow, activities using WWF are:

1. VS 2005 (comes by installing Visual Studio 2005 add-ins to design and program workflow)

2. SharePoint designer that permits building workflows for Share Point 2007

Windows Communication Foundation (WCF):

WCF is formerly known as the code “Indigo” is the first Unified Programming Model (UPM) for Service Oriented Applications (SOA). It is the unification of the technologies used to deliver distributed systems such as Enterprise Services, Messaging, .NET remoting, ASMX and WSE that run on the Microsoft platform. In other words, Windows Communication Foundation is an advanced technology to provide web services/remoting functionality with better features and reduces the time to develop a distributed system. It makes development interoperable with Non-MS Platform and integrates with existing products. We can build amazing services that would add more weight using WCF. WCF uses SOAP messages for communication between two processes. WCF has a set of API's for creating systems that send messages between services and clients. The same API's are used to create applications that communicate with other applications on the same system or on a system that resides in another company.

Core components

Here is a list of core components in WF.

1. End Point: A WCF service is exposed to the world as a collection of endpoints. It is the point where messages are sent or received. It consists of Address, Binding and Contract.

Address: End point consists of location where message can be sent/received. This is equivalent to a service address in WSDL. An example of Address components are URI, Identity & Headers.

Binding: This is a communication mechanism that describes how messages can be sent. This represents configuration. It is made up of various binding elements like Transport protocol, such as TCP, HTTP, MSMQ, named pipes, Encoding such as text, Message Transmission Optimization Mechanism such as MTOM, binary, and security like asymmetric, symmetric and transport.

Contract: It is a definition for a set of messages that can be sent or received (or both) at the address that describes what message can be sent. It describes the WCF contracts and their operations like One way, request/reply, duplex, and queuing.

2. Channel: A channel is a concrete implementation of a binding element. The channel is the implementation associated with that configuration.

3. Client: A program that exchanges messages with one or more endpoints using channels.

4. Service: A service is a construct that exposes one or more endpoints, with each endpoint exposing one or more service operations.

5. Behavior: A behavior is a component that controls various run-time aspects of a service, an endpoint, a particular operation, or a client.

· WCF has rich communication capabilities.

· WCF is 25%—50% faster than ASP.NET Web Services and approximately 25% faster than .NET Remoting.

· It is secured, Confidential in keeping messages.

· Using WCF message transfer is reliable.

Microsoft Windows Card Space (WCS):

It is formerly known as the code named "InfoCard" that helps to protect user’s digital identities against spoofing, phishing and tampering. It enables end users to provide digital identity to online services in a simple and trusted way.

Here is how it works…

Instead of authenticating users with passwords, websites authenticate users with security tokens. Submit identity token to the website with just a few clicks of a mouse. The website accepts this token presented by the user, decrypts the token, validates this credential and uses this information internally to identify the user. Cryptographic techniques along with responsible protocols are used for identification of the user. CardSpace includes a self-issued identity provider, which runs on the local Windows system and it can produce information cards just like any other identity provider.

Users download cards from identity providers such as their bank, employer, government agency, membership organization, or create their own self-issued cards. When a Website or Web service requests a user’s credentials, CardSpace will be invoked and allow the user to select a card to present. CardSpace then retrieves a verifiable credential from the selected identity provider, or the self-issuing authority as the case may be, utilizing interoperable protocols. It then forwards the credential to the target application. This provides users with a simple, secure and familiar sign-on experience that is consistent across all Websites and Web services.

We can enjoy the technology, simplicity, consistency and mainly security that Card Space gifts us.

Seven reason for application restart in Asp.net 2.0

Seven reason for application restart in Asp.net 2.0
___________________________________________________

There are many reasons why the Web Application restarts in Asp.net 2.0.
If you are using IN Proc (which is the fastest and most used) then all the users
will loose the session information. So it’s very important to know what can cause
an application restart in the web application. If we do not stop this application
restart process it can cause great problem, as all the user will start loosing
their session in the middle of nothing.

Here is a list of events when the Asp.net application restarts in Asp.Net 2.0

* Adding, modifying, or deleting assemblies from the application's Bin folder.
* Adding, modifying, or deleting localization resources from the App_GlobalResources or App_LocalResources folders.

* Adding, modifying, or deleting the application's Global.asax file.

* Adding, modifying, or deleting source code files in the App_Code directory.

* Adding, modifying, or deleting Profile configuration.

* Adding, modifying, or deleting Web service references in the App_WebReferences directory.

* Adding, modifying, or deleting the application's Web.config file.