Remarks by Steve Ballmer
Visual Studio .NET Launch — Chicago, Illinois
February 13, 2002
STEVE BALLMER: Well, thank you all very, very much for coming this morning. It’s just a phenomenal thing to have this opportunity to be here, to see so many people. I don’t know about the rest of you, but 8:30 in the morning seems to come kind of early. Particularly if you had to come in, I suppose, by train, this could be awfully early in the morning for some folks, and we’re just really appreciative to have you with us here for the launch of Visual Studio .NET.
In my opinion, the dumb little clip that we just had a chance to show you was a little popular on the Internet late last year. It’s a security violation at Microsoft, but somebody took that at one of our sales meetings about six months or so ago and it really captured my fundamental view of what job one is for Microsoft.
And that’s why I’m so, so, so excited to be here today, because in our company for the full 27 years that we’ve been around job one is to build the platform and arm the software developers of the world, the folks here in the room today, in San Francisco, around the world, the developers of the world to go out and built the incredible applications that have really been the engine of information technology growth, the growth of the economy, the growth of a lot of great things. But at the end of the day I’ll tell you a secret in this room: It ain’t the hardware, people; it’s the software. It’s the stuff that you build.
And so for just job one is to provide the tools, the support, the environment that really lets you succeed — succeed in building the things that make your businesses, your friends, your partners, yourselves far, far, far more productive.
And so when the folks here in Chicago told me we were going to have 6,000 people at the launch this morning, I said first, of course, with a little bit of cynicism, “No way. You’re not going to get 6,000 developers out of bed for 8:30 in the morning.” And they said, “Oh no, no, absolutely we will.” And I counted — I’ll tell you a small secret — I counted every chair in here yesterday to make sure it really was 6,000. And so I join Chris in saying thank you very much for joining us this morning for the launch of Visual Studio .NET.
Visual Studio .NET I think I can fairly say I don’t think we’ve done anything more important or bigger for software developers honestly maybe since Visual Basic 1, maybe since Windows 3.0. It’s been a long, long, long time before I could stand in front of you and say I think we have something that is as significant in its importance and what it will mean for your ability to quickly and rapidly and in a way that will blow away the people that you’re trying to please with your software, we’ve had a thing that has as much impact and will have as much impact today, tomorrow and the day after as Visual Studio .NET. And so I’m just incredibly enthused to be here.
I was doing a little calculation in my head, just to give you a sense of how big this is. I figured we actually have more R & D investment, more hours of brain power that went into Visual Studio .NET than any other product in Microsoft’s history — not any other developer tool, any other product in Microsoft’s history, except for Windows 2000 itself, which was delayed a number of years also, by the way. It’s a good way to get man-years in.
When I first kind of got my demo of this product from the team, I guess it was probably two, two and a half years ago, and they told me, “Don’t worry, Steve; we’re going to ship it in six months.” (Laughter.) It’s been a long six months, but I think you will agree with us — just a small show of hands. How many people here have downloaded and used the beta? Better question: How many people have not? Okay.
It’s interesting because we had 3.5 million downloads of the beta and there are only about 6 million software developers worldwide. And even if we account for the fact that we had multiple downloads, I estimate that worldwide close to half of all software developers downloaded and used — or downloaded; I can’t tell you if they used it — the Visual Studio .NET beta.
So this was a huge effort for us. And yes it was delayed, and I feel badly about that, but the time that we took to really get it right, to really get the security right, to really get the ease of development right — and it’s not perfect. It’s an incredible product, but it’s not perfect. Some of you who are VB developers will probably say the thing is, “Yeah, it’s a little bit more different than Visual Basic 6 than I’d like it to be.” Oh, but we’ll get a few people — a small show of hands; anybody have that point of view today? A polite audience. (Laughter.) It’s not a San Francisco audience, I can tell you that. Thank you, Chicago. (Laughter.)
But it’s a little bit more different than Visual Basic than we would like it to be, but we needed to do that in order to give you the important advances that are in the product. There are some features that oh, God, we really wanted to ship in version 1 but we also didn’t want to hold it another six months or a year. So we don’t have edit and continue, for example, yet, but there will be updates, of course, to Visual Studio .NET, which will now come on a far more regular and consistent basis, because the hard work, the heavy lifting of really getting this thing done we really did get done in this first version of Visual Studio .NET.
I went out this morning for a job with a fellow I’ve gotten to know who works in a software development company here in Chicago, and we talked about a variety of things, how’s business, it’s been worse but it’s been better, blah, blah, blah. And then he said, “Hey, I really want to mention something about Visual Studio .NET.” And I’m kind of like a proud father there; my heart starts bracing. I said, “Oh gee, I hope he’s going to say nice things.” He said, “It’s really changed the way we have to do estimation on projects that we’re going to do for our customers, because they’ve been using it on new design wins.” My heart gets racing faster. I said, “Oh, I hope this isn’t going to be bad.” And he says, “Yeah, our developers are so much more productive with Visual Studio .NET we’ve actually changed our whole estimation methodology on how long it’s going to take us to get things done, because we are that much more productive. It’s not a 5 percenter or a 10 percent; we have had to change our entire methodology because of the additional productivity improvements that we’ve seen using Visual Studio .NET.”
So for us and I hope you’ll agree as you get to know the product and love the product that this is really and truly a product that should be able to radically and improve and benefit you in a variety of ways.
Bill Gates refers to this decade, the first decade of the 21st century, as the digital decade. I’m not sure what the last decade was; it might have been the digital decade too, but we didn’t use the word back then. But it is a decade in which the thing that I think matters most, as I said, is software and the engine of software creation are software developers. Software matters.
We’re all in, I’ll tell you a secret, the greatest business in the world. If you’ve ever seen that movie, The Graduate , where the father-in-law whispers to Dustin Hoffman that he ought to pursue a career in plastics because the world is about plastics in the late 60s, I’ll tell you there’s no better profession to be in. Dot-com bubble, dot-com bust, whatever, there’s absolutely no better profession to be in, in this day and age, than in the software development business.
I want to start with a little bit of a context on some of the important non-technical challenges that we see in the world and then have a chance to talk about how Visual Studio might help.
The Holy Grail, from my perspective, of IT for at least the time I’ve been around has been integration — how do I get this system to talk to that system. How do I get information in this system to be accessible to this end user.
I flew on an airplane about two or three years ago with a guy who was in the insurance business, I learned, but he saw me reading all these PC magazines and PC Week at that time a couple years ago, blah, blah, blah. And he turns and he looks at me and he says, “So, are you in the computer business?” And I said, “Why, yes I am.” And he said, “We’ve got a lot of computers in our company.” And this is a reasonably large top 20 insurance company in the United States. And I said, “I’m very glad to hear that.” And I said, “How do you like them?” He says, “Well, I like them fine, but I really can’t understand why I can’t get the information I need to make decisions.” He says, “My job is to set prices for auto insurance in the state of Colorado.” I said, “Oh, really.” And he says, “Yes.” And he says, “I’ve got this nice little computer.” I said, “Great.” “It runs Excel.” I said, “Even better.” (Laughter.) By then I think he’d figured out I work at Microsoft.
And he said, “But, you know, I know someplace in those systems we have they know how many traffic accidents we have on New Year’s Eve for people who bought insurance for us the two weeks before New Year’s. And I was thinking I might jack up auto insurance prices for people who buy right before the New Year, but I can’t see the data. Why is that?”
It’s a classic problem. You have two businesses that want to share information. You’ve got a business that wants to share information amongst its own systems. You have businesses that want to share information with end users. And yet people invariably hear it’s too hard, it’s a big IT project, it takes a lot of developers. And so this imperative not only to connect businesses to themselves and businesses to businesses, but to connect end users to the information of businesses has never been higher than it is today.
The boom in the Internet has only exacerbated this imperative. With all of the talk of B2B and B2C, et cetera, et cetera over the last few years business executives now have a higher sense of anticipation. They really do want to know how are we going to re-engineer our value chain, how am I going to connect more closely with my customers.
I visited with a large bank here in Chicago yesterday and they really want to know — they provide a set of trust services for a high net worth individual — “How do we bring accountants and lawyers and family planners plus our own trust services, plus all of these investment companies and money management companies, how would we create an environment where we serve our customers by giving them an integrated view essentially of their personal financial plans?” It’s all an integration issue, and we, as software people, all of us in the room, need to recognize the opportunity and the challenge that that presents.
At the same time, I think it’s important to note and particularly for Microsoft as an industry leader that has gotten hacked more than its fair share — well maybe its fair share of times — it is important to recognize that our customers don’t just want new things from us but our customers, and you as developers, want to also see that these things can be done in what we call a trustworthy way. And trustworthiness goes beyond security. Our customers want to understand the security of what we do, the privacy of what we do, the reliability of what we do. You’d be amazed how many people don’t understand the difference between a virus, a Denial of Service attack, a system that goes down because of a bad router, a bug in the operating system. Those are not concepts that our mutual customers understand very well. People just want to be able to trust their IT systems. And certainly I think we, as a company, have recognized we need to step our game up a quantum level in terms of providing a platform, which is predictable and trustworthy to our customers.
Four or five years ago the big issue we heard was scalable. I think we have scaled the scalability tree. The thing we hear today is trustworthy, privacy, security, reliability and availability, and we’ve done a lot of work in Visual Studio .NET on the runtime environment not only to make it secure and highly available but to give you tools that make it easier for you to write code, which is high availability, which has appropriate security built in. That was a critical design point for Visual Studio .NET.
With those two kinds of factors in the marketplace, what does our industry environment look like? Well, I don’t know if it’s happenstance or not, but certainly the rise of XML, a standard that we’ve been involved with at Microsoft since about 1996, with the rise of XML we actually have a technology, which holds the promise of giving us an ability as a group, as a software development community to really help our mutual customers with this integration imperative. We think XML really will be, if you will, the lingua franca of the Internet, the language, the message format, the protocol that allows consumers to talk to consumers, businesses to businesses, businesses to consumers. It will be a basis for writing applications that are integratable in a whole new level.
We got started with XML at the get-go. We had people there doing the initial work on the XML standard. XML is not wedded to any platform. We as a company believe in XML as an open industry standard. And some people say, “Is this Microsoft speaking right now?” And the answer is yes. We know we need to do things to differentiate our platform and our tools, and I guarantee you we will give you in Visual Studio .NET, in the Windows .NET Server, we’ll give you the best tools to build and deploy — and Windows .NET clients some year in the future — we will give you the best tools to build and deploy XML applications.
On the other hand, I don’t think our industry thrives unless XML is a standard that can run on any operating system and can be a basis of integration of legacy applications, UNIX applications and host applications with the kinds of applications that you’ll build with .NET.
And Visual Studio .NET I think, and you can do your own evaluations, it’s really the only tool that was designed from the get-go to let developers build applications that integrate and speak XML. There are add-ons and bolt-ons that you can get from some of our competitors, but we started with the notion that XML was essential from the start of Visual Studio .NET.
One thing, which may or may not be on your radar screen, but I think it is terribly important so I want to highlight it, is an announcement that we made last week in conjunction with IBM and a set of other companies. And I think everybody in this room probably has a sense that we and IBM are not sort of, you know, natural partners in this industry, at least haven’t been for about must be close to 12 years now since we were buddy-buddy around OS2. But both of our companies share a view that says these Web services standards around XML need to get richer and we need to have a forum to speak as a set of implementers and to recommend approaches to the standards body so that we really do get the high level of interoperability that everybody wants.
So we formed a group that we call WSI or the Web Services Interoperability Group. IBM, Microsoft, BEA, Oracle, Accenture, Intel, HP and a few others are founding board members, but there are about 50 companies that joined at the get-go and we joined with a dedication to ensuring a level of interoperability between applications that speak XML on a variety of different platforms.
There is a lot of work to do on the XML standards: How will routing of information in XML get done, how will security on XML packets get done. So there’s quite a bit of work that needs doing and we now have a forum even with our biggest competitors to have that kind of a dialogue in the interest of benefiting all of us as a software development community.
Microsoft was founded 26, 27 years ago, and in the time our company has been in business we have lived through what I would call three veritable revolutions: The PC — I don’t think anybody would disagree that the PC was a revolution in computing. The move to graphical user interface, the Macintosh and Windows again revolutionized computing. The Internet again revolutionized computing. And I feel that this XML phenomenon and what that lets us do for the basic design of software and the ability to build software that is much more reusable than ever before I think that phenomenon is as big a revolution as the Internet or graphical user interface or the PC.
When I say this to non-technical people their typical reaction is, “I can’t even understand what you’re talking about, this XML thing. How can it be a revolution?” But I’m also a guy who remembered when I dropped out of school to go to Microsoft and I told my parents I was going to go work at a company that builds software for personal computers, and my father asked that very prescient question in 1980, “What’s software?” And my mother asked a more interesting question, “Why would a person need a computer?” So at the time I’m not sure that was viewed as a revolution either by the average citizen, if you will, and the fact that the average citizen may not understand it doesn’t matter. This is our shot as an industry, as a set of software developers.
We all know that the tools get better, people get more productive, but the big breakthroughs in our industry come when you can better leverage the work of others, you can reuse more code. What was good about the Internet? We all got to reuse a browser as a presentation system. What was good about Windows? We all got to reuse the screen and the set of printer drivers and screen drivers and blah, blah, blah. What was good about the PC? We all got to reuse Intel’s incredible R & D budget for hardware.
XML is about extending that basic phenomenon for code sharing and reuse to everybody’s software and providing an architecture in which that can work.
Each of these phenomena have been led by an investment in development tools, whether it was COBOL back in the old mainframe world or Microsoft Basic and Turbo Pascal for DOS, Visual Basic Power Builder for graphical user interface, Java — always my favorite — and HTML for the Internet world or Visual Studio .NET for the XML Web services world. And mark my words, as you sit here today, the tool that you’re learning about today, the tool you’re starting to invest in, it’s the tool that will propel the next revolution in computing and it will be the smartest investment of time you’ve ever made to spend with Visual Studio .NET.
Today we’re announcing then the Visual Studio .NET product. We’re going to talk about the .NET framework, which is a built-in component in Visual Studio .NET, which will eventually be integrated into the Windows Server and into the Windows client. Later this year we’ll ship the Windows .NET Server and it will integrate the runtime environment. That same runtime environment will be integrated over time into the Windows client, but it’s a re-distributable that software developers can put out. And as I said earlier, this is the second biggest innovation. We spent over three-quarters of a billion dollars developing Visual Studio .NET.
I got a little long-winded. I’m pretty excited about this stuff, but I know what’s going to make you guys most excited, and so to share with you a little bit of a demonstration of Visual Studio .NET I’d like to invite with me onstage Ari Bixhorn, product manager for the Microsoft Corporation, who will put the product through its paces and hopefully get you as revved up as I am. Please welcome Ari.
(Applause.)
ARI BIXHORN: How are you doing, Steve?
STEVE BALLMER: Good job, baby!
ARI BIXHORN: All right.
How is everyone out there doing? Are you ready to see some demos?
AUDIENCE: Yeah!
ARI BIXHORN: Let’s try that one more time. Are you all ready to see some demos?
AUDIENCE: Yeah! (Cheers.)
ARI BIXHORN: All right!
Well, I’m thrilled to be here today to show you some of the great new features in Visual Studio .NET. In this scenario we’re going to see how easy it is to build a Web service in VS .NET and also how we can consume that Web service into an Office XP solution using the new Office XP Web services toolkit.
Now what we see on the screen here is an Excel spreadsheet. In particular, it’s a financial risk analysis application that’s used by Wood Grove Bank. Wood Grove uses this application to determine the risks associated with the numerous financial trades and transactions that they carry out on a daily basis. Now, each one of these trades can represent millions, sometimes hundreds of millions of dollars in bank revenue. So getting that risk analysis back quickly and accurately is of the utmost importance.
STEVE BALLMER: This is actually a prototype based upon some code that we built for one of the largest trading firms in the United States on Wall Street. So it’s not one of our, what shall I say, typically contrived demonstrations. We changed the names to protect the innocent, but it was built as a starting point for a real life trading application on Wall Street.
ARI BIXHORN: And I believe we’ve also got some customers in Europe right now who are adopting this as well.
So the problem that we have with this application as it existed up until today was that we weren’t getting those results back to our spreadsheet quick enough. Because of the complexity of the calculations that go into this and sheer amount of the calculations, it could take a single desktop PC up to an hour to process all of these risk analyses.
So to alleviate this problem, Wood Grove Bank has taken those calculations and they’ve distributed them up to a cluster of highly scalable Windows 2000 servers.
But then, of course, the question arises: How do we get access to those calculations up on the server? And the answer is XML Web services.
Now, building a Web service in Visual Studio .NET is incredibly easy to do. If I wanted to build a Web service from scratch, we’ve got a template that does the vast majority of the work for you.
Now, in this scenario we already have our risk calculation code written, so what we want to do is convert it into a Web service. It only takes one word in Visual Studio .NET to do that. That one word is an attribute called Web Message. And simply by adding that attribute to the beginning of this function now when I rebuilt my application Visual Studio .NET knows to take that calculated risk function and make it available as a Web service.
Now the only thing that we need to do is consume that Web service from within our Excel spreadsheet. And with the new Office XP Web Services toolkit bringing the power of these Web services down to our Excel spreadsheet is incredibly easy to do.
So from our spreadsheet here I’ll go ahead and bring up VBA. And what I’ll do is add a reference to that Web service that we’ve just created just as I would to any other local component running on my system. We’ll search for that Web service and when it’s returned to us we can see there’s my calculate risk function — I’ll simply click on that and add it to our application so that we can now call that Web service as though it were any other local component.
Now we just need one line of code, which I’ll add here, that actually calls the Web service. And you’ll notice that as I type in the code I’m getting all the benefits of full intelligent statement completion, even though this is running on a remote machine.
I’ll simply save the solution now and return to our Excel spreadsheet so that now when I click on that “run analysis” button we’ll call that Web service and we’ll receive our results.
Now we can see that we got those results back from our cluster of Win 2K servers in only seconds, whereas it used to take an hour for a desktop PC to process. And in this case we see that this looks like a good trade for our bank. It’s a trade that could stand to make us more than $2 million in revenue. So this is something that we definitely want to move forward with.
So what we’ve seen here is how easily we can build an XML Web service in Visual Studio .NET. We saw how we can use the Office XP Web Services toolkit to bring the power of Web services to our Office XP solutions, and for Wood Grove Bank and the customers who are implementing solutions like this we’re delivering seamlessly integrated, fast and reliable risk analysis.
This is just one example of how Microsoft is dedicating itself across the board to the vision of .NET.
Thank you. Thanks, Steve.
(Applause.)
STEVE BALLMER: Now you’re going to see a lot more of Ari before the day is done and a lot more of Visual Studio .NET, but I wanted to whet your whistle early with some of the concepts of these XML Web services.
There was actually a lot going on in the demonstration. We made it super easy to structure your code and to use the client infrastructure — Windows and in this case Office — to create programs that can communicate and talk to each other over the Internet.
With the WSI we’re working on standards for how you discover and find Web services across the Internet, so some of the discovery functions that Ari demonstrated work very well, and certainly I think the kind of scenario that it motivates is strong.
The other thing, which Ari kind of glossed over, which I think is important to mention was he said that the application, which now runs on the server, runs on a cluster of machines, it runs a lot faster than it would on a single machine, blah, blah, blah, blah, blah. Why? Visual Studio .NET, as I mentioned earlier, includes this new .NET framework runtime system. And the .NET framework was designed from the get-go not only to make applications secure and to help you write secure code, but was also designed with a notion of how the operations on that code will work, what will the scaling look like, what will the security look like, what will the management look like.
And in a sense you could say we should have done this forever, but that’s been one of the big issues with respect to Windows and applications written in the Visual Studio toolset to date. The runtime system, the language runtime and the operating system didn’t have enough of a built-in notion of management, of security, of operations, of scaling, and so one of the big areas of investment in Visual Studio .NET had nothing to do with XML Web services. It had to do with coming up with a runtime system that would just let you write easily better applications from the standpoint of operations by the folks in the data center or wherever who are going to have to run these applications.
The other thing that I want to highlight in the demonstration is the notion that this was on the client and on the server. If you were to listen to the, what shall I say, words of some of our competitors, you might believe XML or these new programming models should apply on the server. There are a lot of reasons why people want to be able to integrate B2B to a user, get the data in front of a user. Excel is the mission critical toolset for the trader on Wall Street, and I’ve heard more times than I can shake a stick at that people want the ability to get better interop between server-based applications and the kinds of analysis that the traders want to do down in Excel.
But we’ll see more of Visual Studio .NET here in just a minute.
People ask me, “Is Visual Studio .NET, is the .NET platform really important from a Microsoft perspective.” There are very few things I can say at Microsoft that we bet the company on, very few things I can say that about. I can’t say that about Windows even or Office in quite the same way. The only bet-the-company bet we make is on the platform that we take forward to you as software developers and we tell you this is the right way to write your programs. That’s the biggest bet we make, because not only do we tell you that, we tell the Windows team that, we tell the Office team that, we tell our own internal applications team that, we hinge everything we do and our entire credibility with the software development community of the world on our platform, which is .NET, and Visual Studio .NET and the .NET framework are the anchors of that.
I said Windows would include native .NET support. The next version of Office will have native support. The next version of the server will have native support. We’re going to show you in a minute the next version of our Commerce Server, which has native Visual Studio .NET support. SQL Server, everything needs to be replummed and it we replum it well then we’re in a position to give you one uniform environment all scriptable via Visual Studio .NET, all programmable via Visual Studio .NET that you can harness in the applications and the solutions that you build.
With .NET we’ve taken another step though and we said our platform needs to be more than a client and a server. It needs to include devices like Xboxes and Pocket PC and it needs to have a set of services that run out in the cloud that you can just use instead of having to instance and operate yourself. And so we’ve launched a few services like the .NET alert service, the .NET Passport service that you can use if you want to, but we’ll also provide technology so if you want to instance them yourselves you can do that just with a Windows .NET Server. So this really is a bet-the-company bet from a standpoint of Microsoft.
Just to give you little bit of a sense of that bet and to show you a little bit more of Visual Studio .NET, I’d like to invite Tom Rizzo (ph) to come join me. Tom is a Group Product Manager in our E-Business team and he’s going to show you how you can use Visual Studio .NET, the .NET framework, managed code and XML Web services in conjunction with our new Commerce Server 2002 product to really build an e-commerce type presence for one of your customers or your companies. Please welcome Tom Rizzo.
(Applause.)
TOM RIZZO: Thanks, Steve.
STEVE BALLMER: Hello, sir.
TOM RIZZO: How are you doing?
STEVE BALLMER: Good.
TOM RIZZO: So Im really excited to be here today to demo Commerce Server 2002, which is in beta today, and it really is part of our better-together strategy between Visual Studio .NET and the .NET Enterprise Servers. So youre really going to see how weve integrated very tightly all of the .NET Enterprise Servers throughout with Visual Studio .NET.
Now, for those of you who dont know, Commerce Server is our server product that allows you to conduct global online businesses. It provides product catalog-management capabilities, customer and partner profiling, order processing and, of course, very important e-business analytics, so you know how your online business is doing.
So when we combine Commerce Server and Visual Studio .NET —
STEVE BALLMER: Just to give you a sense, our Commerce Server product is at the backbone of a number of the largest online retail site. Its used at Dell. Its used at CDW, just to take a couple of accounts that I know would be very familiar to the software development community.
TOM RIZZO: Gap.com as well.
So we combined Commerce Server 2002 with Visual Studio .NET and you get the best e-commerce development platform that can use and build Web services.
So lets take a look. The first thing that well do is well create a new project directly inside of the Visual Studio .NET integrated development environment, and the first thing that youll notice in this integration is directly in the project wizard we can create the Commerce Server project. So the developer doesnt have to leave Visual Studio to go and create this.
Now, when we click
“okay”
for our ASP .NET commerce-enabled project, we get a simple wizard. We dont have to know anything about Commerce Server. We just have to know the name of a SQL Server in our environment, a user name, a password, and when were done with the wizard Commerce Server will go through and configure our SQL Server databases, our schema. Well set up a template site that has a number of e-commerce related services directly inside of it that we just need to customize.
STEVE BALLMER: You basically plug the whole Commerce Server development environment right into the development, MSDE.
TOM RIZZO: Yeah, right into the Visual Studio development environment.
So were not going to go through the Wizard and have it do all that stuff. We have a cake baking in the background here of a site that weve already started with, and bam, here we go. (Laughter.) Its an Xbox store site that you can go up and buy Xbox hardware, games and accessories. And the thing that youll also notice directly inside of the development environment is, again, Commerce Server is just right there. The developer can go look at their commerce related services, add them to their Web Site and manage their catalogue all directly from the Visual Studio environment. So its great productivity for the Commerce Server developer.
STEVE BALLMER: So this Visual Studio .NET product is not just about better operations, its not just about improved programs or productivity, its not just about XML Web services. Its about a level of integration for the developer of all theyre doing.
TOM RIZZO: Exactly, plus it allows the developer to leverage back-end server services directly from the environment.
So lets go take a look at this site before we take it up a notch.
STEVE BALLMER: And all of these people, if they wanted to write a service like Commerce Server that just plugs into the Microsoft development environment, they could do it also.
TOM RIZZO: They sure can; its completely extensible.
So well go take a look at this site and then well take it up a notch with Visual Studio .NET and Commerce Server by adding some code. But heres just our standard site built on Commerce Server using ASP .NET.
So we can go through and take a look at all the different Xbox game, hardware accessories that we provide. We can go buy some games and go play some games later on.
Now, as youll notice, theres really no product details in here, so we probably want to add that functionality to our site. So lets step back into Visual Studio .NET and the first thing that well do is well just drag and drop a control, the data-bound control directly into our ASP .NET page, and now this really shows the integration between Commerce Server and Visual Studio .NET. Well type in the data source to be one the current product that the user has selected in the Web site from Commerce Server, and then well go behind the code and write just a little bit of code here to actually pull from the Commerce Server catalogue the product details.
And youll see the Intellisense is working for us. Well data bind it here. And thats it. Now we can leverage some of the Commerce Server technology directly from our ASP .NET application.
STEVE BALLMER: That extra Intellisense support in Visual Studio .NET is pretty nice, huh?
TOM RIZZO: Oh, it makes it so much easier to write code.
STEVE BALLMER: Particularly when youre on stage in front of 6,000 people.
TOM RIZZO: And Ive got these fat little fingers that mistype all the time.
STEVE BALLMER: Well, good, good. Keep going.
TOM RIZZO: So here well rebuild the demo inside of here and well actually go and rebrowse our new Web site that weve added in this capability for product details.
So now if we go and take a look at the “Star Wars Obi Wan” game, which I hear is your favorite game you play all the time with Bill —
STEVE BALLMER: Its my top one. Were just busy at it all the time.
TOM RIZZO: Youll see up will pop the product details so you can go and learn more about the game before you buy it.
So what youve just seen really quickly here is how the .NET Enterprise Server, specifically Commerce Server and Visual Studio .NET make it faster for developers to build their e-commerce enabled Web Site. Its easier because there are a number of templates and services to help you get started, plus it requires less code for you as a developer because Commerce Server provides a number of capabilities.
Now, if you want to try this yourself, the Commerce Server beta that works with the released version of Visual Studio .NET is available for download today.
STEVE BALLMER: Great. Thanks, Tom.
TOM RIZZO: Thanks, Steve.
(Applause.)
STEVE BALLMER: We have a pretty full day with you and youre going to see a lot of different things at a lot of different times, things that improve your productivity, things in the development environment, things that let you better reuse code on the back end, code that we wrote, code that you write, code that the third-party ecosystem writes, in addition to things that let you build much better structured applications that can be reused via XML.
This product is so deep and so rich were just going to keep scratching the surface this morning in my talk and well keep getting more and more detail as you hear from a variety of speakers over the course of the day.
Not all of our products are revving with the release of Visual Studio .NET, yet all of you I think who adopt Visual Studio .NET are going to say,
“I want to be able to write all of my programs Visual Studio .NET style. I want to be able to use the development environment. I want to be able to write and manage code, which is secure, scalable type code that you write in the .NET framework.”
Youre going to all probably say, you know, that we want to be able to write XML Web services.
And so what was important to us was not only to release Visual Studio .NET not only to update some of the products, but, like we did for Office, to bring out a set of toolkits that let you access other of our products from the get-go even before we upgrade them to access them as a set of Web services.
And so our SQL Server 2000 product we are issuing and announcing today a new toolkit that lets you get a stored procedures, et cetera as a set of XML Web services, and our BizTalk Server, which provides kind of an XML integration and workflow tool is also issuing a new toolkit, that team is issuing a new toolkit to let you start writing orchestration scripts in BizTalk Server as a set of XML Web services.
And to show you that and to give you a little bit of a feel on how you might take advantage of even more of this runtime infrastructure Im going to have Tom come back on stage and demonstrate that for you a little bit. Tom?
TOM RIZZO: All right, Steve. (Scattered applause.) Oh, thank you. The people up in the front loved the demo.
STEVE BALLMER: Yeah, theres your brother, your dad all sitting up front.
TOM RIZZO: Yeah, my brother, my dad, my family is up front. Ill pay you later.
So continuing on the better-together between the .NET Enterprise Servers and Visual Studio .NET, as Steve mentioned, we have two new exciting toolkits that we released for SQL Server —
STEVE BALLMER: Well, let me ask a question just before you get on a roll.
TOM RIZZO: Sure.
STEVE BALLMER: How many folks here have tried or used at all in a project our BizTalk Server product? Yeah, thats what I thought. Its one of our better kept secrets. (Laughter.)
How many people have actually heard much about the BizTalk Server product? Oh, not that well kept, although were keeping it well inside the doors of Microsoft, I guess you could say.
This is a product we launched last year that apparently many of you have heard of and not many of you use, but the BizTalk Server I consider to be one of the real important but perhaps sleeper products in terms of how long it will take to get adoption.
Its a product that does provide essentially a workflow engine for connecting to a variety of legacy applications, converting stuff to XML and then creating a workflow in XML.
We did a huge project with the U.K. government, for example, to build a big XML switch, so that all of the communications they take in from the citizens of the U.K. can come in, be plugged into this XML workflow bus and then routed back out to the appropriate government agency to process and then go back out to the appropriate citizen through the appropriate Web Site to be acted upon.
And the kinds of applications, whether its at Ford or the U.K. government, were doing a project right now with 70 percent of the banks in Brazil, a new payment clearing system, the workflow capabilities in this tool are pretty amazing.
And so as Tom does the demonstration, partly well be showing you Visual Studio .NET, but for those of you who havent taken a look at BizTalk youll get a little bit of a glimpse of that, too. Sorry, Tom.
TOM RIZZO: Oh, thats all right, Steve. I dont even think I have to do the demo now. I might as well leave after that great introduction.
STEVE BALLMER: Oh, they like the demo better than my yak, yah, yak, so keep going, baby.
TOM RIZZO: All right. So as Steve mentioned, youre looking right now at the BizTalk Orchestration Designer for BizTalk Server 2002. The Orchestration Designer allows you to build your workflows in a graphical process. So we built our Xbox store in the previous demo using Commerce Server. Now we need to implement some back-end processes to actually ship you the product that you ordered off our Web Site.
So we have to do two main things. The first thing is we have to call a stored procedure inside of our SQL Server database to put in your shipping information and your order. Youll see that on the right hand side in the
“send order to shipping.”
The other thing we need to do is we need to place that order into our ERP system. And in this case were using SAP.
So, Steve, how cool would it be if we could call this entire orchestration as a Web service?
STEVE BALLMER: I think it will be very cool, Tom.
TOM RIZZO: So lets walk over here, get you a little exercise besides your job this morning, and if we look at this machine, this is just our standard Commerce Server site. Weve already used the Web services toolkit that you spoke about for BizTalk to turn that orchestration into a Web service. Now lets leverage that Web service directly inside of our checkout.
So the first thing we need to do, which Ari showed earlier, is just add a Web reference directly to our BizTalk orchestration Web service. There it is; as easy as that.
STEVE BALLMER: Its discovered through UDDI, which is one of the early set of protocols that we worked on with IBM, thats important in this whole WSI phenomenon that I talked about.
TOM RIZZO: Exactly, makes it very easy to find Web services both inside the company as well as external.
And then the other thing that we need to do is just write again a little bit of code to make this work.
So well go and actually take a look at the code behind our checkout, and again instead of me typing things up here all nervous with Steve Ballmer, Im just going to uncomment this line of code that will call our Web service.
STEVE BALLMER: Dont be nervous, Tom.
TOM RIZZO: Thats right, Steve. (Laughter.)
STEVE BALLMER: Just make it work. (Laughter.)
TOM RIZZO: Do you want to do the demo?
STEVE BALLMER: No, you do the demo. (Laughter.)
TOM RIZZO: Considering that Im on the BizTalk marketing team and the number of hands here, I think I should be brushing up my resume. (Laughter.)
STEVE BALLMER: Yeah, you keep going, baby. Show it off.
TOM RIZZO: Whew, tough crowd, especially up here. But anyway lets get back to the demo.
So weve called our orchestration as a Web service. Now lets imagine calling a Web service from within our orchestration. We can actually do that as well with BizTalk Server.
STEVE BALLMER: The orchestration is the workflow that you wrote here to kind of drive all of these applications via XML.
TOM RIZZO: Correct. So lets step back to this machine, since youre over here. And so remember we had to call a stored procedure inside of SQL Server. So with the new Web services toolkit for SQL Server we can just quickly expose SQL Server technology directly as a Web service.
So well go into the management tool inside of here, just go to our virtual directory and configure this. And when I click on the box inside of here youll see from our database, our shipping database all of the stored procedures contained inside of here.
Well go to our
“insert order”
stored procedure and click
“okay”
and thats it. Now our stored procedure is a Web service that we can call directly from Visual Studio .NET.
STEVE BALLMER: XML is the lingua franca of the Internet.
TOM RIZZO: XML is the lingua franca.
So lets step back and instead of talking more about this, lets actually see that stored procedure in action as well as calling SAP as an XML Web service as well.
So well go back to our new Xbox site that we created with the orchestration. Well add an Xbox to our cart and well go and check out and pay for this Xbox action pack.
Now what happens magically in the background is the orchestration is called both for SQL Server as well as for SAP, and to prove to you that it really did work lets pop back into Visual Studio .NET. Well use the new Server Explorer, which makes it very easy to browse a number of different server-based applications such as SQL Server directly from Visual Studio .NET. Heres our shipping database. Well go to our shipping table and well retrieve the data from that table.
And if you see there, order number 15 was the order on our site. Its magically inside of our SQL Server database, so that portion of the demo worked.
And well go to the next part, which is the SAP order management system to prove to you that the orchestration actually entered the data into SAP as well.
So Ill type in order number 15 inside or here.
STEVE BALLMER: And the connection to SAP was done how?
TOM RIZZO: So BizTalk Server has over 300 adapters that can connect to many back-end systems. Were using the Actional SAP adapter for BizTalk to actually do this connection.
STEVE BALLMER: So while you can call BizTalk and it can talk to things via XML, we do have a set of connecters to talk to legacy applications.
TOM RIZZO: Correct. And this uses the BAPI interface for SAP, where we can directly integrate in with your SAP systems.
So well search here, and again, thank God, the demo worked and we actually have one order for an Xbox action pack.
So what youre really seeing here is how you can take BizTalk Server, Commerce Server, SQL Server, even Exchange Server, all of the .NET Enterprise Servers and really quickly leverage Visual Studio .NET to make your development using those servers more productive, faster and more powerful with XML Web services.
Thanks, Steve.
STEVE BALLMER: Thanks, Tom.
(Applause.)
We recognize that you have choices and the most important choice that any software developer will make is where to put their time and energy from a learning and investment perspective. The choices today are numerous. You can pick Web Sphere. You can pick BEA. You could pick Visual Studio .NET and our toolset. You can pick Linux and Apache and My SQL and PHP. There is a wide variety of choices, and we find most software developers dont float casually between all of these different approaches. Even inside the so-called Java or J2EE world there are big differences between what you will see from a variety of the participants.
And so I thought it important to spend a minute and tell you why we think you should spend time with us. And you could say,
“Hey, youre over the line here. Dont be so darn competitive.”
But this is the choice I know everybody in this room is going to have to make after a meeting like this, so I wanted to at least give you a little bit of perspective from us.
I think there are a couple of key things that really distinguish what were trying to do with .NET versus what you would find, and Ill do the contrast with WebSphere, but I could do the same kind of comparison with any of those other stacks of software that are available to you.
The first thing that you can count on is .NET is .NET is .NET, and it will be consistently implemented in Windows and Windows Server. And that may sound like a small thing but given the cacophony of UNIX implementations, the cacophony of J2EE implementations and tools and runtime, I actually think it is a very important thing in terms of the consistency that you as a software developer can expect.
Number two, our vision spans clients, small devices, servers and services. We think it is very important that Windows and Office embrace these technologies. We have the add-on toolkit that we showed you, but the next releases of Windows and Office, the next after the XP generation will fully embrace the same programming model, the same extensibility, the same XML services that you see in Visual Studio .NET today.
And you cannot underestimate the importance in your applications of giving access to the information and the programs to end users themselves, because I think a lot of our ability to light up the world isnt developers serving developers and IT people; its what we can put in the face of the user on their desktop machines.
Youll do your own evaluation, but I think what youre seeing today is the only platform and the only set of tools, most importantly, that have been designed with native XML Web-service support. Try building a Web service in WebSphere or in Sun One or any of these other toolsets.
Take a look at the programming environment. There is absolutely no programming environment, I will assert, that is at the level of ours in terms of the kind of productivity that it gives you, and we do recognize that the world is a heterogeneous world. People like to talk a lot about Java. Java is still only the third- or fourth-most common programming language in the world. Basic, C, C++, COBOL, Java, there are plenty of people writing programs to this day at least in those five languages and perhaps many, many others.
And so the notion of having a programming model that is language independent, that has a great development environment independent of language, I think is particularly important.
I talked about the fact that we have a homogeneous programming model. It is implemented consistently in the operating system, but also in the add-on services that we build and that you will see come from the industry ecosystem. There is a natural way to plug in and make other services appear in the development environment and be programmable in this way.
And last but certainly not least, I just think if you look at the end-to-end development experience, how hard is it to build an application, how many lines of code does it take, how fast can you get them written, how fast is the generated code, how easy is it to debug, how easy is it to deploy, I think you will find that there is really a very, very large gap between what you will be able to do with Visual Studio .NET and any other tool.
And these are not differences that I expect people to broach any time soon. Our competition mostly sells big computers and doesnt care about clients. This XML stuff is hard. I told you this was the biggest development investment that weve ever made. You cant bolt on the kind of support for programmer productivity or the kind of support for XML that is built into the .NET framework.
So I think there are a lot of reasons here to make this the place you make your bet. Yes, there will be a lot of companies that will tell you today were standardized, whatever that means, on J2EE. They may be standardized, but youll still find a lot of other things all over the place. So youll run into some of that in your own companies and companies that you server, but I guarantee you well create an environment through our actions in which your applications can sell and the very additional productivity that you show, you come in with an application in two weeks that would have taken you ten weeks or more in some other toolset and youll set the world on fire. And I think youll be able to do that much, much, much easier using the Visual Studio .NET toolset and the .NET framework as a runtime.
We really do support in some senses 99.9 percent of the world. There are over 20 languages available today that plug into Visual Studio .NET. They use one development environment, one .NET framework, one debugger.
Here is a list of some of the languages that are supported, including our own J# language, which supports Java syntax programming against the .NET framework and is part of a strategy that we have to try to help people who have Java code come to our world. Were not embracing the runtime environment of Java, but we are embracing the syntax. And I think for some people that will be a helpful step over to the .NET world.
We have a lot of academics interested in what were doing here and there are a number of academic languages listed. Weve got a project going on today down at the University of Indiana around .NET, at Michigan State in curriculum around .NET. Here at Northwestern weve been working with a number of researchers on things, which they call their
“hot dog”
compiler — not that I know what that is — to really get it well integrated in with the Visual Studio .NET environment. Its very flexible and very open.
Just a small show of hands: For how many people in the room would you say Basic is your primary programming language? C? C++? Java? COBOL? Something else? Okay.
I think even the show of hands here gives you something of a sense of the heterogeneity of the world that we need to collectively address.
Still on this point of trying to help you understand why I think this is a good investment for you, we had some of our folks, I think most of us — how many people here have seen the Java pet store application thats kind of the showcase Java application? A small show of hands. Okay. This is the one Sun touts as their kind of, what shall I say, reference application, the Java pet store. Go take a look at it, up on the Sun Web site, if you like.
We said,
“Look, we should go into the heart of the lion. Lets take the application that they use to benchmark, to show off, to talk about Java and lets see what our people could do using the Visual Studio .NET toolset against that application.”
And if you take a look and the code samples are all out there, you can look at it, we created in .NET the Java pet store application in about a third to a quarter as many lines of code as it takes to write the same application in Java and the J2EE implementation for Sun — a third to a quarter. And there is absolutely some correlation between lines of code and the amount of time it takes to get something done.
Okay, but you might say,
“How is the scalability? How is the operability of the application?”
We can handle seven times as many users on a system and we see roughly 28 times the performance on the reference showcase Sun application building it in Visual Studio .NET as you would see building that same application in the Sun suite. The code is out there. You can look at it. Maybe more importantly for some of you, you can show it, you can talk about it with the people who are telling you
“Im standardized on J2EE.”
Its faster, better, higher performance, more scalable way to build applications than anything else in the market.
I want to transition now and give you something of a sense of whats going on in the industry around Visual Studio .NET, and the first thing, because Ill start sort of right at the core, is Im going to invite a couple of folks, Mike Devlin and Kingsley Wood from Rational Software who do a set of value-added high-end modeling tools on top of Visual Studio. Theyve moved those to Visual Studio .NET and it gives you just something of a sense of the additional add-ons that are already coming to the market to increase your productivity as programmers in the Visual Studio .NET environment.
We include with Visual Studio .NET a very low-end version of the modeling tools that Rational sales for entry level usage, but Im going to ask Mike and Kingsley to come share with you a little bit of some of the things theyve been able to do on top of Visual Studio .NET. Please welcome Mike Devlin and Kingsley Wood.
(Applause.)
MIKE DEVLIN: Thanks, Steve. I want to second the comments Steve started with. We certainly believe that this is the most important product that Microsoft has introduced for the developer in at least the last 10 years. And Id actually go further than that from the point of view of the enterprise developer, which is where we focus. For the enterprise developer this is probably the single most important product introduction ever. And if you look at it from a developers point of view youve got the Microsoft .NET platform, the runtime Steve talked about in all the scalable Enterprise Servers. Then youve got Visual Studio .NET, which is clearly the most productive developer environment in the market today. And Microsoft has done this in a very open way that allows companies such as Rational to take our enterprise solutions and integrate them seamlessly into the Visual Studio environment and to integrate them tightly with the underlying platform.
Today weve already had feedback from some of our early customers on this. As Steve said earlier, its fundamentally changing the way they do business. And there are two dimensions to that: One is the productivity metric that Steve talked about, just able to get more applications out the door more quickly. But the second dimension is making sure that those applications are architected and structured in a scalable manner so that theyre reusable as the enterprise evolves, so that youre not just producing code once for a specific application but is architected in a way that you can evolve your applications, build a whole line of business around a set of applications.
So Kingsley is going to be giving a short demo of our XPE product, which is a new product we introduced just this last week that weve been developing with Microsoft for almost three years now. It did take a little bit longer than we had expected, Steve.
STEVE BALLMER: I think thats our fault, not yours, but go ahead.
MIKE DEVLIN: So were going to be demoing this product, which takes all of our modeling technologies, plus some really cool new technology around the notion of patterns, which is another way to capture and reuse the intellectual property about how to build certain types of systems in the .NET environment. Well do a very brief demo of that and you can see that weve fundamentally changed the productivity for building XML Web services and applications on those XML Web services.
KINGSLEY WOOD: Thanks, Mike.
Were going to be dealing here with IBuySpy, which is a typically three-tier Web application and its a typical e-commerce application. You can browse a catalogue of products, add them to your cart. Im going to add a translator, go the final checkout. And when I hit
“submit”
here it tells me my checkout is complete but theres a bit of a problem. We didnt capture any credit card information, so IBuySpy isnt making any money here.
So suppose Im a new developer on the IBuySpy team and Ive been given the task of actually adding credit card capture functionality to this app.
So if I open it up in Visual Studio youll recognize the typical Visual Studio app, Web reference components, various classes, et cetera. Now were going to be working with the checkout Web form. Thats where the final checkout happens. That’s probably where we want to capture that credit card information. If I look at the code behind it, youll see that the checkout class is defined in that code there.
But its quite a daunting task for a new developer on a team to get to grips with the architecture of a whole application like this and thats where Rationals XPE really shines. Weve integrated our model explorer right within the IDE here to give you a hierarchical view of all the classes and the structure and the architecture of the application.
And what I can do to help you understand where this all fits in is just open up a diagram and just drag that checkout class straight onto the diagram. And here we get an instant visualization of that structure of that class, the attributes and operations, et cetera.
Now, of course, that class is related to a whole bunch of other classes, and Ive got a diagram here, which shows that like that. This is the birds eye view, which weve integrated as well right inside the IDE. Its pretty cool integration straight in there that shows me where the checkout class relates, so its got various labels. It has a data grid up at the top here and youll see that it inherits from the system page class, which is part of the document framework. So its all a visualization of the architecture there, and we know that this is probably where youd want to start working.
Now, Rational has got an initiative called the Rational Development Accelerator that is going to be providing a bunch of tips and you can actually build your own to help you build applications faster by providing know-how and guidance to the developer.
So suppose we have a kit here that helps me extend an application with credit card functionality, and one of the parts of that kit might be a design attachment. And heres an example of a design attachment we can apply; its called a transaction client pattern. There are two players in it, a container and a client, and a pattern is really a reusable asset for a software developer to help them apply this technology to an existing application.
The kit might also contain a sequence diagram, which shows how these patterns interact with the Web service to actually verify the credit card information once Ive added it.
So this looks good. We want to use this. Lets go back to the diagram. And the first thing Im going to need is a middle-tier class. So right in the IBuySpy name space Im going to add UML, and this is our integration as well. Weve got the UML Windows directory here. Were going to put in transaction client and just drag that straight onto the diagram just like that. Okay, good.
First of all, Im just going to synchronize that with the project, because this is a model. I want to synchronize the code with this. So behind the seams there instantly Ive just created this C# file transaction client and youll see its just a basic template for that C# class.
Now Im ready to apply the pattern. So Im going to go to the model explorer, select the pattern we want, the transaction client pattern, and Im going to invoke the Rational pattern application wizard. And this is going to walk me through identifying the parts of my existing application that relate to the pattern that Im applying.
So the first thing its going to ask me for is the client and thats the class that Ive just added, the transaction client. There it is. Next its going to ask me to identify the container, and thats the checkout class that already existed in the application.
And finally its going to say where do you want to expand the full pattern into. Well, just straight into the name space, the IBuySpy name space.
So when I hit
“finish”
it applies the pattern. And notice what its done to the transaction client here. Its added all that functionality automatically for me. And, in fact, if I refresh the related shapes on that, youll see that its even bound the checkout class to the transaction client class, ready to work.
So lets update the source code here. Weve got the source code right here. Im going to make it into a horizontal view. Thats a really cool feature in Visual Studio .NET. We can go up here, look at the diagram, bring it back, and these are the two classes that were affected. And Im going to right-click on that and synchronize. And watch the window below as it applies the pattern and the code template to actually spindle that code straight into the application for me.
So if I drag that up again and youll see all of the functionality is right there. Its calling the Web service. It knows how to do that.
The final step I need to do is to actually add a bit of UI to this. And lets say that that development accelerator kit actually came with a basic user control called
“payments.”
Lets find that over there. And this allows me to capture credit card number and the expiration date. So that looks good and thats exactly what we want. Im going to just drag that onto my existing Web form. Im just going to do a little bit of formatting to make sure that looks good and, in fact, Im going to just add one line of code to give a reference to that user control. There it is.
Okay, I think were good to go. So Im going to compile and lets see what happens.
So we can start up the application again and this time when I add a few items to my cart hopefully we should get stopped at the gate just before we try and check out everything. So lets add correction fluid, hit
“final checkout.”
It looks good. Weve got a credit card number check. So if I hit
“submit”
its going to say,
“No, no good.”
STEVE BALLMER: Do you need this?
KINGSLEY WOOD: Can we use that one?
STEVE BALLMER: 5-4 — (Laughter.) Id better stop right there.
KINGSLEY WOOD: And Ill put in a credit card number and a date and hit the Web service and it tells me your credit card has been charged.
So what weve done there, in summary, is weve successfully architected a new section of the application. Weve added a feature. Weve managed to visualize the architecture within the IDE, all seamlessly integrated with the accelerator kit.
STEVE BALLMER: Great. Thank you, both. Thanks a lot. Thanks, Mike.
(Applause.)
A couple things that are probably important: Not only do you see the deep integration with Visual Studio .NET, I thought you saw some absolutely amazing capabilities from Rational to help people do more model-driven development, which Im quite sure will be more important to most of us over the course of the coming years.
This is a product that I think we come out of the gate with pretty good momentum. I told you there are about 3.5 million betas. Maybe half the developers in the world had a chance to download the code. We have about 250,000 developers trained. We had over 6,000 people ask us for licenses to put the .NET framework and specifically the amazing ASP .NET component into production. So we have 6,000 people in production today with licenses running production code that was built against the beta release of Visual Studio .NET.
Theres a product that we took one extra month at the end. We got the security right. But these are people who are all up and having great experiences: 26 languages, 250 books now available already on .NET; 190 tools are being launched by add-on vendors like Rational around this development toolset. Weve been out at over 700 user groups around the world and the MSDN Academic Alliance is seeding this into schools, universities around the world, because we know we need to capture people and get their imagination right there, right then when they start learning programming and computer science in college.
It was a winner of the PC Magazine Tech Excellence award, InfoWorld award, Intelligent Enterprise for business. This really is a product that even today as we launch it has perhaps more momentum at least amongst the software community — compared to an XP or an Xbox you get a different deal — but it comes out of the chute very strong with a lot of momentum.
I want to give you just a couple more glimpses on some of the stuff people are doing. Click Commerce is an ISV here in Chicago that has started retooling and replatforming their application on top of Visual Studio .NET. They build systems to help manufacturers manage dealer and channel networks, and Im going to ask Ari Bixhornto come back out on stage and share a little bit of what Click Commerce is doing in their application on the .NET platform. Welcome back, Ari.
(Applause.)
ARI BIXHORN: Hey, Steve. Good to be back, man. Good to be back.
So as Steve said, Click Commerce is a great local company, Chicago based here, and what we see on the screen right now is Click Commerces relationship manager. Now, in this scenario were going to see how Click Commerce uses XML Web services to seamlessly integrate two business partners, a manufacturer and a distributor.
Now, the relationship manager that we see up here today is in use by a bunch of companies worldwide as well as some great local Chicago companies. One of them is IDEX Corporation. The IDEX Corporation is a leading manufacturer of industrial products. You may be familiar with one of their products, called the Jaws of Life.
Now, IDEX uses this relationship manager to keep track of the relationships that they have with their various distributors. They keep track of catalogue information and pricing information based on that relationship. So, for example, one of IDEXs distributors is Fabricam. We can type in their name and bring up information on my relationship with Fabricam, as well as their catalogue and the prices that Ive negotiated with them.
But then how does Fabricam get access to that information? In the past, if companies like IDEX and Fabricam wanted to integrate their systems together, they might have to do so using tightly coupled proprietary technologies and protocols, and a lot of times this would involve the need to rip and replace existing investments.
Well, fortunately with Click Commerces solution, this is a thing of the past. Because as part of the relationship manager, Click has exposed an XML Web service that enables companies like Fabricam to seamlessly integrate with IDEXs catalogue. Lets go ahead and do that now.
So what we see here is Fabricams internal stock management application. Its a Windows application that we want to integrate with Clicks relationship manager. And we can do that simply by adding a Web reference to it. And youll notice Im going to browse out to the UDDI directory here and you can think of UDDI as being sort of the yellow pages of Web services so that we can find any Web service that were looking for online.
Ill search for IDEX. Thats the catalogue Web services that were looking for. Ill simply click on that Web service and add it to my application.
STEVE BALLMER: So you found this essentially reusable code library in XML out over the Internet?
ARI BIXHORN: Absolutely. And this could be done by any of IDEXs distributors, not just Fabricam.
So, now that weve added that Web reference, lets go ahead and add one line of code here to go ahead and call that Web service. And what Im doing here is Im populating the data grid that sits on our form, passing in a couple of parameters here, so that we know what information to get and in this case were pulling back that catalogue information from IDEX.
So weve integrated these two systems just by doing that. Lets go ahead and take the application one step further though. Youll notice that this is a Windows application and Fabricam specifically chose a Windows app so that they could provide their internal customers with the richest experience possible.
With Visual Studio .NET we provide a new forms package called Windows Forms that gives you more power and productivity to build these desktop applications than ever before.
For example, youll notice that right now if I resize my form that data grid in the middle isnt automatically resizing with it. But by simply anchoring that control to all sides of the form, I can go ahead and achieve that functionality without the need to write complex resize code.
Another great feature in Windows Forms is our in-place menu editor. By simply dragging and dropping a main menu control onto our form, I can edit a menu infrastructure in place and get that application up and running all that faster.
So weve connected these two applications. Weve connected —
STEVE BALLMER: Just one question. If I want simple forms, not that nice but that just run in a browser, you can build those, too, right, in Visual Studio .NET?
ARI BIXHORN: Absolutely. And in the next demo well be seeing how we could build an application like that.
STEVE BALLMER: Good.
ARI BIXHORN: So weve integrated the two systems. Weve enhanced our user interface. Lets go ahead and run the application.
And when I run this and the form loads its going to call that Web service and load up all of the catalogue information that I requested from IDEX. Youll notice that the data grid automatically resized when I resized the form, and even the image information from IDEXs catalogue is being sent to me via that Web service and its being embedded in the data grid that we see here. So I can click on any of the products, make another call to that Web service and bring all of the product information into my catalogue in house.
So weve seen a few things here. Weve seen the power of Windows forms and how we can easily integrate Web services into Web service applications. Weve seen some of the new productivity features in Windows forms. And for companies like Click Commerce weve seen how they can deliver added value in less time and how customers like IDEX Corporation and Fabricam can seamlessly interact and integrate their systems without the need to rip and replace.
The bottom line is that with VS .NET and Click Commerce solutions all of the partners in this business partnership win together as a team.
Thank you. Thanks, Steve.
(Applause.)
STEVE BALLMER: A couple more things and Ill wrap up. I think its very important for us to recognize the fact that a platform only succeeds with the work of a lot of people, a lot, a lot of people. A platform doesnt get bootstrapped by ten enterprise customers. A platform doesnt get bootstrapped by two or three or five or ten applications from Microsoft. A platforms success, the success of XML, the success of .NET will really depend upon many, many tens of thousands of companies around the world embracing what were doing here.
Software development companies, ISVs, custom application development companies, partners, people who install and integrate networks and a community of people who provide online support, who write books, et cetera, are all very important to the success of this environment.
Weve asked our people to step up in a variety of ways with much higher outreach with the independent software vendor community, and heres a list of just some of the people who are moving to support .NET: Click Commerce, File Net, Plum Tree, Toshiba, Sage. We made an announcement today with SAP. Partners like Accenture and Avanade, DA Sullivan, Calypso here in Chicago, Clarity here in Chicago and many, many others.
And weve asked our developers to step up their involvement in bulletin boards online, providing expert technical assistance, so its easier for you to get real time answers online to the kinds of questions and issues that you face as youre building .NET applications.
So the ecosystem is critical. When people ask me,
“How will I know a year from now how youre doing with .NET,”
this is what I will look at. Ill look at how many partners, how many software companies, how many developers and how big is the community of people that are engaging in and participating in and contributing to community discussions online around .NET software development.
One other last demonstration we want to show you of an application set that got built using Visual Studio .NET is something we did with an ecosystem partner the Xerox Corporation. There is a reason why weve been having this fine photocopier sitting here on stage the whole time. We werent planning on making, I guess I can call it a Xerox copy, because its a Xerox machine, but we do want to show you some of the kind of integration even with non-PC devices you are able to get with Visual Studio .NET using some of its technologies.
Ari is going to come back onstage one last time and show us some of the work that weve been doing with the Xerox Corporation. Ari?
(Applause.)
ARI BIXHORN: All right. Steve, good to see you again. Long time no see.
STEVE BALLMER: Yeah, a long time.
ARI BIXHORN: Long time no see.
All right, so as Steve was saying, weve got a demonstration here thats going to involve a couple of printers. These are printers, copiers. These were all brought to us by Xerox Corporation. Now, Xerox is a worldwide leader in document processing products and services. They deliver software to their large corporate clients that enables them to manage an entire network of printers. What were going to see here is how Xerox enables that and also how they use XML Web services to seamlessly integrate two disparate applications in one of their customers enterprises.
Now, what we see on the screen here is Xeroxs Center Ware Web application. This is an application thats in use by a lot of large companies today, including us at Microsoft, and it enables us to view the status of all the printers on our network.
Now, we can see here the two printers up on stage, one in front up and running just fine, the one in back is out of paper.
Now, the first thing that I want to point out here is the concept of browser independence. Youll notice that were running this application today in Internet Explorer, but Xerox, of course, knows that this has to run in any corporate environment. They cant assume that Internet Explorer is going to be the browser used. So lets take a look at how this looks in Netscape.
Well, as we can see here, this is rendered essentially the same in Netscape. We have a very rich Web interface here with a tree control. Weve got tabs up top. And the rendering is the same regardless of the browser that we use.
Now, the Xerox developers enabled this using ASP .NET Web Forms control. The way that they did that, these controls are downloadable from the Microsoft site and they enable you to target any browser on any platform.
So this is one concept that Xerox is using here to target all different kinds of browsers.
STEVE BALLMER: I have a complaint.
ARI BIXHORN: What do you have? What do you have?
STEVE BALLMER: I notice that the printer that was out of paper got paper stuffed back into it under Netscape and its back up and running again.
ARI BIXHORN: Steve, that is just the power of the Xerox printers were seeing up here. (Laughter.)
STEVE BALLMER: We need auto paper load in Internet Explorer.
ARI BIXHORN: If I go ahead and refresh this screen youll see that even Netscape says that the printers are out of paper. (Laughter, applause.) All right.
STEVE BALLMER: Im glad that part of the demo wasnt crashed. Keep going.
ARI BIXHORN: You and me both, man. You and me both.
All right. So lets drill into one of these printers here. Well drill into the one thats up and running. And we can see the status of that in greater detail.
Now, lets assume that we have a print job that we want to send to this printer and there is some kind of a problem with that printer. Lets say its a problem that requires the intervention of a Xerox technician. Well, how would we do that today? Today its a manual process, right? We would pick up the phone. We would call our help desk. We would register a fix request with the help desk and then we would wait for a Xerox technician to come and fix the printer.
Well, what if there was someone or something that was monitoring our entire infrastructure of printers, something that would pick up on a problem as soon as it occurred and automatically register that problem with the help desk, before we even knew that the problem had happened?
Well, for Xerox this real world problem was solved using XML Web services. Lets see how we can do that now.
So what we have here is our help desk application. This is our help desk app that today is manually loaded up with phone calls on things like network problems, password resets and, of course, printer issues. What we want to do is integrate that with Xeroxs Center Ware Web using that Web service.
Lets go ahead into our Help desk application and do that. We saw in the last demo how we could add a Web reference to a Windows application. Well, the same thing applies for a Web application. I can add a Web service into my application very easily and now what Im going to do is go ahead and drag and drop a little bit of code into my application that will call that Web service and automatically populate the Help desk for me.
So now that weve done that, lets go ahead and build the application.
STEVE BALLMER: A key point here: Visual Studio .NET lets you write applications that just sit in the browser and when the code executes on the server, or where you execute and run on the client a rich forms package. Thats the first kind of application that we showed you.
Over time we will absolutely integrate in the .NET runtime support for the client so that every Windows system not only has browser capability but has the capability without a client side installed to run the rich Visual Studio .NET client application.
How soon that will be I dont know. Pretty soon. Were trying to figure it out now.
ARI BIXHORN: Ill get on it right away.
So weve just rebuilt our solution. Now we want to test it out. Now how are we going to do this? Well, we need to make our printer fail. It just so happens that Ive brought a nice sledgehammer with me. Steve, would you like to do the honors? Please?
STEVE BALLMER: Seriously?
ARI BIXHORN: No, no. (Laughter.)
STEVE BALLMER: It was going to be a lot of fun though. (Laughter.)
ARI BIXHORN: Lets do something a little less dramatic but just as effective.
STEVE BALLMER: Do I pull the power cord?
ARI BIXHORN: Were going to go ahead and open up the door to he printer. Now two things are going to happen. First, from within Center Ware Web application when I refresh this were going to see that the printer has now registered with a problem. Now, this is what we expected. More importantly though when we switch over to our help desk application, weve now got that Web service thats polling the printer, checking for any problems, and when we click on the
“open request”
once again we should see that that printer has now registered with a problem.
Lets go ahead and check that out. We can see that the printer door is open and were ready to roll. So we can see now if we go ahead and close the printer door, normal printing could continue. But all this is done seamlessly integrated using that Web service.
STEVE BALLMER: So at Siebel and Clarify and Remedy and others up their help desk application to support XML Web service youll get this kind of extensibility for free.
ARI BIXHORN: Absolutely. So the bottom line here is that with Xerox they were able to seamlessly integrate these two customer applications to streamline their workflow, reduce their maintenance costs and improve overall customer satisfaction.
Thank you. Thanks, Steve.
STEVE BALLMER: Thanks, Ari. (Applause.)
ARI BIXHORN: Actually, Steve, I just noticed that we have a .NET Alert here. It says our Xbox order has arrived. Do you know anything about that?
STEVE BALLMER: I dont remember anything about an Xbox. Can I click?
ARI BIXHORN: Yeah, sure, go ahead and click.
STEVE BALLMER: See what weve got here.
ARI BIXHORN: It says that our Xbox order has arrived. Do you want me to run backstage and see what thats about?
STEVE BALLMER: Yeah, why dont you do that.
ARI BIXHORN: Let me go do that really quickly.
STEVE BALLMER: Youd better hustle though. Im over time here. My Xbox order has arrived. Did anybody here order an Xbox?
AUDIENCE: Yeah!
STEVE BALLMER: Actually, anybody here own an Xbox?
AUDIENCE: Yeah!
STEVE BALLMER: Anybody like that Halo game, developed here in Chicago?
AUDIENCE: (Cheers, applause.)
STEVE BALLMER: Theres our order.
ARI BIXHORN: Steve, I think this is the order that we placed earlier on in the presentation. Now, Ive already got an Xbox. Youve got one, right?
STEVE BALLMER: The Ballmer brothers, my sons do have an Xbox, yeah. (Laughter.)
ARI BIXHORN: Of course, of course.
STEVE BALLMER: They dont let me use it much. Im not very good.
ARI BIXHORN: Well, what do you want to do? Do you folks want these Xboxes?
AUDIENCE: Yeah! (Cheers, applause.)
STEVE BALLMER: Give them away, Ari.
ARI BIXHORN: Well, you know what, it just so happens that here in my pocket we have the names of three randomly selected people in the audience who are going to win these Xboxes as the start of a day filled with giveaways. So when I announce your name, after this demo meet me over there and please bring your ID. I dont want to see 50 people over there. (Laughter.) And we will give you the Xbox. Again, this is the beginning of a day full of giveaways. Chris will be handing out more Xboxes, PCs and a lot of great other things as the day goes on.
So William Fincher, come on down. All right. How about a round for William? (Applause.) Penny Lancore, Penny Lancore, come on down. (Applause.) And finally Michael Berteisen, come on down. (Applause.) All right.
Steve, thanks again.
STEVE BALLMER: Thanks, Ari.
I think by now youve gotten a sense of many of the things you can do with Visual Studio .NET. I want you to know we also have started the process of rewriting our internal applications inside Microsoft. Whether its our product support application, its the applications that we use on our own internal intranet, our financial applications, our tax applications, Microsoft.com is running today all on Visual Studio .NET and the .NET framework. Thats quite a scalable case study, if you will, the third most popular site on the Web. Were connecting to our business partners, our suppliers, the people we do business with through .NET, and weve already started the process of improving our contracting and release processes using Visual Studio .NET.
So we have, as we say around Microsoft, we have eaten our dog food here and we’re running our company today and our business today on .NET.
That may not surprise you, but the number of other customers who have also moved to embrace .NET early in their business is also quite large. Reuters, Merrill Lynch, Mary Kay Cosmetics, Marks & Spencer, Barnes & Noble, Credit Suisse First Boston, Xerox and a wide variety of other companies are already moving — Allstate Financial here in the Chicago area, a lot of good work going on today on top of .NET. When you start building these applications youre not alone. These are solutions and tools that are already being used. Theyre being used to scale in very large companies here in Chicago and around the world.
Software is the thing thats going to power the digital decade. Software developers are going to be the thing that really makes it happen. We think .NET really hits the sweet spot. Greater agility, faster program development, better generated code, easier to integrate, leverages existing knowledge that you have of the Microsoft toolset, a broad ecosystem of support and already a set of customers that are moving rapidly down the path.
Developers, developers, developers; I thank you guys here so much for your time. We’re going to show you a lot more of the product over the course of the day. Enjoy it. Best of luck as you start Visual Studio .NET products.
Thanks.
(Cheers, applause.)