The Microsoft .NET platform is a multi-language, multi-technology platform which provides and defines standards of interconnectivity between those languages and technologies. It exists at the present time on the Windows operating system, and Linux and Unix systems. And it supports a variety of languages: VB, C++, C#, J#, Jscript, as well as Cobol and a number of other languages. It would be best described as a standard, or set of definitions built and defined by Microsoft which will support multiple technologies on desktops, servers, and on the net.

The illustration above shows the interaction and layers of the .NET specification. The lowest layer is the operating system, which Microsoft would prefer to be Windows, but will permit theoretically any operating system to participate as long as it adheres to the .NET conventions. Interfacing with that operating system is the Common Language Runtime. This layer is analogous to the Java Runtime from Sun Microsystems, in which partially compiled instructions are converted into machine language to interact with the operating system.

Object Oriented Classes

The Base Class Library is a rich collection of object oriented classes which define interfaces between the user and the common tools of the language. Examples of these classes would be a Windows class, Toolbars, Menus, Data Drivers, Graphics elements, Memory Management, and the like.

Data Interface

Powerful data processing elements in ADO.NET give the platform power and flexibility in interacting with a large variety of data sources such as ODBC compliant client server databases, SQLServer. And the XML protocol has been established as the lingua franca of database specifications for communicating large amounts of transactional data between different systems and users with varying capabilities. Think of XML as the data transmission protocol with the lowest common denominator- similar to what HTML is to documents.

User Interface

Interface with the user occurs through two frameworks: Windows forms, with a rich set of controls typically seen in sophisticated desktop applications (or X-Windows forms), or, alternatively, a set of web forms, which are somewhat less rich than their Windows Form counterparts but much more aware than the typical web forms defined by the HTML standard.

ASP.NET

In addition, protocols exist for a web services interface, and communication with handheld devices over the internet. Internet. ASP.NET is much more powerful than its ASP predecessor. The developer and user are given shared ability to control implementation and access through the configuration files machine,config, web.config, and secondary web.config files. These are essentially XML files which act as a kind of registry for all ASP applications. The machine.config file is part of the .NET framswork on every machine. Web.config is provided by the application, and is frequently used to override the machine.config settings. The secondary web.config files can override the primary web.config file, and are frequently used to differentiate between users.

Active Server pages have 5 essential objects: Request, Response, Server, Session, and Application. Each of these objects have a rich series of properties and methods to allow the user to interact with the server and create dynamic content.

Web forms have, under ASP.NET a VIEWSTATE property, which is a coded field embedded in the HTML code which allows information to be carried between the client and the server without being visible on the web page

Common Language Specification

Crucial to all these components working smoothly together is the common language specification, in which the standard defines certain kinds of variable specification, and a definite methodology for handling errors. In the process, each language has had to make some sacrifices from their earlier definitions to accommodate the common good. For instance, VB no longer supports the Variant data type, or computer goto command. In return, the language was enhanced with the additions of many of the tools of object-oriented programming, such as class inheritance, polymorphism, and operator overloading. C++, on the other hand continues to have pointers, but they are disallowed by the .NET standard.

Data Type Summary

The following table shows the Visual Basic .NET data types, their supporting common language runtime types, their nominal storage allocation, and their value ranges.

Visual Basic type

February 11, 2008ture

Nominal storage allocation

Value range

Boolean

System.Boolean

2 bytes

True or False.

Byte

System.Byte

1 byte

0 through 255 (unsigned).

Char

System.Char

2 bytes

0 through 65535 (unsigned).

Date

System.DateTime

8 bytes

0:00:00 on January 1, 0001 through 11:59:59 PM on December 31, 9999.

Decimal

System.Decimal

16 bytes

0 through +/-79,228,162,514,264,337,593,543,950,335 with no decimal point; 0 through +/-7.9228162514264337593543950335 with 28 places to the right of the decimal; smallest nonzero number is +/-0.0000000000000000000000000001 (+/-1E-28).

Double (double-precision floating-point)

System.Double

8 bytes

-1.79769313486231570E+308 through -4.94065645841246544E-324 for negative values; 4.94065645841246544E-324 through 1.79769313486231570E+308 for positive values.

Integer

System.Int32

4 bytes

-2,147,483,648 through 2,147,483,647.

Long (long integer)

System.Int64

8 bytes

-9,223,372,036,854,775,808 through 9,223,372,036,854,775,807.

Object

System.Object (class)

4 bytes

Any type can be stored in a variable of type Object.

Short

System.Int16

2 bytes

-32,768 through 32,767.

Single (single-precision floating-point)

System.Single

4 bytes

-3.4028235E+38 through -1.401298E-45 for negative values; 1.401298E-45 through 3.4028235E+38 for positive values.

String (variable-length)

System.String (class)

Depends on implementing platform

0 to approximately 2 billion Unicode characters.

User-Defined Type (structure)

(inherits from System.ValueType)

Depends on implementing platform

Each member of the structure has a range determined by its data type and independent of the ranges of the other members.

Note For strings containing text, use the StrConv function to convert from one text format to another.

All of the languages supported in the .NET standard are interchangeable. By that I mean that in any given project there are like ly to be multiple modules. These modules may be written in any of the languages supported by the .NET standard, or may be mixed, using a language like VB, and C++ for another, in order either to take advantage of the native strengths of that language for the task of that particular module, or to leverage previously written code – perhaps for another project. It is the common language standard which makes this technique possible.

Compliation

Each language module is compiled into a common language called Microsoft Intermediate Language (MSIL) by the .NET compilers. So no matter which .NET language one uses, the compilers always compiles the code into the same MSIL code. This MSIL code, then is handed into the JIT compiler (Just In Time) at runtime. The JIT turns the MSIL modules into native (machine) code on a parcel basis: as routines are called for the first time in the main program, JIT creates a machine code version of that procedure to handle the task.

The MSIL code is not specific to any operating system. Therefore, it can be created on any machine, and ported to any other king of machine. It is the JIT sequence (some operating systems have a JIT pre-compiler) that differentiates the machine code and makes it specific to the operating system.

Visual Studio

Visual Studio is the IDE (Interactive Development Environment) for the .NET framework. It is a very convenient way of managing multiple module, multiple class projects. Help files, both contained within the .NET package, and on the net are gracefully integrated and within easy reach at all times. Debugging is very easy within this environment, which can be re-tooled in a number of ways to fit ones pattern of working. Of special help to me is the ‘todo’ list, and system of bookmarks for the code while in the development process. Also extremely helpful is the bridge to SQL Server which allows the user to make tables and construct, test, and debug stored procedures without leaving the Visual Studio environment.

Summary

The .NET environment is Microsoft’s answer to Sun Microsystem’s Java platform. Microsoft continues to try to set standards across a wide field of IT processing. The good news is that they (Microsoft) do a good job in finding what the developer and user community needs, and then go about continually improving their product. The bad news is like most Microsoft technologies, the Tar Baby effect sets in- the more you use it the more you are a captive as they push their technology forward with interlocking pieces.

The product is excellent, but so far reaching that I am reminded of Michael Corleone’s line in Godfather III, “ Just when I thought that I was out, they pull me back in. ”