. Home Feedback Contents Search

.NET 

ADO.NET
ASP.NET
C#
C# For CF
WinForms
WPF

Back Up Next

What is .NET?

Way back when Windows was first introduced, it was not an operating system. Instead, it was an operating environment that executed within the context of MSDOS. Although MSDOS is long gone, we still live with those influences to this day. Right now, .NET is in a similar state as early Windows. It is not an operating system. It is an operating platform designed to produce distributed applications. Currently, .NET operates on top of Windows but there’s no technical reason why it couldn’t be ported into other operating systems.

At the time that Windows was designed, security, distributed computing or internet communication was not a great concern. The primary emphasis was on making a graphical UI and providing a bigger environment in which programs could run. Since then, the computer community has evolved. Some of the changes show great promise or otherwise satisfy some major need. Others are fads that must be endured. The .NET world is much the same. Some of its changes address past failings but others are poorly thought out or inadequately implemented dogma.

.NET is a work in progress being implemented by a high level design team that are either not greatly experienced with the Windows API or have other reasons for deviating from what is otherwise a darned good feature set. The Windows API has evolved and matured over many years. .NET is a more complicated environment still in its younger days. There are things that exist in the Windows API that have not been made available to the .NET world. For example, in the API, a thread can be told to wait for an event. When the thread stops waiting, the program can determine the event timed out, if the thread stopped waiting because the event was satisfied and, if waiting for the first of multiple events, which of the events released the thread or if the thread was released because the event became invalid. In .NET, the designers of the environment did not provide this level of information. A .NET program only knows if a thread timed out waiting for events or not.

In the end, it doesn't matter what your opinions are about .NET. It is what it is and there's not a lot we can do about it. Take the performance hit, hold your nose and learn how to conform to the new order as decreed by the Powers That Be. Move or be left behind.

There are two main components to .NET, CLR (Common Language Runtime) and FCL (Framework Class Library).

The point of the CLR is to provide a language agnostic execution environment for applications. This managed runtime environment provides services to the executing code.

CLR is based on CLI (Common Language Infrastructure). CLI is the formal definition of the services to be provided to the operating environment and has been accepted as an ECMA standard. CLI compliant compilers produce CIL (Common Intermediate Language). At execution time, the CIL is turned into machine specific code.

One of .NET’s nice features is that the developmental model lends itself to very different development targets. Skills acquired for a C#.NET GUI application are likely to be applicable for an ADO.NET or ASP.NET project.

The FCL provides a rich set of types that can be used to develop applications.

The two primary tools for application development are the .NET SDK and Visual Studio .NET. The SDK is available for free as a download from Microsoft and includes the .NET Framework, command line compiler and debugging tools. The compiler support includes C#.NET, VB.NET, Jscript.NET and a non-optimized C++.NET. A person who was seriously into self abuse could develop real applications using nothing more than Notepad and the SDK although, frankly, this isn’t the sort of person we or anyone we know would care to associate with.

The .NET world is slated to be the replacement for Visual C++, Visual Basic and ADO. Along the way, they packed in a new way of building web services, ASP.NET, too. If you've had any previous experience with using Interdev and ASP, then you just won't believe how much nicer the ASP.NET world is.

ADO.NET - Sure, it's got four wheels and the like, but this is not your father's ADO.

C# - C# is the new kid on the block. Here's a list of notes, tips, tricks, gotcha's and sample code that I developed while in the process of teaching myself this new language.

Back Up Next

Hit Counter