The important points in the .NET are as follows:
- Programming language choice
- Programming language support
- Development environment
- Collection of class libraries
- Virtual machine and runtime
- Object-oriented technology
Different .NET compilers are available:
Visual Basic .NET
Visual C# (pronounced “C sharp”) .NET
Visual J# (pronounced “J sharp”) .NET
Visual C++ .NET
.NET compiler for COBOL is ==> NetCOBOL for .NET
How .NET development Environment would be:
In the mainframe world, you were accustomed to having an actual environment in which to develop your software. One mainframe tool comes to mind: Interactive System Programming Facility (ISPF). Some of you may have had the misfortune of working in mainframe environments where other products were in use—competing products that looked like and worked like ISPF (sort of). At any rate, you had a development environment. In this mainframe environment, you had an editor. Additionally, you had the ability to construct and compile in ISPF.
Whether you were doing batch programming or online programming, you typically did (almost) everything within this same environment. There were some exceptions—times when you left ISPF for certain tasks. Nevertheless, for the most part you leveraged the submenus on ISPF for your development needs. In that sense, you can say that ISPF (and products like it) represented an “integrated development environment.”
Well, you guessed it, there is an integrated development environment (IDE) in the world of .NET. Microsoft has a product called Visual Studio .NET (VS .NET). In short, it is an awesome tool. In this IDE, you design, edit, compile, and test your programs. As in the case of the mainframe, there are times when you will work outside of VS .NET. Over time, vendors will attempt to create competing development environments. Only time will tell which one will rise to become the preferred IDE. For now, Microsoft’s VS .NET is easily your .NET IDE of choice.
.NET is a Collection of Libraries:
Imagine that you’re developing a COBOL program on the mainframe. Perhaps you have a group of mainframe partitioned datasets (PDS) that make up an extensive library of copybooks, utilities, subprograms, and software routines. Let’s say that this reusable software library has been proven bulletproof, so much so that you’ve come to rely on this library and you often reuse selected PDS members.
Now, add on top of all of this that you chose to leverage the inherent COBOL Report Writer module and internal COBOL SORT features. Obviously, your intention would be to maximize any plumbing that the COBOL compiler provided (that you may have a need for) and maximize any reuse opportunity that the reusable software library offered.
Well, with this mainframe analogy I have just about described the functionality of Microsoft’s .NET Framework. However, to really be fair, I would have to take this imaginary reusable library and multiply it by a factor of 4,000.
The .NET Framework contains several thousand reusable software pieces. Regardless of the .NET language that you happen to use, the full .NET Framework is available to you. The more that you leverage (reuse) the .NET Framework, the better off your .NET development experience and resulting .NET application will be.
.NET is Virtual Machine and Run time
Suppose for a moment that I asked you to define the mainframe’s Job Entry Subsystem (also known as JES, JES2, or JES3). You might explain JES in this way: You submit your batch programs in the form of Jobs to the operating system. The operating system in turn hands your Jobs to JES for execution. JES then manages the priority execution of your Jobs. Following execution, JES handles the purging of your Jobs from the operating system. So, what does this have to do with defining .NET and answering the question “What is .NET?”
Well, sitting on the bottom of the entire .NET world is a foundation, an engine referred to as the common language runtime (CLR). The CLR manages the fine details of what your program is doing, in much the same way that JES manages your Jobs. As JES purges your Jobs from the operating system, the CLR might purge your software objects from memory.
You could say that the CLR is a micromanager of sorts. As JES is a major piece of system-level software, the CLR is an equally major piece of system-level software.
.NET is a OBJECT oriented Technology
For the reformed mainframe programmer, moving toward the object-oriented software development model means moving away from the following software development models:
Of course, well-seasoned developers (like us) have only developed applications using the structured development models. So, spaghetti code is a thing of the past, right? Wrong. Although .NET is many things, it is not a panacea. As it turns out, even object orientation will not prevent developers from writing spaghetti code.
However, fully leveraging all that .NET has to offer will encourage good program design. So, as you start writing great .NET applications using the new object-oriented development methodology, remember that design/code reviews and quality assurance processes continue to offer value.
In the world of .NET, you will be working with objects: Everything is an object. In your object-oriented program, you will create, reference, modify, and pass objects. After you understand the world of object orientation, you will prepare yourself to create maintainable, robust, and scalable applications. You will strive to create efficient code, and you will even learn not to create memory management problems in your application.
That’s right, the concerns of memory management still exist. The concerns of managing memory will feel painfully familiar to the advanced mainframe Customer Information Control System (CICS) programmer who has worked with the GETMAIN and FREEMAIN storage commands. In addition, the phenomenon referred to as “memory leak” is familiar to some advanced CICS mainframe programmers (like yourself). The good news is that .NET has implemented a solution to help developers in the area of memory management.
You will be introduced to this .NET-implemented feature, the garbage collector (GC). The GC will do some of what the mainframe FREEMAIN command did and more. As I mentioned earlier, in .NET everything is an object. The GC is just one aspect of what .NET offers to assist you in managing objects. Learn object orientation, and then prepare to work with .NET objects extensively.