Remarks by Eric Rudder, Senior Vice President, Server and Tools
VSLive! Visual Studio Developer Conference
New York, New York
July 29, 2003
ERIC RUDDER: Well, thanks, Jim. It's always a pleasure to do a VSLive! event. I think it's been ten years, and I know we used to do multiple cities a year, so it's probably at least my tenth VSLive! event but it's always great to be back in my hometown of New York.
I'm going to talk a little bit today about realizing developer potential and how we're going to do that through a combination of our products, our technology roadmap, our service, our community and working together with our partners.
It's kind of amazing to think the last time I spoke at VSLive! we were just on the cusp of shipping Visual Studio .NET 2003. And we completed that, we did an amazing job of really getting that product out.
I am curious before I start how many of you are actually running the latest Visual Studio .NET 2003 kind of by a show of hands? That's good. How many are running the previous version of Visual Studio .NET? How many are still using the Visual Studio 6 or VB 6? How many are using something earlier? Anybody using Java in the wrong room or something? (Laughter.) Okay, good.
So our key themes for Visual Studio .NET really were connectivity, dependability, the best economics and the most productivity, and you'll see us really continue to extend these themes and extend this lead in everything that we do.
Of course, connectivity for us includes the latest Web services standards and great database connectivity.
Dependability also includes our trustworthy computing initiative -- secure by design, secure in development, secure by default -- and it creates reliability when you're hosting and using Visual Studio and .NET at scale.
Our productivity, of course, is enhanced with many of the IDE features that we do, but the key thing we did in Visual Studio .NET was we really brought in the same programming model back for devices, and so we enable two choices for people to bring devices into the fold. One, we actually have the Compact Framework, which is the .NET Framework itself running on devices, ported to a whole bunch of operating systems and hardware. And the second is mobile controls, so if you choose kind of a server makes the right approach, we have special controls in ASP .NET that render appropriately on different target devices.
The last is best economics, and this isn't just that the price of Visual Studio is cheaper than competitors. It really is that the ecosystem comes together to give you the most choices in not just the software, but also the hardware, and a complete picture of the ecosystem is also the controls, the templates and the training as well.
When we started out a year ago, it was hard. We were still behind Java by a considerable margin. They were about 30 percent share. But we actually launched the product and made some amazing traction, started to catch up. Luckily, Java flattened out and we've actually passed Java usage with .NET usage, and this trend actually shows no sign of abating. So overall, competitively, we're doing fairly well.
The fun thing is actually seeing those results come to market. As more and more developers get trained in .NET and more start using the latest tools, you actually see these results not just being deployed in 75 percent of the top corporations, but you can actually see it start to take hold on the Internet as well as kind of the technologies take place. So if you look at sites using scripting technologies on the Web, this actually is from the most recent Netcraft study, you can actually see ASP and ASP .NET at more than half the sites actually use our scripting technologies. So, the momentum for Visual Studio is truly incredible.
And as I mentioned many times in the past, we try and time the releases of Visual Studio to really come as the same time as our platform initiatives, and the platform initiative we co-synched Visual Studio .NET 2003 with was the launch of Windows Server 2003, and that was truly the most important server launch we've ever done in our history, and it was the biggest launch that we've done in our history by quite a bit. We actually had events in more than 150 cities and reached about 175,000 attendees. The launch is fantastic. We're actually selling the product now at triple the run rate of Win 2000, which is good news because it's a great product, and we're starting to get good take-ups not only internally but in public-facing sites, so we're actually approaching 100,000 Web sites in only 90 days since launch.
And I think the theme really now of doing more with less, operating your infrastructure more efficiently, building better applications faster and delivering enhanced user productivity, is really resonating.
And it's really the two products, Visual Studio .NET and Windows Server 2003, that really come together to deliver on the vision of Web services, and really our entire platform strategy is based on Web services.
And I think one of the reasons it's taken the industry by storm is that the industry has done a super job working together. Web services are based on open standards. They're not bound to any single platform. They're not a rip and replace strategy so they complement what you have, you don't have to rewrite things. They're protocol based, so that people can use them with a variety of systems. They're loosely coupled so they're robust in the spaces of distributed systems.
And the broad industry support is not just players shipping toolkits; I think we're really starting to get technical and business validation in the marketplace, and I expect this trend to do nothing but continue to accelerate over time.
So, Visual Studio .NET comes with what we finally refer to as WSE, our Web Services Enhancements, which is great because we support those introductions. This is not like some software that we just stick up on the Web and you can try. We'll actually take phone calls. You can actually use it. And we'll continue to enhance our Web services standards on an ongoing basis, so we'll continue to support the latest Web services standards. You won't have to wait for a major 18 month or two-year cycle of Windows or Visual Studio; we'll continue to get out in front of those trends.
The two products together in Web services has really led to some good customer momentum. Here I have BMI, which is actually the Austrian Minister of the Interior. They moved a huge system from NT 4 to Windows Server 2000 and then moved to Windows Server 2003 and they're really starting to use the new features, and I encourage you guys to check out Win 2003.
For developers, it's super nice because it has the .NET framework integrated. It has all of the ASP .NET features built-in, so there's no separate install, and it has some nice features like Shadow Copy, so if you actually delete a file by accident you can simply right-click and undo. It's super nice. And the level of payback and performance that people get in writing applications and deploying applications is great not just for developers but also for end users.
We've also worked super hard at continuing to reach out to people that made an early investment in Java and actually want to come over to the .NET platform. Here we have an example of Random House who actually moved from JSP to ASP .NET using a new set of tools called the Java Language Conversion Assistant. We just shipped version 2.0 of that tool. That literally is a set of technology that will run through your JSP site and convert it to an ASP .NET site, and does a great job of getting it up and running. And once you're in ASP .NET you'll have a great experience again with our maintenance costs and productivity.
And finally, just one last thing, I know a lot of you are interested in moving off of proprietary UNIX systems and onto Windows and SQL Server. We have toolkits available there as well and I expect this trend to accelerate as well.
I think it's often useful to hear about the customer testimonials and why they're using the new technologies in the words of the customer itself and so I wanted to share one example with you today. And the example we chose is actually BMO. It's the Banc of Montreal. They're taking a .NET client application, a rich client connected to Web services in their bank, and deploying it at more than 18,000 installations for their customer service installation. I think the best is actually to roll the video and see what BMO is up to.
Well, so I think BMO is actually typical of many of the large enterprise customers that I see these days in terms of really using the latest .NET technologies to integrate their existing systems with Web services.
I'm actually curious before I go on: How many people that are working with Visual Studio are actually doing Web services projects -- a show of hands? And how many people are actually doing projects where they've put a Web services head on an existing system? And how many are just writing new Web services from scratch? So kind of about 50-50.
And I actually expect that trend to continue. I think I can share with how we use Web services at Microsoft. We're a big user of enterprise software. We run our business on SAP. Siebel plays a very important role in our environment as well. And we actually, we're in the fortunate position where we didn't have to wait for those applications to rev to start using Web services. We actually put a Web services front-end on top of each application, and we actually use them in our daily vision in terms of how we do work. So when I actually want to track developers and accounts, of course the developers and the key partners that we work with are in our Siebel contact management system, but the way I actually see them is via Web services.
So when I want to add data like, "Hey, came to VSLive! or I saw them as VSLive! or I did some joint press activity or joint go-to-market," I actually don't have to go back to my IT department and say, "Hey, can you add a field to Siebel that is, you know, "saw them at VSLive!," I actually can have my own production SQL database and do a joint at the Web services layer between all the contact information and the extra attributes that I want to keep, and yet when I write a trip report about the event or who I saw, it actually goes into the Siebel system as well. So anybody who us just using Siebel and wants to pull up those documents can actually see them, and I think that's a super powerful endorsement.
But, of course, it's not just line of business apps that are using Web services, it's also ISVs that are doing this as well and we've seen lots of ISVs embrace Web services and enhance their core product line and expose their key functionality via Web services whether it's Onyx or Plumtree or Siebel or Corillian, and I think this trend will only accelerate over the next few years.
So really the way that we'll interact with all our software -- be it a database query to SQL Server or a query to your CRM system about what customers are there -- they'll all be Web services calls. It will be nice for developers to have a single programming model to actually get enterprise information. And as people take these transactions and actually distribute them and have them coming from multiple sources, we'll actually be able to orchestrate all these Web services together.
So let me actually go back to the slides.
Of course, there's one class of ISVs that are near and dear to my heart, because they're so important to the success of Visual Studio and these are key Visual Studio partners.
There's more than 175 partners now that are a member of the VSIP program, and these guys enhance Visual Studio in a large number of ways. Sometimes it's by adding design tools into the environment itself, sometimes it's by adding modeling tools, sometimes it's by adding controls, sometimes it's by adding key drivers that connect to other environments, and really completing the ecosystem is super important to us.
And we've been running the VSIP program now in one way or form since before Visual Studio actually launched, and we actually got a lot of feedback on how we can improve the program itself.
And so one of my main tasks today is to announce some of the key enhancements that we're making to the Visual Studio Industry Partner program -- kind of a 2.0, if you will -- rolling it out and making available a broad array of tools for all of us to help complete our job.
We're really trying to create new opportunities for the ecosystem at large, so the program has actually three different levels. The first level, which we call Affiliate, is actually designed for corporations or hobbyists or schools that are actually running tools that plug into the Visual Studio environment itself. We'll actually take the SDK to plug into Visual Studio and we'll make it free and available on the Web. We'll actually support people writing and customizing the environment for free, over the Web support as well using our newsgroups, and we're super excited about that. I know this is a request that we've had for many, many years to please open the environment -- "I've got all these little productivity tools, I'd just love to kind of put them inside and not have so many windows" -- so we're super excited about the number of people that will be able to use the Affiliate program to enhance and customize the Visual Studio environment, not just for their desktop, but for their department desktop or for their corporation as well.
The second level, kind of one level beyond that, we call our Alliance level, and that really is designed for tool and component ISVs and some of the smaller SIs. Here we'll take the people and the products that enhance Visual Studio and we will actually work with these customers in a joint marketing relationship. So there's plenty of opportunities to promote the products, whether it's using the Windows Catalog or the Enhanced Logo program or some of the other joint marketing opportunities we'll deliver to people that deliver components under the Affiliate program.
And finally, for the largest enterprise ISVs and the largest Sis, there's the Premier level of VSIP. And that actually for the first time includes the eligibility to license and redistribute the Visual Studio IDE as part of the solution itself, and we're pleased to announce today that Fujitsu and Intel, amongst others, will actually be members of the VSIP program, licensing the IDE. And I think as I'm speaking we'll actually launch some other events over the wire and people should be very excited about the products we'll see.
So the level of interoperability we'll see between profiling tools and Visual Studio will only increase over time. So, again, making it simpler and really driving for developer productivity from a complete end-to-end perspective is something that's super important to us.
We'll also allow people in the Premier program early VS technology not just in terms of shipping betas but also actually coming to Redmond, working in our developer lab and making sure that these products are ready at the same time so they can launch on the same day and we can go to market together.
I'm actually thrilled to announce today that one of the most important premier partners is here. I'd like to actually call up Bob Picciano to tell us about how IBM and DB2 are supporting .NET together as part of the VSIP program. Good morning, Bob.
BOB PICCIANO: Good morning, Eric. Thank you very much. It's a pleasure to be here. So thank you, Eric, for the warm introduction.
You know, at DB2 we really see that our mission is to deliver solutions to the market that add value to the customer. Eric talked a lot about value. And the key thing that we focus on is bringing technology to the market that helps accelerate the time to value equation. In today's economy, it's time to value that's really the key yardstick for all IT investments, so that's what we focus on, and we absolutely believe that one of the most critical contributors to accelerate time to value is application developer productivity.
So we saw this as a unique opportunity to take DB2 and the breadth and wealth of data that's managed in DB2 across a wide variety of family of offerings and bring it to the Visual Studio .NET programmer.
So, we embarked upon this journey with the Visual Studio .NET programmer by joining the VSIP program and started to work on making DB2 a very natural development experience for Visual Studio .NET programmers, but also extending Visual Studio .NET to be a premier application development environment for DB2.
Last year -- actually, we joined in February of 2002 -- last year we had two very successful betas and on May 12 we announced our support for Visual Studio .NET 2003 and made the code available, which was DB2 8.1.2, which is available now today.
Now, one of the key things about the environment is not just raw technology; it's really about bringing the Visual Studio .NET experience to DB2, and also bringing DB2 application developers and DBs administrators to Visual Studio .NET. So we've actually created a .NET Developer Zone. We support their tutorials and online information code samples, articles that are available for download. You can actually get the DB2 code at no charge on the Web site.
So one of the key things is our deep support for Windows technologies. Now, some of you may know, some of you may not know, that DB2 has been supporting Windows and been running on the Windows servers since 1996. We were actually the first database to be certified for Windows 2000 and we're certified for Data Center Server.
We deliver DB2 64-bit environments for Windows on Itanium 2 architectures, and we were the first database to deliver optimized support for AMD Opteron processors. That's an early deliver now as AMD readies with Microsoft their full support of Microsoft environments.
We have 17 certifications for Windows 2002 across the DB2 family, so that's more than I think anyone else in the industry in terms of their certification support, and also we have DB2 Everyplace, which is a 200k database that runs on pervasive devices and, of course, supports the Windows Pocket PC format and is certified and fully supports the .NET Compact Model framework, so you can be guaranteed integration.
And DB2 also supports Web services. Eric just talked a lot about the power of Web services. It's something that we actually see our customers getting behind in great magnitude because it really does open up great integration potential and a whole new range of application paradigms for them.
And DB2 is also certified for the .NET Connected [logo program], so all of the work that we do is purely interoperable with .NET.
So I'm going to bring Leon Katsnelson up here and he's actually going to show you some demonstrations of this technology working. Leon, why don't you come on up and take the stage and show us some of these great capabilities?
You know, all this is focused really, as I said earlier, on helping make sure that the most important constituency of the DB2 environment and family, you, the Visual Studio application programmer, really can use DB2 as a very natural experience.
LEON KATSNELSON: Thanks, Bob.
Okay, so for the next couple of minutes I'm going to attempt to do the world's most boring demo. I hope I still get to keep my job after this.
Why do I aim so low? Well, because I can achieve it, but also the other point is really we wanted to make sure that we get the design points across for our DB2 add-ins for Visual Studio .NET. We wanted to make sure that all of you Visual Studio .NET programmers become instantly productive when you use DB2 by extending the Visual Studio .NET experience.
So those of you who are already awake will probably see that I have a typical WinForm application in here and, of course, I drag the data grid on it. Why? Because it's easy. And, as you probably guessed, I'm going to fill that data grid with DB2 data.
So let's start with our IBM Explorer, and I saw a lot of hands go up. That kind of tells me you're all Visual Studio .NET users. So it shouldn't take you more than a couple of seconds to recognize what this particular control does and how to use this.
And what I'm going to do, as you would expect, I'm going to drag one of the tables over onto the form. And as you would expect -- I'm going to repeat these words "as you would expect" a lot -- you will see a connection object created, you will see a data adaptor object created, so we're well on our way to creating our boring application here.
The next thing we're going to do is we're going to configure our data adaptor, and, as you would expect, we have a wizard to do that. It allows us to select a connection. This is going to be a read-only application, so we're going to deselect the Insert Updates and just leave the Select command in. So here's our Select statement here. I'm not going to type anything, just click Next because it's easy.
We are at the summary page. Well, that pretty much tells me we're done. So we've configured our data adaptor and obviously to connect our data grid to the data adaptor we need to generate the dataset, so let's go ahead and do that. That's a one-mouse-click operation. And now let's go ahead and associate the data grid. Let me find the data control. Let's associate the data grid with the data source, and, as you would expect, in Visual Studio .NET the data grid now has call headings in there, so we're actually connected.
Now, we need to add one line of code in here. I'm a terrible typist so I'm going to drag and drop. I love this part. That's my favorite part of Visual Studio .NET. And I'm going to press F5 and hopefully we now have our world's most boring application up on the screen.
Now, that was pretty easy, right? All of you can now put DB2 specialist on your resume.
Okay, let's do something a little bit more interesting in here. Every database application eventually is going to need stored procedures, functions, triggers and so on, so we have created a special type of project for that. I'm going to add one right now. And we call this the DB2 Database Project. That's an appropriate name. We're going to select a connection. I'm going to use the same connection to the database. And if you look in here, in the Solution Explorer, this data project, DB2 project really shows you how you can go ahead and add value in here by creating procedures, functions, scripts, tables used, triggers, all of the things that you need to deploy to the server.
Now, let's go ahead and take one of those, and let's create a stored procedure. So, I'm going to add an item. And we've created some templates for you, so there's just a simple file template, and by the way you can go ahead and enhance it yourself. You're free to go and create new templates as well.
We have a wizard down here to create stored procedures and something that's brand new, that we have in the technology preview right now is something called DB2 CLR Stored Procedure. So those of you who are familiar with the .NET Framework, doing all of that -- CLR stands for common language runtime -- so DB2 can actually load the CLR virtual machine into the DB2 address space, and then you can write your code in any CLR compliant language, let's say DB .NET or C#, load it into our CLR and have it run there.
So let's go ahead and create a CLR stored procedure here. Of course, it's a wizard and you're going to notice in here that instantly it went into my solutions and found one of the class libraries in there, which actually implements a stored procedure. I can go and decide in here where I'm going to save this stuff. This is just housekeeping. And again we instantly notice that there is a method already coded up that implements -- and by the way this is on C# but I'm just going through the wizard.
So, we have a method in here that implements are stored procedure, and you can have more than one stored procedure in a class.
I can go ahead and do some mapping changes between the CLR data types and SQL data types, but I like clicking Next the most. I can put some headers and footers into my code. And I now have the summary screen, which is a good clue for me that says I'm pretty much done.
So let's see what got generated for us. What we have is a script, and scripts are great because you can replay them, you can rerun them. DBA database people live and die by scripts. What do we have in this script? We drop the stored feature, we create a new one -- and it's conditional by the way, the dropping part. We grant execute, meaning we authorize people to run this, and we give it to public because we don't care much about security right now.
So we're done. If I click Finish, you see the same script being brought up in a Visual Studio .NET editor, and it's not a DB2 editor, it's a Visual Studio .NET editor. You still have your Intellisense. You still have statement completion. You still have your colorizing. You have all the things you are used to in the Visual Studio .NET ecosystem. All we've done is we've made it understand DB2, and that's really the power of these tools.
Let me give a little quick overview of some of the other tools. Now, it doesn't matte how smart you are, once in a while you will need help. So, we've integrated help into Visual Studio .NET. And if you look at the help that we provide, it is the normal Visual Studio .NET type of help, complete with filtering, complete with related topics like "See Also" and so on.
You're also going to see some of the output windows in here. That's a very good focus point for cursing when things don't go right. You're going to see all your errors in here.
I'm pretty much done with my demonstration. What I wanted to leave, the message I wanted to convey to you was, yeah, we deliver some pretty nifty functions, but it's really not the function that we were aiming for; we were really aiming to make sure that we deliver the function by expanding the Visual Studio .NET experience to include DB2, and you become instantly productive with DB2 by utilizing this experience, and really the VSIP program helps us achieve that.
We're very happy that Microsoft invited us today.
BOB PICCIANO: Absolutely. Thank you, Eric.
ERIC RUDDER: Thank you. (Applause.) Thanks, Bob.
So I hope you can see just kind of a glimpse of what we're talking about and why we're so excited about VSIP. The level of integration now that we have with Visual Studio with all of the major enterprise partners, be it a Microsoft SQL Server or a DB Server or if you're using the Oracle .NET drivers, is truly incredible, and we really mean delivering developer productivity regardless of the choices you've made in your environment. We want to leverage your existing investments going forward.
So we're super excited about what our partners have been able to achieve, and we're super excited about the enhancements that are yet to come as people really take advantage of the revised VSIP program.
So our key priorities together as a community -- I think we talked about a little bit today. Clearly, we want to grow the partner ecosystem and one of our biggest initiatives here, as I mentioned before, is the VSIP initiative. We'll continue to enhance that.
But the second key initiative is to really use the power of integrated innovation to drive more business value to customers, and I'm going to spend a huge amount of time in the talk really showing how we're going to use integrated innovation to bring lots of people together, again to enhance developer productivity and to enhance end user value as well.
We want to continue to deeply engage with enterprise customers, understanding requirements for being successful in the enterprise, not just on a technology basis, not just on a product basis, but on a service arrangement, consulting, support as well, and really help become a trusted partner to the environment.
A new initiative for us this year is to serve the small and medium business better than we have in the past as well. I think too often vendors kind of take their enterprise products, they kind of cut the price, take out a couple of features, call it an express edition, and voila, there's our product for small and medium business. I think as an industry we can do a much better job designing products that really simplify things for people that are developers or IT pros in smaller and medium business.
It's hard in a smaller corporation when you really kind of need to be a jack of all trades. It's one thing when you're a large corporation, you know, "I'm a database specialist, I'm a messaging guy, I'm a mail guy." But when you really need to bring it all together and you kind of need to understand lots of things about a lot of disciplines, it's hard, and I think one of our key messages is really appropriate simplification going forward.
And finally, we want to continue to work to increase customer satisfaction. One of our broadest initiatives here is the work we do with communities, the work we do with INETA and our user groups and Code Wise and lots of things on the Web, and we'll show later on how we're actually going to build communities into the products themselves.
So if you're building a Visual Studio .NET application and say you're doing Oracle connectivity, the environment knows that and it can actually connect you to a user group saying, hey, you're doing Oracle 126.96.36.199.0, here's a patch that you might need for 188.8.131.52.0 and here's a whole bunch of other users that are also doing the same thing that may have some code to share. They can post it up there, their code can be described via an XML schema. You can actually see some nice descriptions so that when you're back in your Visual Studio environment, you actually see descriptions of what's out in the community so you can kind of leverage them in your environment, and we'll show some of that going forward.
Well, why is this so important to actually deliver integrated innovation? What really is the challenge with business value? Well, I think this Accenture study really kind of talks about it pretty crisply. The problem is that most of us are spending most of our time just keeping today's systems up and running. Why are there application backlogs? Because we're spending 70 percent of our time just keeping the ships sailing or the trains running or whatever metaphor you want to use, and really we want to increase the amount of time that we're able to deliver creating new value and decrease the amount of time that we're doing simple maintenance, and that's really our challenge.
And the way that we're going to deliver upon that is by delivering a common platform, right -- the infrastructure, business applications and information workers -- kind of the three pillars, if you will, that come together.
And the idea is that by integrating these things we'll have fewer concepts and we can drive greater simplicity, and it should be easier to deploy, easier to secure and more efficient to operate. Again, the goal is to manage the entire solution, not just the technology parts of the solution.
And the thing that makes this possible now more than anything else is that Web services really can connect things together. They can connect applications to each other. They can connect the partners to each other within an enterprise. And they can connect enterprises to each other, enabling new business value chains that didn't exist before. And again, the ability to work with both what you have and going forward is key.
So I wanted to share a little bit about our systems roadmap, and then I'll talk a little bit about our tools roadmap in particular because I know that's the one that we're most interested in.
Of course, Windows Server 2003 is the platform we launched this year. Again, we touch 175,000 customers. So are we done with Windows Server 2003? No, we're not done. There are a lot more features coming to kind of round out the platform and finish it off. We will support 64-bit. The AMD machines and that instruction and the Itanium 2 instruction set will both be fully supported.
We'll have a bunch of advanced tools coming out to help administrators and developers manage their systems more effectively, so we have Group Policy Console and we have especially a helpful one that I recommend you guys take a look at, that's our Security Baseline Analyzer, something that we continually rev on an ongoing basis to make sure as you kind of run this wizard it gives you kind of a list of best practices, making sure that your system is secure. And at the end of the report, it gives you buttons to click to actually take prescriptive action if somehow you've set up your system kind of conveniently.
A lot of times in development we kind of will create our little database, maybe we'll create SA with no password, or maybe we'll turn off security to make debugging work, and I've seen it happen a million times. I've done it myself. Sometimes those machines find their way into production environments when we really don't meant to.
This is a great tool for developers to actually make sure that things are set up the way that they need to be set up as you move things out and as you stage through the process for your development experience.
On the information worker side, a couple key products are coming out as well that I think developers need to be aware of. The first is our Windows SharePoint Services, which is a great portal offering. Windows SharePoint in the next edition is actually based on ASP .NET so you can leverage all the skills you have with ASP .NET and compose Web parts to deliver departmental portals, so I think that's super cool.
And then, finally, Windows rights management is a new key technology coming out that I think developers are interested in. This lets you do things like secure e-mail messages or secure documents. You can say, hey, I'm working on a project with another company, it's kind of a secret project. Only people from my company and this company may be able to see it. Or maybe the documents that we're working on, we're doing a merger with another company, they should only last two months before nobody can see it and the document self-destructs. There are lots of capabilities for both developers and information workers that I think people are going to find super exciting in the Windows Rights Management product.
And finally on the application side, we'll be offering lots of infrastructure for developers as well. The first one we've affectionately nicknamed AD/AM, our Active Directory Application Mode technology, which basically let's developers have all the features of Active Directory as a kind of standalone database without mixing it up in your directory authentication and security schemes. So this is if you just kind of want a simple LDAP database, you don't want to talk to the IT pros and you kind of want to add your own attributes and change your own schema. There's lots of times when we're coding applications where we need a little directory and we've kind of had to write something ourselves or write a little thing on top of SQL Server. AD/AM actually lets you take advantage of all the power of Active Directory running just unique to your application, or your set of shared applications.
And finally, the Identity Integration Pack is a set of technologies we'll be offering to help corporations instance WS Security and its technologies in the corporate environment as well.
It's not just Windows technologies that are interesting this year. As well, it's also the set of server products that are interesting for developers to think about. The first is SFU, our Services for UNIX. For corporations that are thinking about moving over applications from their UNIX platform onto their Windows platform, this is a great set of technologies that lets the Windows nodes kind of interoperate with the UNIX nodes. We have support like NFS File Service or Telnet or all the UNIX utilities are basically in there.
And then there's technology to help you actually map your UNIX programming constructs to run on top of Windows. So, for example, if you use the pthread support package you don't have to rewrite your things for the Windows threading model; we'll actually provide a library for you, and you just link with the new library and can run on top of Windows. So we're super excited about that.
SMS and MOM really form the foundation of our management platform. This is important. SMS 2003 will be the best release of SMS we've ever done for rolling out and distributing your .NET applications, for enhancing policy on your .NET applications as well.
ISA Server is our caching and firewall product that will ship later this year.
And finally there are some new opportunities for developers from some services that don't exist yet. I kind of didn't know where to put this. It's Speech Server. It's partly application infrastructure and partly for operations as well. This is a set of technologies that actually does speech recognition on the server but comes with operational infrastructure for linking into your call control systems.
The nice thing about this is the program model for Speech Server is ASP .NET so you literally take your ASP .NET application, you say, "Hey I want to enable it for voice," you kind of tag, "Hey, this form field is a Press 1 thing or say the name of the form thing," and we're very excited about the way that people will create multi-modal applications using this technology as well.
The information worker technology will continue to advance. SharePoint Portal Server is a key product. Exchange 2003 just shipped. I expect people to roll that out in conjunction with Office System, which we'll talk about early tomorrow morning. We're super excited about the work that we've done called Visual Studio Tools for Office. It's a wonderful product. I encourage you guys to learn more about it. It really lets you sit inside of Visual Studio, create new applications, and literally use the .NET programming language behind Word, behind Excel, so for the first time you can actually automate Excel using C# right in the environment. It loads up all the interop stuff that you need to do automatically. There are some very nice features for server-side programming.
So if you've ever wanted to deal with Office documents on a server but you know you're not really supposed to because that doesn't scale, there are some nice features in the VSTO environment that actually let you run code on server side that can interact with Office documents and read the XML data out of them and write the XML data into them in much better scale, much better performance. And I think this is exciting for a lot of reporting scenarios using Excel, or a lot of kind of mail merger scenarios that use Office and it's much better scalability, again, without having to instance the Office side as the Excel server side.
And, of course, the RTC Server infrastructure is something we're super excited about -- I guess we're super excited about a lot of stuff. Real time is a trend that I see again and again, and again lots of companies asking, you know, "How do I take the investment that you're making with Greenwich and the Real Time Servers and kind of put a window inside my application to let developers collaborate with each other or let a designer collaborate with developers or let two knowledge workers share a document?"
We'll ship our RTC Server and some solution offerings on top of it like the PlaceWare acquisition we did to let you enhance your applications, whether it's help desk for getting help or other collaborative things.
I think increasingly real time features are going to be demanded in the applications that we deliver to customers, and this is kind of some of the key technologies.
And, of course, Project Server for keeping it all together.
BizTalk Server is the anchor product of our e-business suite and we'll see BizTalk Server 2004 ship later this calendar year that supports all the latest Web services standards around BEPL, WS Transactions and all that other good stuff, again for orchestrating lots of applications that use Web services together in a distributed environment.
So a pretty good complete server and tools roadmap, both on the Windows side and the extended family for this year that people should keep in mind.
Beyond that, we're actually working, of course, for the next version of Windows Server, and kind of some of the key features in that that I'd like to share we have a tremendous focus on making it simpler to manage our systems that we do and we call that our Dynamic Systems Initiative.
And the key reason I mention it to developers is that one of the key investments we're making is literally changing how the Visual Studio environment itself works with the operational infrastructure that you have.
So, I think for too long developers have kind of written apps, kind of tossed it over the wall and said, "IT pros, figure out how to operate it." You literally will be able to sit inside of Visual Studio and kind of draw boxes around and say, hey, these nodes, this component, these services sit outside the firewall. This set of technology sits inside the DMZ. This actually sits on the client software. And the application management technology will actually deploy your application to the proper management operational infrastructure based off the schema that you as a developer assign.
And increasingly, you'll see us enhance this thing, saying, you know, "Hey, for my component it needs this class of service, it must have a T1 line capable of doing X or I want to do performance modeling," you know, "If I put this server here and if I put this cache here what will it be," so increasingly bringing developers and IT pros together to define more robust solutions and again to simplify and to lower the cost. The overall solution cost of maintaining is something that we'll have great focus on in the future.
The way we describe these things, the attributes I was talking about -- where things sit, how fast things run -- that's based on a schema that we call SDM, or System Definition Model, and it's something that I expect us to actually start shipping beta quite shortly.
On the information worker side, the things that I'm most excited about are probably the continued enhancements for mobility whether you're roaming around with a laptop or a Pocket PC or a Smartphone and, of course, Win FS, our new storage system that we'll see in "Longhorn," making sure there's a great server implementation so that we can take advantage of all that great storage technology.
On the application side, you'll see us continue to really push forward on the envelope, really leading the Web services revolution. That technology actually just shipped in beta. It's codenamed "Indigo," and I encourage you to come to the PDC, which I'll talk about more later, to really hear more about that technology and how it affects you.
On the operations side, we'll continue to enhance SFU for people that either need to interoperate with UNIX or again want to bring components over.
We'll take our management offerings and actually bring them into a bundle we call Systems Center, and that is basically the next generation of technologies around MOM, SMS, App Center.
And on the information worker side, obviously, we're not done with Exchange, we're not done with RTC Server, we're not done with our portal. We'll continue to enhance those as well.
The two key anchor products kind of in the next wave that I want to talk about most are really SQL Server "Yukon" and Visual Studio "Whidbey". And again, I mentioned that we literally timed the Visual Studio releases to support the key platform waves of technology that are coming to market and the next major wave is really around "Yukon." That's really where we deliver the next level of scale, the next level of XML integration, and we're super excited about that release and "Whidbey" is the anchor product that will work together with "Yukon."
It's not just the SQL Server scenarios that we're excited about; it's really all the key technologies. So you'll see us continue to involve the rich client scenarios around Windows Forms and Office. We've got some great new features in ASP .NET, themeing, and some performance enhancements in terms of how we cache with databases, and you'll see the next generation of device support with the Compact Framework and enhancing our embedded CE technology and offerings for devices as well.
We will continue to raise the bar and what it means for development environments to deliver developer productivity. We have a cool set of features, which is called My Classes, which really let you write a lot less code. Ari will show that in his demo. We are going to simplify data access and, of course, it will continue to make its return back into our product suite as well.
We have a lot of language and compiler innovation that we're offering back into the mainline classes, so these are things like generics, iterators, some anonymous methods. partial types is kind of a neat little feature that we sort of invented for ourselves, if you will, and found, "Wow, this is really useful for a whole bunch of things." It actually lets you define a class file across multiple files. So the reason we invented it was sometimes designers actually spit out a lot of code, and you want to enhance it and, "Yeah, we can turn it grey," or, "Yeah, we can put a little plus sign," but really if you kind of just want it out of your face and focus on the code that you're writing, partial classes and partial types is a very nice way to do that.
And, of course, PROGO, our Profile Guided Optimizations, will really continue to deliver best of class, best of breed compiler performance in all our languages.
We will continue to invest massively in the worldwide developer community and really fostering community. I'm super happy with the Code Wise program that's come out. I think you'll see in the demo why we're super excited about what Code Wise can really contribute on a new level going forward, and how people can really take search and really do some interesting things with this.
So, for example, if you think about today going to a search engine, what if you only want to see search results with code samples? That would be a really nice thing to do. Or what if you want to actually search the Internet and only see code samples from people that you respect or people that are Microsoft MVPs or people that work in your company? Or what if you only want to see a specific other set? We'll let people search through code and other Internet assets in very interesting ways, and it's something that I think will be a huge productivity boost.
We'll also continue to enhance the product's ability to be dynamic, whether it's loading controls and templates off the Web or sharing best practices. That's another area of huge investment for us.
And, of course, it provides a key path to the future in "Longhorn" and what we call Visual Studio "Orcas."
So I could describe these features forever, but I think it's kind of boring to actually talk about the Whidbey features and it's bad enough you have to sit here and suffer watching me talk through the keynote as well. You guys come to VSLive! to actually see cool stuff. So let's actually take a look at the future version of Visual Studio, which we call "Whidbey." For that I'm going to ask Ari Bixhorn to come up and show us kind of the next version and give us kind of a sneak preview of our roadmap in action. Good morning, Ari.
ARI BIXHORN: Good morning, Eric. Thank you. (Applause.) Thank you.
All right, so let's take a look at some of the features that we're delivering in "Whidbey" as they pertain to the Visual Basic developer. In VB "Whidbey" we have a renewed focus on ensuring that Visual Basic developers are the most productive developers in the world without sacrificing any of the great power features that we receive in Visual Studio .NET.
So in this demo, we're going to build out a personal music management application. And as Eric mentioned, one of the key things that we're working on in "Whidbey" is community integration. So one of the key features that we have in the IDE now for "Whidbey" is an improved community search. That's what we can see here. When I do a search within "Whidbey" I can pull back information not only from my local data store but also from MSDN. We expand our Code Wise community search and we also enable developers to connect with one another more than they ever could before, trading tips and information as well as reusable components and controls.
Now let's dive into the application itself. As soon as the VB developer gets inside of Visual Basic "Whidbey," they're going to be familiar with the look and feel of the environment. That's because we've done a lot of work with profiles in "Whidbey." So from the tool window layout to the toolbars to the menus, everything looks and feels as it should for a VB developer, whether I'm a VB 6 developer or a VB .NET developer.
And for those of you who are still using VB 6, I'm pleased to announce that we have placed the Make Executable back where it belongs under the file menu. I was pretty excited about that.
So what else have we done? Well, in addition to customizing the IDE with profiles we've also improved our tool window docking model.
ERIC RUDDER: That's good because Visual Studio really needed more windows to enhance productivity. (Laughter.)
ARI BIXHORN: That is a very good point, Eric. I'm glad you brought that up, because actually as you can see here we do have this data source fields window that is a nice window for interacting with project-related data, but it's sort of just floating around, and what I want to do is dock it to the side of my IDE. And we introduced tool window docking in Visual Basic .NET, a cool feature, but we heard from developers that it wasn't the easiest to maneuver in terms of determining where that tool window would actually end up.
So we've improved that vastly in "Whidbey." As soon as I start dragging my tool window around I get anchor points that tell me exactly where my tool window is going to end up. Once I move from the designer over to the solution explorer I get a new set of anchors that allow me to determine how it will anchor there. And in this case, I just want to have it sit nicely with the solution explorer as another tab.
All right, well what else have we done? Well, a key design goal of Visual Basic "Whidbey" was to reduce the amount of code that VB developers have to write when they're performing common tasks, and we've implemented this in a number of ways.
We've got a bunch of new controls for Windows Forms, and we can see one of those here. It's a managed sound control that enables us to very easily interact with the system audio.
We've also made enhancements to the coding experience itself. So let's say I want to print out a sleeve for any of the CDs that I have in my collection. Well, for any of you who have ever done printing in Visual Basic, you know what a joy it can be. Let's go ahead and double-click on this print button here, and we can see some of the code that we would be writing in Visual Basic .NET to print out that CD sleeve. It's a lot of code, and well, it's sort of complicated. We have to deal with pens and brushes, all the features of GDI+. Let's go ahead and delete all of it and let's see how we would do this in "Whidbey."
What I'm going to do is type With My -- and Eric mentioned the My Classes. These are a set of abstractions of the .NET Framework classes that allow me as a VB developer to access resources much more easily. So here we can see I have access to my application, data sources that are associated with my project, Web services, forms within my project. But since we're printing here, I'm going to select My Computer. From there, I get a list of computer-based resources, everything from the registry to the operating system to the monitor. In this case, I'll select my printer collection, and here we'll just select the default printer. Now, I'm coding against that default printer from our system.
So what I'll do here is drag and drop a little bit of VB .NET code into the code editor, and with these few lines of code we're accomplishing the same thing that tool all those lines of GDI+ to do before. So we're setting our output type to preview so we can get a preview of our printout before we actually send it to the printer. I specify a couple of rectangles, and then I make the few calls to the print method. And the beauty of the print method is that you can print anything, from text to images to an entire dataset of information to the form that you're working with itself.
So printing has been significantly improved inside of Visual Basic "Whidbey."
Well, what else can we do to help you write code? We can do a lot of the coding for you. How many times have you been in a situation where you're looking to write a block of code that maybe you've written before. Let's say to send an e-mail to someone, but you can't remember which assembly you need to reference, or what import statement you need to do for which namespace, or what the code actually looks like itself. Well, you could check online, you could look for it in a book but ideally we would have this readily available to us directly inside of the code editor and in Whidbey you do. We have a large collection of integrated code snippets that we've pulled from our local store as well as from online sources like MSDN, and in the future from our Code Wise community members.
So here I simply select a snippet, click on it and it's implemented in my code editor. But what's more is that this is more than just a code snippet. In fact, it's a template that automatically places the cursor exactly where I need it to be to update the information that needs to be updated.
So I can put my e-mail address here and type in Eric's e-mail address -- you don't mind me giving this out, do you?
ERIC RUDDER: No.
ARI BIXHORN: Okay, cool. (Laughter.) And so on.
Now, these code snippets can be very easily deployed to other user's machines. In addition to that, what we didn't see here is that when we clicked on that code snippet it automatically added a reference to the System.Web assembly, and at the top of our code it automatically added an import to the namespace that we need to code more effectively.
Now, what about for the advanced Visual Basic developer? Well, Eric mentioned some of the features that we're going to be delivering in "Whidbey," things like generic support, partial types, unsigned data types. Well, we're also going go be delivering XML based documentation and this is a feature that VB developers have been asking us for since the initial release of Visual Studio .NET. With XML documentation, I can create documentation within my code that describes methods as well as the parameters that are being passed into them so that other developers coding against that can understand how it works.
I'll simply type in a quote and an @ sign and I get a template here for describing what this particular method does. I can describe not only the method itself but also each of the parameters and the return values. I'll just go ahead and drag and drop a pre-populated XML doc block here so that now when I go to call this method from somewhere else in my code as soon as I bring up information about that I get a tool tip that tells me that this is a method for searching a hard disk for music files. Once I do an open paren I get Intellisense and I get a tool tip telling me what each parameter does.
So we see some of the community features, some of the IDE features, as well as some of the code editor enhancements. Let's go ahead and run this application and check out some of the debugger improvements.
ERIC RUDDER: We work hard to prepare for VSLive!
ARI BIXHORN: Yes, indeed. (Laughter.)
Well, it appears that I've got some bugs in my code. Whatever shall I do?
Well, fortunately Visual Basic ships with some new features that allow us to correct our compile time errors and our syntax errors in a very easy way. So we can see here that I've misspelled the word Boolean. It happens to the best of us, right?
Now, if I hover over this in Visual Basic "Whidbey," I'm going to get a Smart Tag, and when I click on that Smart Tag I'll get a list of suggested corrections that I can implement to correct this syntax error. It works in a very similar way to how the Microsoft Word spelling and grammar check works. So I can obviously select Boolean here and correct that. It looks like we have another syntax error here where a closed parenthesis was expected. I click on that and I get a window that actually shows a couple of suggestions for how we can correct this. In this case there's just one suggestion. I'll go ahead and double click on that, implement the fix, and now I'm ready to run my music management application.
Eric was talking about Web services, and we've woven Web services throughout this application, so we make a call out to a Web service to bring back the latest news and information on the music and movie industries.
But what I want to drill into now are some of the features that we just implemented in our code, so I can drill into Eric's music collection. He was kind enough to give me access to that just before the keynote this morning. We can see the various musical genres that he listens to. It looks like a fan of John Tesh I see. He's pretty hot these days I understand. I just got his latest CD, very cool stuff.
ERIC RUDDER: He'll be at midnight madness.
ARI BIXHORN: I think he might be here tonight playing a tune or two.
So let's go ahead and drill into hip-hop. I mentioned we've got some Web services implemented. One of them is a cross-reference Web service that allows me to find other CDs that have been produced by Eminem. We can get that information back here in just a second.
Let's check out some of the functionality that we just coded up though. So if I select that "8 Mile" CD, we'll go ahead and test our printing functionality, and the code that we just wrote draws the rectangles that we want, pulls the images from the database and displays the song just as we would expect.
We can also test out that managed sound control that we saw in our form, and for the sound control let's check out a song from the VB Rapper. He's actually a lesser known but definitely an up and coming artist in the industry. Take a listen to the Visual Basic .NET rap song. I'll click play, and once again it appears that we've come across an exception in our code.
Now, when exceptions occur in runtime in VB "Whidbey," we're going to get an exception helper like the one that we see on screen here. This provides information about the exception and also provides suggested actions that I can take to correct it.
So in this case, it says that it can't find the file that we're looking for, tells me to check the filename, and upon looking at this I can see that it looks like I've just forgotten the dot between the filename and the extension. That's easy enough to correct and, in fact, in "Whidbey" I don't even have to stop the debugger and restart my process. I simply change my code, update the point of execution and play the song. (Music plays.)
Oh, you get the idea. (Laughter.) That's right, our good old friend, Edit and Continue, has been returned to Visual Basic in the "Whidbey" release. (Cheers, applause.)
So we've seen some editor enhancements, some IDE enhancements. What else do Visual Basic developers do on a daily basis? Well, we do data access, right? Data access has kind of always been the heart and soul of VB development. So let's see what enhancements we've provided there.
In this example, we're going to extend our music management application to cover not only our personal music collection but also our video collection, and to do that I want to pull some information from our database. So what I'll do is I'll bring up that data source fields window and I'll bring up our project data sources.
Now in "Whidbey" we're delivering enhancements that enable you to simply drag and drop tables onto a form and without writing a single line of code get automatically generated data-bound UIs as we see here.
So I've got a data grid that will display this information, but, in fact, what I want to do is customize this just a little bit. I don't want a data grid; I want a details form. So I click on the Smart Tag, I select details form and that's automatically updated for me.
What's more is that Visual Basic actually understands the relationships between tables in our database, so if I click on the Smart Tag within this I can go ahead and say Add a Child Form. Interesting. I can go ahead and say Add Child Form and seamlessly we get a wizard brought up that gives us a list of options -- all this code is real, folks, it's all real. We get a list of tables, child tables that are associated with the video genre table that we can now add to our UI. In this case, we can select from a grid or a details view; I'll select a details view, and now we have that added to our designer without writing a single line of code.
We just go ahead and drag these out a little bit more and there are many things that you can do in terms of customizing the designer from within the Smart Tag. So in this case I can change the genre ID to a combo box very easily. All right. All right. Interesting. (Laughter.) All right then. (Laughter.)
Let's go ahead and try something else here. Hey, there it is. All right! Fingers crossed on this next part of the demo, folks.
Something else that you'll notice is that when I click on a field here, when I click on something in the designer and I move it around, we'll notice that we get these snap lines and these snap lines allow me to very easily ensure that my controls on the form are aligned with one another.
Now, let's go ahead and run this and see that No Code Data Access in action. Connecting to our server, pulling down the information, we'll click on our video management application and without writing a single line of code I've got data-bound UI, I can scroll through the video genres, I can scroll through the movies themselves, "A Night at Home with Visual Basic .NET." That's one of my personal favorites.
Let's go ahead and take a look at this one. For those of you who have ever seen the movie "Full Metal Jacket," you might recognize this gentleman. It's the drill instructor. I believe he has a message for us. Let me go ahead and play this.
DRILL INSTRUCTOR (From video): Well, how about that? That's the best (bleeped) demo that I've ever seen.
ARI BIXHORN: All right. Well, you can see that the drill instructor shares my enthusiasm for VB "Whidbey." We got a very early look at some of the features that we're delivering that are going to empower Visual Basic developers from increased community support and IDE productivity to code editor enhancements to debugging improvements to the return of good old Edit and Continue to even some interesting data access features. Visual Basic "Whidbey" is going to take productivity and power for VB developers to new heights.
Thank you. Thanks, Eric. (Applause.)
ERIC RUDDER: Now, say what you want about that demo, but it wasn't boring. (Laughter.)
You know, we literally just went beta on "Whidbey" in the past week. And why take beta bits hot off the press and come here and show it and risk actually seeing an insertion error? It's because we want to be more transparent with our roadmap. I believe strongly that the more you know about our direction the smarter decisions you can make in your code, in your architecture and in the investments that you make. So, for example, the stuff that Ari showed with XML schema in front of your code snippets. We actually have an add-in to Visual Basic, which can add that information today. I suggest you start decorating your code with that information today, just comments, VB will ignore it. I think it's super important, and when people start to use the new version of Visual Basic and call back to your classes they'll see the decorations, they'll see Intellisense. The more you know about the tools roadmap and the system roadmap the better choices you can make.
So we'll continue to take some risks showing demos, sharing technology, sharing bits. And the next major step for us actually is at the end of the year at the PDC in Los Angeles. I think it's actually the end of October. We'll actually be giving a CD away with some of the "Longhorn" technology and with the next version of technology in Visual Studio. I encourage you guys if there's any way you can get out there it's a super way to actually understand our development roadmap over the next couple years.
So the call to action is really to start using Visual Studio .NET 2003 today. Many of you are already using it and understand the improved productivity, are benefiting from the connectivity and dependability, and are really gaining business value from the productivity enhancements that we've delivered.
It is clearly on the road to "Whidbey" and "Yukon." I hope you can see from the demo that we're really trying to kind of polish up the UDDI, deliver some new features but continue to preserve your existing investment. We've heard loud and clear how difficult the change can be from VB 6 to VB .NET. I think those types of changes are kind of a once in a lifetime, hopefully generational changes, but that's something that we've heard crisply and whether it's kind of little things like gridlines for lining up controls, or major things like simplifying data access those things will all continue to work back and forth with "Whidbey" and Visual Studio .NET 2003.
Also it's super important that you continue to move your code to managed classes because that is the way the Windows API is going to be in the "Longhorn" release. Basically, "Longhorn" is the best of Windows and the best of the .NET Framework coming together into a single offering, and the .NET Framework basically becomes the platform API for Windows.
We want you to continue to take advantage and to grow the ecosystem of community resources, so whether that's working with your user group or contributing to Code Wise or starting a new site or hanging out on our bulletin boards, whatever community you feel comfortable with. That's what community is about; it's the people that share common interests with you. But being an active member is something that I think is super important and really helps all of us be more effective in our jobs.
Take a look at the VSIP SDK. It's not just for large corporations. There is lots of work that you can do to enhance what goes on in your shop to make your developers more productive with Visual Studio and really I can stress enough, come to the PDC in 2003 to really learn a lot more about our tools roadmap and our systems technology as well.
We talked a lot today about .NET momentum and really .NET is the software for connecting information, people, systems and devices. We'll continue to deliver the best business value. We'll continue to deliver the best productivity for developers, for end users and IT pros in operating the solutions, and again, focusing on solutions that span clients, servers, services and tools is something we're extremely focused on.
Our commitment to you is that we will deliver great productivity and better business value to help you stay competitive, that will lower your costs, enable a greater ROI in your IT investment, that will help you integrate your systems, reduce complexity, keep you secure, and that we will own your issues and partner appropriately with other folks in the ecosystem when required.
Our goal is really to help you realize your potential, and I hope I've showed you today a little bit about our roadmap and how we're going to be doing that in the next years to come.
Thank you very much for your time this morning. Enjoy the rest of the show.