This topic contains information about key features and improvements in the .NET Framework version 4. This topic does not provide comprehensive information about all new features and is subject to change.

Other new features and improvements in the .NET Framework 4 are described in the following sections:

1. 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.

The .NET Framework 4 does not automatically use its version of the common language runtime to run applications that are built with earlier versions of the .NET Framework. To run older applications with .NET Framework 4, you must compile your application with the target .NET Framework version specified in the properties for your project in Visual Studio.

The following sections describe deployment improvements.

- 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.

2. Core New Features and Improvements
The following sections describe new features and improvements provided by the common language runtime and the base class libraries.

- 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.

- 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.

In addition, several new classes that support the .NET Framework infrastructure are added to the System.Runtime.CompilerServices namespace.

- Covariance and Contravariance
Several generic interfaces and delegates now support 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. In addition, some of the new .NET Framework languages (such as F# and IronPython) have built-in support for this structure.

The new System.Numerics..::.Complex structure represents a complex number that supports arithmetic and trigonometric operations with complex numbers
.

- 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
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
You can identify 64-bit operating systems and processes with the Environment..::.Is64BitOperatingSystem and Environment..::.Is64BitProcess properties
.

- Other New Features
The following list describes additional new capabilities, improvements, and conveniences. Several of these are based on customer suggestions.
1. To upport 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
.

2. 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.

3. The String..::.Contract method lets you concatenate each element in an enumerable collection without first converting the elements to strings.

4. Two new convenience methods are available: StringBuilder..::.Clear and Stopwatch..::.Restart.

5. 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.

6. The System..::.Environment..::.SpecialFolder enumeration contains several new folders.

7. You can now easily copy one stream into another with the CopyTo method in classes that inherit from the System.IO..::.Stream class.

8. New Path..::.Combine method overloads enable you to combine file paths.

9. The new System..::.IObservable<(Of <(T>)>) and System..::.IObserver<(Of <(T>)>) interfaces provide a generalized mechanism for push-based notifications.

10. The System..::.IntPtr and System..::.UIntPtr classes now include support for the addition and subtraction operators.

11. You can now enable lazy initialization for any custom type by wrapping the type inside a System..::.Lazy<(Of <(T>)>) class.

12. 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.

13. 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.

14. 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.

15. 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.

16. The System..::.Guid structure now contains the TryParse and TryParseExact methods.

17. The new Microsoft.Win32..::.RegistryOptions enumeration lets you specify a volatile registry key that does not persist after the computer restarts.

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

Networking improvements include the following:

1. Security improvements for Windows authentication in several classes, including System.Net..::.HttpWebRequest, System.Net..::.HttpListener, System.Net.Mail..::.SmtpClient, System.Net.Security..::.SslStream, and System.Net.Security..::.NegotiateStream. Extended protection is available for applications on Windows 7 and Windows Server 2008 R2.

2. Support for Network Address Translation (NAT) traversal using IPv6 and Teredo.

3. New networking performance counters that provide information about HttpWebRequest objects.

4. In the System.Net..::.HttpWebRequest class, support for using large byte range headers (64-bit ranges) with new overloads for the AddRange method. New properties on the System.Net..::.HttpWebRequest class allow an application to set many HTTP headers. You can use the Host property to set the Host header value in an HTTP request that is independent from the request URI.


5. Secure Sockets Layer (SSL) support for the System.Net.Mail..::.SmtpClient and related classes.

6. Improved support for mail headers in the System.Net.Mail..::.MailMessage class.

7. Support for a null cipher for use in encryption. You can specify the encryption policy by using the System.Net..::.ServicePointManager class and the EncryptionPolicy property. Constructors for the System.Net.Security..::.SslStream class now take a System.Net.Security..::.EncryptionPolicy class as a parameter.

8. Credentials for password-based authentication schemes such as basic, digest, NTLM, and Kerberos authentication in the System.Net..::.NetworkCredential class. To improved security, passwords may now be treated as System.Security..::.SecureString instances rather than System..::.String instances.

9. Ability to specify how a URI with percent-encoded values is converted and normalized in the System..::.Uri and System.Net..::.HttpListener classes.

Web

ASP.NET version 4 introduces new features in the following areas:

1. 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).

2. 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.

3. Web Forms controls, including a new Chart control.

4. MVC, including new helper methods for views, support for partitioned MVC applications, and asynchronous controllers.

5. 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.

6. Microsoft Ajax, including additional support for client-based Ajax applications in the Microsoft Ajax Library.

7. Visual Web Developer, including improved IntelliSense for JScript, new auto-complete snippets for HTML and ASP.NET markup, and enhanced CSS compatibility.

8. Deployment, including new tools for automating typical deployment tasks.

9. 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.
 

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.

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

Windows Communication Foundation (WCF) provides messaging enhancements and seamless integration with Windows Workflow Foundation (WF). WF provides improvements in performance, scalability, workflow modeling, and an updated visual designer.

What is so SPECIAL on HostForLife.eu ASP. Net 4 Hosting?

We know that finding a cheap, reliable web host is not a simple task so we’ve put all the information you need in one place to help you make your decision. At HostForLife, we pride ourselves in our commitment to our customers and want to make sure they have all the details they need before making that big decision.

We will work tirelessly to provide a refreshing and friendly level of customer service. We believe in creativity, innovation, and a competitive spirit in all that we do. We are sound, honest company who feels that business is more than just the bottom line. We consider every business opportunity a chance to engage and interact with our customers and our community. Neither our clients nor our employees are a commodity. They are part of our family.

The followings are the top 10 reasons you should trust your online business and hosting needs to us:

- FREE domain for Life - HostForLife gives you your own free domain name for life with our Professional Hosting Plan and 3 free domains with any of Reseller Hosting Plan! There’s no need to panic about renewing your domain as HostForLife will automatically do this for you to ensure you never lose the all important identity of your site
- 99,9% Uptime Guarantee – HostForLife promises it’s customers 99.9% network uptime! We are so concerned about uptime that we set up our own company to monitor people’s uptime for them called HostForLife Uptime
- 24/7-based Support - We never fall asleep and we run a service that is opening 24/7 a year. Even everyone is on holiday during Easter or Christmast/New Year, we are always behind our desk serving our customers
- Customer Tailored Support - if you compare our hosting plans to others you will see that we are offering a much better deal in every aspect; performance, disk quotas, bandwidth allocation, databases, security, control panel features, e-mail services, real-time stats, and service
- Money Back Guarantee - HostForLife offers a ‘no questions asked’ money back guarantee with all our plans for any cancellations made within the first 30 days of ordering. Our cancellation policy is very simple - if you cancel your account within 30 days of first signing up we will provide you with a full refund
- Experts in ASP. Net 4 Hosting
- Given the scale of our environment, we have recruited and developed some of the best talent in the hosting technology that you are using. Our team is strong because of the experience and talents of the individuals who make up HostForLife
- Daily Backup Service - We realise that your website is very important to your business and hence, we never ever forget to create a daily backup. Your database and website are backup every night into a permanent remote tape drive to ensure that they are always safe and secure. The backup is always ready and available anytime you need it
- Easy Site Administration - With our powerful control panel, you can always administer most of your site features easily without even needing to contact for our Support Team. Additionally, you can also install more than 100 FREE applications directly via our Control  Panel in 1 minute!

Happy Hosting!