Shiju Varghese's Blog Headline

Shiju Varghese's Blog

Wednesday, November 28, 2007

Introducing .NET Framework 3.5

What is .NET Framework 3.5?

The .Net Framework 3.5 is an updated version of two existing frameworks .Net 2.0 and .Net 3.0. The .NET Framework 3.5 builds upon the previous versions of the framework, namely the .NET Framework 2.0 and 3.0. It provides several new enhancements including LINQ, Language enhancements, ASP.NET 3.5, the CLR Add-in framework and several others.

The .NET Framework 3.0 introduced the following technologies,

• Windows Presentation Foundation – provides the ability to build rich, interactive client applications
• Windows Communication Foundation – provides a common programming model for building services and connecting applications
• Windows Workflow Foundation – provides the ability to define declarative, long-running workflows
• Windows CardSpace – provides a safer and more secure alternative to username and password authentication within web sites and rich client applications

Visual Studio 2008 and the .NET Framework 3.5 include enhanced versions of the technologies that have been released out-of-band, such as AJAX and design time support for WF, WPF, and WCF applications. Next year, Microsoft is planning to release a major update to Visual Studio Team System and Team Foundation Server codenamed “Rosario”. Visual Studio 2008 supports multiple versions of .Net framework. You can target .Net 2.0, .Net 3.0 and .Net 3.5 frameworks using the Visual Studio 2008.

Key technologies of .Net Framework 3.5

The .Net Framework 3.5 introduced many new technologies as well as updated some existing technologies such as .Net 3.0. Some of the key technologies described below

ASP.NET AJAX

Today Ajax is one of the hottest buzzwords of the web. In traditional web applications, the user actions in the user interface invoke an HTTP request to the web server. Then the server will do lot of process on the server and then returns an HTML page to the client. In Ajax applications, the request is not for GUI or HTML, It is only for data . With Ajax, we can develop more intelligent and more responsive web applications. ASP.net Ajax extends the Ajax concept by providing a rich, integrated server development platform in ASP.NET. The ASP.net Ajax package of client and server-side development tools and components is a significant evolution and enhancement of the Ajax concept.

NET 3.5 has built-in support for ASP.NET AJAX and does not require separate download like ASP.Net 2.0. ASP.net Ajax 3.5 extended the ASP.NET AJAX 1.0 and supports many new features such as enhancement of UpdatePanels, WCF Support for JSON and lot of other Ajax enhancements and improvements.

LINQ (Language-Integrated Query)

Language Integrated Query (LINQ) is the key feature of .NET 3.5 that enables developers to write queries for accessing .NET types such as collections, Database and XML .With LINQ, query is an integrated feature C# and VB.

Below is a sample LINQ query and result set bind to a grid view
string[] cities = {"Seattle", "London", "Amsterdam", "San Francisco", "Las Vegas",
"Boston", "Raleigh", "Chicago", "Charlestown",
"Helsinki", "Nice", "Dublin" };
GridView1.DataSource = from city in cities
where city.Length > 6
orderby city
select city.ToUpper();
GridView1.DataBind();

.NET Framework 3.5 includes several extensions for LINQ . The major LINQ technologies include the following:

LINQ to ADO.NET: Provides object/relational (O/R) mapping. This aspect of LINQ includes two options. The first, LINQ to SQL, translates a query like the one above into a SQL query, then issues it against tables in a SQL Server database. The second option, LINQ to DataSet, executes a query like the one shown above on the contents of a DataSet returned by ADO.NET
LINQ to Objects: Allows querying collections of in-memory data structures, such as object hierarchies. The query above could also be issued against this kind of data—despite its similarity to SQL, it’s not limited to accessing only data in tables.
LINQ to XML: Allows querying XML data. This approach uses a slightly different syntax, reflecting the unique needs of mapping between the world of XML and a programming language, but the basic structure of a LINQ query remains the same.
Like SQL, LINQ also defines other operators for queries. They include things such as OrderBy, which determines how results are ordered; GroupBy, which organizes selected data into groups; and arithmetic operators such as Sum.

LINQ to SQL is an O/RM (object relational mapping) of the .NET Framework 3.5. It provides you to model a relational database using .NET classes. You can then query the database using LINQ, as well as insert, update and delete data from it. LINQ to SQL supports all types of database objects such as views, and stored procedures and also transactions. It also provides an easy way to integrate data validation and business logic rules into your data model. Visual Studio 2008 provides a Linq to SQL designer that enables to model and visualize a database as a LINQ to SQL object model. You can create the all database representations using the Linq to SQL designer. With the Linq to SQL designer, you can drag and drop the tables into the Linq to SQL designer surface and can represent the relations between tables. Linq to SQL allows you to model classes that map to tables within a database. These classes are known as "Entity Classes" and instances of them are called "Entities". Like other OR/Ms, the Linq to SQL OR/Ms will generate the SQL statements at the runtime when interacting with the Entity Classes.

Windows Communication Foundation

Windows Communication Foundation (WCF) is Microsoft’s unified programming model for building service-oriented applications. It enables developers to build secure, reliable, transacted solutions that integrate across platforms and interoperate with existing investments.
Windows Communication Foundation (WCF) is an SDK for developing and deploying services on Windows. A service is a unit of functionality exposed to the world. In that respect, it is the next evolutionary step in the long journey from functions to objects to components to services. Service-orientation (SO) is an abstract set of principles and best practices for building SO applications. WCF provides a runtime environment for your services. WCF provides many useful facilities for developing services, such as hosting, service instance management, asynchronous calls, reliability, transaction management, disconnected queued calls, and security.
WCF addresses a range of challenges for communicating applications. Three things are the most important aspects of WCF:
• Unification of existing .NET Framework communication technologies.
• Support for cross-vendor interoperability, including reliability, security, and transactions.
• Explicit service orientation.

Address, Binding and Contract (a.k.a. ABC of WCF) are the key attributes of WCF.
An address indicating where this endpoint can be found. As shown in the figure, the address is expressed as a URL.
A binding defining how the endpoint’s operations can be invoked. Each binding defines several things, including what protocol should be used to invoke the operations, what kind of security should be used, and more. WCF includes a set of pre-defined bindings, such as the BasicHttpBinding shown here, for the most common cases, and it’s also possible to define custom bindings. Because a single service can expose multiple endpoints, each with a different binding, it can simultaneously allow access to different kinds of clients over different protocols and with different security options.
A contract describing the operations that can be invoked via this endpoint. The contract can be identified using just the name of the interface that defines these operations, which here is IInsurance.

New features of WCF in .Net 3.5

The .Net 3.5 framework has cool new features for WCF. Some of the new features are
1. Ajax enabled WCF web services.
2. Improved Support for WS-* Standards.
3. WCF designer for developing configuration files.
4. Support for REST-Style services.
5. Improved interaction between WF and WCF.

Windows Workflow Foundation

Windows Workflow Foundation is the programming model, engine and tools for quickly building workflow enabled applications on Windows. Windows Workflow Foundation is available for both client and server versions of Windows. Windows Workflow Foundation includes support for both system workflow and human workflow across a wide range of scenarios including: workflow within line of business applications, user interface page-flow, document-centric workflow, human workflow, composite workflow for service oriented applications, business rule driven workflow and workflow for systems management.
A workflow is a set of activities stored as a model that describe a real world process. Work passes through the model from start to finish and activities might be executed by people or by system functions. Workflow provides a way of describing the order of execution and dependent relationships between pieces of short or long running work. While it is possible to write a workflow completely in code, workflow is often best viewed graphically. Once a workflow model is compiled it can be executed inside any Windows process including console apps, forms- based apps, Windows Services, ASP.NET web sites and web services.
BizTalk Server 2006 R2 is scheduled to replace the product’s existing orchestration function with WF, providing tools to help migrate existing orchestrations to WF workflows. Because it’s the standard workflow technology for Windows, WF will also show up in other Microsoft products and technologies.

Windows Presentation Foundation

Windows Presentation Foundation (WPF) provides a unified programming model for building rich Windows smart client user experiences that incorporate UI, media, and documents.
Three aspects of what WPF provides stand out as most important. They are:
  • A unified platform for Windows-based user interfaces;
  • The ability for developers and designers to work together;
  • Interoperability with existing user interface technologies.


WPF introduces the eXtensible Application Markup Language (XAML). XAML provides an XML-based way to specify declaratively a hierarchy of objects with properties and logic. We're positioning XAML as a user interface design language. XAML gets compiled into an object definition. XAML defines a set of XML elements such as Button, TextBox, Label, and many more to define exactly how a user interface looks. XAML elements typically have attributes as well, allowing various options to be set.
WPF allows specifying an interface using the XAML. Elements and attributes in XAML map directly to the classes and properties that WPF provides. For example, here’s a simple button defined in XAML:
<button background="">
Ok
</button>

This example creates a red button that contains the text “Ok”. The exact same result could also be produced with the following code:
Button btn = new Button();
btn.Background = Brushes.Red;
btn.Content = “Ok">However it’s defined, a WPF application can rely on panels for basic layout. Each panel typically contains controls, and those provided by WPF include Button, TextBox, ComboBox, Menu, and many more. How those controls are positioned depends on what type of panel is chosen. A Grid, for instance, allows positioning controls on a specified grid, while a Canvas lets the developer place controls anywhere within its boundaries. And as usual in a GUI, events generated by the user are caught and handled by the various controls and other classes in the application. It’s also possible to apply styles and templates to groups of controls, which makes it easier for applications to have a uniform look.
WPF supports much more than these basic user interface functions, including the following:


Documents: A WPF application can display XPS documents using XAML’s FixedDocument tag. An application can also display flow documents using the FlowDocument tag. A flow document can behave like a traditional on-screen document, allowing the user to scroll through its contents. By setting various attributes on this tag, however, a developer can make the document more adaptive to its surroundings. A document can display a page at a time, for example, freeing its reader from the need to scroll back and forth. The goal is to allow on-screen documents to be as readable as possible.
Graphics: WPF includes support for creating two-dimensional and three-dimensional vector graphics. For 2D work, WPF provides standard abstractions such as shapes, brushes, and pens, while 3D graphics allowing defining a model that can be assigned lighting and camera position information. Unlike earlier technologies such as Windows Forms, which relies on GDI+ for graphics, WPF graphics aren’t cabined off using a separate set of concepts that developers must understand. Instead, the XAML elements used for graphics can be combined naturally with those used for anything else in a user interface.
Images: Using XAML’s Image tag, a WPF application can display images in various formats, including JPEG, GIF, and others.
Media: A WPF application can use the MediaElement tag to display video and audio in various formats, including WMV, AVI, and MPEG.
Animation: WPF provides built-in support for animating most parts of a user interface. A circle can grow and shrink, for example, or a button can smoothly change size. Applications can also define storyboards containing timelines, allowing coordinated sequences of animations to occur.
Data Binding: Because many WPF applications display data, it’s useful to have automatic support for mapping data to user interface elements. WPF provides this kind of data binding for information contained in objects and other sources.


Windows CardSpace


Windows CardSpace provides the consistent user experience required by the identity metasystem. It is specifically hardened against tampering and spoofing to protect the end user's digital identities and maintain end-user control.
Think about how people represent themselves today on the Internet. In the majority of cases, a person’s digital identity is expressed as a simple username. Combined with a password, this identity is used to access email accounts, Internet merchants, and even on-line banks and other financial institutions. Yet despite their popularity, usernames and passwords have several drawbacks. Here are the two most important:
1)People have a hard time remembering all of the usernames and passwords they’ve chosen for different sites. Many people use the same values for different sites, easing the memory problem but increasing the security risk.
2)Usernames, passwords, and other personal information can be stolen by phishers. By sending deceptive emails, phishers entice their victim to log into a Web site that looks just like, say, the site of the victim’s bank. The site is actually controlled by the phisher, however, and so once the victim enters his username and password, the phisher can use this information to masquerade as the user at the real site.
Reducing the severity of these problems requires a new approach to managing digital identities. Windows CardSpace, originally released with the .NET Framework 3.0, is an important part of that approach. To help people keep track of their digital identities, CardSpace represents each identity as a distinct information card. If a Web site accepts CardSpace logins, a user attempting to log into that site will see a CardSpace selection screen like the one below. By choosing a card, the user also chooses a digital identity that will be used to access this site. Different cards can contain different information, allowing a user to control exactly what each site learns about her.

No comments: