I recently got hold of a book on Silverlight 3 to enhance my understanding on that topic and I started reading it this very morning. I am not going to talk about Silverlight yet but the book had a fairly good introductory chapter on .NET and its evolution to version 3.5 (Soon to be 4.0).
Essentially, the .NET framework was implemented and subsequently improved to respond to client, developer and commercial needs as well as to harness improvements in other supporting technologies e.g. broadband. Version 3.0 of the framework did not bring major changes to the core of version 2.0 but rather added auxilliary technologies which made use of the latter. Hence, version 3.0 saw the introduction of the following:
- Windows Presentation Foundation (WPF)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WWF or WF)
Windows Presentation Foundation (WPF)
WPF is the new and improved way to work with graphics, animation and media. In practical terms, it provides the following benefits:
- Gentler learning curve for those who are familiar with ASP.NET.
- Separation of concerns i.e. the designer and developer can work independently on the same application.
- A common platform for developing both windows and web applications.
WPF is based upon XAML (Extensible Application Markup Language) which is a custom Microsoft XML grammar used to define user interface elements. Hence, it means that WPF applications will look the same across platforms. On the other hand, it also means that XAML needs to be learned or at the very least understood although there are visual tools that enable for developing XAML based user interfaces without knowing the XAML syntax in-depth.
Windows Communication Foundation (WCF)
Microsoft provides a lot of technologies to help build distributed applications. In .NET, there are various classes which can be used to easily expose and consume web services. Moreover, if all host servers have the .NET framework installed, it is then possible to make use of .NET remoting which allows for better performance.
WCF is simply a consolidation of the .NET framework for distributed applications. It allows for coherent development of web and standard server-based distributed applications.
Windows Workflow Founcation (WF)
WF is used to document application workflows. I am not entirely sure of its benefits apart from obviously getting a clearer picture of various interactions.
This is Microsoft’s digital identity management system which can be used to authenticate and verify users.
The sections above provide a very brief introduction to the technologies introduced with version 3.0 of the .NET framework. With version 3.5, two auxilliary technologies built on and around version 2.0 were introduced namely, ASP.NET AJAX and Language Integrated Query (LINQ).
The benefits of AJAX are increased responsiveness and performance. Effectively, with AJAX it is possible to update only part of a page rather than the whole page thus reducing the load on resources.
Language Integrated Query (LINQ)
LINQ enables for the querying of data stored in programming constructs and object oriented mechanisms as well as for querying data stored in a relational database, XML and other data sources. The benefit is that it then makes it easy to manipulate data in objects and collections and does away with the need to be build looping constructs. Having said that, I am not entirely sure that it encourages best practice where n-tier applications and direct querying of the relational database is concerned.