ASP.NET Architecture










PDF version of this report
You must have Adobe Acrobat reader to view, save, or print PDF files. The reader
is available for free
download
.

ASP.Net Architecture

by Lynn Greiner

Docid: 00011308

Publication Date: 1809

Report Type: TUTORIAL

Preview

Static HTML is unacceptable in the interactive
Web world. Users demand adaptive, dynamic, highly functional Web pages,
regardless of whether they
reside on the Web or the company Intranet. ASP.NET is Microsoft’s way of
addressing this issue. Compatible with virtually all
Web browsers, it goes head-to-head with UNIX and Linux
Java-based solutions and has made significant headway, driven in part by the trend toward service oriented
architecture and Web services. This report examines the use of ASP.NET and its
place in the current Web services market.

Report Contents:

Executive Summary

[return to top of this report]

ASP.NET is a free
open source web framework that is used to create
dynamic Web sites.

Related
Faulkner Reports
Microsoft
.NET Technology Tutorial

Organizations as diverse as USA Today, NASDAQ, and Dell
Computer (not to mention Microsoft itself) rely on it to maintain their cyber-presence on the World
Wide Web.

It allows developers to easily build Web-enabled applications that
do most of their work on the server, eliminating the often problematic
issue of differences between browsers. The Web server detects the
browser and adjusts its output accordingly, without significant
developer intervention.

ASP.NET Core 2.1 is the latest version, released
in May 2018. It works
with
Visual Studio 2017 and later. ASP.NET Core
united ASP .NET MVC and ASP .NET Web API. It was the
first open source cross-platform version of ASP .NET

Description

[return to top of this report]

Microsoft’s
ASP.NET is a programming framework for building
Web-enabled applications. Its predecessor, ASP (Active Server
Pages), was first introduced with Internet Information Server (IIS)
3.0 in 1996 as a way to ease entry into the then-new world of Web
development. It supported VBScript and JScript and some simple
objects that could be used for Web application development, such as a
request object that allowed developers to get data from the client and
a response object to let them send data to the client. It did not,
however, allow developers to easily create full-functioned Web
applications; it suffered from the limitations of the scripting
languages, a limited object model, few tools, and the unfulfilled need
to make API-level calls to external XML toolkits and parsers.

ASP.NET builds on the foundation of ASP, but offers developers the
benefits of object-oriented programming, the .NET framework and the Common Language Runtime (CLR)
and class libraries. The .NET Framework offers over 4,500 classes that
encapsulate rich functionality like XML, data access, file upload,
regular expressions, image generation, performance monitoring and
logging, transactions, message queuing, and SMTP mail. With these tools, it is much easier to
incorporate XML formatted data into Web applications, to perform error
checking, and create user interface (UI) elements. Two languages
are natively supported: Visual Basic, and Visual C# (pronounced
“C-sharp”), but any of
the over 25 languages with .NET support may be used. Developers can
code in as simple a tool as Notepad, or use Microsoft Visual Studio to
get an integrated development environment (IDE), debugging facilities,
and drag-and-drop interface building.

ASP.NET offers several advantages over the old ASP model. Rather than using
linear code, processed in order of appearance and intermingled with static HTML,
ASP.NET allows for event-driven programming. Commands can be executed when a
specific event occurs, such as the loading or unloading of a page, or the click
of a control. Also, ASP.NET pages tend to be faster than pure ASP pages, because
the code is compiled at first request, not interpreted every time it is called.

The event-driven model also allows presentation code to be
separated from logic through a feature known as Code Behind. The
presentation piece (often a Web form) may then be re-used on more than
one page, with its function altered appropriately by the code behind
modules, and developers need not wade through pages of presentation
code to track down and fix a logic error. Visual Studio 2013, like
its predecessors, automates
much of the development process, letting developers produce solutions
with less original code.

IIS 5.0 and IIS 6.0 handle ASP.NET requests differently. IIS 5.0 uses
Named Pipes to route requests through ISAPI, which is hosted either directly
or in a worker process, depending on the configured isolation setting. IIS
6.0 supports the calls directly into Application Pools, worker processes
that allow granular control over what executes in each process. They can be
configured to isolate each application into its own process, unaffected by
anything else running on the server, and unable to inadvertently affect
other processes themselves. IIS 6.0 application pools are highly optimized
for HTTP operations by communicating directly with the kernel mode HTTP
driver. This makes the model more stable and offers higher performance than
over IIS 5.0. In IIS 7.0 and higher, ASP.NET’s request process pipeline
overlays the IIS pipeline directly, while allows modules to replace, or run
before or after any IIS function.

ASP.NET code can co-exist with classic ASP code on the same
server, as can standard HTML. The server determines what processing is
required, and combines elements of the page for serving to the client.
Server-side processing is, in fact, the big differentiator offered by
ASP.NET over previous technologies. With a simple command, developers
can specify that a routine is to be run on the server rather than the
client. This makes the code more maintainable, and more predictable,
since the developer knows the environment on which it will be running.
The client, which could be anything from a PC or Macintosh to a
mobile phone, is removed from the equation; the server determines
what output is required. ASP.NET pages work with virtually all Web browsers, so users are
not restricted to Internet Explorer as they are when ActiveX is
employed.

Current
View

[return to top of this report]

Microsoft introduced ASP.NET 4.7 in April 2017 with the Windows 10 Creator’s Update, and further updated it to 4.7.1 in October 2017
with the Fall Windows update.
ASP.NET 4.5, released in September 2011, alleviated fears that
it was going to kill the technology. This version, released along
with the .NET Framework and Visual Studio 2012, included updates to
accommodate Windows 8 features, improved HTML5 support, data-related
improvements in Web Forms and WebSockets, a technology developed by
industry leaders, including Microsoft, that allows secure bi-directional
communication across the Web.
ASP.NET 4.0 was
released as part of the .NET Framework 4.0 and Visual
Studio 2010. It incorporates the earlier versions of ASP.NET to ensure
backwards compatibility. Microsoft goal was to further integrate its servers and
tools, and provide underlying support for Web services and service
oriented architectures (SOAs).

ASP.NET 4.0 updated the enhancements introduced in ASP.NET 3.5 and like it contains a number of features to make it easy to create
and apply a common look-and-feel to Web sites. Master Pages, for
example, are templates that can be applied to a site; change the
Master Page, and all pages automatically update to reflect those
changes. Built-in theming support lets developers organize and apply
changes to stylesheets and controls by applying a new theme to
pages. 

Web controls support rendering valid, well-formed XHTML
markup with a simple configuration option, and common code for
managing users and personalization is included as application
services. Also, ASP.NET membership services provide best practices
guidance and support for managing access to Web applications. 

ASP.NET 5.0, which ultimately became ASP.NET Core, was unified for building Web UIs and Web APIs. It has a cloud-ready cinfiguration
platform, built-in dependency injection, and can host on IIS, Nginx, Apache, and Docker, or in its own process. It is open source and runs
on Windows, Mac, and Linux. The Windows Compatibility Pack makes thousands of Windows-only APIs available in .NET Core 2.1 and above.

ASP.NET provides built-in protection from many common forms
of hacker attacks, including cross-site scripting, and request-replay
attacks, assisting in the development of more secure sites. A
new architecture model, including sandboxing, direct composition of
WPF (Windows Presentation Foundation) threading improvements and new
crypto classes makes it easier to product more secure applications.

It supports several forms of caching, such as output caching,
which improves the rendering of controls to XHTML, and database
caching, which enables an application to be notified when the
underlying database changes, eliminating unnecessary queries. ASP.NET
Ajax, included in ASP.NET 3.5, may also be downloaded as an add-in to
ASP.NET 2.0.

ASP.NET session state lets session data such as user-specific
state values be shared across all machines in a Web farm, so users can
hit different servers in the Web farm over multiple requests and still
have full access to their sessions. Its application services use the provider model to
connect to external services, which allows the developer to change the
database or other service used to store membership,
personalization, or site map information by simply editing the
configuration. Web
parts – modules that can be assembled to create a Web page – allow end users to
organize and personalize their page content and layout. This
permits a move toward a development model for Web sites
that focuses on reusable, connectable, and user-configurable
components that are assembled quickly in different ways to create the
solutions that business users need.

Microsoft has also included automatic adaptation of pages to the
constraints of mobile devices, with no developer intervention
required, and easy ways to call Web services with no knowledge of XML
or SOAP required. ASP.NET 4.0 contained a new auto-start feature that
was available when it ran on IIS 7.5 on Windows Server 2008 R2. The
feature provided a controlled approach for starting up an application
pool, initializing an ASP.NET application, and then accepting HTTP
requests. It allowed the performance of expensive application initialization
prior to processing the first HTTP request.

Other features included:

  • Core services, including a new API that lets you extend
    caching, support for compression for session-state data, and a new
    application preload manager (autostart feature).
  • Web Forms, including more integrated support for ASP.NET
    routing, enhanced support for Web standards, updated browser
    support, new features for data controls, and new features for view
    state management.
  • Web Forms controls, including a new Chart control.
  • MVC, including new helper methods for views, support for
    partitioned MVC applications, and asynchronous controllers.
  • Dynamic Data, including support for existing Web applications,
    support for many-to-many relationships and inheritance, new field
    templates and attributes, and enhanced data filtering.
  • Microsoft Ajax, including additional support for client-based
    Ajax applications in the Microsoft Ajax Library.

Various versions of ASP.NET are not supported in all Microsoft
operating systems. For example, Windows Vista does not support ASP.NET
2.0 SP2 or 3.0 SP2, and Windows 2000 does not support ASP.NET 3.5 SP1
or 3.0 SP2 or newer.

Microsoft’s One ASP.NET vision in Visual Studio 2013 let developers create
ASP.NET Web apps using any combination of component frameworks in a single
project. For example, the developer could start the project using MVC, and
add Web Forms pages later. This was designed to reduce the complexity in ASP.NET
apps.

In June 2014, Microsoft announced ASP vNext, the next version of the .NET
framework, now known as ASP.NET Core 1.0. It is a lean and composable framework for building Web and cloud
applications, and is included in Visual Studio 2015. It is fully open source, available on GitHub.
It is a merger of ASP.NET MVC and ASP.NET Web API, and supports not only
Windows, but OS X and Linux.

In May 2018, ASP .NET Core 2.1 was released with Razor Pages support. Razor Pages are the recommended way to build
the user interface for Web applications in ASP .NET Core.

Outlook

[return to top of this report]

Microsoft builds large parts of its new products using ASP.NET. For
example, both Sharepoint 2010 and Windows Sharepoint Foundation (formerly
known as Sharepoint Services) were built
on ASP.NET 2.0. Microsoft also used the technology to drive its own sites. Sharepoint Services, which was included at no
charge with Windows Server 2003 and was available as a downloadable
add-in in Windows Server 2008, was used by many companies as a
low-cost way to build internal and external Web sites and team
collaboration spaces, as was the newer, also free, Sharepoint
Foundation that could be added to Windows Server 2010. This gave ASP.NET an immediate foot in the
door at corporations that take advantage of the technology.

Sharepoint 2013 was closely integrated with Office 2013. It
included social, mobile, business analytic, and eDiscovery components;
enhanced design tools, and it integrated Office 2013 products such as
Lync and OneNote for collaboration rather than the Meeting Workspace tools in
previous versions. A number of lesser-used templates were
also removed.
It was closely tied to Microsoft’s cloud services.

Sharepoint 2016 (for on premises deployments) and
Sharepoint Online (available by subscription either on its own, or with Office
365), are now hybrid products, with improved document libraries and navigation
consistent with Office 365. Microsoft also offers an iOS Sharepoint app;
Windows phone and Android apps came in Q4 2016. The company says that there
are now over 200,000 organizations using Sharepoint today, with one million
developers contributing to its ecosystem.

Tight
integration with other server products such as SQL Server provide
a further incentive to look at the technology in Microsoft shops. Microsoft
touts ASP.NET as outperforming J2EE, citing a head-to-head test using
Sun’s Java blueprint application vs a .NET implementation of the same
application that took one quarter of the lines of code, and scaled to
over seven times the number of users with one sixth of the processor
utilization.

The trend towards SOAs and the Cloud makes
ASP.NET particularly attractive, since it generates the necessary
“plumbing” to allow developers to more easily build
applications that use the technology. ASP .NET Core 2.1 and above supports Azure App Services.

With Windows 8, Windows 8.1, and Windows 10, support for ASP.NET continues, with .NET existing in
parallel with the WinRT technology introduced for Windows 8 native apps. Although developers expressed concern that .NET would be
sidelined in Windows 8, sufficient focus was placed on it at the BUILD
developer conferences since September 2011 to alleviate those worries. ASP.NET
4.6 demonstrated significant work in optimization
and the addition of new features and functionality, and
with its release to open source, ASP.NET Core 1.0 further built on that
promise by additng the power of the open source community to its growth. In
fact, the ASP.NET Web APIs are used by the native Universal Windows Runtime
apps in Windows 10. Additionally, ASP.NET Core is cross-platform, running on
Windows, OS X, and Linux.

Recommendations

[return to top of this report]

ASP.NET will undoubtedly find its way into any Microsoft shop
using Sharepoint. Whether organizations are
using pre-built Web Parts or creating their own, the technology is so
tightly tied in that it is virtually unavoidable. Developers using
Visual Studio have a leg up in getting started with ASP.NET, again
because of Microsoft’s tight integration. Microsoft also touts significant
savings from the use of ASP.NET, with support of more users per server, lower
server loads, and faster development. The Ajax components offer functionality
that were previously only available in non-Microsoft environments,
adding flexibility and making potential defections to other
technologies less likely. 

For organizations that already have implementations of other
technologies, ASP.NET should be examined in the event that a change
is considered. It may provide significant benefits in speeding the
development and implementation of a new solution, as well as in
lowering operating costs. Factors
such as existing skills, however, do come into play; retraining an entire
development and administration staff can be an expensive proposition
and must be taken into account, as must the cost of revamping the
infrastructure to accommodate the changes. 

Since the advent of Sharepoint 2007 and its
successors, however, ASP.NET becomes an
even more important part of the Microsoft infrastructure construction kit. Microsoft shops need to be well acquainted with it to
operate effectively. With the move to open source,
organizations now have the opportunity to contribute to the technology as well
as using it, giving them the ability to influence its direction.

Windows 8, Windows 8.1, Windows 10, and Visual Studio 2013 and above continue to put .NET on
an equal footing with the newer development technologies, allowing it to
remain a viable and important technology that should not be abandoned.

[return to top of this report]

About the Author

[return to top of this report]

Lynn Greiner is Vice President, Technical
Services for a division of a multi-national corporation, and also an
award-winning computer industry journalist. Ms. Greiner is a regular contributor
to Faulkner Information Services and a member of the Advisor Panel.

[return to top of this report]