Overview of Dotnet 3.5 Framework

If we look at the graph, depicting evolution of Microsoft's technologies, we can clearly notice that the abstraction level in Application scenarios has been raised drastically so that the developers can completely concentrate on the requirements without bothering much about other stuff. Prior to .NET these abstraction levels had two issues:

  1. The abstraction technologies weren't originally designed to work together, which lead to integration concerns.
  2. Though these abstraction technologies were created to help the developer community, they were still requiring developers to learn a lot. Ex: ASP required either Visual Basic Script or JScript, and ATL required C++

Microsoft's goal for the .NET Framework is to fix all of this. You'll notice that the abstraction technologies were designed to make a particular application scenario easier. With the .NET Framework, Microsoft's goal is not to provide an abstraction technology for developers building a particular kind of application; Microsoft's goal is to provide an abstraction technology for the platform or Microsoft Windows operating system itself. In other words, the .NET Framework raises the abstraction level for any and all kinds of applications. Every step in the Microsoft's latest release .NET Framework 3.5 has been aimed at providing a better and more productive environment.

The .NET Framework 3.5 contains a number of technologies that can help developers solve the problems just described. Some were part of the .NET Framework 3.0, while others are new with the 3.5 release.

Expectations from modern applications:

Ø Web browsers are the most popular user interface for new applications. Still, they’ve a significant limitation: Each new request from a user requires a round-trip to the Web server, commonly resulting in loading a new page. A more intelligent—and faster—approach would be to access data in the background whenever possible, and then update only those parts of the page that need a change. Users would see much more responsive applications, since they would spend less time waiting for new pages to be loaded. Solution: This is exactly what’s done by the AJAX approach to building Web applications. Rather than load a new page for each user request, the browser asynchronously requests data in advance. The code that makes this request is typically written in JavaScript, and the data is often (although not always) formatted in XML. These three characteristics—Asynchronous JavaScript and XML—are the source of name AJAX.

Ø Most applications work with data in some way or the other. The data can be represented in a variety of ways like tables, XML documents, objects held in memory e.t.c. Accessing each of these kinds of data required using different approaches. For ex: for relation data use SQL (T-SQL), for XML documents use XQuery. If carefully noticed the intent is the same that is accessing data. Can we not have a common approach with which data can be retrieved irrespective of how it is stored? Solution: Language Integrated Query (LINQ). It simplifies data access through language extensions for C# and Visual Basic.
Features of LINQ:
Irrespective of the type of data, now we have a consistent approach while working with the data.
Since data is now considered as objects we get the benefit of Intellisense, which increases productivity.
Better integration with programming languages.

Ø Few years back people were keen on procedure oriented model and then came the Object Oriented paradigm which changed the way applications were written. Later on the need for communication between applications was felt which paved the way for Component Oriented approach. This approach is now extended so that applications now can communicate with other applications, both inside and outside the organization. Modern applications also must often fit into a Service-Oriented architecture (SOA), exposing some of their functionality as interoperable services accessible by other software. Achieving these goals requires support for service-oriented applications. In earlier versions of .NET we have various choices that support the applications on the communication front. ASP.NET WebServices, .NET Remoting, System.Messaging, Enterprise Services, Windows Service Enhancements, all were pursuing the same goal. Rather than requiring developers to use a different technology with various application programming interfaces for each kind of communication, why not have a common approach. Solution: Windows Communication Foundation (WCF).

Ø Series are a steps performed in some order. Traditional approach is to have this as a part of programming language by implicating it in the code. This works fine but the problem arises when we further need to change the process or make some kind of modifications for the same. Cause now this needs a complete understanding and hold on the source code to make the changes. Solution: Microsoft .NET 3.0 framework included Windows Workflow Foundation that provided a solution for this. Rather than intertwining the logic in ordinary code, each step in the process is explicitly defined, then executed by a Workflow Engine. Microsoft .NET 3.5 framework extends its work in WF. As a process-oriented view of software continues to gain in popularity, the use of workflow will likely grow as well.

Ø Some work has been also done on the presentation end with Windows Presentation Foundation (WPF), that was originally released in Microsoft .NET 3.0 framework.

Ø Whether it’s via a Web browser or some other kind of client, users routinely access applications across a network. Since these applications commonly require their users to identify themselves in some way, the consequence that cannot be ruled out is that, people are regularly forced to acquire and present identity information to remote software. One very common example of this is accessing Internet applications via a browser. Like we have a wallet and have different identities for ourselves like Driving License, Passport, Pan Card, in the similar way there can be various digital identities supported by different applications for a particular user. To interact with all of these with ease is the goal of Windows CardSpace.

In short the Windows Presentation Foundation (WPF), Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows CardSpace and Language Integrated Query (LINQ) together provide a fantastic framework for the developer community.

The following are the highlights of the Visual Studio 2008:

Ø Side by Side Support
o Earlier if you wanted to install a new version of visual studio, you had to uninstall the earlier version completely. Now with Visual Studio 2008, this is not the case. You can work with both Visual Studio 2008 and Visual Studio 2005 side by side. So those who want to build application in Visual Studio 2005 and also want Visual Studio 2008 to be installed for any reasons can do that without any problems.

Ø Multi-Target Support
o When you open up Visual Studio 2008, you have the options to create applications that target 2.0, 3.0 and 3.5
o Installing Visual Studio 2008 does not mean that applications are target only and only to 3.5
o A single solution file can also contain projects with different targets.
o The above is a major change cause now the organizations can move to Visual Studio 2008 without upgrading any of their previous .net version source code.

Ø A few IDE enhancements are also made for Web Applications
o Integrates support for ASP.NET AJAX 1.0
§ Included in the .NET Framework 3.5
§ ASP.NET AJAX Project Templates
o Web Application Projects included in Visual Studio
o Javascript Intellisense and Debugging
o Richer HTML/CSS Designer Support
§ Split View (simultaneous source and designer)
§ Nested Master Page preview in designer
§ CSS Properties, Manage/Apply Styles windows and direct style application toolbar
§ Improved CSS/HTML layout and visualization in designer
o New Web data controls
§ LinqDataSource, ListView, DataPager

Reference: Introducing the .NET Framework 3.5 by David Chappell, Chappell & Associates - September 2007