Net and C#
.Microsoft's all-encompassing .NET strategy targets server-based applications that use standard Internet protocols, like Extended Meta Language (XML) and Simple Object Access Protocol (SOAP), to interact with clients. .NET servers are likely to support embedded devices. Some of these devices may also use .NET.
Microsoft's embedded .NET framework strategy is similar to other .NET announcements, such as the Car.NET Framework. The Car.NET specification addresses Car.NET devices and Car.NET servers. Car.NET services support communication between devices and servers.
The .NET frameworks are works in progress with the high end getting most of the development resources. The .NET framework handles a variety of languages with C# leading the pack.
The embedded .NET framework shrinks the server support so that it can be placed in more compact devices that use 1U Web servers. All .NET frameworks share a Common Language Runtime (CLR) and a virtual machine (VM) architecture that utilizes the Microsoft Intermediate Language (MSIL).
Such frameworks run on Windows operating-system platforms, including Windows CE and Embedded Windows NT. Cross-platform support is in the works, but its delivery is in the future.
The .NET framework defines an extensive set of services starting with the System name space, and a collection of class-based services. The classes are referred to as name spaces so that the environment has a hierarchical architecture.
In addition to network, Web, and COM support, these services address details like authentication, security, and even version control. The embedded .NET framework will subset this massive collection of features. As with many .NET frameworks, the embedded side development is progressing but not yet fixed.
The .NET framework is more than just a collection of classes. The VM and CLR provide additional support, such as managed execution and data through the use of metadata associated with applications. The metadata allows the framework to utilize and manage .NET applications independent of the language in which they were written. Managed applications take advantage of .NET's garbage-collection support.
C# is used to highlight .NET and takes full advantage of the services provided by .NET. Existing languages like C++ can additionally be used with .NET, but often the ability to employ certain features requires more programming effort. For instance, C#'s support for COM is built-in and simple to use. Likewise, C# supports garbage collection. C# and other .NET languages also have access to native services from the underlying operating system.
Although it's not a proper subset, C# is patterned after C++. C# eliminates a lot of the complex features found in C++, such as multiple inheritance and pointers. It incorporates many features found in Java, including multiple interface support. C# isn't Java with C++ syntax, but it's close.
C#'s design is tied closely to .NET. The C# definition lacks features found in language definitions like Java, including multitasking services. Instead, these are features present in .NET. The C# standards proposal has been presented to ECMA, an international standards organization. It includes a stripped-down version of the .NET framework. This moves part but not all of the .NET framework into the public domain.
The .NET framework is gaining third-party support, but its premier development tool is Visual Studio.NET. This integrated development environment (IDE) is home to Microsoft .NET languages, such as C# and Visual Basic.