Click Here to Install Silverlight*
United StatesChange|All Microsoft Sites
Microsoft
PressPass - Information for Journalists 

Remarks by Bill Gates
Professional Developers Conference
Orlando, Fla., July 12, 2000

MR. GATES: Well, good morning. It's very exciting to have this group together and talk about the opportunities we all have with the .NET platform. At the heart of this is some very deep technology. In fact, a few weeks ago, I was sitting around saying, geez, how are we going to get the kind of press attention for what we're doing here. I mean, this is really kind of nuts and bolts, some of it. You know, things like garbage collection. And you could never get the press to really have headlines about garbage collection. But then, sure enough, Oracle solved the problem for us. They created the perfect contrast in terms of how they do garbage collection versus how we do garbage collection.

Well, so .NET speaks to the idea of having a platform that partly runs on the Internet, and also runs on a variety of devices. The PC is the primary device, it's the most important device in terms of its richness. The creativity software that you have there. But your information, your security, all the things that you want to have access to are available on any of these devices.

Now, where are we headed with this? I think it's pretty straightforward to say that we share a vision of a so-called "digital world," a world in which getting at photos, organizing them, sharing them, is very, very simple. Getting at the music that you're interested in, even paying for the music that you're interested in becomes very, very simple. Even video, which is perhaps the toughest data type because of the number of bits involved, and the speeds required, that should be something that you can move around, edit, if there's been a meeting that someone is in, it should be very easy to simply have a digital camera in that meeting and for people who didn't want to spend the time to be in the entire meeting, or weren't available, you should be able to take a clip, or even search that meeting and find the clip, and mail that around to someone just as a common thing so that people only spend time on the parts that they care about.

Even note taking is something that we want to move into digital form. There's a form factor that's part of this .NET generation, a form factor of the PC that we call the Tablet PC. And this will allow us to take that final frontier of your notes and actually get that in, directly into the digital world, and not have this break between where you're working with paper and you're working with the screen. Part of that is to make the screen incredibly readable, and we've done a lot of studies on this through our research groups to understand what kind of resolution, what kind of form factors are necessary where you have the immersive reading experience that paper can provide off of an LCD screen.

And working with partners in the hardware business, we will have prototypes of those Tablet PCs by the end of this year, and expect to see those out in the marketplace in the next couple of years. And it's really stunning when you show someone a screen that has that kind of readability how they think about it in a very different way. It's almost like how people eventually thought about PowerPoint versus using slides. But the effect this will have is far more dramatic than that.

In addition to all that media, we want to take the world of business and move it into a full digital form. And although there are all these numbers about e-commerce, and how it's exploding, if you really look into a lot of those so-called e-commerce transactions, you'll find that in most cases the matching of the buyer and the seller is not taking place because of the Internet. They found each other through some other means. Likewise, if the transaction they're engaged in has any surprises at all, for example, the product can't be configured the way it was originally ordered, or the timing isn't going to be quite right, or there's some big currency fluctuation that might affect how the business is done, people aren't using digital approaches to deal with the whole transaction. For all those things I listed, they'll just pick up the phone and go outside that Internet connection. And having those two different worlds, the non-digital and the digital way of doing business, leads to all sorts of inefficiencies.

But getting it to the point where the full bill, the customer service, the complete record of the interaction, and dealing with those events can be done online, that requires a much stronger infrastructure. It requires things like BizTalk where you can see visually how you're dealing with all the exceptional cases, and even take one of those process flow diagrams and ask, you know, for this transaction where are we, or how many orders have come through the various points on that diagram. So, for somebody who is not technical, they can see what's going on with the process, have very rich views of the process, and work with it in a purely digital form.

The revolution that this digital world will bring is far greater than I think most people anticipated. For example, office work can be so much more efficient. People's expectations about how knowledge workers get things done are way lower than they should be. Their creativity, their ability to come up with new ideas, to reach out to partners, this can be improved by an order of magnitude. The time they spend in meetings, the way that they renew their skills, the way that they find that somebody else in the company has faced a similar problem before, all of those things can be improved because of having a digital framework. Even where we are today with the PC, with Office, with the networks, with the Internet, all of those things are just scratching the surface of this digital world. But the applications have to be dramatically easier to write.

If you go to a Web site today, a corporate Web site, a startup Web site, and look at the kind of code they have, the files, the difficulty of maintaining those things, the difficulty of operating the Web sites, it simply isn't good enough for the expectations that the world has for all these systems. And so it was really over three years ago that we sat back and said, what kind of technical framework would allow these applications to be easy to write? And what kind of framework would span all the different devices that are involved here? And that's where the .NET vision arose.

It's similar in many ways to the original vision of Microsoft, that's now 25 years ago, a long, long time ago, but it was a pretty simple idea. It was very focused around the PC. The idea was to get millions of PCs out there, so that there could be a thriving software industry. When Microsoft was founded, there were less people in the software industry than are here in this room this morning. It was a tiny, tiny business, because it was about very high-priced, low volume packages sold onto mainframes. But our vision was that by having that large install base, we could have a vibrant software industry. Even we didn't expect the explosion that we were able to foster by having PCs from different manufacturers be completely compatible. It started with our Basic, moved in 1981 to MS-DOS. Since then, it's been the Windows platform that's given people this choice of hardware, choice of an incredible range of applications, and it was all about empowerment. It only took place because we had a philosophy of low price, of high volumes, and the virtuous cycle of the more volume we got, the more software we got, the more the scale economics will have the prices come down, that led to the PC industry. And it was that whole install base of hundreds of millions of PCs that allowed global connectivity exploding on the Internet to really come into the mainstream in a big way.

Well, this PC era is something that's getting incredible attention. When Microsoft called together a group of CEOs, it's amazing that they come, they take the time, and it's very top of mind for them, what are they doing with their knowledge workers, what are they doing with their Web sites, how do they fit into this new world where buyers and sellers find each other and work in a digital fashion.

In the beginning of the PC, it was something that only a few people understood, and we had to be evangelical about what we could create out of it. Today, any time you pick up a magazine or turn on the TV, they're talking about the latest startup. Sometimes it goes pretty far, you can't even get away from technology being in the media.

Let's go ahead and take a look, and see how everybody is talking about technology.

(Video shown.)

MR. GATES: So in the last 25 years technology has gotten a lot of coverage, but it's clear there's a lot more that we can do, whether it's ease of use, making things happen automatically, or simply conquering these new scenarios. But, the idea of a platform, the ability to write applications that work across devices from different manufacturers, the ability to have tools that are specifically designed for the new class of applications that's, if anything, more important than ever. So here what we have is the platform moving to be not only the PC, but really the Internet, and not the Internet as we think of it as a world of simply browsing, where presentation is all that's really taking place, rather it's the Internet as a programming environment, using XML as the lingua franca to exchange information between PCs, and all the other devices.

Software itself is really transformed by this, because the way that it's updated makes it much more of a service than the product that it's been in the past. That's one of those things that's very visible today that IT departments and even individual end users are very involved in, that's just got to disappear. Keeping the rich run times on the smart devices up to date is something that simply should happen without intervention.

These devices will be smart. Now, this is in contradiction to some other people's vision that we'll go back to having dumb terminals, because we'll have things like speech and handwriting, and because any of the information you're dealing with the system will automatically try to make available related information. The intelligence of the device will be working on your behalf. And with Moore's Law, the cost of having that very high intelligence will be extremely small. In fact, as we look at new devices today, like the tablet device, or having a screen in your house that is just sitting there to look at photos, it's not the intelligence that's expensive, what's expensive is the display and the network connectivity that you need for that device. So taking those smarts and making them work without user involvement is really a challenge of this next generation of software.

The user experience can be improved dramatically. It's partly having the natural interface, it's partly having your information arrive for you automatically, and it's partly controlling when you're notified of things, so that the system is using your time in the most effective way. And that's really a very new vision, it's quite different than simply getting your file system done in a very graphical fashion.

So .NET is an evolution. And there's a file system in the Windows platform, there will be in the .NET world, there's a store, it's richer than the file system, it's an XML based store that's out on the Internet. And all the server information, or information on PCs, or other devices, logically are replicas of a subset of that master information stored in the cloud in that XML store. The user interface environment of Windows was a very important part of the platform, things like the message loop, or menu bars, and how those things were done. This next generation, those applications are actually built on top of the browser. The browser becomes the user interface foundation, and it has to be a lot richer in order that even the most demanding applications, like the modules in Microsoft Office, over time can move over and be hosted in that environment, and no longer have the boundary between those different applications, because the browser becomes that universal canvas.

And so there's many elements in this .NET platform, authentication, scheduling, storage, security, there's a lot of very powerful demands people have against this platform, in terms of how does it preserve privacy. But, the role that the platform played in the past and the role it plays in the future is absolutely the same. The things that are built on top will probably be relabeled. Today we have a world of applications and Web sites and we think of those as two different worlds. With .NET those become one thing. Some Web sites will be richer applications than others, but essentially everything that was an application becomes a Web site.

That means -- that doesn't mean that the code doesn't come down onto the smart client, in fact, quite the opposite. The really successful Web sites will have code that comes down and integrates in with the creativity software that runs on that PC. But, we'll relabel those to be services instead of applications. So this is a big step. People have said, well, isn't there an analogy here to 1995, 1995 was a big turning point, because the Internet was achieving critical mass, there were a lot of companies founded around that. We had just shipped Windows 95, we were moving the industry up to 32-bit. And we held an event in late 1995 where we announced Internet Explorer, we announced our whole strategy around HTML and the things we were doing. And very much to people's surprise, over the four-and-a-half years since then the work that we've done has really allowed the Windows platform to continue to be at the center of what everybody is doing, the number of servers out there, the percentage of the clients, because we brought browsing to the Windows environment.

But, bringing browsing to the Windows environment was not a profound change to the development model. There was browsing, and there were Windows applications. And sure, the clipboard connected them together, but they were not the same. In the .NET environment we take the Internet and we move it into the mainstream, so that your programming, all your programming involves reaching out to the Internet, to call other services, to exchange data, and to reach out to the storage that will always be available.

Well, there's a road map here in terms of how we get .NET capabilities into our products. The products you've been hearing the most about at the PDC is Visual Studio, because that's the starting point, the framework that we've got there, the rich runtime around it that's the starting point to these rich .NET applications. The next two releases of Windows are where you'll see .NET really built into the user interface. The Whistler release of Windows is the next big one that comes out. That's next year in the second half, and there's really two things that are very exciting there. One is that we get the entire Windows marketplace moved over to the NT technology. So it will be Windows 2000 Professional at the high end, Windows 2000 Personal on the consumer machine. And so whether it's device drivers, reliability, or the richness of security in the file system, that is there for every user of a new version of Windows.

(Applause.)

MR. GATES: We've all been waiting for that. It's hard to transition people from an entire code base and get to this new code base, but for us internally and for all of you I think that will help a lot for the kind of testing and quality that we need to do even better on. But, Whistler is also where you'll first start to see .NET incorporated. When you have files on Whistler you'll be able to save them out to a Microsoft community site, simply by clicking on an icon. So the store in the cloud will be integrated into that user interface. When you create a password on your Windows system, we'll make it trivial to have a Passport created for you, so you can be authenticated against all the Web sites that use that Passport authentication.

The browser will be more central to all the user interface that's in the operating system. So Whistler will be a major release, not in the sense that Windows 2000 was, but in the sense of this road map that we're heading down. The release that comes after that, which has been code-named Blackcomb, that's where you will see the most profound change in the user interface. We'll move to have a pervasive typing line that will recognize the sentence that you're typing in. This is where we will really assume that the system has an information agent that's working on your behalf, and filtering all the changes that take place.

Blackcomb will not bring changes in the programming model. The new programming model is what you're seeing here. This is the programming model that we'll simply be building on for the next five or six years. A change like what you've witnessed with what goes on in the .NET framework can only take place every five or six years. This framework is a much cleaner framework than we've ever had before, but it's also ready to connect up to this XML world that these new Windows releases will usher in.

One of the milestones in the Windows road map is getting from 32-bit to 64-bit. Now, many of the people here worked with us in the transition from 16-bit to 32-bit, and that was a tough transition, because the 16-bit memory model that Intel had blessed us with was not a sort of natural, linear addressing model, it was very segment oriented, and there were some tricky things that that forced on software development. So going from 16-bit to 32-bit was a dramatic reshaping of the memory model. Now, fortunately, as we go from 32-bit to 64-bit, that's not changing at all, you simply take 32-bit pointers, they become 64-bit pointers.

There is a new instruction set here. It's an instruction set that Intel and its partners like HP have poured billions of dollars into. And Microsoft has been very supportive of this effort every step of the way. We helped in giving feedback, that's had a real impact. We're enthusiastic about this first generation of hardware that will be coming out before the end of the year. And today's a real milestone in this effort. Some of you may have seen that we were demonstrating Itanium systems last night. Now what we're announcing today is that for all of you who get Itanium development systems we will provide the Windows software development kit for those systems. And so we're ready to have developers begin their work.

Taking a 32-bit application and porting it to the 64-bit Itanium you'll find is dramatically easier than 16-bit to 32-bit. We've done a lot of work on the compiler, we've conflated special things where you'll want to decide which data structures you leave 32-bit, which one's you'll move up to 64-bit. So that's a very exciting piece of work. The importance of the 64-bit environment will build over time. It will start up on the servers, where you'll want lots and lots of physical memory to do massive of caching for databases, for Web sites. But, then it will find its way into a very high percentage of the servers, and also down onto the desktop as well, particularly the very demanding so-called workstation type desktops.

One of the key milestones for Microsoft is showing the world that this high volume Windows-based platform can scale beyond even the lower volume expensive platform, not only scale, but also have reliability that goes beyond even what people have expected out of mainframes. That's very critical to us, because this whole .NET platform, the transaction volumes that we'll be dealing with will really be unprecedented. And so we have been working to make sure that our Web benchmarks, our mail benchmarks, every one of those is not just the best price performance, but the best absolute performance. And, in fact, before this year in every category except database we did have the best performance. And so we've been very focused on that database performance.

Just last week we had an exciting development there, which was the certification of a new world's record TPC-C benchmark. And what that was, it was a benchmark that was over 440,000 transactions a minute, and this over three times greater than any non-Windows system has ever been able to do. So, in absolutes, that is a real breakthrough. And what's it all about? It's about the philosophy of software scale that you heard Dave Reed talk about yesterday afternoon. Software scale is where you get no limits. Software scale is where you get no single point of failure. You can see here we've shown both the absolutely performance, and this was DB2 running on Windows that achieved this benchmark.

We've also done benchmarks with SQL Server. Due to a technicality, we're having to re-run those benchmarks, and we'll have results to report that will put SQL Server very much in the top two benchmarks worldwide, we feel, in the next couple of months here. And so, the Windows platform, our goal here is very simple, we'll have three or four benchmarks that show in absolutes, there are no limitations to our platform, even when it's going head-to-head with Solaris or mainframes, or for anything else. And so, our dedication to making sure this is the most scalable environment is one that I wanted to reiterate and share the incredible progress that we've had there.

Microsoft's over $3 billion here in R&D that we spend really has a very long-term horizon to it. We track all the different parts of the system and how we're pushing those forward. One of the areas that we've made rapid progress in since the first release of the browser is Internet Explorer itself, and today is also an important day for Internet Explorer. Right as I click this slide to come up, we're releasing onto the Web the latest version. This is Version 5.5, and it's really a lot of refinements, refinements in speed, refinements in terms of some of the user features. Most interestingly, perhaps, the refinements in the way that you can extend the browser and let it do rich things. We really have a focus here on making it possible to get rich interactivity on top of the browser, because as I said the browser is moving to be the presentation component of the operating system.

Probably the best way to understand what we've done here is to get somebody from the product group to come out and put it through its paces. And so it's very exciting that we've got Michael Wallent, who is the product unit manager for IE, here to show us what he and his group have done with Internet Explorer 5.5.

Welcome, Michael.

MR. WALLENT: Thank you, Bill. Good morning.

(Applause.)

MR. WALLENT: Well, thank you. Good morning. It's a very exciting day for us. We're very, very, very excited to launch Internet Explorer 5.5 here at the PDC, because Internet Explorer helps .NET deliver the richness of Windows to the Web. And also the other thing to remember is, there's a big old "E" in the middle of .NET. So we've seen more and more Web sites over the past couple of years start to take advantage of the Internet Explorer to create a really rich user experience. A great example of this can be found on a site called Halfbrain. Halfbrain has built Excel-like spreadsheet functionality essentially using HTML and script, very, very powerful stuff.

Another example could be found on Yahoo, where they built a rich email editing solution on top of this Internet Explorer platform. So, we've also taken advantage of Internet Explorer internally in our own Microsoft applications. Outlook Web Access, which will be out very shortly, actually is a complete email solution. Looks exactly like Outlook, written just with HTML and script, incredibly powerful, something we couldn't imagine five years ago, when you think about the presentation capabilities of HTML 3.2 and how far we've gone beyond that.

One of the key technologies that kind of weaves its way through all of these applications is editing. HTML editing is one of the first things that people go to or think about when they want to deliver richness on the Web. And I'd like to show you an example of how Hotmail actually does that.

So, I've logged into my Hotmail account, and gone to Compose A Message. Now, what we have down here is, I've clicked on the rich text format check box, and I've entered in some rich HTML. This is all done with HTML and script. Actually, the amount of script required on this page is about 20 lines of script, and you get immediate rich HTML editing. I can go ahead, you know, and type away with full HTML support. All the UI here, all this HTML, I can flex some content, make it bold, make it italic, make it underlined, do all the cool things that you've seen HTML and dynamic HTML and Internet Explorer do before.

Another couple of things to point out about editing support in Internet Explorer 5.5, we've spent a tremendous amount of time improving that functionality. We've actually gone so far as to take the entire editing functionality in the browser and separate it into a separate .DLL, and all of the interfaces that the editing service uses to talk to the primary rendering engine are actually public interfaces. What this means is that all the richness you see in editing, and if you actually go to our booth, to the Internet Explorer 5.5 theater, you can see a lot of demonstrations of this, but all of that code, you can actually re-purpose yourself to create a very custom rich editing experience that's tailored to your particular application.

So, the other thing I wanted to show here was print preview. Print preview was one of the number one requested features that we've had from all of you going on about two years. And I guess we finally got around to implementing it. One thing I want to note when we go to print preview for this page is that we believe that we should eat our own dog food. Dog food is a really important concept at Microsoft. So this dialogue here, this print preview, and you can notice I can zoom in, I can zoom out. I can change the page set up on the fly to make it from portrait to landscape. You'll notice that I'm actually zooming HTML. Well, we actually built zoom as a feature into the platform so we could implement this dialogue just in HTML and script, all the flowing ability, all the clipping ability, all that is actually just done in HTML and available to you as a developer when you write on top of Internet Explorer.

(Applause.)

MR. WALLENT: Thank you.

So, we've seen applications be built on top of Internet Explorer with HTML and script. And for those of you who had the wonderful experience to do that, you end up with these relatively large pages, two to three thousand lines of HTML plus script, and it's kind of hard to follow, and it's not really easy to reuse. Reusing components turns out to be pretty difficult. And having somebody use functionality in the product when they don't know anything about the script you've written tends to be hard.

So, back in Internet Explorer 5, we developed the technology called behaviors that let you build custom tags, custom XML tags, to put onto the page. The benefit here is that the developer who writes the component, and the developer who uses the component don't really need to talk a lot. You just put the component on the page, and it just works in a very intuitive fashion. You don't have to worry about name/space issues, and other collision issues with inserting and sharing scripts between pages.

For Internet Explorer 5.5, we've gone a step further and really enhanced that component model to make it possible to build even more powerful components. One example of this technology that I'll show is what we call view linking. View linking very simply is a technology to provide complete encapsulation for these HTML components. Another key technology for developers who don't want to build behaviors out of HTML and script who want to write some binary behaviors, and actually take the browser beyond what it can do today, maybe to build vector graphics functionality, or high-end functionality is, we've exposed a set of public rendering interfaces. So, if you want to write directly to DirectX or directly to GDI to get the right experience for your tags, you can now do that.

Now, the key things about, well, why would you do this versus building an ActiveX control or a Java applet. If you think about an ActiveX control or Java applet is an island or a black box, everything inside of it, it owns. If you want to build a control that knows how to display Japanese text, Japanese vertical text, one of the enhancements we've made for Internet Explorer 5, you have to write all that code yourself. Not so when you build the behavior. When you build a behavior, if you'd like to display vertical Japanese text font links, it just works. The amount of code you have to write, zero lines of code.

So, let's check out one example of how this is done. We've actually worked with Macromedia, who actually builds Flash, to build a set of behaviors with Flash. And they've provided a set for the demos here today, and we thank them very much for that. So, let's take a look at an example that they have built.

So, we've got the mouse moving. Mouse movement is an important part of browsing. Okay, so here is Skytricks Human Resources Application. It might be something you'd see in your corporate intranet, you know, the way you go to get your information about your 401(k) information, and the org chart, and kind of what you need to do to be an employee of the company.

So, what I want to show is two examples here of behavior usage. One is how simple it is to use a Flash behavior kind of built on top of Internet Explorer to do things that most developers wouldn't really understand how to do. And the second is, because we've built this as a behavior, I'll show how interacting with that, and working with that just feels natural and kind of working with any other elements on the page. Let's take a look at the first example. We'll go to my 401(k) allocation page. So, I see a pie chart has all my 401(k) allocation broken out with the percentages. And this is actually a Flash behavior doing this rendering. So, if we take a look at the source for this, what you'd see in a typical scenario, kind of before, is you'd see an object tag pointing to a Shockwave file, and the developer of the Shockwave file would have to use the Macromedia tool set to actually do all the work there. It would be really hard to reuse that in multiple situations. But, instead, here we see a new tag, the MM/pie chart tag, very intuitive. I built a pie chart, I have a pie chart tag. And I have a set of parameters that give me the appropriate values that I can plug in and use. So really easy to author, really easy to reuse. Something you can give to a designer and say, hey, if you want this experience, this is how you drop it onto the site.

Now, note that while this information -- another benefit here is that while here we've directly coded in the parameters, because this is integrated with the whole entire browsing platform, we can actually be driving this from XML in the same way that we can drive arbitrary other content from XML as well, giving true .NET integration.

Let's go back, we'll go to the next example. So, we'll go to head count. So here's another graphic. So this shows me a nice graphic, gives me the head count allocations that my company projected over the next 18 months. As I mouse over I get interesting graphical effects telling me what month. And I spread it out so each quarter is in a different color.

Down below, we have some HTML components, just a select, a combo box, an input field where I can type in values, and a button. So, what I'd like to do is that this last month, August of 2001, it's currently showing that our head count is at 45. I think that's probably a little bit high. So, I'm going to go down to the bottom, type in a new number, let's say 35, and hit change. Now, it's not going to be very dramatic because it's just simple. What's going to happen is, that bar you see on the right is just going to drop down very quickly. A click change, try that again. August 2000, excellent audience for pointing out my mistake. We will choose August 2001, put in 30, hit change, and it changed.

(Applause.)

MR. WALLENT: let's check out how that works. So, once again, here's the source for the head count. We see the MM/bar graph tag with the appropriate parameters. Once again, that could be data driven from XML as well. And then I have my HTML select, the selected month. And then down below in my button, let's see how that works. So, in my on click event, I say, headcount.all, which essentially selects the appropriate parameter, and it takes the value that I put into the input and just pushes it into the parameter. This works like changing any other HTML property on the page. You don't know if underneath it's actually Flash and behaviors doing the work. It's completely encapsulated, and it's hidden so it just works the way you'd expect.

So, we've used this same technology to allow developers to build rich Web experiences using ASP+. So the scenario is that you go into your ASP+ authoring environment, Visual Studio, use some new rich components, plop them down, and when you hit that page with an HTML 3.2 browser, you'll get an HTML 3.2 experience, roundtripping to the server, all the events handled on the server, lots of page roundtrips.

However, without reauthoring the page at all, if you hit that same page with a rich browser like Internet Explorer 5.5, you get a rich experience, because the server emits behaviors that implement the rich Windows functionality on the client.

Let's take a look at that. So, first, we're going to check out this page in Netscape, Netscape 4.72. We're going to go to the bookmark. And the example I have here is a very Outlook Bar oriented component. So I go to this, I see here's my Outlook Bar, I have people places and things, I can click on these images, essentially open up that image. So, if I click on places, it essentially roundtrips to the server, the whole page flashes. If I click on things, it roundtrips to the server, the whole page flashes. Not super-interactive, but you know it gets the point across. If I had other content on the page, it would also be flashing and getting that roundtrip every time.

If I go to the same example running in Internet Explorer, right, I see a component. Now what's happening here is that instead of some HTML 3.2 with all the content coming down onto the client, I get an Outlook Bar behavior. So, if I looked at the source for this page, I would see the Outlook Bar behavior with the appropriate parameters. Notice that I get immediate mouse over effects. When I click on places, it immediately switches. It's not roundtripping to the server. The events are being handled on the client by this control. The server is only sending the minor amount of data required essentially as I navigate to the next page. But this experience gives you a rich, interactive, immediate feedback experience that's the hallmark of a rich Windows application that our customers have come to expect.

So, if you'd like to learn more about how to build these components, there's a presentation actually in this room on Friday morning at 8:00 a.m. I know it's early, I'm not sure there will be a band either at 8:00 to wake up everybody, but it's called leveraging Internet Explorer 5.5 from ASP server controls. And one of the gentlemen on my team, Francis Hogle, is giving that presentation, and I think he'll give you lots of good information as to how to build components just like this.

So, all of the behaviors we've seen so far are kind of composite behaviors. They're built out of HTML and script to create that rich experience that you might want. But let's say you wanted to go further than what the browser can already do. You want to render your own bits, because you're building those high performance controls.

So, let's look at something that Macromedia has done. They've actually gone ahead and built a prototype version of Flash that utilizes these rendering behaviors. Now, the benefit here is that I can get even richer integration with the browser, I can get nice layering and visual effects that I can't get just when I put ActiveX controls on the page.

Let me register the new Flash component. I think all of you are probably familiar with this method, the dreaded batch file reg server. I'm going to unregister Flash 4 and register the prototype. There we go. People were concerned that you guys wouldn't understand what I was doing. But I said, no, they're developers, they'll understand reg server, because we've all done it about a billion times. Woohoo for reg server.

Okay. Let's check it out. So, now we're going to go to the rendering version of the Skytricks page. Now, right away, you see it's just a little bit different. So we have Mr. Coffeeman from Seattle, who is ready to take a drink as soon as we interact with the page. You all see Mr. Coffeeman? So, as I'm mousing over the HTML, I'm getting eventing to my behavior, my rendering behavior, and getting rich interaction. You'll notice the rendering behavior is underneath the content, and it feels really integrated. So, I mentioned before about XML integration, here's a good example of that XML integration. Here's my very short, there's only three people in this company, oops, this is actually coming from an XML data source on a server, so I get the people I might want to look up in the phone list.

Now, Flash doesn't know anything about XML, no idea, but we're getting the functionality integrated essentially for free because they've built their component as a rendering behavior. So, I click on John Smith, I click on look up, and I immediately get the John Smith, I get the HTML content integrated and data bound to XML kind of integrated with some cool Flash stuff as well. So your designers can create the perfect experience, but you can get the power of the platform with the great XML integration that we have to deliver that .NET experience.

Let's take a look for the source for this, and how this would be done. So I very simply have my XML data island up top pointing to my XML data source. I then have my Macromedia Flash tag, and maximize this, and it points to the Flash file that actually does a lot of the rendering in the background, and then inside of the Flash tag, I actually have my parameter that are actually data bounded. That's actually where you saw the name and the address and the phone number, and all that, it's actually getting it from the XML. Who is doing this work? The browser is doing this work. How much code did Macromedia have to write to take advantage of this? Zero.

Just one more thing I want to show on this. Now, we've seen how we can get XML integration that integrates data. We also can get really good visual integration as well. So I want to show this last example. So, once again, this is a Macromedia Flash tag, written as a behavior wrapped around some HTML content. So it's just regular HTML content, there's images, there's text and there are some anchors. So if I click on one of these anchors what's going to happen is that I'm going to all of a sudden integrate some Flash animation, but we're going to see that animation done in a very interesting way. I'm not navigating to a page, or going to a different area, it's actually brought up directly over the text. It's alpha blended in, in a really nice way. It looks really sweet, but the cool thing is the content in the background, the amount of understanding that the Macromedia Flash component has about that is zero. All that will we render for you.

(Applause.)

MR. WALLENT: Thank you.

So just to close, we've seen a lot, and I've talked a lot about Macromedia and the great work they've done and we applaud them for that work. But, you can do all of this, as well. These are all public APIs that are documented and ready for you to use at the Web workshop at msdn.microsoft.com/workshop, very easy to do. You can go to the booth in the theater that we have in the exhibition hall and get the great code examples that you can find out exactly how to do this and make your applications great. You can come to Francis' talk on Friday morning at 8:00 a.m. to figure out how to build these Visual Studio components that work exceptionally well. I have a special surprise though, before you leave. When you leave today you'll actually get Internet Explorer 5.5 CDs.

Bill mentioned before I came out that we're ready to download, it will go live at 10:40 Eastern Daylight Time for download, bring the Web to its knees again, we love to do that when people download our products. But, for you, it's here, we thought all these guys are going to have to dial in on that 28.8 line, it's going to be a pain. So we wanted to give you the special blue CD with Internet Explorer 5.5 and other Internet technologies available. When you walk out you'll be handed one of these and you can go install it and make sure it works. You can file bug reports at our theater booth. I don't expect anybody to have to do that.

(Applause.)

MR. WALLENT: So just to close, Internet Explorer 5.5 really builds on the powerful client development platform of Internet Explorer to make it even easier to bring the rich Windows functionality to the .NET experience. I want to thank you for you time, and thank Bill for having us up today and announcing IE 5.5, and say good day.

(Applause.)

MR. GATES: One of the things I wanted to talk about is what sort of breakthroughs in hardware we're assuming in the .NET platform. When we introduced Windows there was a huge assumption that the processor speed, graphics speed, and memory sizes would continue to rise. In fact, a lot of the skepticism about the platform was that the machines of that time were really pushed to the limit. Well here we have a hardware industry moving at full speed, and providing incredible opportunities for us to run .NET on new devices.

There is an assumption that bandwidth is going to continue to go up, that we're going to have broadband connections to businesses, and over time to consumers, as well. There's an assumption that wireless is very important. You'll see in a lot of the .NET scenarios, like the Steve Masters one you saw first thing this morning, that the idea of having a small screen device connected to wireless, or even your PC, the full screen device connected to wireless, that will just be commonplace, and a lot of the access will take place over that wireless network. The investment levels that are taking place to make sure there's pervasive wireless are quite incredible.

And it's important to consider two forms of wireless, there's the wireless that you can connect up to wherever you go, where you pay per minute charges, but there will also be the wireless that's available inside your home or your place of work, where you won't pay per minute charges, and yet the bandwidth and the capabilities will be such that even video will be available over that wireless network. In some ways that will be even more profound, because of the zero marginal cost, and not requiring any new wires. At Microsoft, as we put in that wireless network, people are carrying their PCs around, using them in a different way than before we had that connected up.

Microsoft is very focused on privacy and security as part of this new platform. We think that one of the weak links in security today is the user password, the fact that it can be guessed, that it's written down many places. And we have to overcome that, either through the use of a smart card or some biometric authentication. I would think most likely smart card, either contact-less or the kind you'll swipe through the keyboard will be a standard feature, and that the infrastructure support we have for that now should allow that to rise up to critical mass.

The PC itself will be dramatically changed. The performance, of course, will continue to go up and that's very important for the type of natural interface and automatic recognition that we have in mind in .NET. We'll also see the PC as very much a real time communications platform. There's been an explosion of instant messaging. There are a lot of people who have discovered Net Meeting as a feature in Windows and use that very effectively, but that's really only the beginning of real time communication. We're going to make that such a standard thing, and so easy to move from your asynchronous to your synchronous communications, and edit documents together, and share videos as part of that, that a very high percentage of time on the PC will be this new category of real time connections.

Part of that is that we'll have the microphone, a very high quality microphone with lots of software support built into the PC and a camera, as well, so enabling it for those scenarios without having to go out and get any type of add on. I've talked a little bit about the Tablet PC, but the point about the screen, and flat screens goes beyond just the Tablet PC. Even on your desk you'll be using mostly a flat screen, and in some cases it will be very large, that size of the desk itself. When you have that kind of flat screen, the ability to do direct manipulation, to point at things, to annotate things, to delete things, to take something with a voice note, that becomes extremely natural even better than what we've had with CRTs.

The small screen devices, and the large screen PCs will be complementary to each other. You won't be doing your homework, or your tax return, or your latest memo, or analyzing your sales results on the small screen device. But, you will have that wherever you go, so seeing a messaging, looking at a schedule, looking at a map, those things will be very common on the small screen device. The market for these devices will not explode without the .NET platform, because the manual work of moving your preferences around, and setting these different things up, it's just too hard unless you can talk to the platform any time you get a new device or connect up with a new carrier, and have all your information and customization come down as is appropriate to that device, its capabilities and its screen size.

Finally, of course, in the datacenters we'll be having these software scaled, 64-bit Windows-based systems, that will make people able to rely on all these connections without even thinking about the fact that there's an infrastructure back there, in the same way that they rely on electricity or water as very reliable infrastructures today.

From the user's point of view a lot of it will be far more communications-centric, the fact that you can access your information anywhere, but also that when anything changes, somebody wants to page you, wants to send you a piece of mail, a stock price changes a certain amount, a flight is delayed, you'll be able to set up your rules for when those things are worth interrupting you. And at different times of day on different devices those rules will vary. But, the system will be able to infer quite a bit. It will see if you've been active on your PC. It will be able to look at your schedule, and so you'll be back in control. This phenomena that the latest email that comes in is what grabs your attention, or that you get all this junk mail, or that you have to go out to various sites to see what might be new and interesting, that can be changed and this agent will be very, very programmable. Developer applications will provide information into it, so that users get what they want there.

Annotations will be very pervasive in this environment, being able to search for those, see which of those come in, have rich views of those things, really goes back to some of the original vision about what hypertext could be and collaboration around hypertext. As I've said, although the keyboard continues to be important, speech input and handwriting will be equally important, and making it so that people can set their applications up, so that they can bind applications capabilities to the spoken sentences, that's part of the extended .NET framework that will make it easy to connect up the natural interface.

For developers there are some new things that come in this era. We showed the idea of being able to diagram out exactly how your applications work across the Internet with other applications. That type of orchestration environment, when combined with the XML schema mapping that we'll have, the XML runtime type capabilities, mean that writing the kind of glue software that makes two systems talk to each other will be an order of magnitude easier than it's been in the past. In the same way that report presentation type applications became very straightforward, no longer were a big issue in terms of application backlog. Here glue software is something that the XML environment, along with visual orchestration will really reduce the percentage of consulting and resources that have to go into that layer, freeing up those capabilities to do richer applications that are being demanded.

The idea that the platform is something that runs on a client with this intelligence, connected up to a corporate server that connects up to the services on the Internet, that three level platform will change how developers think of writing their applications. The applications will be deployed, and completely up to date simply using the infrastructure. In fact, any application you write, there will be services out there that you just make one click and, boom, it's hostable, including making sure that the way it uses resources don't interfere with other applications that might be hosted on the same server, or on the same services environment.

One thing that we've talked about, and is a very important issue here, is the openness of what we're doing with this framework. There's no single language that covers people's future needs. There's no single language that people are going to convert all their existing application code into. No language is going to stand still. Simply the arrival of XML itself is a milestone that for any vibrant language you should have lots of people proposing extensions in very open ways for many companies to be involved in making sure those extensions get done.

And so we're language neutral. Every language that you're interested in, we will make sure that either we or a third party have a great development connection to this framework for that kind of development. And so the extensibility we put in is something that we've actually been talking with third parties about to make sure we've got that right. And we picked a very diverse set of languages to talk to people about to make sure that we weren't missing something so that no matter what happens in this world of invention of languages and so many other levels, that the .NET framework would be able to encompass that.

And so we've got over 100 third party code partners that we've been talking to. One of the most interesting is a company called ISE, and I'm really excited about the stuff they're doing. In fact, today it's great that we've got Dr. Bertrand Meyer here. He's not only involved in some very exciting language things, he's a very global person, being a professor in Australia, he's originally from Europe, he's got this exciting company that's actually based in California.

So here to talk a little bit about how he sees the .NET framework is the president if ISE, Dr. Bertrand Meyer. Let's welcome him.

(Applause.)

MR. MEYER: Good morning. Good morning, Bill, how are you?

MR. MEYER: Fine.

The reason I'm here is that my company, ISE, has had the privilege of working with Microsoft for the past year to make a version of our tool and our language available on the .NET framework. It's ready for release today, not an announcement, a release of the PEC, and we're tremendously excited about the .NET technology. What we are best known for, as Bill just recalled, is the programming language Eiffel, the associated software engineering method, and a supporting development environment, ISE Eiffel. Now, I'm not going to tell you that much about Eiffel, because there's a session about it this afternoon at 4:30, but one thing we have really become, I think, pretty good at over the years is to port it to a number of different platforms, and to interface it with all kind of languages and environments.

Now, interfacing, this is the key word in today's enterprise world. Beyond a certain size there is no such thing as a single language solution, even if you have the best language in the world, and I'll just let you figure out what that might be, you have to recognize that your customers will want to combine it with bits and pieces from other approaches. This is a multi-language world. Now, what .NET framework achieves, especially with its common language runtime, is completely unprecedented in the industry. It's letting everyone interface with everyone else at essentially zero cost. I know this sounds too good to be true, but that is what the common language runtime gives you.

So, for example, if you're an Eiffel programmer and you see this great C-Sharp class library, this nifty Visual Basic control, this great COBOL module that you'd like to use in your application, you can not only access them directly, without any idea or without any -- (inaudible) -- of any kind, but you can inherit from it in your own classes, inheritance across languages, total interoperability. Now, people have been trying to come up with interoperability mechanisms for quiet some time. COM went a long way -- (inaudible) -- but what you get with .NET is at a different level altogether. It's really a dream come true for IT managers faced with tons of legacy code, with lots of different languages and environments. It's a fantastic opportunity for Eiffel, and for everyone else, particularly in combination with all the Internet and Web mechanisms provided by the .NET technology.

So, for example, we got the ASP-plus only a few weeks ago, but in less than a week we put together a substantial e-commerce application with just a bit of HTML, the business logic is entirely written in Eiffel, and there's no CGI, no scripting, no glue of any kind. And what's even better is that you change a couple of things and you have a client server application, not an application running in Web mode, in a Web browser, but in client server, at almost no change. What we're showing in our talk, which is this afternoon at 4:30, it's in room, I think, 312, and I hope you can join us to see the kind of technology that is already available today in the .NET technology. We also have a booth at the exhibition, it's right after the entrance on your right, so we're hard to miss. And I hope you can stop by and see what is already available with this technology running today.

Another aspect that's becoming ever more critical in the years to come is reliability. For companies, what Web means is that basically you're putting your whole business out in the street for the world to behold and to use. But then, unreliable software can spell disaster.

Eiffel has this technique known as design by contracts that lets you produce applications, robust applications, made of modules that communicate with each other on the basis of precise -- (inaudible) -- or mutual obligations and benefits, contracts, like business contracts between companies. .NET is the first environment that takes similar concerns to heart by letting you produce so-called verified code. One of the things we did in this project was to produce, in collaboration with Monash University, a contract wizard, which lets you take any component in the .NET framework at the generated -- (inaudible) -- level and equip it after the fact with contacts, preconditions, post-condition environments, the kinds of things that we're talking about in our talk. And the beauty of it is that it doesn't affect the source code. It works on the generated code. So it can be a module that comes from in language with or without contracts. It can be any of the languages mentioned in Bill's last slide, it could be C-Sharp, it could be C++, it could be Perl, it could be Python, and you could still work on it afterwards. I do not know of any environment today where we could have done something of that kind. It's just amazing.

Now, one more thing that I want to mention is how pleasant it's been to work with Microsoft over the past year. The support, the enthusiasm has just been tremendous. At some point, we mentioned in passing that some of the problems that we are facing in compiling Eiffel for the .NET platform must have come up in compiling C++ for that same platform. Well, even though that was a rather hectic time in the project for everyone, before we knew it we found ourselves sitting in a room with the C++ compiler group for a lunch discussion session, no questions about it. The openness, the willingness to help has just been incredible.

So, I believe this technology is visionary. I think it is going to change the way we'll write software. It's just in time for the age of the Web and Internet appliances. I believe that our Eiffel environment is the ideal way to program it, especially for mission critical applications, the kind of space we're in, you know, space, the defense, the e-commerce, financial applications, healthcare, and so on. And I'm really proud that we have been part of this historic introduction.

MR. GATES: Thank you.

(Applause.)

MR. GATES: Well, Eiffel is a very innovative language. If you took the world of languages and categorized them in different ways, you probably wouldn't find COBOL and Eiffel all that close together. But I have to admit, I've written more COBOL in my life than Eiffel. In fact, I wrote a very large payroll program when I was young, and I couldn't get any computer time. The only way that they would let me use the PDP-10, which was the cool thing back then, was to write a very large payroll program. So, I got to know COBOL and the importance that that has.

So, that's another language that we've always said to ourselves, when we go out and survey developers, there's still a very high level of use out there. And not only is there that level of use, there's all of that code that's been available. And so we sat down with the leader in the market for COBOL tools, and said, you know, could we get that tied into our framework. And so, I'm also pleased to have here today representing Fujitsu and the work they're doing, Dr. Basim Kadhim, who is the chief architect, and who is going to talk to us about what they're doing with COBOL for the .NET framework.

Welcome, Basim.

(Applause.)

MR. KADHIM: So, yesterday, you saw lots of demonstrations of ASP+ working with languages like C-Sharp and VB. Today I'm here to show you how COBOL can participate as a first-class language in the ASP+ framework. This is a really exciting new development for COBOL programmers.

The application I'm going to show you is a demonstration similar to things that you might have seen yesterday, the fruit list. I'll ask you to select a fruit, has a Web form control behind it that allows you to select one of the fruits, in this case there's a list of five fruits, orange, apple, mango, and a submit button that has an event handler that's hooked up to COBOL code.

I'm going to play around with this control just so you can see what it does. Now the entire point here is that you can't really tell much difference between this demo and some of the things that you saw yesterday, and that's really entirely the point. COBOL can participate as a first-class language here, and without any differences in the user experience. So the real proof of the pudding is in the source code that lies behind this.

So, now I'm showing you source code with a script block with the tag, language equals COBOL. We think this is a really exciting new development.

(Applause.)

MR. KADHIM: Thank you. And what you see here is a bunch of COBOL code. And I'm going to scroll down a little bit so that you can see the remainder of the COBOL code, and you can also see that the bottom is just ASP+ code like you've seen in other applications, it's exactly identical. It's just that the COBOL code is embedded in the script block.

So, what is it that makes all of this work? It's really tight language integration that the .NET framework allows. This isn't just language interoperability. It's true language integration, where you can do inheritance between COBOL classes and C-Sharp classes, and not only can you do that, you can integrate with the tool set that's available for programming for the .NET framework. So what I'm going to do is, I'm going to pop up VisualStudio .NET here, and what you're going to see is a C-Sharp class here, a main program, that instantiates a COBOL class, assigns it to a base reference. The C-Sharp class that the COBOL class inherits from, and then uses the virtual function call mechanism to call an implementation of the factorial method. Now, at the bottom you'll see that in the solution explorer we have both a COBOL project and a C-Sharp project working seamlessly together.

So, I'm going to go ahead and start stepping through this application. You see the little output window popping up. We start up the application, and we see the debugger pointing at the first line of the C-Sharp program. Now, I'm going to step through to the statement that makes the virtual functional call to the factorial method. Now, it's going to call based on this code, should call the COBOL class and not the C-Sharp class, which is a good thing, because this COBOL class has been debugged through years of use, while the C-Sharp class, which was written more recently, actually has a bug in it, it adds numbers instead of multiplying them.

So, I'm going to go ahead and step into this code, and what you see is COBOL in the Visual Studio .NET environment.

(Applause.)

MR. KADHIM: Thank you.

So, I'm going to go ahead and step through this program, the loop that computes the factorial of four, so it's going to step through four times. And we come back to the main C-Sharp program, and I'm going to step over this statement that writes the result to the output window. So, I'm going to flip over to the output window, so you can see that we, in fact, did get the answer right.

So, what we've seen here is real language integration that's really exciting for COBOL programmers. Now, I know that a lot of you probably were hoping that you never would see another line of COBOL code in your life, but the fact is that there's an enormous install code base of COBOL that's been estimated at upwards of 125 billion lines of code. So the question is, for companies, what do you do with that code base? You can either throw it out, or inside the .NET framework you can leverage that existing code base, which we think is an exciting new opportunity.

Now, the good news for all of you is that you're going to have a common set of tools and environments to deal with that legacy code. Now, just between you and me, personally, I'd write all my code in COBOL.

Bill. I have a shirt here that I'd like to present to you that I hope you'll wear with pride.

MR. GATES: All right. Super. Thanks.

(Applause.)

MR. GATES: We're looking forward to seeing a lot of language innovation around this framework because, in the past, anybody who wanted to do languages had to create essentially their own shell type environment, and so that the barrier there for building that and getting people to adopt it really meant that very little was going on. And now, with this environment, I think we're going to go back to the kind of great pace of new ideas that are really required when you get a class of applications that are very new, like we've got in the .NET environment.

Let me wrap up here by talking about what we call the 2000 wave. The key products that we're putting out really are the foundation for this, Windows 2000, of course, is out there, that was super, super important for us. Office 2000 is out there. Exchange and SQL Server 2000 are coming out this fall. BizTalk before the end of the year. Applications Center before the end of the year. And so almost everything on here is pretty imminent. The most important of these probably is Visual Studio, where the only concrete milestone is the beta this fall, and then waiting to get the feedback to see exactly when we should go final on that. But these are a key set of products, and you can see the impact that XML is having on every single one of these products. In terms of something like SQL, it is a fundamental advance, and it's pretty amazing how much they were able to get in, in terms of SQL support, in this SQL Server 2000, and you'll see even more in those releases to come.

The environment we've got here is one of pretty profound opportunity. In fact, for the people who have the kind of skills that all of you have, it's really juts a matter of making choices about how you focus. We see .NET allowing development to be more efficient, more fun, trying out new tools, deploying things in a quick way, having customers who are willing to take the latest version because the frictional costs of getting that code deployed is so much lower.

For system integrators, XML is a wonderful tool to let them connect things up in a way that was never possible before, and customization can be done at a level with the componentization that we've got here that was very, very hard before.

For solution providers, people want to host, they're bringing together multiple applications and making them appear as a single set, helping the user out to simply think about a service that connects them up, that's really an explosive new business.

For hardware manufacturers, these new generations of devices are going to allow for a lot of breakthrough work. The Tablet PC alone is going to be a market that we feel will be even bigger than today's portable PC market.

And certainly for the network operators, the kind of quality of service and just raw bandwidth that all of this is going to require is a huge opportunity for them, whether that's a cable company, a phone company, a wireless company, and so reaching out to them and partnering with them so that their investments tie into .NET is something that we're very, very actively doing.

So, looking ahead, Microsoft's basic approach, building a platform and then getting lots of innovative developers to go out and really create solutions around it, that strategy has been the same since the beginning of time, and now it's more important than ever. So we're very, very committed to work with you. It is about a new generation of software, there's a lot of new things for all of us to learn here. We can carry forward the code we've got today, but there will be some changes as we take advantage of .NET. And we can all be very excited, not only about the business opportunity, but the kind of changes we're bringing to the world, making work more interesting, more efficient, changing the way people learn, allowing people to collaborate in better ways, and so the digital world is an exciting thing that we can make a reality. And I look forward to seeing how all of you can help us with that goal.

Thank you.

(Applause and end of event.)

 

© 2011 Microsoft Corporation. All rights reserved. Contact Us |Terms of Use |Trademarks |Privacy Statement