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 (see Figure 1.1) 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.

Figure 1.1. Components of the Microsoft .NET 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 ” Out of the box, .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. You will learn more about the .NET programming languages in Chapter 3, "Programming with .NET."

  • .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. You will learn more about the .NET Framework class library in Chapter 4, "Using the .NET Class Library."

  • 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. You will further explore Web-based application development in Chapter 8, "Developing Web Applications with ASP.NET."

  • 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. You will learn more about the standards-based Web-services development in Chapter 9, "Developing Web Services."

  • 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. You will learn more about how .NET interoperates with existing COM-based applications in Chapter 11, "Interoperability."

Microsoft Visual Studio .NET 2003

For years, the Visual Studio toolset has been a platform of choice for developing Windows-based applications. There are four major separate components of the Visual Studio toolset: Visual C++, Visual Basic, Visual J++, and Visual Interdev. Whereas Visual C++ provided the developers a very platform-centric, low-level approach for developing applications and components, Visual Basic developers enjoyed the benefits of a true Rapid Application Development (RAD) tool. Visual J++ developers leveraged their skills in the Java programming language and enjoyed similar capabilities available to Visual Basic programmers. Visual Interdev was introduced as a tool to bring in the development of Web-based ASP applications and utilized yet another programming language, VBScript, a subset of the Visual Basic language. Although these tools are available as part of the same product family, they are really a bundle of products rather than an integrated set of tools, the only common link being COM/COM+.

In a number of ways, Visual Studio .NET is an integrated development environment in the truest sense, providing a common application development environment irrespective of the language that you use. Visual Studio .NET supports the .NET supported programming languages: C#, Managed C++, Visual Basic .NET, and Visual J#. The integrated toolset also leverages the common .NET Framework class library to provide a similar development experience when you are assembling Web-based (or Windows-based) applications using controls. It is no longer MFC versus Visual Basic Controls versus Java components; it is Windows form controls for Windows applications or Web server controls for ASP.NET “based Web applications.

Another key aspect of Visual Studio .NET is that it supports the development of several kinds of applications using the same tool. Apart from supporting Web-based and Windows-based applications, Visual Studio .NET can be used to develop XML Web services, mobile applications, speech applications, and the like within the same toolset.

VISUAL STUDIO .NET BEYOND THE .NET FRAMEWORK

Visual Studio .NET is quickly expanding beyond the .NET Framework. For instance, with BizTalk Server 2004 (as you will explore later in the book), it is the tool to develop business process orchestrations. Future versions of Visual Studio .NET and SQL Server will allow the tool to be used for developing stored procedures in .NET-compatible programming languages. With SQL Server 2000 Reporting Services (expected to be released in Q4/2003), Visual Studio .NET will be used as a standard report designer as well.


You will explore further the capabilities provided by the Visual Studio .NET toolset in Chapter 5, "Getting Started with Visual Studio .NET: Tools for Developing .NET Applications." In addition, you will also get a preview of some of the third-party complementary tools for Visual Studio .NET in Chapter 6, "Using Third-Party Tools."

Smart Client Applications

It is pretty clear that with the evolution and importance of the Internet, developing and deploying Web applications is the natural trend. However, in certain scenarios, "rich clients" can be effectively used, for instance, where applications are required to be operated in offline mode, particularly for mobile workers. Another example is in applications that require significant user-interface enhancements that cannot be easily delivered through the Web, such as an application used to configure a network or a large machine, where a more enhanced visual look and feel can be very effectively used. Smart Client applications are essentially .NET Framework-based Windows applications that address these scenarios. However, Smart Client applications are quite different from traditional client/server applications. For instance, Smart Client applications don't have to be installed manually on individual clients; they can be easily installed by connecting to a Web server. They can utilize the loosely coupled XML/Web services model to connect with back-end systems. As you will see in the next section, Smart Client applications can also be executed on mobile devices. As you will explore later in this chapter, these applications can also utilize the capabilities present in the Office System suite, particularly Word for document formatting, Excel for analytics, and InfoPath for Electronic Forms.

You will further explore development of Windows forms-based Smart Client applications in Chapter 7, "Developing Windows Applications Using Windows Forms."

Smart Devices and .NET Compact Framework

A key trend seen in the past few years is the need to make applications available to users when they are mobile. For instance, much of a typical business day for a mobile worker is spent in transit and commuting (via air, train, and car), and for a certain category of user roles (such as an on-call administrator or doctor), users must be available at any time of the day, anywhere . The need for mobile applications has also been accelerated through the advent of a broad set of mobile devices that have enhanced capability not only for PIM (personal information management) functions such as calendar and contacts, but also to run a limited set of applications. Microsoft has been a key player in the area of mobile application development, and with version 1.1 of the .NET Framework (which accompanied the release of Visual Studio .NET 2003), released .NET Compact Framework. .NET Compact Framework provides key functionality of the CLR-based runtime and a limited set of class libraries to a wide range of devices, including PDAs and mobile phones. With .NET Compact Framework, developers can utilize the same toolset, the same programming language, and even the same database (for instance using a SQL Server CE Edition) to implement a subset of an existing application (or a new mobile application) that can be used by mobile users.

You will further explore development of .NET Compact Framework mobile applications in Chapter 10, "Take .NET with You: Developing Mobile Applications."

SHOP TALK : THIN CLIENTS VERSUS THICK CLIENTS?

As an application developer, you have to keep thinking about not only the application development, but also its deployment mechanisms. Whereas thick clients or the traditional GUI applications enjoy a richer user interface experience, they typically lack the effortless zero “distribution/updates capability that is available to Web-based applications. As you will explore later in the book, the application-delivery model in .NET further blurs the classical thin client versus thick client question because thick clients in .NET are zero deployable . They can be downloaded securely from a common Web-based location and can be updated seamlessly when the application has been changed. If you add Web services to this mix, application business logic can be distributed, essentially providing the core benefits of the thin client model to regular applications (also known as thick client). To round out this discussion, in my opinion, the thin client application delivery model works for most general purpose application scenarios and doesn't pose any additional constraints, such as what is the target machine's operating system and/or any special memory/processor requirements. On the other hand, thick clients are needed in more demanding yet focused applications ”for example, an equities trading application where you have a much more controlled user base.


Microsoft Office System

The introduction of XML-based Web services technology as a key component of the underlying .NET Framework (and in general the entire platform) has really changed the shape of how some of the other applications that are released by Microsoft are perceived. For instance, Microsoft Office has probably never been included as a key component of custom application development architecture before. However, this changes with the introduction of the Microsoft Office System, which includes products in the existing Office Suite family plus products such as InfoPath, Visio, Project, and some of the key office server technologies, particularly Office SharePoint Portal Server and Live Communications Server. What is really interesting from a development perspective is the extent of XML/Web services support in key Office applications, particularly InfoPath, Word, Excel, and Access. For instance, with Word 2003 you can easily create a Word document that contains tagged information and can be saved as XML (described by your own XML Schema). Similarly, Excel 2003 enables you to fill a spreadsheet with data received from external Web services and then graph or chart the data to your own needs using the intrinsic analytics in Excel.

Perhaps the most interesting application in the entire Office System is InfoPath. A new addition to the Office System, InfoPath provides XML-based electronics forms authoring support. For instance, consider a scenario where you have built or enhanced a customer relationship management (CRM) application to include a special workflow that allows a manager to approve or reject an order with a special discount for a customer. Using InfoPath, an XML-based form can be routed (using email) to the manager and filled with the order XML data; the manager, based on business rules, can modify the order values (such as quantity/discount allowed) and then send the data to a Web service for further processing. Another example is to actually create a full-blown order-entry form using InfoPath. For instance, sales representatives can fill out these forms and store them in their own desktops (as XML files) and then submit them to back-end servers after they are connected.

You will further review the integration of some of the key server technologies with the .NET Framework technologies in Chapter 12, "Programming Office System 2003 with .NET."

Prepackaged XML Web Services

A key highlight of the .NET Framework and the toolset is the use of standards-based Web services technology as a key mechanism for the underlying distribution architecture. To augment the set of custom-developed Web services, Microsoft has launched an initiative that provides a set of prebuilt Web services that run in Microsoft-operated server farms and provide prebuilt functionality that can be integrated into custom-developed applications. This initiative has been previously called Hailstorm and .NET My Services.

WEB SERVICES AND .NET

Web services is the key highlight of the .NET platform .NET Framework. Whereas .NET Framework (particularly ASP.NET) allows you to easily develop Web services using .NET programming languages, Visual Studio .NET makes it easier for developers to discover and utilize existing Web services in their applications, and the prepackaged Web services provide prebuilt functionality that can be readily incorporated into business applications.


Key Web services that were available at the time of writing of this book include the following:

  • .NET Passport ” The .NET Passport Web service provides single- sign-in services to Web-based applications. For instance, if you have developed an electronic commerce application for selling your goods on the Internet, you would usually require that customers be authenticated into the system and have access to their profile information. Typically, you would end up developing a customer profile, a sign-on mechanism, and an associated set of user administration application components in your own application. With .NET Passport, you can delegate these capabilities to .NET Passport so that users can use their existing Passport account (identified by an email address) to sign in to your application. In fact, if a user has already signed in to another Web application that uses the .NET Passport Web service, the user is not required to sign in again, thus providing ease of use through a single sign in. This also removes the requirement for users to have multiple user ids and passwords for different applications.

  • MapPoint Web services ” MapPoint Web services provides hosted Web services that can be used to integrate mapping (for example, to show the location of a particular health care provider), driving directions (giving a user driving directions from home to a particular hospital), a proximity search (showing the dentists within a 15-mile radius from a user's home), and other related services into your application. XML Web services uses the same underlying technology provided by the Microsoft MapPoint set of products, which is also used by the consumer-focused MSN Maps and Directions Web site, http://mappoint.msn.com.

  • .NET Alerts ” .NET Alerts provides the delivery of time-sensitive information to users through a configured set of rules. For instance, one of the current applications of .NET Alerts is the MSN Hotmail-based email alerts (configured to receive for a set of predefined users and filters) to a mobile phone. Another example is the stock quotes and news delivery to devices based on a variety of rules, including time of day, stock tickers, changes, and so on. Apart from these more consumer-oriented uses of .NET Alerts, a developer kit called .NET Alerts Developer Edition is available for enterprises to develop custom alerts to their own sets of applications. .NET Alerts can be delivered to a Windows/MSN Messenger (the instant messaging client from Microsoft), email, mobile devices, and so on.

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.

More about the integration of some of the key server technologies with the .NET Framework technologies is covered in Chapter 13, "Leveraging Windows Server System with .NET."



Microsoft.Net Kick Start
Microsoft .NET Kick Start
ISBN: 0672325748
EAN: 2147483647
Year: 2003
Pages: 195
Authors: Hitesh Seth

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net