1968 was the Summer of Love, but 2000 brought us the Summer of the Internet Developer. Simon Bisson looks back on a slow motion revolution.
The summer of 2000 was something of a watershed for the Internet developer. Suddenly we were no longer on the fringes of application development, but instead had become the philosophical heart of major strategies from major OS and application vendors. Microsoft’s Internet tidal wave of 1995 had landed in the shape of all things .NET, Sun was adopting components straight out of the Linux revolution, and IBM was a convert to the way of all things XML.
It all began in June, when Microsoft held their delayed Forum 2000 analyst and sales event. This saw the launch of the much-rumoured Next Generation Windows Services, though with a new name, .NET. .NET is a framework for the development of web-based distributed applications. Based around a whole new set of application development tools in the shape of an upcoming release of Visual Studio (see our recent review of the recently released Professional Developers Conference 2000 preview), .NET is designed to change the basic model of Windows application development, moving it away from single platform and client-server development to a distributed model where the web becomes both a front-end and a set of technologies for remote procedure calls.
In the sweltering heat of a Florida summer, 6000 developers found themselves in Orlando, at the 2000 Microsoft Professional Developers Conference. Instead of the usual run of in depth sessions on all aspects of developing in a Windows environment, this year the conference focused purely on the new .NET platform, and several of its key enabling technologies. These include a new language, C#, and several new glue technologies, including ADO+ and ASP+.
One of the main components of the .NET framework is a new generation of Microsoft’s Active Server Pages web application scripting programming environment, ASP+. With the focus on .NET as the foundation for a whole new generation of web applications and services, ASP+ is likely to become the front-end for .NET’s distributed applications.
Visual Studio.NET developers will work with ASP+ without realising it. Create a web form or a mobile form in Visual Basic.NET, and you’re working with ASP+. There’s no separate Visual InterDev here – all the languages share the same IDE, and all the languages can create ASP+ front ends – making everything the equivalent of InterDev. This is going to cause some confusion to traditional developers used to the single form model in Visual Basic. However the learning curve is thankfully brief, and with web forms, made smoother and easier to handle – and ASP and ASP+ will happily coexist on the same server, reducing the risk associated with implementing a new technology.
The key benefit of ASP+ is the separation of code and display. Where previously ASP meant that you had to keep track of a tangled web of code wrapped around the page’s HTML, ASP+ keeps the HTML separate from your code – and as an added bonus, giving you access to a complete component model. This means that sections of code that you want to reuse can be developed, and implemented as components. You’ll also start to find key components will be available from services like Component Source, or through Microsoft’s planned repository, saving you time that may have been used up in creating complex application components such as authentication systems and shopping carts. Web developers will also be relieved that the debugging tools available to the ASP developer are much improved, and allow information to be passed to specific error-handing pages – helping track errors and gain detailed information on what may have caused the problem.
Mobile forms are an extremely promising piece of the .NET architecture, as they allow applications to be developed that deliver user interfaces that vary depending on the requesting device. Instead of hours spent coding device-independent content negotiation systems, all you need to do is instantiate a new form, and the application framework does the rest of the work. You’ll be able to use these technologies to deliver content to WAP phones, iMode CHTML phones, HTML-aware micro browsers and PDAs. As we get closer to the launch of Visual Studio.NET the full range of supported devices will be more apparent, but it is likely to include the new MSN Companion Internet appliance, as well as various interactive TV platforms.
One of the main areas where ASP+ differs from ASP is how it handles languages. Where ASP is limited to scripting languages like VBScript or JavaScript, ASP+ allows you to use compiled languages like Visual Basic and C#. By using the .NET framework as a basis for .NET, the Common Language Runtime acts as a host for the application components of an ASP+ page. This gives it access to the complete .NET libraries, as well as to the full object model used by all the CLR-supported languages. This is a powerful feature, as it means that there is no fundamental difference between an ASP+ application and a Visual Basic.NET application that delivers its user interface through a traditional Win32 form. By closing the gap between web and traditional applications, Microsoft’s .NET framework is likely to push enterprise application development in a Windows environment to using web interfaces as the delivery channel of choice.
Closely related to ASP+ is a new generation of ADO, the Active Data Objects: ADO+. Where ADO was focussed on working with recordsets, requiring multiple connections to and from a database every time data was required, ADO+ is designed to use what Microsoft is calling “datasets”. These are in-memory XML documents that store not only the contents of database tables, they also store details of the data relationships – allowing applications to make faster queries and reducing the load on databases. XML means that ADO+ queries can be easily passed to external systems, adding in the complex process of enterprise application integration.
If you can’t wait to use ASP+, but aren’t able to get hold of a beta of Visual Studio.NET, you don’t have to worry. The .NET SDK is available as a download from Microsoft’s MSDN web site. This is a complete set of tools for creating ASP+ applications, and includes a C# compiler. There’s no IDE though, so you’ll need to manage you code yourself, without the tools provided by Visual Studio. However, it’s a reasonably stable environment, and applications are already being developed and delivered using the SDK. If you want to get started with C#, whilst its still under development, the SDK’s compiler is well worth investigating.
XML is at the heart of Microsoft’s next generation of back-end servers. Whilst the 2000 series servers won’t have the integrated XML support announced for the .NET servers, they are designed to work well with XML data, using it as a common input and output format. If you’re going to use them to create .NET style distributed Internet applications you’ll need to wrap calls in components that expose web service SOAP interfaces – which will help you integrate with any SOAP-ready applications and interfaces.
In the .NET framework Microsoft describes the web browser as a “universal canvas” for your applications. HTML, DHTML and CSS will be the new user interface tools – along with technologies like Macromedia’s Flash. Future versions of Internet Explorer will allow designers and developers to include Flash animations as just another layer in the web page document object model. You’ll be able to overlay HTML text and DHTML components on your Flash animations, and even use them to respond to browser events.
A first step on this road is the release of Flash 5.0. Where Flash 4 had some rudimentary tools for integration with web applications – relying on the server side Generator dynamic graphics creation package for most of its flexibility – Flash 5 is designed to integrate with your applications directly. Not only does it include a JavaScript like scripting language that allows developers to turn Flash animations into event handling user interfaces, you can work with data held on a web server using XML files to transfer information to and from your Flash application.
Flash 5.0 is the first version of Flash where we can talk about applications rather than animations. The built-in scripting environment is designed to be able to let either beginners or experienced developers create scripted Flash animations – with two separate development modes. One, for those new to scripting, allows you to attach scripts to specific events in an animation. The other, for those more experienced developers, allows complete access to the Flash object model, and the ability to work with XML data. By sending data to and from applications running on a web server, a single Flash animation can be used as a complete user interface for a web application.
In Microsoft’s world of the browser-based universal canvas, Flash is the type of tool we’ll see being used to create new user interfaces. With open APIs in the shape of XML data, it’ll even be possible to create custom interfaces to existing applications. As long as the correct information is transmitted, do multiple user interfaces matter?
Of course Flash isn’t going to be the only tool that people will use to create user interfaces for the universal canvas. In fact it’s not going to be the only tool that people use to create content for use in the Flash player. Macromedia has made the courageous decision to open up the Flash file format to third parties. Just download the file description from the Macromedia web site, and you too can generate Flash files – something that could be done by an application component running in an application framework, as a means of creating on-the-fly image content. Already tools from Adobe, Corel and Swish are able to generate Flash content.
Developers interested in creating interesting web front ends for existing applications will find Adobe’s Flash development tool, LiveMotion, well worth a look. Its most attractive feature is its object-oriented approach to design. Every element in a LiveMotion animation is an object, and its properties can be tweaked to add effects. Developers will find this a more logical approach than the layer model used in Flash.
The user interface issue is one that will become more and more important over the next few years. With Microsoft espousing .NET, and Sun reaching out for GNOME as a replacement for the aging CDE, web-enabled user interfaces will become the basis for nearly all applications – and with the arrival of tools like Eazel’s Nautilus file management tool and desktop for GNOME and the skinnable desktop of the Whistler release of Windows 2000, they will be easily adaptable and customisable. Web-based user interfaces on top of SOAP or similar web services will become the norm.
Sun’s support for the GNOME Foundation is another step on the road to easier integration, as it will give Solaris and Linux a common object-oriented user interface, which exposes an ORB to GNOME-aware applications. This will make it easier for developers to start to expose XML interfaces to key back office applications, as well as to the newly GPLed Star Office productivity suite. GNOME is an interesting exercise in open source development, and it will be interesting to see how a Sun-led effort will push development forward. The work on new user interface technologies and metaphors that open desktop environments like GNOME and KDE encourages is starting to produce some innovative features which will affect the way we interact with applications on any platform. The new user interface technologies being pioneered by Apple in MacOS X are another possible route, with the preview version of the Aqua desktop model receiving mixed reviews.
At the Forum 2000 launch of .NET, the then head of Microsoft’s developer tools group, Paul Maritz, showed what could have been seen as a throwaway video clip. Instead, the short light-hearted sketch showed a possible future that the world of ASP+ and the universal canvas could bring…
A man arrives at an airport, minus his mobile phone. More like a PDA than the phones we use today, his phone is an interface to the web applications that hold his calendar and contacts information. Luckily he’s got a smart card with him and can use it to authorise access to his information on a rented phone, only to find that he’s late for his first appointment. With no time to spare he gets knocked over by a bike messenger. As he lies on the ground he makes a call to his doctor’s office in another city. The receptionist in the office is able to see where he is, and is able to find him a local doctor’s clinic. By using the phone to authorise access the traveller is able to give the receptionist the authority to use his insurance details to get him the best possible deal.
This is a compelling vision, especially for distributed application and Internet developers. Loosely coupled connectivity becomes the basis for large-scale applications, along with technologies like SOAP and XML. Proprietary standards are eroded by the rise of the Internet, and heterogeneous infrastructures remain in place thanks to the rise of enterprise application integration technologies. In the Internet application utopia operating systems and hardware platforms are only relevant when determining the scalability and the reliability of an application – what matters is the standards used to create the application interfaces.
The next couple of years are going to be an interesting one for the Internet developer. With distributed applications becoming the norm, the focus will shift to the user interface and the blank surface of the universal canvas. The customer experience will become a critical integration issue for all applications – and will give us all a whole new set of lessons to learn, and tools to use.
It’s time to start looking at what lessons we can learn from the skinning clans, and how we can apply them to our web application user interfaces – and move away from the limitations of the HTML form metaphor that sits at the heart of the user interactions we create. The old CGI-bin has faded into the world of the application server, and now the universal canvas and tools like Flash 5.0 will inherit the world of the form tag.
