Whats new in the .net framework

One of my readers asked me to publish the differences on .net frameworks. The credit for this article goes to MSDN team who have provided excellent documentation on Microsoft technologies. The article starts with latest framework goes down till 1.0 so if you are not working with 3.5 sp1 you should read this article from bottom to top. Another purpose of this article is to provide a quick walkthrough of .net features available in different frameworks.

The .NET Framework is

  • Common Language Runtime – provides an abstraction layer over the operating system
  • Base Class Libraries – pre-built code for common low-level programming tasks
  • Development frameworks and technologies – reusable, customizable solutions for larger programming tasks
  • and lot more …

 


 

.NET Framework Version 4 Release Candidate (RC) – Feb 2010

  • Application Compatibility and Deployment
    • The .NET Framework 4 is highly compatible with applications that are built with earlier .NET Framework versions, except for some changes that were made to improve security, standards compliance, correctness, reliability, and performance. 
  • Client Profile
    • The .NET Framework 4 Client Profile supports more platforms than in previous versions and provides a fast deployment experience for your Windows Presentation Foundation (WPF), console, or Windows Forms applications.
  • In-Process Side-by-Side Execution
    • This feature enables an application to load and start multiple versions of the .NET Framework in the same process. For example, you can run applications that load add-ins (or components) that are based on the .NET Framework 2.0 SP1 and add-ins that are based on the .NET Framework 4 in the same process. Older components continue to use the older .NET Framework version, and new components use the new .NET Framework version.
  • Core New Features and Improvements
    • Diagnostics and Performance
      • Earlier versions of the .NET Framework provided no way to determine whether a particular application domain was affecting other application domains, because the operating system APIs and tools, such as the Windows Task Manager, were precise only to the process level. Starting with the .NET Framework 4, you can get processor usage and memory usage estimates per application domain.
      • You can monitor CPU and memory usage of individual application domains. Application domain resource monitoring is available through the managed and native hosting APIs and event tracing for Windows (ETW). When this feature has been enabled, it collects statistics on all application domains in the process for the life of the process.
    • Garbage Collection
      • The .NET Framework 4 provides background garbage collection. This feature replaces concurrent garbage collection in previous versions and provides better performance. For more information, see Fundamentals of Garbage Collection.
  • Code Contracts
    • Code contracts let you specify contractual information that is not represented by a method’s or type’s signature alone. The new System.Diagnostics.Contracts namespace contains classes that provide a language-neutral way to express coding assumptions in the form of preconditions, postconditions, and object invariants. The contracts improve testing with run-time checking, enable static contract verification, and support documentation generation.
  • Design-Time-Only Interop Assemblies
    • You no longer have to ship primary interop assemblies (PIAs) to deploy applications that interoperate with COM objects. In the .NET Framework 4, compilers can embed type information from interop assemblies, selecting only the types that an application (for example, an add-in) actually uses. Type safety is ensured by the common language runtime.
  • Dynamic Language Runtime
    • The dynamic language runtime (DLR) is a new runtime environment that adds a set of services for dynamic languages to the CLR. The DLR makes it easier to develop dynamic languages to run on the .NET Framework and to add dynamic features to statically typed languages. To support the DLR, the new System.Dynamic namespace is added to the .NET Framework.
    • The expression trees are extended with new types that represent control flow, for example, System.Linq.Expressions.LoopExpression and System.Linq.Expressions.TryExpression. These new types are used by the dynamic language runtime (DLR) and not used by LINQ.
  • Covariance and Contravariance
  • BigInteger and Complex Numbers
    • The new System.Numerics.BigInteger structure is an arbitrary-precision integer data type that supports all the standard integer operations, including bit manipulation. It can be used from any .NET Framework language.
  • Tuples
    • The .NET Framework 4 provides the System.Tuple class for creating tuple objects that contain structured data. It also provides generic tuple classes to support tuples that have from one to eight components (that is, singletons through octuples). To support tuple objects that have nine or more components, there is a generic tuple class with seven type parameters and an eighth parameter of any tuple type. 
  • File System Enumeration Improvements
    • New file enumeration methods improve the performance of applications that access large file directories or that iterate through the lines in large files.
  • Memory-Mapped Files
    • The .NET Framework now supports memory-mapped files. You can use memory-mapped files to edit very large files and to create shared memory for interprocess communication.
  • 64-Bit Operating Systems and Processes
  • Other New Features
    • The following list describes additional new capabilities, improvements, and conveniences. Several of these are based on customer suggestions.
      • To support culture-sensitive formatting, the System.TimeSpan structure includes new overloads of the ToString, Parse, and TryParse methods, as well as new ParseExact and TryParseExact methods.
      • The new String.IsNullOrWhiteSpace method indicates whether a string is null, empty, or consists only of white-space characters. New overloads have been added to the String.Concat and String.Join methods that concatenate members of System.Collections.Generic.IEnumerable<(Of <(T>)>) collections.
      • The String.Concat method lets you concatenate each element in an enumerable collection without first converting the elements to strings.
      • Two new convenience methods are available: StringBuilder.Clear and Stopwatch.Restart.
      • The new Enum.HasFlag method determines whether one or more bit fields or flags are set in an enumeration value. The Enum.TryParse method returns a Boolean value that indicates whether a string or integer value could be successfully parsed.
      • The System.Environment.SpecialFolder enumeration contains several new folders.
      • You can now easily copy one stream into another with the CopyTo method in classes that inherit from the System.IO.Stream class.
      • New Path.Combine method overloads enable you to combine file paths.
      • The new System.IObservable<(Of <(T>)>) and System.IObserver<(Of <(T>)>) interfaces provide a generalized mechanism for push-based notifications.
      • The System.IntPtr and System.UIntPtr classes now include support for the addition and subtraction operators.
      • You can now enable lazy initialization for any custom type by wrapping the type inside a System.Lazy<(Of <(T>)>) class.
      • The new System.Collections.Generic.SortedSet<(Of <(T>)>) class provides a self-balancing tree that maintains data in sorted order after insertions, deletions, and searches. This class implements the new System.Collections.Generic.ISet<(Of <(T>)>) interface.
      • The compression algorithms for the System.IO.Compression.DeflateStream and System.IO.Compression.GZipStream classes have improved so that data that is already compressed is no longer inflated. Also, the 4-gigabyte size restriction for compressing streams has been removed.
      • The new Monitor.Enter(Object, Boolean%) method overload takes a Boolean reference and atomically sets it to true only if the monitor is successfully entered.
      • You can use the Thread.Yield method to have the calling thread yield execution to another thread that is ready to run on the current processor.
      • The System.Guid structure now contains the TryParse and TryParseExact methods.
      • The new Microsoft.Win32.RegistryOptions enumeration lets you specify a volatile registry key that does not persist after the computer restarts.
      • Registry keys are no longer restricted to a maximum length of 255 characters.
  •  Managed Extensibility Framework
    • The Managed Extensibility Framework (MEF) is a new library in the .NET Framework 4 that helps you build extensible and composable applications. MEF enables you to specify points where an application can be extended, to expose services to offer to other extensible applications and to create parts for consumption by extensible applications. It also enables easy discoverability of available parts based on metadata, without the need to load the assemblies for the parts.
  • Parallel Computing
    • The .NET Framework 4 introduces a new programming model for writing multithreaded and asynchronous code that greatly simplifies the work of application and library developers. The new model enables developers to write efficient, fine-grained, and scalable parallel code in a natural idiom without having to work directly with threads or the thread pool. The new System.Threading.Tasks namespace and other related types support this new model. Parallel LINQ (PLINQ), which is a parallel implementation of LINQ to Objects, enables similar functionality through declarative syntax.
  • Networking
  • Web
    • ASP.NET version 4 introduces new features in the following areas:
      • Core services, including a new API that lets you extend caching, support for compression for session-state data, and a new application preload manager (autostart feature).
      • Web Forms, including more integrated support for ASP.NET routing, enhanced support for Web standards, updated browser support, new features for data controls, and new features for view state management.
      • Web Forms controls, including a new Chart control.
      • MVC, including new helper methods for views, support for partitioned MVC applications, and asynchronous controllers.
      • Dynamic Data, including support for existing Web applications, support for many-to-many relationships and inheritance, new field templates and attributes, and enhanced data filtering.
      • Microsoft Ajax, including additional support for client-based Ajax applications in the Microsoft Ajax Library.
      • Visual Web Developer, including improved IntelliSense for JScript, new auto-complete snippets for HTML and ASP.NET markup, and enhanced CSS compatibility.
      • Deployment, including new tools for automating typical deployment tasks.
      • Multi-targeting, including better filtering for features that are not available in the target version of the .NET Framework.
  • Client
    • Windows Presentation Foundation
      • In the .NET Framework 4, Windows Presentation Foundation (WPF) contains changes and improvements in many areas, including controls, graphics, and XAML. For more information, see What’s New in WPF Version 4.
  • Data
    • ADO.NET
      • ADO.NET provides new features for the Entity Framework, including Persistence-Ignorant Objects, functions in LINQ queries, and Customized Object Layer Code Generation. For more information, see What’s New in ADO.NET.
    • Dynamic Data
      • For ASP.NET 4, Dynamic Data has been enhanced to give you even more power for quickly building data-driven Web sites. This includes the following:
    • Automatic validation that is based on constraints that are defined in the data model.
    • The ability to easily change the markup that is generated for fields in the GridView and DetailsView controls by using field templates that are part of a Dynamic Data project.
  • Communications and Workflow

.NET Framework Version 3.5 SP1 – Aug 2008

  • ASP.NET
    • New ASP.NET features include ASP.NET Dynamic Data, which provides a rich scaffolding framework that allows rapid data driven development without writing code, and an addition to ASP.NET AJAX that provides support for managing browser history (back button support).
  • Common Language Runtime
    • Core improvements to the common language runtime include the following:
      • Improved application startup and working set performance.
      • Better layout of .NET Framework native images.
      • Opting out of strong-name verification of fully trusted assemblies.
      • Better generated code that improves end-to-end application execution time.
      • Detecting approaching full garbage collections with Garbage Collection Notifications.
      • Opting for managed code to run in ASLR (Address Space Layout Randomization) if supported by the operating system.
      • Managed applications that are opened from network shares have the same behavior as native applications by running with full trust.
  • .NET Framework Client Profile
    • The .NET Framework Client Profile is a subset of the full .NET Framework that targets client applications. This improves the installation experience on computers that do not already have the .NET Framework installed.
  • Networking
    • Enhancements have been made that affect how integrated Windows authentication is handled by the HttpWebRequest, HttpListener, SmtpClient, SslStream, NegotiateStream, and related classes in the System.Net and related namespaces. Support was added for extended protection to enhance security. The changes to support extended protection are available only for applications on Windows 7 and Windows Server 2008 R2. The extended protection features are not available on earlier versions of Windows.
  • Windows Presentation Foundation
    • Performance improvements have been made to Windows Presentation Foundation, including a faster startup time and improved performance for Bitmap effects. Additional functionality for Windows Presentation Foundation includes better support for line of business applications, native splash screen support, DirectX pixel shader support, and the new WebBrowser control.
  • ClickOnce
    • ClickOnce application publishers can decide to opt out of signing and hashing as appropriate for their scenarios, developers can programmatically install ClickOnce applications that display a customized branding, and ClickOnce error dialog boxes support links to application-specific support sites on the Web.
  • Accessing Data with ADO.NET
    • The .NET Framework Data Provider for SQL Server (System.Data.SqlClient) provides full support for all the new features of the SQL Server 2008 Database Engine. The ADO.NET Data Platform is a multi-release strategy to decrease the amount of coding and maintenance required for developers by enabling them to program against conceptual entity data models. This platform includes the ADO.NET Entity Framework, the Entity Data Model (EDM), Object Services, LINQ to Entities, Entity SQL, EntityClient, ADO.NET Data Services and Entity Data Model Tools.
  • Windows Communication Foundation
    • The Windows Communication Foundation (WCF) now makes the DataContract Serializer easier to use by providing improved interoperability support, enhancing the debugging experience in partial trust scenarios, and extending syndication protocol support for wider usage in Web 2.0 applications.
  • Windows Forms Controls

.NET Framework Version 3.5 – Nov 2007

  • .NET Compact Framework
    • The .NET Compact Framework version 3.5 expands support for distributed mobile applications by including the Windows Communication Foundation (WCF) technology. It also adds new language features such as LINQ.
  • ASP.NET
    • The .NET Framework 3.5 includes enhancements in targeted areas of ASP.NET and Visual Web Developer. The most significant advance is improved support for the development of AJAX-enabled Web sites. ASP.NET supports server-centric AJAX development with a set of new server controls and APIs. You can enable an existing ASP.NET 2.0 page for AJAX by adding a ScriptManager control and an UpdatePanel control so that the page can update without requiring a full page refresh. ASP.NET also supports client-centric AJAX development with a new client library called the Microsoft AJAX Library. The Microsoft AJAX Library supports client-centric, object-oriented development, which is browser-independent. By using the library classes in your ECMAScript (JavaScript) you can enable rich UI behaviors without roundtrips to the server. ASP.NET and Visual Web Developer now support the creation of both ASMX and WCF-based Web services and the seamless use of either implementation from Web pages using Microsoft AJAX Library. Other improvements in ASP.NET include a new data control, ListView, for displaying data; a new data source control, LinqDataSource, that exposes Language Integrated Query (LINQ) to Web developers through the ASP.NET data source control architectures; a new tool, ASP.NET Merge Tool (Aspnet_merge.exe), for merging precompiled assemblies; and tight integration with IIS 7.0. ListView is a highly customizable control (using templates and styles) that also supports edit, insert, and delete operations, as well as sorting and paging functionality. The paging functionality for ListView is provided by a new control called DataPager. You can use the merge tool to combine assemblies to support a range of deployment and release management scenarios. The integration of ASP.NET and IIS 7.0 includes the ability to use ASP.NET services, such as authentication and caching, for any content type. It also includes the ability to develop server pipeline modules in ASP.NET managed code and supports unified configuration of modules and handlers. Other improvements in Visual Web Developer include multitargeting support, inclusion of Web Application Projects, a new Design view, new Cascading Style Sheets (CSS) design tools, and support for LINQ for SQL databases. Multitargeting enables you to use Visual Web Developer to target development of Web applications to specific versions of the .NET Framework, including versions 2.0, 3.0, and 3.5.
  • Add-Ins and Extensibility
    • The System.AddIn.dll assembly in the .NET Framework 3.5 provides powerful and flexible support to developers of extensible applications. It introduces a new architecture and model that helps developers with the initial work to add extensibility to an application and by ensuring that their extensions continue working as the host application changes. The model provides the following features:
  • Discovery
    • You can easily find and manage sets of add-ins in multiple locations on a computer with the AddInStore class. You can use this class to search for and obtain information about add-ins by their base types without having to load them.
  • Activation
    • After an application chooses an add-in, the AddInToken class makes it easy to activate. Simply choose the isolation and sandboxing level and the system takes care of the rest.
  • Isolation
    • There is built-in support for application domains and process isolation of add-ins. The isolation level for each add-in is in the control of the host. The system handles loading application domains and processes and shutting them down after their add-ins have stopped running.
  • Sandboxing
    • You can easily configure add-ins with either a default or customized trust level. Support includes Internet, Intranet, Full Trust, and “same-as-host” permission sets, as well as overloads that let the host specify a custom permission set.
  • UI Composition
    • The add-in model supports direct composition of Windows Presentation Foundation (WPF) controls that span application domain boundaries. You can easily allow add-ins to contribute directly to the UI of the host while still retaining the benefits of isolation, ability to unload, sandboxing, and versioning.
  • Versioning
    • The add-in architecture makes it possible for hosts to introduce new versions of their object model without breaking existing add-ins or impacting the developer experience for new ones.
  •  Common Language Runtime
  • Collections
    • HashSet<(Of <(T>)>) provides high performance set operations to the .NET Framework. A set is a collection that contains no duplicate elements, and whose elements are in no particular order
  • Diagnostics
    • The EventSchemaTraceListener class provides tracing of end-to-end, schema-compliant events. You can use end-to-end tracing for a system that has heterogeneous components that cross thread, AppDomain, process, and computer boundaries. A standardized event schema (see Event Representation for Event Consumers) has been defined to enable tracing across these boundaries. This schema is shared by various tracing technologies, including Windows Vista diagnostics tools such as Event Viewer.
  • I/O and Pipes
    • Pipes provide interprocess communication between any processes running on the same computer, or on any other Windows computer within a network. The .NET Framework provides access to two types of pipes: anonymous pipes and named pipes.
  • Garbage Collection
    • The GCSettings class has a new LatencyMode property that you can use to adjust the time that the garbage collector intrudes in your application. You set this property to one of the values of the new GCLatencyMode enumeration.The GC class has a new Collect(Int32, GCCollectionMode) method overload that you can use to adjust the behavior for a forced garbage collection.
  • Reflection and Reflection Emit in Partial Trust
    • Assemblies that run with partial trust can now emit code and execute it. Emitted code that calls only public types and methods needs no permissions beyond the permissions demanded by the types and methods that are accessed. The new DynamicMethod(String, Type, array<Type>[]()[]) constructor makes it easy to emit such code. When emitted code needs to access private data, the new DynamicMethod(String, Type, array<Type>[]()[], Boolean) constructor allows restricted access. The host must grant ReflectionPermission with the new RestrictedMemberAccess flag to enable this feature, which gives emitted code the ability to access private data only for types and methods in assemblies with equal or lesser trust levels.
  • Threading ( Better Reader/Writer Lock)
    • The new ReaderWriterLockSlim class provides performance that is significantly better than ReaderWriterLock, and comparable with the lock statement (SyncLock in Visual Basic). Transitions between lock states have been simplified to make programming easier and to reduce the chances of deadlocks. The new class supports recursion to simplify migration from lock and from ReaderWriterLock.
  • ThreadPool Performance Enhancements
    • Throughput for the dispatch of work items and I/O tasks in the managed thread pool is significantly improved. Dispatch is now handled in managed code, without transitions to unmanaged code and with fewer locks. The use of ThreadPool is recommended over application-specific thread pool implementations.
  • Time Zone Improvements
    • Two new types, DateTimeOffset and TimeZoneInfo, improve support for time zones and make it easier to develop applications that work with dates and times in different time zones.
  • TimeZoneInfo
    • The new TimeZoneInfo class largely supplants the existing TimeZone class. You can use TimeZoneInfo to retrieve any time zone defined in the registry, rather than just the local time zone and Coordinated Universal Time (UTC). You can also use this class to define custom time zones, to serialize and deserialize custom time zone data, and to convert times between time zones.
  • DateTimeOffset
    • The new DateTimeOffset structure extends the DateTime structure to make working with times across time zones easier. The DateTimeOffset structure stores date and time information as a UTC date and time together with an offset value that indicates how much the time differs from UTC.
  • Cryptography
    • There are new cryptography classes for verifying and obtaining information about manifest signatures for ClickOnce applications. The ManifestSignatureInformation class obtains information about a manifest signature when you use its VerifySignature method overloads. You can use the ManifestKinds enumeration to specify which manifests to verify. The result of the verification is one of the SignatureVerificationResult enumeration values.
  • Networking
    • Peer-to-peer networking is a serverless networking technology that allows several network devices to share resources and communicate directly with each other. The System.Net.PeerToPeer namespace provides a set of classes that support the Peer Name Resolution Protocol (PNRP) that allows the discovery of other peer nodes through PeerName objects registered within a peer-to-peer cloud. PNRP can resolve peer names to IPv6 or IPv4 IP addresses.
    • The Socket class has been enhanced for use by applications that use asynchronous network I/O to achieve the highest performance. A series of new classes have been added as part of a set of enhancements to the Socket namespace. These classes provide an alternative asynchronous pattern that can be used by specialized high-performance socket applications. These enhancements were specifically designed for network server applications that require the high-performance.
  • Windows Communication Foundation
    • WCF and WF Integration—Workflow Services
      • The .NET Framework 3.5 unifies the Windows Workflow Foundation (WF) and Windows Communication Foundation (WCF) frameworks so that you can use WF as a way to author WCF services or expose your existing WF workflow as a service. This enables you to create services that can be persisted, can easily transfer data in and out of a workflow, and can enforce application-level protocols.
    • Durable Services
      • The .NET Framework 3.5 also introduces support for WCF services that use the WF persistence model to persist the state information of the service. These durable services persist their state information on the application layer, so that if a session is torn down and re-created later, the state information for that service can be reloaded from the persistence store
    • WCF Web Programming Model
      • The WCF Web Programming Model enables developers to build Web-style services with WCF. The Web Programming Model includes rich URI processing capability, support for all HTTP verbs including GET, and a simple programming model for working with a wide variety of message formats (including XML, JSON, and opaque binary streams).
    • WCF Syndication
      • WCF now includes a strongly typed object model for processing syndication feeds, including both the Atom 1.0 and RSS 2.0 formats
    • WCF and Partial Trust
      • In .NET Framework 3.5, applications running with reduced permissions can use a limited subset of WCF features. Server applications running with ASP.NET Medium Trust permissions can use the WCF Service Model to create basic HTTP services. Client applications running with Internet Zone permissions (such as XAML Browser Applications or unsigned applications deployed with ClickOnce) can use the WCF proxies to consume HTTP services. In addition, the WCF Web Programming Model features (including AJAX and Syndication) are available for use by partially trusted applications.
    • WCF and ASP.NET AJAX Integration
      • The integration of WCF with the Asynchronous JavaScript and XML (AJAX) capabilities in ASP.NET provides an end-to-end programming model for building Web applications that can use WCF services. In AJAX-style Web applications, the client (for example, the browser in a Web application) exchanges small amounts of data with the server by using asynchronous requests. Integration with AJAX features in ASP.NET provides an easy way to build WCF Web services that are accessible by using client JavaScript in the browser.
    • Web Services Interoperability
  • Windows Presentation Foundation
    • In the .NET Framework 3.5, Windows Presentation Foundation contains changes and improvements in numerous areas, including versioning, the application model, data binding, controls, documents, annotations, and 3-D UI elements.
    • For details about these new features and enhancements, see What’s New in Windows Presentation Foundation Version 3.5.
  • Windows Workflow Foundation
    • WCF and WF Integration—Workflow Services
      • The .NET Framework 3.5 unifies the Windows Workflow Foundation (WF) and Windows Communication Foundation (WF) frameworks so that you can use WF as a way to author WCF services or expose your existing WF workflow as a service. This enables you to create services that can be persisted, can easily transfer data in and out of a workflow, and can enforce application-level protocols.
    • Rules
      • The WF rules engine now supports extension methods, operator overloading, and the use of the new operator in your rules.
  • Windows Forms
    • ClickOnce Improvements
      • Several improvements have been made to ClickOnce. Improvements include deployment from multiple locations and third-party branding.
    • Authentication, Roles, and Settings Services
      • Client application services are new in the .NET Framework 3.5 and enable Windows-based applications (including Windows Forms and Windows Presentation Foundation applications) to easily access the ASP.NET login, roles, and profile services. These services enable you to authenticate users and retrieve user roles and application settings from a shared server.
      • You can enable client application services by specifying and configuring client service providers in your application configuration file or in the Visual Studio Project Designer. These providers plug into the Web extensibility model and enable you to access the Web services through existing .NET Framework login, roles, and settings APIs. Client application services also support occasional connectivity by storing and retrieving user information from a local data cache when the application is offline.
    • Windows Vista Support
      • Existing Windows Forms applications work seamlessly on Windows Vista, and they are upgraded to have the same appearance as applications written specifically for Windows Vista whenever possible. Common file dialog boxes are automatically updated to the Windows Vista version. The .NET Framework 3.5 also supports the User Account Control (UAC) Shield icon.
    • WPF support
      • You can use Windows Forms to host Windows Presentation Foundation (WPF) controls and content together with Windows Forms controls. You can also open WPF windows from a Windows Form.
  • LINQ
    • Language-Integrated Query (LINQ) is a new feature in Visual Studio 2008 and the .NET Framework 3.5. LINQ extends powerful query capabilities to the language syntax of C# and Visual Basic in the form of standard, easily-learned query patterns. This technology can be extended to support potentially any kind of data store. The .NET Framework 3.5 includes LINQ provider assemblies that enable the use of LINQ for querying .NET Framework collections, SQL Server databases, ADO.NET Datasets, and XML documents.
  • Expression Trees
    • Expression trees are new in the .NET Framework 3.5, and provide a way to represent language-level code in the form of data. The System.Linq.Expressions namespace contains the types that are the building blocks of expression trees. These types can be used to represent different types of code expressions, for example a method call or an equality comparison.
    • Expression trees are used extensively in LINQ queries that target remote data sources such as a SQL database. These queries are represented as expression trees, and this representation enables query providers to examine them and translate them into a domain-specific query language.
  • Programming Languages

.NET Framework Version 3.0 – Nov 2006

The .NET Framework version 3.0 was issued solely to include the following technologies in the .NET Framework and in the Windows Software Development Kit (SDK). There were no feature changes to the core .NET Framework for this version.

  • 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. WCF simplifies development of connected applications through a new service-oriented programming model. WCF supports many styles of distributed application development by providing a layered architecture. At its base, the WCF channel architecture provides asynchronous, untyped message-passing primitives. Built on top of this base are protocol facilities for secure, reliable, transacted data exchange and broad choice of transport and encoding options. Windows Communication Foundation (WCF) enables applications to communicate whether they are on the same computer, across the Internet, or on different application platforms. The typed programming model (called the service model) is designed to ease the development of distributed applications and to provide developers with expertise in ASP.NET Web services, .NET Framework remoting, and Enterprise Services, and who are coming to WCF with a familiar development experience. The service model features a straightforward mapping of Web services concepts to those of the .NET Framework common language runtime (CLR), including flexible and extensible mapping of messages to service implementations in languages such as Visual C# or Visual Basic. It includes serialization facilities that enable loose coupling and versioning, and it provides integration and interoperability with existing .NET Framework distributed systems technologies such as Message Queuing (MSMQ), COM+, ASP.NET Web services, Web Services Enhancements (WSE), and a number of other functions.
  • Windows Presentation Foundation
    • Windows Presentation Foundation (WPF) provides developers with a unified programming model for building rich Windows smart client user experiences that incorporate UI, media, and documents. WPF Fundamentals support the overall programming model. These include features that extend CLR concepts like properties, events, input, commanding and other programming model features like styles, templates, threading, resources, and working with an element tree. Extensible Application Markup Language (XAML) is a markup language for declarative application programming. Windows Presentation Foundation (WPF) implements a Extensible Application Markup Language (XAML) loader and provides Extensible Application Markup Language (XAML) language support for Windows Presentation Foundation (WPF) types such that you can create the majority of your application UI in Extensible Application Markup Language (XAML) markup. In addition, the SDK includes a Extensible Application Markup Language (XAML) editing tool called XAMLPad. You can use this tool to experiment with Extensible Application Markup Language (XAML) in real time. WPF is designed to allow you to create dynamic, data driven presentation systems. Every part of the system is designed to create objects through property sets that drive behavior. Data binding is a fundamental part of the system, and is integrated at every layer.
    • Traditional applications create a display and then bind to some data. In WPF, everything about the control, every aspect of the display, is generated by some type of data binding. The text found inside a button is displayed by creating a composed control inside of the button and binding its display to the button’s content property.
    • When you begin developing WPF based applications, it should feel very familiar. You can set properties, use objects, and data bind in much the same way that you can using Windows Forms or ASP.NET. With a deeper investigation into the architecture of WPF, you’ll find that the possibility exists for creating much richer applications that fundamentally treat data as the core driver of the application.
  • Windows Workflow Foundation
    • Windows Workflow Foundation, a core component of .NET Framework 3.0, provides a programming model, run-time engine, and tools for building workflow applications. A workflow is a discrete series of activities that model the steps involved in a business process.
    • A workflow is created and maintained by the workflow run-time engine. There can be several workflow engines within an application domain, and each workflow engine can support multiple workflows running concurrently. The run-time enables idle workflows to be unloaded from memory, persisted to a store, and reloaded whenever input is received.Workflows can be authored in code, XAML markup, or a combination of both, known as code-separation, which is similar to the ASP.NET model. Workflows are designed using the following styles:
      • Sequential (SequentialWorkflowActivity types)
        • Sequential workflows consist of a set of contained activities that are executed in sequential order until the last activity finishes. The sequential style executes code synchronously.
      • State machine (StateMachineWorkflowActivity types)
        • State machine workflows consist of a set of contained activities that represent specific states; transitions between states are event driven.
      • Data-driven
        • Data-driven workflows are executed in an order determined by conditional expressions.
  • Windows CardSpace
    • CardSpace is Microsoft’s implementation of an Identity Metasystem that enables users to choose from a portfolio of identities that belong to them and use them in contexts where they are accepted, independent of the underlying identity systems where the identities originate and are used.

.NET Framework Version 2.0 – Nov 2005

  • 64-Bit Platform Support
    • The new generation of 64-bit computers enables the creation of applications that can run faster and take advantage of more memory than is available to 32-bit applications.
  • Access Control List Support
    • An access control list (ACL) is used to grant or revoke permission to access a resource on a computer. New classes have been added to the .NET Framework that allow managed code to create and modify an ACL. New members that use an ACL have been added to the I/O, registry, and threading classes.
  • ADO.NET
    • New features in ADO.NET include support for user-defined types (UDT), asynchronous database operations, XML data types, large value types, snapshot isolation, and new attributes that allow applications to support multiple active result sets (MARS) with SQL Server 2005
  • ASP.NET
    • The Microsoft .NET Framework 2.0 includes significant enhancements to all areas of ASP.NET. For Web page development, new controls make it easier to add commonly used functionality to dynamic Web pages. New data controls make it possible to display and edit data on an ASP.NET Web page without writing code. An improved code-behind model makes developing ASP.NET pages easier and more robust. Caching features provide several new ways to cache pages, including the ability to build cache dependency on tables in a SQL Server database.
    • Profile properties enable ASP.NET to track property values for individual users automatically. Using Web Parts, you can create pages that users can customize in the browser. You can add navigation menus using simple controls. Master pages allow you to create a consistent layout for all the pages in a site, and themes allow you to define a consistent look for controls and static text. To help protect your sites, you can precompile a Web site to produce executable code from source files (both code files and the markup in .aspx pages). ASP.NET accommodates a wide variety of browsers and devices. By default, controls render output that is compatible with XHTML 1.1 standards. You can use device filtering to specify different property values on the same control for different browsers.
  • Authenticated Streams
    • Applications can use the new NegotiateStream and SslStream classes for authentication and to help secure information transmitted between a client and a server. These authenticated stream classes support mutual authentication, data encryption, and data signing. The NegotiateStream class uses the Negotiate security protocol for authentication. The SslStream class uses the Secure Socket Layer (SSL) security protocol for authentication.
  • COM Interop Services Enhancements
    • Four major enhancements have been made to the classes and tools that support interoperability with COM:
      • The operating system maintains a limited number of handles, which are used to reference critical operating system resources. The new SafeHandle and CriticalHandle classes, and their specialized derived classes, provide safe and reliable means of manipulating operating system handles.
      • Marshaling improvements make interoperating with native code easier.
      • The performance of calls between applications in different application domains has been made much faster for common call types.
      • New switches on the Type Library Importer (Tlbimp.exe) and Type Library Exporter (Tlbexp.exe) eliminate dependency on the registry to resolve type library references.
  • Console Class Additions
    • New members of the Console class enable applications to manipulate the dimensions of the console window and screen buffer; to move a rectangular area of the screen buffer, which is useful for performing smooth, simple animation; and to wait while reading console input until a key is pressed.
  • Data Protection API
    • The new Data Protection API (DPAPI) includes four methods that allow applications to encrypt passwords, keys, connections strings, and so on, without calling platform invoke. You can also encrypt blocks of memory on computers running Windows Server 2003 or later operating systems.
  • Debugger Display Attributes
    • You can now control how Visual Studio displays a class or member when an application is being debugged. The debugger’s Display Attributes feature enables you to identify the most useful information to display in the debugger.
  • Debugger Edit and Continue Support
    • The .NET Framework 2.0 reintroduces the Edit and Continue feature that enables a user who is debugging an application in Visual Studio to make changes to source code while executing in Break mode. After source code edits are applied, the user can resume code execution and observe the effect. Furthermore, the Edit and Continue feature is available in any programming language supported by Visual Studio.
  • Detecting Changes in Network Connectivity
    • The NetworkChange class allows applications to receive notification when the Internet Protocol (IP) address of a network interface, also known as a network card or adapter, changes. An interface address can change for a variety of reasons, such as a disconnected network cable, moving out of range of a wireless local area network, or hardware failure.
  • Distributed Computing
    • In the System.Net namespace, support has been added for FTP client requests, caching of HTTP resources, automatic proxy discovery, and obtaining network traffic and statistical information. The namespace now includes a Web server class (HttpListener) that you can use to create a simple Web server for responding to HTTP requests.
    • In the System.Web.Services namespaces, support for SOAP 1.2 and nullable elements has been added.
    • In the System.Runtime.Remoting.Channels namespaces, channel security features have been added. The TCP channel now supports authentication and encryption, as well as several new features to better support load balancing.
  • EventLog Enhancements
    • You can now use custom DLLs for EventLog messages, parameters, and categories.
  • Expanded Certificate Management
    • The .NET Framework now supports X.509 certificate stores, chains, and extensions. In addition, you can sign and verify XML using X.509 certificates without using platform invoke. There is also support for PKCS7 signature and encryption, and CMS (a superset of the PKCS7 standard available on Microsoft Windows 2000 and later operating systems).
  • FTP Support
  • Generics and Generic Collections
    • The .NET Framework 2.0 introduces generics to allow you to create flexible, reusable code. Language features collectively known as generics act as templates that allow classes, structures, interfaces, methods, and delegates to be declared and defined with unspecified, or generic type parameters instead of specific types. Actual types are specified later when the generic is used. The new System.Collections.Generic namespace provides support for strongly typed collections. Generics are supported in three languages: Visual Basic, C#, and C++.
    • Reflection has been extended to allow runtime examination and manipulation of generic types and methods. New members have been added to System.Type and System.Reflection.MethodInfo, including IsGenericType to identify generic types
  • Globalization
    • Five new globalization features provide greater support for developing applications intended for different languages and cultures.
    • Support for custom cultures enables you to define and deploy culture-related information as needed.
    • Encoding and decoding operations map a Unicode character to or from a stream of bytes that can be transferred to a physical medium such as a disk or a communication line.
    • Members in the UTF8Encoding class, which implements UTF-8 encoding, are now several times faster than in previous releases.
    • The .NET Framework now supports the latest normalization standard defined by the Unicode Consortium. The normalization process converts character representations of text to a standard form so the representations can be compared for equivalence.
    • The GetCultureInfo method overload provides a cached version of a read-only CultureInfo object. Use the cached version when creating a new CultureInfo object to improve system performance and reduce memory usage.
  • I/O Enhancements
    • Improvements have been made to the usability and functionality of various I/O classes. It is now easier for users to read and write text files and obtain information about a drive.
    • You can now use the classes in the System.IO.Compression namespace to read and write data with the GZIP compression and decompression standard.
  • Manifest-Based Activation
    • This feature provides new support for loading and activating applications through the use of a manifest. Manifest-based activation is essential for supporting ClickOnce applications. Traditionally, applications are activated through a reference to an assembly that contains the application’s entry point. For example, clicking an application’s .exe file from within the Windows shell causes the shell to load the common language runtime (CLR) and call a well-known entry point within that .exe file’s assembly. The manifest-based activation model uses an application manifest for activation rather than an assembly. A manifest fully describes the application, its dependencies, security requirements, and so forth. The manifest model has several advantages over the assembly-based activation model, especially for Web applications. For example, the manifest contains the security requirements of the application, which enables the user to decide whether to allow the application to execute before downloading the code. The manifest also contains information about the application dependencies.
  • .NET Framework Remoting
    • .NET Framework remoting now supports IPv6 addresses and the exchange of generic types. The classes in the System.Runtime.Remoting.Channels.Tcp namespace support authentication and encryption using the Security Support Provider Interface (SSPI). Classes in the new System.Runtime.Remoting.Channels.Ipc namespace allow applications on the same computer to communicate quickly without using the network. Finally, you can now configure the connection cache time-out and the number of method retries, which can improve the performance of network load-balanced remote clusters.
  • Obtaining Information About Local Computer Network Configuration and Usage
    • Using classes in the System.Net.NetworkInformation namespace, applications can access IP, IPv4, IPv6, TCP, and UDP network traffic statistics. Applications can also view address and configuration information for the local computer’s network adapters. This information is similar to the information returned by the Ipconfig.exe command-line tool.
  • Ping
    • The Ping class allows an application to determine whether a remote computer is accessible over the network. This class provides functionality similar to the Ping.exe command-line tool, and supports synchronous and asynchronous calls.
  • Processing HTTP Requests from Within Applications
    • You can use the HttpListener class to create a simple Web server that responds to HTTP requests. The Web server is active for the lifetime of the HttpListener object and runs within your application, with your application’s permissions.
  • Programmatic Control of Caching
    • Using the classes in the System.Net.Cache namespace, applications can control the caching of resources obtained using the WebRequest, WebResponse, and WebClient classes. You can use the predefined cache policies provided by the .NET Framework or specify a custom cache policy. You can specify a cache policy for each request and define a default cache policy for requests that do not specify a cache policy.
  • Programming Languages
    • Four Microsoft programming languages explicitly target the .NET Framework: Visual C#, Microsoft C/C++, Visual J#, and Visual Basic.
  • Security Exceptions
    • The System.Security.SecurityException class has been expanded to provide additional data that facilitates investigation into the cause of security exceptions. New properties provide information that includes the method in which the exception occurred, the first permission that failed, the zone or URL of the assembly, the security action that failed, and the security action on the call stack, such as Deny or PermitOnly, that caused the exception.
  • Serial I/O Device Support
    • The new SerialPort class provides applications with the ability to access the serial ports on a computer and to communicate with serial I/O devices.
  • Serialization
  • SMTP Support
    • Using the classes in the System.Net.Mail and System.Net.Mime namespaces, applications can send e-mail to one or more recipients. Mail can be sent with alternate views and can include attachments. Sending carbon copies and blind carbon copies is also supported.
  • Strongly Typed Resource Support
    • The Resource File Generator (Resgen.exe) creates resource files that are embedded in executable files and satellite assemblies. Resgen.exe produces a wrapper class for each resource file, which gives you easy access to resources and prevents spelling mistakes in resource names.
  • Threading Improvements
    • You can now name cross-process communication events that are created purely in managed code. The Semaphore class also supports specialized resource counting.
  • Trace Data Filtering
    • The .NET Framework 2.0 provides classes that trace and log system events related to I/O, application startup and shutdown, and so on. However, the enormous volume and diverse types of trace information make it difficult for users to analyze this data. New support for trace data filtering enables you to specify the type of information to log.
  • Transactions
    • The new System.Transactions namespace contains classes that allow your applications to participate in transactions managed by the Microsoft Distributed Transaction Coordinator (MSDTC) or the local transaction manager. The System.Transactions namespace provides both an explicit programming model based on the Transaction class, and an implicit programming model using the TransactionScope class, in which transactions are automatically managed by the infrastructure. This transaction infrastructure can easily interoperate with the existing System.EnterpriseServices (COM+) transaction infrastructure.
  • Web Services
    • Web services support SOAP 1.2 and the WS-I Basic Profile 1.0, which is documented at “Web Services Interoperability Organization – Basic Profile Version 1.0“.
    • When consuming two or more Web services that define a shared type, the client proxies generated for those Web services share the corresponding type on the client. This allows clients to easily pass instances of shared types among Web services.
    • You can now invoke Web methods asynchronously using an event-based programming pattern.
  • Windows Forms–Related Features
    • ClickOnce Deployment
      • ClickOnce deployment allows you to deploy self-updating Windows applications that can be installed and run as easily as Web applications. You can deploy Windows client and command-line applications. There are new Publish Project commands on the Build and Project menus in Visual Studio. For more information, see ClickOnce Deployment Overview.
    • Application Settings
      • Application settings for Windows Forms make it easy to create, store, and maintain custom application and user preferences on the client. With Windows Forms settings, you can store not only application data, such as database connection strings, but also user-specific data, such as toolbar positions and most-recently-used lists. For more information, see Application Settings Overview.
    • New Data-Binding Model
      • The BindingSource component simplifies the process of data binding because it acts as an intermediary between the bound control and the target data source. It automatically manages many of the more difficult binding issues such as currency, data-related events, and target data source changes. It is also designed to interoperate with other data-related Windows Forms controls, particularly the BindingNavigator and the DataGridView controls. For more information, see BindingSource Component. The BindingSource component simplifies the process of binding controls to an underlying data source. It acts as both a conduit and a data source to which other controls bind.
    • New Windows Forms Controls
      • The DataGridView control provides a powerful and flexible way to display data in a tabular format. It can be used to show read-only views of a small amount of data or it can be scaled to show editable views of very large sets of data. The data can reside in an external data source or be added directly to the control. For more information, see DataGridView Control Overview (Windows Forms).
      • ToolStrip controls are toolbars that can host menus, controls, and user controls in your Windows Forms applications. The ToolStrip class and its associated classes enable you to create toolbars and other user interface elements in a style that is consistent with Microsoft Windows XP, Microsoft Office, and Microsoft Internet Explorer. You can also use these classes to customize toolbars and user interface elements. For more information, see ToolStrip Control Overview (Windows Forms).
      • The MaskedTextBox control uses a mask definition to distinguish between valid and invalid user input. For more information, see MaskedTextBox Control (Windows Forms).
      • The Windows Forms SoundPlayer class enables you to easily include sounds in your applications. The SoundPlayer class can play sound files in the .wav format, either from a resource or from Universal Naming Conventions (UNC) or HTTP locations. Additionally, the SoundPlayer class enables you to load or play sounds asynchronously. For more information, see SoundPlayer Class.
      • The Windows Forms SplitContainer control can be thought of as a composite; it is two panels separated by a movable bar. When the mouse pointer hovers over the bar, the cursor changes to show that the bar is movable. Use this control to create complex, resizable user interfaces that are effective for displaying and browsing information. For more information, see SplitContainer Control.
      • The ListView control now supports three features provided by Windows XP and the Windows Server 2003 family: tile view, grouping, and drag-and-drop item repositioning.
      • The ListView, TreeView, and ToolTip controls now support owner drawing functionality similar to the owner drawing support for the ComboBox, ListBox, MenuItem, and TabControl controls in the previous release.
      • The WebBrowser control lets you host Web pages in your Windows Forms applications. You can use the WebBrowser control to provide integrated HTML-based Help or Internet Web browsing capabilities in your application. Additionally, you can use the WebBrowser control to convert existing Web applications to client applications that seamlessly integrate dynamic HTML (DHTML) code with the user interface capabilities of Windows Forms. For more information, see WebBrowser Control Overview.
      • The FlowLayoutPanel control arranges its contents in a horizontal or vertical flow direction. The TableLayoutPanel control arranges its contents in a grid. Because the layout is performed both at design time and run time, it can change dynamically as the application environment changes. For more information, see FlowLayoutPanel Control Overview and TableLayoutPanel Control Overview.
      • The BackgroundWorker component enables you to perform operations in the background that can take a long time to execute, such as image downloads and database transactions. For more information, see BackgroundWorker Component Overview.
      • The Asynchronous Pattern for Components is an event-driven model that provides the advantages of multithreaded applications while hiding many of the complex issues inherent in multithreaded design. For more information, see Asynchronous Pattern for Components.
  • XML-Related Features
    • The .NET Framework 2.0 provides many enhancements, including a new XSL Transformation (XSLT) processor; type support in the XmlReader, XmlWriter, and XPathNavigator classes; and new editing capabilities in the XPathNavigator class. In addition, there is a new model for creating XmlReader and XmlWriter objects, and many performance improvements.

.NET Framework Version 1.1 – April 2003

  • ASP.NET Mobile Controls
    • ASP.NET Mobile Controls (formerly the Microsoft Mobile Internet Toolkit) extends the .NET Framework and Visual Studio by providing support for mobile (wireless) devices such as cell phones and personal data assistants (PDAs). The .NET Framework version 1.1 release incorporates the mobile controls into the .NET Framework and Visual Studio distributions.
  • Changes in ADO.NET
    • The .NET Framework Data Provider for ODBC now ships with the .NET Framework under the namespace System.Data.Odbc, New .NET Framework Data Provider for Oracle under System.Data.OracleClient, The DataReader object now exposes a HasRows property, The Connection object now has an EnlistDistributedTransaction method to enable manual enlistment in distributed transactions.
  • Side-by-Side Execution
    • Side-by-side execution is the ability to store and execute multiple versions of an application or component on the same computer. This means that you can have multiple versions of the runtime, and multiple versions of applications and components that use a version of the runtime, on the same computer at the same time
  • Changes in .NET Framework Security
    • In version 1.0 and 1.1, applications that receive less than full trust from the runtime code access security system cannot call shared managed libraries unless the library writer specifically allows them to through the use of the AllowPartiallyTrustedCallersAttribute attribute. If you plan on using libraries from partially trusted code, you need to be aware that some libraries will not be available to your code. In version 1.1, System.Web.dll, System.Web.Mobile.dll, and System.Web.RegularExpressions.dll are included in the list of assemblies that have the AllowPartiallyTrustedCallersAttribute and can be called from partially trusted code. Default security policy has been changed so that applications executing from the Internet zone and assigned to the Internet Zone code group now receive permissions associated with the Internet permission set. ASP.NET now supports partial trust in Web-based applications, offering greater security for multiple applications that are hosted on a single Web server. ASP.NET provides a <trust> configuration directive that helps you configure code access security levels for your applications.
  • IPv6 Support in the .NET Framework
    • The .NET Framework version 1.1 supports the emerging update to the Internet Protocol, commonly referred to as IP version 6, or simply IPv6. This protocol is designed to significantly increase the address space used to identify communication endpoints in the Internet to accommodate its ongoing growth.

.NET Framework Version 1.0 – Feb 2002

This is the first release of the .NET Framework, and available for Windows 98, Me, NT 4.0, 2000, and XP.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s