NET Philosophy Where does .NET fit in?
As we move on to handheld devices or wireless devices, kiosks or other type of systems, many of which run a different processors and do not use standard operating
system. So sharing the data between these devices and communication varies which is not uniform, becomes difficult.
2.3 NET Philosophy Where does .NET fit in?
The driving force behind Microsoft® .NET is a shift in focus from individual Web sites or devices to new constellations of computers, devices, and services that work together to
deliver broader, richer solutions.
The platform, technology that people use is changing. Since 1992, the clientserver environment has been in place, with people running the applications they need on the
Win32 platform, for example. Information is supplied by the databases on the servers, and programs that are installed on the client machine determine how that information is
presented and processed.
One of the things people are looking for is a one-sentence definition of .NET. What is it? Why should I care? .NET is Microsofts strategy for software that empowers people
any time, any place, and on any device.
Many of the goals Microsoft had in mind when designing .NET reflect the limitations we previously discussed for development with previous tools and technologies.
Microsoft.NET solutions
•
Single Programming Model A related goal is to have development for the internet environment look very much like development for other types of software. Likewise,
developing user interfaces in Windows Forms is very similar to developing them in Web Forms. There are commonly used controls, such as Labels and Text Boxes, in
both, with similar sets of properties and method. The amount of commonality makes it easy to transition between the two types of development, and easier for traditional
VB developers to start using Web Forms.
•
Distributed Systems The Vision of Microsoft.NET is globally distributed systems, using XML as the universal glue to allow functions running on different computers
across an organization or across the world to come together in a single application. In this vision, systems from servers to Wireless Palmtops, with everything in between,
will share the same general platform, with versions of .NET available for all of them, and with each of them able to integrate transparently with the others.
•
Richer User Interface Web Forms are a giant step towards much richer web-based user interfaces. Their built-in intelligence allows rich, browser-independent screens to
be developed quickly, and to be easily integrated with compiled code. Microsoft has announced an initiative for the future called the Universal Canvas which builds upon
the XML standards to transform the internet from a Read only environment into a readwrite platform, enabling users to interactively create, browse, edit and analyze
information. The universal canvas can bring together multiple sources of information anywhere in the world to enable seamless data access and use.The universal canvas
will log on to the Ms System of servers whenever the new device is turned on Centrally controlled OS, Office and Visual Studio.
•
Easy Deployment Executable modules in .NET are self-describing. Once the Common Language Runtime CLR is explained in next sections knows where a
module resides, it can find out everything else it needs to know to run the module, such as the module’s object interface and security requirements, from the module
itself. That means a module can just be copied to a new environment and immediately executed.
•
Support for Multiple Languages The CLR executes binary code called MSIL Microsoft intermediate language, and that code looks the same regardless of the
original source language. All .NET –enabled languages use the same data types and the same interfacing conventions. This makes possible for all .NET language to
interoperate transparently. One language can call another easily, and languages can even inherit classes written in another language and extend them current platform has
anywhere near this level of language interoperability.
•
Extendibility The completely object based approach of .NET is designed to allow base functionality to be extended through inheritance unlike COM and the
platform’s functionality is appropriately partitioned to allow various parts such as the just-in-time compilers discussed in the next section to be replaced as new versions
are needed. It is likely that, in the future, new ways of interfacing to the outside world will be added to the current trio of windows Form, Web Forms, and Web Services
such as universal Canvas.
•
Portability of compiled Applications .NET allows the future possibility of moving software to other hardware and operating system platforms. The ultimate goal is that
compiled code produced on one implementation of .NET such as Windows could be moved to another implementation of .NET on a different operating system merely by
copying the compiled code over and running it.
•
Integrity with COM .NET integrates very will with COM-based software. Any COM component can be treated as a .NET component by other .NET components. The
.NET Framework wraps COM components and exposes an interface that .NET
components can work with. This is absolutely essential to the quick acceptance of .NET, because it makes .NET interoperable with a tremendous amount of older
COM-based software.
Other benefits of using .NET architecture
•
The Microsoft .NET platforms reliance on XML for data exchange—an open standard managed by the World Wide Web Consortium W3C—and modular XML
Web services removes barriers to data sharing and software integration.
•
The .NET platform, through the .NET Frameworks common language runtime, enables XML Web services to interoperate whatever their source language.
Developers can build reusable XML Web services instead of monolithic applications. By making it easy to offer your XML Web services to others.
•
The ability to easily find available XML Web services means you can buy pieces of your applications rather than build everything from scratch, focusing your time and
money where it makes the most sense.
•
Easier to build sophisticated development tools – debuggers and profilers can target the Common Language Runtime, and thus become accessible to all .NET-enabled
languages.
•
Potentially better performance in system level code for memory management, garbage collection, and the like have yielded an architecture that should meet or
exceed performance of typical COM-based applications today.
•
Fewer bugs, as whole classes of bugs should be unknown in .NET. With the CLR handling memory management, garbage collection.
•
Faster development using development tool like visual studio.net
N-tier architecture with .NET
Applications developed in the .NET Framework will still, in, many cases, use a DNA model to design the appropriate tiers. However, the tiers will be a lot easier to produce in
.NET. The presentation tier will benefit from the new interface technologies and especially Web Forms for Internet development. The middle tier will require far less
COM-related headaches to develop and implement. And richer, more distributed middle tier designs will be possible by using Web Services.
Let us look into how .Net fit into n – tier architecture. When you talk about a true distributed n-tier type of application, you are talking about separating the components of
the different tiers on different machines as well as in separate components. Figure 1 shows a typical example of an n-tier application with multiple components on each
machine.
Figure 1. A distributed n-tier application has three physical tiers with one or more logical tiers on each machine
There are many different ways you could configure an n-tier application. For example, the business rules may go on a separate machine and you might use .NET Remoting to
talk from the client application to the business rule tier as shown in Figure 2.
We may also have a data input validation rule component on the client to check simple rules such as required fields and formatting. These are rules that you do not want to make
a trip across the network just to check. You may then also add a business rule layer on the same tier as the data layer component to check complicated business rules that compare
the data from one table to another.
These are just a few different configurations that you may utilize. Of course, you could come up with something unique that fits your specific situation. Regardless of how you
structure the physical implementation of the components, make sure that the logical structure of the program is broken up into components as shown in the above figures.