If you're a software developer, information technology professional, or just an ordinary computer user, you're all too aware that change is the rule, rather than the exception. Well, hold on to your hats because Microsoft is about to rock our world yet again. The software behemoth is shaking up the industry by launching a new platform, known as .NET. In brief, .NET is a vast initiative by Microsoft to make all its operating systems, applications, and development tools XML compliant. XML, or extensible markup language, can describe and define information, regardless of the operating system, so that information can be shared in a standardized manner. Think of XML as a wrapper for your information, allowing it to be transmitted and understood by web-based applications. This change may not sound like much on the surface, but it changes how applications communicate and the way we will interact with the Internet on a fundamental level.
The Semantic Web
.NET will enable application programs to "interoperate" with one another over the web and will allow this process to be automated. What this all means is that .NET technology will bring into being what Internet guru Tim Berners-Lee called, in his May 2001 article in Scientific American of the same name, the "Semantic Web." According to Berners-Lee, the Semantic Web will standardize information to allow applications to not just display but actually comprehend web data, and to make decisions based on that data. The Semantic Web will expand the way we communicate using the Internet like never before. It will do so by giving computers the power to interoperate on a level that is simply staggering. The Semantic Web of tomorrow will be much smarter because web content will be understood by computers, which will be able to manipulate those data.
The current generation of web browsers can only format data according to hypertext markup language (HTML), which only affects the way data look on the screen and does not interpret the data in any way. The current crop of web content is thus comprehensible only by human beings, not by computers. .NET will change this paradigm by relying on XML to define information, allowing computers and user agents (software, such as web browsers and media players, that retrieves and presents web content) to process standardized data and make decisions about what to do with it. .NET and its related technologies will thus transform web content—such as standard text, graphics, sounds, and other data format types—into documents with machine-processable semantics, enabling user agents to perform a wider variety of tasks for end users.
It goes without saying that this brave new world will have a strong impact on developers and end users alike, because there will be a great deal to learn. If you're a developer, you face a constant uphill struggle to stay up to date with technologies that are constantly changing. You're probably not looking forward to learning yet another development environment, especially if you access that environment using a screen reader or screen magnifier. For developers and information technology professionals, .NET means learning a new set of tools and skills for building, deploying, and running applications. But according to Microsoft, all this learning may be more than worth the effort. Once developers master .NET, they should be able to bring more powerful and capable applications to market in less time. You may be asking, why is this such a revolution? Haven't development tools like Perl and CGI, to name just two, been available from third-party vendors for some time? The simple answer is yes. But .NET brings all these development tools together in one place for the first time, and developers will no longer have to learn solutions from several third-party vendors to build and deploy applications, making the development cycle more streamlined.
What About the Rest of Us?
While .NET may offer some clear benefits for developers, what effect will it have on the rest of us who are end users? The short answer is that .NET will result in richer and more powerful web services that can be accessed from a wider variety of hardware platforms, personal digital assistants, and mobile telephones, not just desktop personal computers. Because .NET leverages XML technology, application programs will be able to talk directly with web services and with one another across the Internet, bringing on the so-called Semantic Web. .NET will give more types of applications the ability to access data on the Internet directly without using a browser, which has been the primary application for surfing the web until now. If you're an end-user, this will mean that your user agent will be your primary tool for finding, retrieving, and making decisions for common tasks like schedules, shopping, and a whole host of other jobs.
Web Services
Before going any further, let's take a brief look at the overall skeletal structure of .NET, known as the .NET Framework. The most important new technology offered by the .NET Framework is known as web services, which are essentially programs waiting for another program or person to send them a request. The big difference with .NET is that programs, not just persons, can query a web service. Thus, application programs, not just a browser, can query a web service. For example, an application running on a web server could query the user's browser for the user's language and location so that it could provide data in the most appropriate language, units of measure, and currency. Web services are thus computer-to-computer interactions, returning XML-formatted documents, rather than being limited to simple HTML. Microsoft hopes that XML-based web services will allow you to search and retrieve information as before but also to allow application and programs to automate some processes as well. What this means is that application programs will have the ability to query the web and return information to your desktop, personal digital assistant, or other device automatically and to format that data appropriately for your platform of choice. Web services will increase the ability of organizations and individuals to collaborate with one another on complex projects, irrespective of geographic distances and differences in computer platforms or operating systems.
Clearly, web services offer new power and capability, but they also make some information technology professionals uncomfortable because of new security challenges. Security will be tighter because software programs will be able to access these services directly. Web services will allow enterprises to connect their applications together over the web and allow applications from several enterprises to communicate with one another, with web services providing the hooks to connect all these diverse applications.
Web services are defined using web services description language (WSDL), which uses XML to provide standard methods for defining how to control remote web services and for defining input and output parameters, allowing data to be passed back and forth with a recognized protocol among different platforms. .NET will thus have more extensive support for handheld devices, mobile telephones, and other devices. Therefore, .NET will be able to talk with devices that have different screen displays and to adjust data to fit on those displays properly. With all this in mind, let's look at some of the new .NET products entering the market.
.NET Products
The new .NET platform consists of server operating systems, development tools, and application programs.
Servers
The Windows Server 2003 Family is based on the .NET Framework and consists of four editions: Standard Edition, Enterprise Edition, Datacenter Edition, and Web Edition. The Standard and Enterprise editions are suited for small and large organizations, respectively. The Datacenter edition is aimed at large enterprises, and the Web edition is geared for entities that need high-capacity web services.
Development Tools
Visual Studio .NET is a development package that lets you build XML web services and applications that can share data over the Internet. The package includes Visual C, Visual C+, and Visual Basic. Visual Studio allows developers to leverage object-oriented code, as well as the technology of web services according to the .NET Framework. It also allows developers to build client-side and server-side applications with increased security to protect the new generation of web services. Furthermore, Visual Studio allows developers to build applications for a wide variety of hardware platforms, including desktop, palmtop, mobile phones, and other platforms. Visual Basic.Net includes the Mobile Internet Toolkit, which includes support for about 80 mobile devices and will enable applications to work seamlessly on these portable platforms, similar to the desktop environment. This is clearly a development tool that will bring portable devices to the forefront. The package also includes an upgrade wizard, which will let developers migrate their code to the .NET platform with less effort and more accuracy. According to GW Micro, it is supporting Visual Studio in Window-Eyes, its screen reader, to assist developers who are blind or visually impaired.
Caption: A sample screen from .NET. The "Manage Your Server Wizard" automatically runs at logon
Accessibility Issues
While this may be all well and good, how will .NET and the Semantic Web ultimately affect users with disabilities who use adaptive technology? At the time of this writing, the jury is still largely out. However, several vendors of adaptive technology informed me that .NET will be accessible and that work is ongoing. But it's too soon to quantify .NET's overall accessibility.
The .NET Framework clearly raises security to a higher level than was found on earlier versions of the Windows operating system. Within the .NET Framework, security can be thought of from two angles. One angle is from the network-infrastructure side, with file system permissions and tighter default controls on network services, which will have an effect on everyone, not just those who use adaptive equipment. This aspect of .NET security is unlikely to have a negative impact on those who use screen readers and other adaptive equipment.
The other angle of .NET security is from the operating-system side and could have an impact on screen readers and other assistive technologies. As managed code and other data security components are introduced into future applications, the effect could be profound. For example, this could prevent a screen reader developer from providing an update because the new program code provided isn't authorized. Managed code authenticates the software before the operating system allows it to run, so patches and software updates will have to conform to the .NET standards. Also, the way in which .NET applications render data to the screen could be another potential problem for users of screen readers in particular. To be fair, work on this and other issues is ongoing, and that's typical for a project of this magnitude at this level of development.
So will the .NET framework stand in the way of screen readers and screen magnifiers? It's simply too early to know for sure, so we should stay on our toes, not just trust that everything will work without glitches. The adaptive vendors and Microsoft are still playing the back-and-forth game of fixing problems, and every time Microsoft makes changes, something breaks. The adaptive vendors have a vested interest in making things work, but they can only work with what they've been given by Microsoft. Playing this back-and-forth game of "break and fix" is certainly not a recipe for fostering accessibility.
Although web services and the coming Semantic Web clearly have a lot of potential, they will be of little value if they are not accessible for users with disabilities. It will thus still be of maximum importance to adhere to sound practices involving web accessibility, even for those coming, newfangled web services. XML and CSS (cascading stylesheets) should help in this arena as they do now, but to a greater extent as they gain more converts and the technologies mature.
Caption: The Accessibility Options menu in .NET
In closing, .NET is about to become a reality, and it may herald a new day of a smarter, more powerful web. It is in our best interest to learn how to thrive in this changing landscape, and this goes for developers as well as end users. If you use a screen reader or screen magnifier, I urge you to get involved with your favorite assistive technology vendor and join its beta testing programs. Doing so will give you a sneak peek at the newest development from Microsoft, as well as the adaptive vendor community. It is in our direct interest to become familiar with this new platform for our own professional survival. On the whole, I am cautiously optimistic about reports from the adaptive vendor community regarding .NET. I've heard that there are problems, but these problems are being worked on by Microsoft and the 26 adaptive vendors that signed up as partners with the software giant. Let's hope that's not a false sense of security, for all our sakes. Stay tuned to this space for further developments as I dig deeper into specific components of .NET in a later article.