However, I’m finding that there are still many things I’d like to do using the Internet that aren’t
possible today. For example, I’d like to find restaurants in my area that serve a particular
cuisine. Furthermore, I’d like to be able to ask if the restaurant has any seating for, say, 7:00
p.m. that night. Or if I had my own business, I might like to know which vendor has a
particular item in stock. If multiple vendors can supply me with the item, I’d like to be able to
find out which vendor offers the least expensive price for the item or maybe which vendor
can deliver the item to me the fastest.
Services like these don’t exist today for two main reasons. The first reason is that no
standards are in place for integrating all this information. After all, vendors today each have
their own way of describing what they sell. The emerging standard for describing all types of
information is Extensible Markup Language (XML). The second reason these services don’t
exist today is the complexity of developing the code necessary to integrate such services.
Microsoft has a vision in which selling services is the way of the future—that is, companies
will offer services and interested users can consume these services. Many services will be
free; others will be available through a subscription plan, and still others will be charged per
use. You can think of these services as the execution of some business logic. Here are
some examples of services:
§Validating a credit card purchase
§Getting directions from point A to point B
§Viewing a restaurant’s menu
§Booking a flight on an airline, a hotel room, or a rental car
§Updating photos in an online photo album
§Merging your calendar and your children’s calendars to plan a family vacation
§Paying a bill from a checking account
§Tracking a package being shipped to you
could go on and on with ideas for services that any company could implement. Without a
doubt, Microsoft will build some of these services and offer them in the near future. Other
companies (like yours) will also produce services, some of which might compete with
Microsoft in a free market.
So how do we get from where we are today to a world in which all these services are easily
available? And how do we produce applications—HTML-based or otherwise—that use and
combine these services to produce rich features for the user? For example, if restaurants
offered the service of retrieving their menu, an application could be written to query every
restaurant’s menu, search for a specific cuisine or dish, and then present only those
restaurants in the user’s own neighborhood in the application.
To create rich applications like these, businesses must offer a programmatic
interface to their business logic services. This programmatic interface must
be callable remotely using a network, like the Internet. This is what the
Microsoft .NET initiative is all about. Simply stated, the .NET initiative is all
about connecting information, people, and devices.
Let me explain it this way: Computers have peripherals—mouse, monitor, keyboard, digital
cameras, and scanners—connected to them. An operating system, such as Microsoft
In this new world, the services (or peripherals) are now connected to the Internet.
Developers want an easy way to access these services. Part of the Microsoft .NET initiative
is to provide this development platform. The following diagram shows an analogy. On the
left, Windows is the development platform that abstracts the hardware peripheral differences
from the application developer. On the right, the Microsoft .NET Framework is the
development platform that abstracts the XML Web service communication from the application developer.
What I’m trying to say is that this new world will happen whether Microsoft is a part of it or
not. Microsoft’s .NET initiative is all about making it really easy for developers to create and
access these services.
Today, we could all go write our own operating system and create our own custom Web
servers to listen and manually process SOAP requests if we wanted to, but it’s really hard
and would take a long time. Microsoft has taken on all this hard work for us, and we can just
leverage Microsoft’s efforts to greatly simplify our own development efforts. Now we, as
application developers, can concentrate and focus on our business logic and services,
leaving all the communication protocols and plumbing to Microsoft (who has a lot of
developers that just love to do this nitty-gritty stuff).