.NET Brief
- .NET represents a new generation of software from Microsoft and has influenced almost every software created by Microsoft.
- Standards Web services and the Common Language Runtime are the two major changes in application development software tools and technologies between .NET and the DNA platforms.
- Even though the .NET Framework and Visual Studio .NET, which represent the core technology used by application developers to develop custom applications, are really the most significant components of this platform, they are slowly finding their way to changing the underlying architecture of other components of the Microsoft platform, including Office Suite (now known as Office System), and Enterprise Servers (now known as Windows Server System).
- The .NET Framework includes the Common Language Runtime (CLR), a set of programming languages, a rich class library, ASP.NET for Web applications development, support for XML Web services development, and interoperability with existing COM applications.
- Included with the 1.1 release of the .NET Framework is the .NET Compact Framework, which provides support for deploying mobile applications on mobile phone and PDA devices.
- Visual Studio .NET provides a true integrated set of tools for development of .NET Windows and Web applications, Web services, and mobile applications.
- To provide a set of prepackaged functionality to developers using Web services standards, Microsoft has released a set of hosted Web services that can be easily integrated into existing or new applications. These Web services include MapPoint Web service, .NET Alerts, and .NET Passport.
- Apart from the custom application infrastructure represented by the .NET Framework, a set of enterprise servers provide prepackaged and customizable functionality for enterprises. Many of these enterprise servers now leverage and integrate with the .NET Framework.
Enterprise Servers (also known as Windows Server System)
Enterprise Servers, now known as members of the Windows Server System (earlier called .NET Enterprise Servers) provide a set of prepackaged functionality that, depending on the particular server, can either be standalone or used in conjunction with custom application development efforts. Most of these servers have support for integration with the .NET platform technology. This means that as a developer, you can use a .NET Framework technology (such as ASP.NET, ADO.NET, XML Web services, programming languages) as a development tool to customize and utilize the prebuilt application functionality and integrate it with your own application.
Key components of the Windows Server System are the following:
- Windows 2003 Server— Windows 2003 Server represents the next-generation core server operating system technology, evolving from Windows 2000 and Windows NT operating systems. From a .NET application developer’s perspective, key highlights of Windows 2003 include intrinsic out-of-box support for the .NET Framework, Internet Information Services (IIS 6.0), which provides the basis for running .NET Web applications and Web services, key security and performance enhancements, and Windows SharePoint Services, which provide essential collaboration functionality such as Document Management.
- SQL Server— Even though the .NET database connectivity model ADO.NET provides support for integrating .NET applications with multiple databases, SQL Server is and probably will be the choice of database for most new applications developed or migrated to the .NET platform. As highlighted in the preceding chapter of this book, a new release of SQL Server code, named Yukon, is expected to be available; it further integrates with .NET Framework. For instance, Yukon is expected to support the development of stored procedures using a .NET-supported programming language such as C# or Visual Basic .NET. Apart from this, SQL Server supports Web services integration using the SQL Server Web Services Toolkit.
- BizTalk Server— Probably the most important server technology apart from Windows 2003 and SQL Server, BizTalk represents core enterprise application integration (EAI) and a B2B integration middleware technology provider. BizTalk Server 2004 (which at the time of writing of this book was in a beta release) probably has the most advanced support for the .NET Framework. BizTalk integrates with Visual Studio .NET to develop loosely coupled integrations with back-end systems, known as orchestrations, and Web services are intrinsically used within the BizTalk framework for integration with internal and external systems. BizTalk server also features an elaborate adapter model that enables orchestrations developed using BizTalk to provide out-of-box support (or using third-party adapters) for integration with popular back-end enterprise systems such as SAP R/3, PeopleSoft, and the like.
- Host Integration Server— A complementary technology to BizTalk Server, Host Integration Server provides support for transactional and data integration with legacy “host” applications. Host Integration Server supports data integration with DB2, Flat File on mainframes, AS/400, and transactional access to CICS/IMS transaction environments. The server, which is an evolution from the Microsoft SNA Server product, provides the legacy functionality wrapped as COM+/MSMQ Services.
- Commerce Server— Commerce Server provides out-of-box, configurable functionality developing and deploying electronic commerce (eCommerce) storefronts. Both Business to Consumer (B2C) and Business to Business (B2B) models are supported. Commerce Server leverages SQL Server as its underlying database and uses BizTalk Server to integrate with back-end order fulfillment and inventory systems.
- Content Management Server— Content Management Server (CMS) provides out-of-box support for developing Web content management applications. Essentially, Content Management Server can be used to manage a large set of Web sites for a corporation and supports all aspects of content management, including a sophisticated templating mechanism to define the various content types such as a Press Release, content authoring, content approval workflow, and static/dynamic content delivery to Web servers. CMS provides an integration toolkit with Commerce Server to provide authoring support for product information and catalog management.
- SharePoint Portal Server— SharePoint Portal Server, also known as Office SharePoint Portal Server because of its integration with Microsoft Office System products, provides a portal framework and serves as the key mechanism for providing a launch pad for integrating several diverse applications from a presentation perspective. Key highlights of SharePoint Portal Server include a Web Parts framework for developing the individual “portlets” of the portal that leverages the .NET Framework, single sign-on facilities to provide seamless access to multiple applications, user profile provisioning, and enterprise search and taxonomy facilities.
- Exchange Server— Exchange Server is really the core email based collaboration server of the Windows Server System. It provides support for Internet standards-based (SMTP, POP3, IMAP, Web HTTP/HTTPS) email sending and receiving. In combination with Microsoft Outlook, a key member of the Office System family, Exchange Server can also be used to create workflow applications.
- Mobile Information Server— Mobile Information Server, as the name suggests, provides Exchange Server capability over a variety of mobile devices, including mobile phones.
- Speech Server— Speech Server is a recent addition to the Windows Server System family and provides the capability to develop or extend existing ASP.NET speech and telephony applications that can be accessed by any regular telephone. Speech Server is essentially the standards- and Web-based IVR (Interactive Voice Recognition) enabler for the .NET platform.
- Small Business Server— Small Business Server 2003 provides a complete business server solution, bundling and integrating key technologies available in the broad Windows Server System specifically for small and medium businesses. Included in Small Business Server 2003 are Windows Server 2003, Windows SharePoint Services, Exchange Server 2003, Fax Service, ISA Server, SQL Server, and Microsoft Office FrontPage 2003.
- Application Center— Application Center provides the much-needed application deployment and management capabilities for high availability of Web-based applications. Essentially, Application Center simplifies deployment of applications into a server farm for high availability (performance, load balancing, and fail over). After it is deployed, Application Center actively monitors performance and health, sending alerts to system administrators if an action needs to be taken, or it can take proactive action, such as restarting servers and services, based on a set of configured rules. All this is pretty much done in a black-box fashion without requiring any application changes.
- Operations Manager— Microsoft Operations Manager, also known as MOM, provides operations management capabilities for Microsoft applications and servers through sophisticated event management, proactive monitoring and alerting, reporting, and trend analysis. Through a rich set of management packs, MOM can automatically discover the various infrastructure and server components in a deployment and can monitor key components of the platform, including Active Directory, COM+ Services, network services (DHCP/DNS), IIS, MSMQ, Microsoft Distributed Transaction Coordinator (DTC), .NET Framework, Network Load Balancing, Server Clusters, Windows Operating Systems, BizTalk Server, Application Center, Commerce Server, Exchange Server, Host Integration Server, ISA Server, and SQL Server. For instance, the SQL Server module present in the Application Management Pack can monitor such events as the overall availability of SQL Server, connections, process crashing, and memory-allocation problems.
- Systems Management Server— Systems Management Server, popularly known as SMS, provides a scalable configuration management platform for Windows desktop and servers. For instance, SMS can be used to deliver key security updates and patches to a farm of servers from a centrally administered console. SMS can also be used to remotely deploy applications to thousands of desktops running within a corporate environment.
- ISA Server— Internet Security and Acceleration Server provides a multilayer firewall, proxy, Web cache, VPN, basic intrusion detection, and Internet traffic filtering (email, HTTP, FTP) services to the Microsoft platform.
.NET Framework and the Common Language Runtime
The .NET Framework is really the key highlight of the overall .NET platform. In a lot of ways, it is the genesis of a continuing series of platform changes occurring in the Microsoft technology platform.
Key components of .NET Framework are the following:
- Common Language Runtime — The Common Language Runtime, or CLR, as it is popularly known, is the most significant component of the .NET Framework. The CLR provides a runtime environment for the execution, security, and management of .NET applications and components. Highlights of the CLR are a common type system (CTS) that defines common data types that can be used by .NET programming languages, garbage collection for automated memory allocation and deallocation of memory (thereby reducing the number of developer-induced memory leaks), rich metadata that supports registryless deployment, and the notion of strongly named assemblies with a Global Assembly Cache (GAC) for eliminating DLL Hell. .NET applications and components are now compiled into an intermediate MSIL code that is then deployed into users’ workstations or servers. On execution, the MSIL code is converted into native platform executables by the JIT (Just In Time) compiler.
- .NET programming languages — .NET Framework supports four programming languages: the newly introduced Java-like C# object-oriented programming language; Visual Basic .NET, which is a major evolution from the Visual Basic language and provides full–blown, object-oriented features to the platform; Visual J#, which provides Java developers the capability to develop .NET applications; and Managed C++, which includes extensions to develop managed code in C++ and allows C++ developers to utilize the new CLR-based programming model. In addition, because the base CLR specification is available as an open standard, third-party developers can provide additional programming languages for the .NET platform.
- .NET Framework class library — A rich and elaborate class library that provides prebuilt common functionality to all .NET programming languages. This includes collections, basic input/output, reflection, regular expressions, multithreading, networking, XML, database connectivity (ADO.NET), .NET Remoting (a next generation of the DCOM distributed application deployment model), COM+ Enterprise Services (Transaction Management, Object Pooling, Just In Time Activation), and Message Queuing.
- ASP.NET — Microsoft Active Server Pages (ASP) introduced a new paradigm for the development of Web-based applications. Even though the ASP application programming model was a runaway success, it did have its own issues. A number of these were related to the intrinsic COM-based application deployment model; for instance, you weren’t able to update a COM component that was currently used by a Web application without stopping the Web server. Other issues were more directly related to ASP: the nonexistence of a scalable session management model, use of VBScript (a subset of a programming language) for application development, and no centralized authentication model. ASP.NET, also known as Web forms, truly builds on the success of ASP and attacks the specific issues faced by developers. For instance, ASP.NET applications can be developed in C#, Visual Basic .NET, or J#. ASP.NET introduces a scalable and configurable session-management model with true Web-farm support, a rich set of Web forms server controls that provides an easy-to-use event programming model for Web applications, a centralized XML-based configuration mechanism for key application facilities such as authentication mechanisms, and so on.
- Web services — The extensive set of XML/Web services support in almost all areas of the .NET is quite visible. Even the .NET Remoting programming model for distribution of components utilizes the Web services-based distribution mechanism. ADO.NET uses XML as a data-exchange layer between database connectivity providers. Web-services development in .NET is similar to another class with some extensions based on attributes. Deploying a Web service is as simple as copying a file (with the .asmx extension) into a Web directory, similar to deploying a Web application. All the necessary plumbing related to support of Web-services standards, including XML, SOAP, and WSDL, is done by the underlying framework. Consuming a Web service from another application or within the same application is also as simple as creating a proxy object, which makes invoking Web services similar to invoking a method on another class.
- Interoperability — Interoperability with existing COM/COM+ applications and components is probably one of the most important features of the .NET Framework. This is particularly important to a large pool of enterprise application and component developers, who have collectively invested many years of effort developing COM applications. Typically in these scenarios, you would like to expose key components of the existing applications to a next generation of .NET based applications or, in some cases, integrate some of the newer functionality in the .NET Framework—particularly .NET Web services—into your existing applications. .NET Framework supports tools that basically allow COM components to be “wrapped” as .NET components, and visa versa.
What is .NET?
The Microsoft .NET platform is really an evolution of the Windows software platform and addresses some of the key requirements posed by the development community to help design, build, and manage software applications with reduced time and complexity. Even though the biggest immediate change in the overall platform is the .NET Framework, which provides key technologies for development of custom applications, the change is gradually making its way into almost every technology that Microsoft develops, including the operating system, servers, programming framework, applications, and tools.
Key components of the overall .NET platform include the following:
- .NET Framework— The core of the platform, providing key services for application development, deployment, and execution.
- .NET Compact Framework for Smart Devices— A subset of the .NET Framework targeted for Smart Devices such as PDAs and mobile phones.
- Visual Studio .NET— An integrated set of tools for developing applications and components using the .NET Framework.
- Zero Deploy Smart Client Application— A new programming model allowing rich (also known as “thick”) clients to be easily deployed and managed in a secure fashion, providing an enhanced user interface to clients.
- Microsoft Office System— Works together with the Smart Client Application model to provide key document processing, analytics, and electronic forms capability.
- Prepackaged XML Web services— A set of standards-based hosted Web services providing prepackaged functionality that can be integrated into existing and new applications.
- Enterprise Servers— A core server-side infrastructure for deploying and managing either custom-developed applications or prepackaged functionality.
Why .NET?
.NET was crafted by Microsoft to make software developers more productive. Key to this productivity was providing a set of tools and technologies that hides the inherent complexities of traditional software development and makes them available through runtime services. Also, developers needed a pluggable component model for easy assembly of applications. The Internet has evolved to a maturity level making it imperative to leverage the standards-based Internet infrastructure. Also needed was the capability to support multiple programming languages and provide a rich set of common class libraries. Last, but definitely not least, was to ensure interoperability with existing technologies and security.
- Component-based architecture— The introduction of Component Object Model (COM) and Distributed COM (DCOM) has already sown the seeds for a component-based architecture for designing, building, and managing applications. A component-based application model is a key element in the division of a complex business process into a set of manageable components, facilitating reuse and concurrent application development. Whereas COM/DCOM provided developers with a basic component model establishing a common set of interfaces that were required by developers to utilize the model, at the same time it required developers to build the necessary plumbing by themselves to effectively use it. In a number of scenarios, developers got drenched in the core plumbing efforts rather than focusing on the core business logic. Visual Basic was an attempt to abstract the component-based architecture to make it easier for developers, but it, too, came with limitations, such as the lack of full-blown object-oriented features.
- Leverage the ubiquitous Internet— DCOM introduced the required framework for supporting distributed application development where application components could be deployed on a distributed set of servers for scalability and performance. However, DCOM also introduced the Network Data Representation (NDR) format, which was proprietary and didn’t work well with enterprise firewalls and across enterprises. Developers and administrators wanted to utilize the ubiquitous Internet protocols and data formats such as HTTP/HTTPS, Web services, SOAP, XML and so on.
- Support multiple programming languages— One of the achievements of the COM programming model was that COM components could be developed in different programming languages, including C++, Visual Basic, and J++. However, developers still lacked true language integration and weren’t able to inherit the capabilities of a class developed in one programming language in another programming language. Whereas developers liked the support of multiple programming languages, they needed true language integration rather than just interoperability.
- Common class library— The nonexistence of a common class library was probably one of the biggest concerns of COM developers. What was Microsoft Foundation Classes (MFC) in Visual C++ was something entirely different in Visual Basic. Even lower-level libraries for input/output were totally different between programming languages. The lack of a unified class library resulted in the creation of several application programming libraries to achieve the same purpose in different programming languages; in fact, in some scenarios there were multiple libraries for the same purpose for a single programming language. At the same time, Microsoft developers saw the evolution of the Java programming language, which featured a rich class library, and expected a similar class library to be available in the Microsoft platform.
- Common development platform— Microsoft C++ and Visual Basic were primarily focused on developing client/server applications and component libraries. The introduction and emphasis on the Web-based application delivery model created a need for a tool for Web application development. Visual Interdev was introduced to solve this problem but had yet another programming and application development model. Similarly, the introduction of mobile devices brought the challenge of developing mobile applications that run on devices. Embedded Visual C++ and other tools were introduced; although they used the same programming languages, they had totally different programming models and libraries. Visual Basic for Applications (VBA) was yet another model used for developing applications and extensions with the Office Suite of products. Developers required a consistent toolset and an underlying framework to be used across different application-delivery models.
- Ease of deployment— Although COM introduced component-level reuse, it introduced another problem, called component clashes, which occurred when a version of a particular DLL used by one application was not compatible with another application and was overwritten by yet another application, breaking the existing application. This problem, sometimes termed DLL Hell, was a major cause of concern in large-scale application development and deployment. Adding to this was the requirement of registering components and unregistering components when applications were deployed or removed. Administrators needed a much better deployment model through which they could easily install, configure, and uninstall applications and components.
- Security— The requirement of having applications dynamically downloaded to a client workstation introduced an added level of security requirements on the code. On the competitive technology landscape, Java Virtual Machine had a notion of running applications in a sandbox with configurable security permissions. Developers expected a similar set of features to be available within the Microsoft platform.
- Interoperability— With the introduction of any new platform comes the question of how existing components and applications interoperate and/or migrate. Developers expected the next-generation Microsoft software platform to easily interoperate with existing applications and components. Another concern, primarily for enterprise application developers, was the presence of multiple development platform approaches within their organization. They expected easy interoperability, not just within the components of the Microsoft platform, but even with competitive platforms using standard protocols and formats.
.NET Introduction
Hi there, here you will find some usefull excerpts from a book “Microsoft .NET Kick Start” by Hitesh Seth. All rights reserved by Hitesh Seth. We are just informative resource representing this interesting and very helpfull book for .net amateurs.
.NET is a technology platform for development and deployment of business applications using a set of technologies — .NET Framework, multiple programming languages, tools (particularly Visual Studio .NET), applications (including Microsoft Office System), and server technologies (known as Windows Server System, earlier called .NET Enterprise Servers). It is also important to understand that currently most (except SharePoint Portal Server 2003 and BizTalk Server 2004) of the enterprise servers are built on top of Windows DNA technologies, although they do typically have integration and interoperability mechanisms with the .NET Framework.
Microsoft .NET is a very significant change from Microsoft’s previous technology Windows DNA platform (COM/DCOM/ASP/VB/MFC/ATL). Announced in 2000, .NET received a strong response and created excitement in the IT community. A number of organizations started to develop (and even deploy!) applications on the new platform, even in its early beta stages. However, the platform is still evolving—evolution from the 1.0 release of the framework to an enhanced 1.1 release. Even though a lot of what .NET was about has to do with the notion of Web services–based service–oriented architecture, a key reason behind this success has been the enormous amount of prebuilt functionality (available as class libraries) that are available within the .NET Framework itself.