Roadmap for the .NET Framework
This annotated roadmap lists useful resources for understanding, evaluating, and deploying the .NET Framework, and for developing apps that target the .NET Framework. The resources are organized in four sections:
Provides a general description of the .NET Framework for developers and users. For the most part, the .NET Framework is transparent to users. Typically, a user runs apps without actually knowing whether the app uses the .NET Framework, and isn't aware whether the .NET Framework is present on his or her computer.
Provides a general introduction to the .NET Framework and its two major components: the common language runtime and the .NET Framework class library.
Specifies the hardware requirements and lists the operating systems on which the .NET Framework can run.
Lists new features introduced in the .NET Framework 4.5, with links to more detailed information.
Describes releases for the .NET Framework that are made out of band and how to use these features in your app.
Contains information about installing the .NET Framework 4.5, deploying it with your apps, and troubleshooting installations.
Core technologies are features of the .NET Framework that are likely to be of interest to any developer whose apps target the .NET Framework, regardless of the specific development technology he or she is using.
The .NET Framework supports both 32-bit and 64-bit apps. The article discusses the differences and possible issues that may arise from porting 32-bit code to a 64-bit platform.
.NET Framework class library
The .NET Framework class library contains the core set of classes used to develop a .NET Framework app.
An app domain provides an intra-process isolation boundary for apps.
Arrays and collections
Arrays and collections enable you to handle closely related data, such as the temperatures for a range of dates and times or the names of students in a class.
Assemblies are the fundamental unit of deployment, version control, code reuse, activation scoping, and security permissions in the .NET Framework.
In asynchronous programming, a process or operation executes independently of the process that launched it.
Attributes are keywords that provide additional information about a program element, such as an assembly, a type, or a type member, and that enable you to modify a behavior.
Common language runtime
The common language runtime is the run-time environment of the .NET Framework. It includes memory management and garbage collection services.
Common type system
The .NET Framework provides a type system that is accessible by any language that targets the .NET Framework.
The .NET Framework gives developers and administrators extensive control over the way an app runs through configuration elements.
Cryptography allows data to be encoded and decoded for security purposes. The .NET Framework supports many standard cryptographic algorithms, including symmetric, asymmetric, and hash algorithms.
ADO.NET is a set of classes that expose data access services for .NET Framework programmers. ADO.NET can be used to access data from a wide range of data sources, such as Microsoft Access and SQL Server databases.
A delegate is a class that holds a reference to a method. It is comparable to a function pointer in unmanaged code.
Debugging enables you to identify errors in program logic and code execution in your apps.
The .NET Framework includes types in three namespaces (the System.DirectoryServices, System.DirectoryServices.ActiveDirectory, and System.DirectoryServices.Protocols namespaces) that provide access to Windows directory services.
Dynamic language runtime
Events and event-driven programming
Event-driven programming involves calls to methods based on some specified event, such as a mouse click, the completion of a process, or the termination of a thread.
Exceptions are unexpected errors that occur at run time. Exception handling enables an app to handle those errors in a consistent manner.
The .NET Framework includes several types that enable you to compress and decompress files and streams.
Formatting involves converting an object to its string representation. For example, the string representation of 1033478 might be "$1,033,478.00".
Generics let you tailor a method, class, or structure to the precise data it acts upon. For example, instead of storing a number of People objects in an ArrayList object, which supports values of any type, you can use the generic List type to store objects in a strongly typed collection object.
Globalization and localization
Globalization involves creating an app that is suitable for use in a variety of cultures. Localization involves translating an app's string and other resources and modifying its user interface so that it can be run by users of other cultures.
Imaging Overview (WPF)
Classes in the .NET Framework provide support for creating, loading, and manipulating images in a variety of formats.
I/O programming enables you to read data from, or write data to, a storage medium, such as the file system, isolated storage, or a named pipe.
The .NET Framework lets you call unmanaged code, such as COM components and functions, in external dynamic link libraries.
Language Integrated Query (LINQ)
LINQ provides a strongly-typed query language that supports queries across a range of data sources.
The common language runtime manages memory mostly transparently. However, you must manage and clean up unmanaged resources in your apps. And in some advanced scenarios, you may want to control or take advantage of some garbage collection features.
A memory-mapped file contains the contents of a file in virtual memory. This enables an app to modify the file by reading or writing directly to or from memory.
MSBuild is the build system for Visual Studio. MSBuild project files support extensive customization of the build process, and the types in the Microsoft.Build namespaces enable programmatic control of builds.
Network programming enables you to develop apps that use Internet protocols or the Windows Sockets interface.
Parallel programming involves developing code that distributes work across multiple processors.
Parsing is the opposite of formatting. It involves converting a string representation of an object back to the original object.
Caching and lazy initialization are two features supported by the .NET Framework that can improve your app's performance.
Profiling tools and the .NET Framework's support for profiling help identify potential bottlenecks and areas of poor performance in your apps.
Reflection enables you to gather information about managed assemblies, types, and type members at run time, and to dynamically create assemblies and executable code.
Regular expressions let you process textual or string data that matches a pattern that is defined by the regular expression language.
Resource files provide a repository for an app's strings and other data. Their use is critical in localized apps.
The security features in the .NET Framework help you manage access to resources based on permissions, and facilitate the use of role-based security.
Serialization and deserialization
Serialization converts an object into a form that can be persisted or transported. Deserialization converts persisted or transmitted data back into the original object.
Side-by-side execution is the ability to run multiple versions of an app or component on the same computer. Multiple versions of the common language runtime, and multiple versions of apps and components that use a version of the runtime, can run on the same computer at the same time.
A thread is the basic unit of execution within a process. Multiple threads can execute within a process, and each is allocated processor time.
Transactions ensure that a data-related operation is not permanently saved unless each element in the operation completes successfully. A set of related operations either completely succeeds or completely fails as a single unit.
Type conversion creates a value of a new type that is equivalent to the value of the original type.
XAML is a declarative markup language that is used to create the UI for some types of .NET Framework apps.
XML is a standards-based markup language that produces human-readable documents.
Zip files and archives
The .NET Framework supports programmatic manipulation of zip files.
This section provides links to technologies used for developing .NET Framework apps and components.
A Microsoft Ajax web app consists of either a client-only solution or a client and server solution.
ASP.NET is a .NET Framework technology for creating web apps that execute on a server and that serve web pages in response to client requests.
A console app reads characters from or writes them to the Windows console.
Managed Extensibility Framework (MEF)
The Managed Extensibility Framework is a library for creating lightweight, extensible apps. It enables developers to discover and use extensions at run time with no configuration required.
Windows Store apps
The .NET Framework supports the development of Windows Store apps for Windows 8.
Portable Class Library
The .NET Framework Portable Class Library lets you develop portable assemblies that work without modification on multiple platforms or devices, such as Windows 7, Windows 8, Windows Phone, and Xbox.
Windows Communication Foundation (WCF)
Windows Communication Foundation (WCF) is a framework for building service-oriented apps.
Windows Forms is used to develop Window-based apps.
Windows Identity Foundation
Windows Identity Foundation is a set of .NET Framework classes for implementing claims-based identity in your apps.
Windows Presentation Foundation (WPF)
Windows Presentation Foundation (WPF) provides developers with a unified programming model for building rich Windows smart client apps that incorporate UI, media, and documents.
Windows Runtime components
You can use the .NET Framework to create components that can be used by any programming language that supports the Windows Runtime.
Windows services enable you to create long-running executable apps that run in their own Windows sessions. They are ideal for use on a server or to provide long-running functionality that does not interfere with users working on the same computer.
Windows Workflow Foundation (WF)
Windows Workflow Foundation enables you to define an activity, which corresponds to a real-world process, and describe the order of execution and dependent relationships between pieces of short-running or long-running work.