Why Do We Need a New Version?
In the Introduction to this book, we listed the main motivations that Microsoft
had when designing and developing ASP+. After all, considering that ASP has
been so successful, why do we need a new version? There are really four main
issues to consider:
Currently, ASP can only be scripted
using the basic non-typed languages such as VBScript and JScript (unless you
install a separate language interpreter). While ASP does parse and cache the
code for the page the first time it is executed, the limitations prevent more
strongly-typed languages like Visual Basic and C++ from being used where this
would be an advantage. ASP+ provides a true language-neutral execution framework
for Web applications to use.
It is also very easy to create huge
ASP pages containing a spaghetti-like mixture of code, HTML, text, object declarations,
etc. And it's hard to re-use code, unless you place it in separate 'include'
files – not the best solution. In many environments, developing a Web application
utilizes the skills of a wide range of professionals, for example, you have
programmers writing the code, and designers making the HMTL look good. Having
both the code and the content intermixed in a single file that both of these
groups need to operate on makes it difficult for them to work together. ASP+
allows true separation of code and content.
In previous versions of ASP, you
have to write code to do almost anything. Want to maintain state in form fields?
Write code. Want to validate data entered on the client? Write code. Want to
emit some simple data values? Write code. Want to cache regions of pages to
optimize performance? Write code. ASP+ introduces a real component model, with
server-based controls and an event driven execution paradigm similar in concept
to the way that a Visual Basic 'Form' works now. The new ASP+ server controls
are declarative (i.e. you only have to declare them in order to get them to
do something), and so you actually write less code – in fact, in many situations
you don't have to write any code at all!
The world out there is changing.
The proportion of users on the Web that will access your site through an 'Internet
device' such as a mobile cellular phone, personal digital assistant (PDA), TV
set-top box, games console, or whatever else, will soon be greater that the
number using a PC and a traditional Web browser. This means that we probably
have to be prepared to do more work at the server to tailor our pages to suit
a specific device. We'll also have to create the output in a whole new range
of formats such as the Wireless Markup Language (WML). And, in addition to creating
WML for rendering, new Internet devices and business applications are going
to want to be able to send and receive XML data from Web applications. Doing
this today from ASP requires you to manually use an XML parser, convert data
to and from XML schemas, etc. ASP+ Web Services makes it much easier.
Besides all of this, the rapidly changing nature of distributed applications
requires faster development, more componentization and re-usability, easier
deployment, and wider platform support. New standards such as the Simple Object
Access Protocol (SOAP), and new commercial requirements such as business-to-business
(B2B) data interchange, require new techniques to be used to generate output
and communicate with other systems. Web applications and Web sites also need
to provide a more robust and scalable service, which ASP+ provides through proactive
monitoring and automatic restarting of applications when failures, memory leaks,
etc. are discovered.
So, to attempt to meet all these needs, ASP has been totally revamped from
the ground up into a whole new programming environment. While there are few
tools available to work with it just yet, Visual Studio 7.0 will be providing
full support to make building ASP+ applications easy (both ASP+ Pages and ASP+
Services).
The rich, component based, event driven programming model is specifically designed
to be 'tools friendly', and this support will be available for all Visual Studio
languages – including VB, C++, and C#. And you can be sure that third party
tool manufacturers will not be far behind.