SOMA SOMASEGAR: Thank you. Good morning and welcome all to VSLive! It’s a great pleasure and honor for me to be here this morning to help kick off this session. And I do hope that over the next few days here at VSLive! that this conference provides a lot of education, information and more importantly you get to have a few fun-filled days in this wonderful city of San Francisco.
So over the next hour or so I’m going to spend time talking about three different things. The first is .NET momentum; second, smart clients and third, Visual Studio Team System.
I don’t know how many of you remember this. If you look back three years ago, exactly to this month three years ago in this same venue in San Francisco Bill Gates launched the first version of the .NET Framework and Visual Studio.NET. And if you look at the three years that has followed since then, we’ve seen an amazing amount of momentum, excitement, mindshare and adoption for .NET with both our customers and our partners, so I want to share with you some data that just highlights the kind of momentum.
Whenever I talk about great momentum, in some sense I’m really talking about a great ecosystem of resources for you all as .NET developers to draw from. One of the things that I constantly hear from you all over and over and over again is the fact that the demands that are being placed on you as developers in today’s connected system world are far higher than ever before.
Take any application that you ever develop today; you have to think about applications that connect to any data source, you have to think about applications that integrate with other platforms, you have to think about applications that interoperate with other kinds of systems and applications via XML standards based Web Services.
We at Microsoft do understand that this brings about complexities in your day-to-day life as you think about developing applications in this connected systems world, so between Visual Studio and the .NET Framework we continue to invest heavily to enable you to build connected system applications.
One key component of the connect system application is smart client. Now, I’m a simple kind of a guy, so whenever I think about a smart client, rather than thinking about like the complicated definition that you see up on Microsoft.com, I sort of have a simplistic model in my mind; I say let’s take the best from the Web client world, let’s take the best from the rich client world, let’s put them together and voila you have a smart client.
So we’ve continued to invest heavily in a set of tools and platform technologies between Visual Studio, Visual Studio Tools for Office, Microsoft Office and the .NET Framework to enable you to build smart client applications easily in the connected systems world.
So I’m going to spend a bunch of time during the presentation talking about the kinds of things that we are doing that are going to make your life easier.
When you think about connected systems, the other thing that comes to mind is that the world is becoming a smaller place every day. In some sense teams are being dispersed geographically. You really want a set of tools that enables developers or teams of developers to come together and work in a highly collaborative and effective environment so that they can deliver on the connected systems vision.
So with Visual Studio Team Systems that is an integral part of Visual Studio 2005 we are on track for delivering a set of tools and I’ll talk some about that as well.
So to get started I want to share with you sort of one interesting data point that highlights the .NET momentum from a different perspective than what you’re used to hearing from us. Three years ago, when we launched the first version of the .NET Framework and Visual Studio.NET we sort of happened to look at Monster.com and ended up finding about 300 job openings for .NET developers. So we were here launching the first version of the .NET technology and there was already demand for 300 developers around the world.
Three hundred is a good number for back then, we were excited, we said, “Hey, this is a good beginning.” If you looked at the details of what they wanted, they wanted about three-plus years of .NET experience on an average. (Laughter.) So here we were coming out for the first time but people were already having high expectations and we said, okay, that is great, sooner or later we’ll find 300 people in the world, apart from Microsoft people, who had experience and life will be good.
But if you look at where we’ve come in the last three years, recently we took a look at this and there are over 10,000 job postings for developers with .NET expertise and experience. This is sort of just one data point but it shows you how far we’ve come in the last three years.
I want to sort of take a minute here and talk to you about a particular customer story here. This is a customer who decided to take a bet on Visual Studio and the .NET Framework to build a smart client application. In this particular case this is an airport management sort of group of people. If you think about airports, they are a classic example of what I call connected systems. If you want to get a holistic dashboard view into the health or status of an airport, you literally have to draw data from a variety of sources, from the air traffic control system, from the land traffic control system, from the runway status system, from security systems, from the baggage handling system, from the reservation system and a whole host of other systems. And if you look at most of these airports, a lot of these systems are discrete systems and you have to pull data in different formats and somehow glue them together to create a holistic dashboard view into the health of the airport.
So this particular customer, they went through a round of evaluations of various technologies and finally decided on Visual Studio and the .NET Framework to build a smart client application.
And there are three main reasons why they picked this technology choice: number one, high levels of productivity; number two, performance and number three, unparalleled support for Web Services in Visual Studio. These three reasons made .NET the obvious choice.
Now let’s hear from this customer. Can we roll the video, please?
SOMA SOMASEGAR: It is exciting to see customers like the Zurich Airport management taking a bet on our technology, on our tools and build amazing things and deploy those things in real world environments. Now, I’ve always believed that the real rock stars for Visual Studio are our customers and with customers like Zurich Airport they just reinforce my belief in customers being the real rock stars for us.
A few months ago, Forrester Research did a study. For this particular study they went and talked to decision-makers and developers in companies across North America and they chose companies that had upwards of 5,000 people. So in some sense you can think about these companies as substantive businesses with real mission critical needs.
And they asked these people one question: Which one platform will you be using for the majority of your development work this year?
And the result: 56 percent of the enterprise customers that they talked to said that they’d choose .NET as their primary platform of choice. In three years coming from zero to 56 we feel super excited at Microsoft and for the first time Forrester Research came out and said that the majority of developers, 56 percent to prove their data points, are choosing .NET, are targeting .NET as their primary platform of choice. Clearly, .NET is enterprise ready.
But if you ask me, you know, hey, is .NET the only choice for customers, absolutely not. Customers can choose whichever system they want and from my perspective as long as we continue providing the best value proposition for our customers, they’ll want to choose our technologies, our platform and be with us.
So from that perspective I’ve super excited about the momentum and we are committed to continuing to invest and continue that momentum forward.
I want to spend a minute here talking about a couple other customers. Now, these customers, once again like the Zurich Airport guys, have taken a bet on Visual Studio, on .NET to build applications and deploy applications for their mission critical needs, as well as applications that they sell to their customers.
If you take a look at new Atlanta Communication System, for example, they had a ColdFusion market plan with base server that was running on J2EE. In order to reap the benefits of the .NET platform and get the sort of flexibility that the platform provides they decided to migrate their server platform from J2EE to .NET. One of the things that they found in addition to all the benefits that we talk about, they found that the .NET solution was highly interoperability with their existing heterogeneous environment.
If you take a look at Baylor Healthcare Services, they had a ColdFusion based Internet or Web site. Now, they thought this was sort of outdated and antiquated and they wanted to look at different technologies to revamp that site. They actually looked at some solutions that existed out there and finally decided to custom build their Web site using ASP.NET 2.0 and Visual Studio.NET. When they finished their migration or when they finished rewriting the Web site, the levels of performance increases and security wins that they saw, they were really thrilled with the decision that they made and they are happily up and running today.
If you take the example of 3M, they have a Post In Notes software application that they’d written a while ago for Windows 95. When Windows XP came around, they wanted to sort of get the application up to Windows XP and they were thinking, hey, what technology should I use, how do I bring it forward and after a bunch of soul searching they decided to rewrite the application entirely using Visual Studio.NET and the .NET Framework. So they ended up creating a WinForms based smart client application and they literally got this rewrite done in under three months with just four developers.
The other advantage that they saw in the process is that now they had an application that was fine-tuned for Windows XP and they could easily port it to other handheld devices using the .NET Compact Framework, particularly devices like Smart Phones or Pocket PC based devices.
So these are some of the examples that I wanted to highlight. If you want to go up and take a look at the other customers that are willing to talk about publicly in terms of what they’re doing with the technologies, what the results are that they’ve seen, you can go up to Microsoft.com and we have a long list of customer case studies and testimonials there.
I want to take another moment here and show you one of the video clips from a customer, and in this particular case the customer is American Healthways. American Healthways is a company, they’re one of the sort of largest and most experienced disease management companies in the U.S. and the literally are serving over 1.4 million customers across eight different geographical regions.
At the heart of this company is a smart client based application called PopulationWorks and this application basically enables them to manage tons of data from nurses, from physicians, from hospitals, labs and the like.
So again like anybody else they thought about what technology they should use and they ended up choosing VB.NET and Windows Forms to help create this smart client based application.
Now let’s see what they have to say.
SOMA SOMASEGAR: It’s great to see companies like American Healthways building a set of mission critical applications to provide distributed healthcare management for their customers.
Now I want to talk a little bit about the partner momentum that we are seeing for Visual Studio and the .NET Framework. Now, I’ve just shown you a smattering of like sort of partners that I could pull together in four or five slides here, but if you think about it, today we have over 225 VSIP or Visual Studio Industry Partner program partners that deliver over 400 applications built on top of Visual Studio.
I’ve been at Microsoft for a little over 16 years now and Microsoft is a great company, develops great technologies, delivers great technologies and products but I’ve always believed that our success and in some sense our customer’s success is tied into a great deal with our partners’ success, Microsoft working hand in hand with our partners, we go deliver a set of great solutions and services to our customers.
And so it is sort of our moral obligation to ensure that our partners who take a bet on us continue to be successful and we are absolutely committed to investing in our partners and continue driving this momentum up as we make the transition to Visual Studio 2005.
I also want to take this opportunity to make an announcement about what Micro Focus is talking about today. Now, Micro Focus International Limited yesterday morning announced that they have decided to standardize on Visual Studio as a single integrated development environment for all their legacy application development targeting a wide variety of deployment platforms. So this enables customers to deliver mission critical applications that unlock the power of legacy assets that they’ve been locked for so long and bring it to the customer base irrespective of the deployment platform that they are targeting.
In some sense, this announcement strengthens Micro Focus’s commitment to the Microsoft Visual Studio Industry Partner program and also strengthens the ties between legacy assets and legacy applications on the one hand and Visual Studio’s latest and greatest technology from Microsoft on the other hand. So this is an announcement I think that just happened this morning and this shows again the kinds of things that our partners are doing on Visual Studio.NET 2003, the existing toolset.
I don’t know that I’m going to talk to this slide; I’m just going to let you sort of observe this slide for a second. The numbers speak for themselves. If you look at the number of .NET Framework copies that have been installed and deployed it’s mind-boggling. We’ve got over 120 million copies of the .NET Framework that have been deployed today in our customer environment.
If you look at the breadth of partners, the kind of partner products that are built on top of Visual Studio, if you look at the community activity, if you look at the user groups, like I mentioned before, there is a wide variety of resources for you as .NET developers to draw from as you embark on this journey with us.
When I talk about .NET, a lot of people think I’m talking about Web Services and talking about managed code and that’s absolutely right, .NET means Web Services and managed code, but in some sense I think about .NET in a broader way, thinking about .NET as a platform to help you build applications in a connected systems world.
Now let me tell you what I mean by that. Whenever I talk about the application development environment or say that, hey, we have an application development platform, people think I talk about Windows, Visual Studio and .NET. And they are right, I do talk about those things, but I also talk about other things like Office, SQL, Exchange, our Business Solutions software. Frankly, any time I deliver a piece of software to you that lets you customize or extend to suit your particular business need, I feel I’m delivering a piece of platform software to you. So we at Microsoft literally look at the platform in the broadest possible sense.
One thing that we’ve heard from our developers a lot is they want us to tell them how to get started easily. Frankly, the cheapest piece of code is a piece of code that I don’t have to write in the first place, so developers, are always asking us, how can I use and reuse and reuse my existing assets, so enabling developers to use their existing assets is a key design goal as we start thinking about how we bring our tools and platforms to satisfy that requirement.
Another thing that people think about when I say connected systems, people sort of have this view that, you know, hey, is this guy talking about a closed system from Microsoft, because most of our customers today have a heterogeneous environment. I may be running UNIX servers, I may be running Oracle databases, I may be running a whole host of other things; how easy or hard is it going to be for me as a customer to take this solution from Microsoft and plug it into my environment and let it flow smoothly.
Now, if you’d asked me this about, say, four or five years ago, I do not know that I would have had a credible answer for you but over the last five years we’ve made incredible progress in the area of interoperability. For those of you who are tracking what we talk about, just last week Bill Gates wrote a memo or a paper on the work that we’ve done on interoperability in the last several years; be it at the sort of application integration layer or the networking layer or the identity management layer or the whole platform layer, we’ve made considerable progress in interoperability over the last five years.
In some sense I can argue that the most important piece of work that we’ve done in interoperability is the work that we’ve done with IBM, BEA and a host of other industry leaders in coming out with the industry standard Web Services specification. The goal is to create a standards specification so that our implementation of Web Services can interoperate with Web Services implementation running on other systems. So in some sense our goal here is to make sure that the next generation XML-based Web Services are an industry standard.
So between thinking about the application development environment in the broadest sense, knowing that our developers want to reuse existing assets and keeping interoperability as a key design goal for us, I feel we have a good, comprehensive set of ingredients to deliver to you in terms of tools and platform that help you built connected systems applications.
In this context I’m excited to announce two resources that we are making available as of today to our customers. The first is Patterns and Practices Enterprise Library. Now, for those of you as developers who want to target enterprise application development I encourage you to go take a look at these application blocks and see how they can help you with your application development. There are seven application blocks specifically that we’ve put out as part of this first version ranging from security to logging to configuration to data access and the like and you can think about these application blocks as prescriptive guidance that we’ve provided in the form of source code that you can use as it is or you can choose to customize or modify to meet your particular enterprise application needs.
Now, the second resource that we made available today is the Connected Systems Business solution. Now, no matter what your role is in your organization, you may be a business decision-maker, you may be a developer, you may be an architect, you may be an IT professional but no matter who you are, if you are interested in thinking about connected systems, if you are interested in getting started with connected systems, if you want to start thinking about service-oriented architecture, if you want to understand, hey, what is the kind of return on investment that I can expect for getting into this connected systems world, or if I’m an IT professional what is the impact that connected system applications are going to have in my environment, so if you are thinking about any of these things, this is sort of a one-stop shop that provides a wide variety of resources in terms of white papers, customer case studies, hands-on training, sample code for you to get started, sort of a collection of resources that you can use to get started on connected systems.
So these two resources are now available on Microsoft.com for free for our customers. I would encourage you if you are particularly thinking about enterprise application development go look at these resources and see how they can make your life simpler.
So connected systems, if you think about the back-end for connected systems, it’s built on a fabric of Web Services. An equally important component of connected systems is the client, the utility that the client provides and the user experience that you end up providing to your end users.
Over the years we’ve talked about thin clients and rich clients and Web clients and there has always been this debate, is it thin or thick, is it rich or reach, people have had numerous debates. In my mind, different scenarios or different customer situations call for different solutions. There is a need to have a Web client, there is a need to have a rich client. If one of your key goals is broad reach and if you can count on connectivity, the Web client will absolutely make sense for you.
So in that way with Visual Studio 2005 and ASP.NET 2.0 we’ve invested heavily to enable you to do Web development easier than ever before. Between support for master page templates, support for a collection of services and controls related to authentication, related to security, related to personalization and making it easier for you to access data from a variety of data sources and a host of other productivity gaining features, on an average we think that developers will have to write 70 percent less code for a lot of the common Web development scenarios with Visual Studio 2005. So as you can see, we do believe the Web client has a place.
Now, there are certain requirements where a Web client is probably the right solution but if you think about your workforce or your employees in this world where connectivity is becoming more and more easily accessible to people, the workforce is becoming more and more mobile, people are on the road, people want to be able to connect to applications and information in an uninterrupted way no matter where they are, people want to have access to applications that let them access data from a variety of data sources, people want to have access to applications that let them connect with other systems and applications via Web Services.
So in such a scenario you need a client that is smarter than what a Web client can provide and that’s what we call a smart client.
So like I mentioned before, if I had to sort of think about it in a simplistic way, I’d say let’s take the best from the Web client world, let’s take the best from the rich client world and, boom, you’ve got a smart client. So in other words, you want to take the low total cost of ownership, the ease of deployment ability from the Web client and combine it with the rich user experience, the online/offline capability and the ability to leverage local computing resources, you put them all together, you do have a new breed of client software which we call smart client.
Now, Microsoft has continued to invest heavily, like I mentioned before, between Visual Studio, Visual Studio Tools for Office, Microsoft Office and the .NET Framework; we feel we have a comprehensive set of technologies and solutions for our developers to start building smart client applications.
As the workforce gets more mobile we’ve seen an explosion in the kinds of mobile PC applications that are coming to marketplace. If you look at the last nine months particularly, we’ve seen an explosion in the number of people, the number of vendors or developers thinking about enabling the digital pen and ink enabling features in their mobile PC applications, particularly applications that are tuned for the Tablet PC.
Now, you can use the Tablet PC SDK that we released a while ago to build these kinds of applications. This Tablet PC SDK does plug into Visual Studio.NET 2003 today and soon with Visual Studio 2005 so that you can easily ink enable your application using the Visual Studio toolset and the Tablet PC SDK.
So in this context I’m excited to announce two new innovative enhancements to the Tablet PC SDK that we are sort of making available to our customers today. The first of these two is a rich ink note-taking framework that is built on .NET, so this enables you to develop a bunch of .NET controls that are easy to drag and drop into your WinForms and Web Forms and ink enable your application.
So Agilix InfiNotes has come out with a set of .NET controls that you can go up to their Web site, InfiNotes.com and they have a standard edition which is available for free to our customers. You can go download these controls and ink enabling your application has been made that much easier today than ever before.
The second addition that I want to talk about is the Tablet PC Game SDK. Now, think about this as really the convergence point between Tablet PC development and game development. Now, our (SoftFire ?) game is the first game that has been built on top of the Tablet PC Game SDK and this game, I don’t know if you’ve had a chance to play with this game, but this game does do a lot of innovative things using pen and the ink features to provide a much richer game experience on the Tablet PC platform. Source code for this application is also available for you to take a look at to understand how you can go leverage the pen features and make your game or your application more tuned for the Tablet PC platform.
So between these two things we’ve taken a big step forward in terms of enabling our customers to develop more client applications including ones that are tuned for the Tablet PC.
In this conference there is sort of a Windows Anywhere track where there are going to be more sessions and information on Tablet PC and mobile PC applications, so if you’re interested I’d encourage you to drop by that place and get more information.
Now, we have a lot of things here, a smart client, a Web client, back-end Web Services; now how do we tie this all together? Particularly with the Visual Studio toolset and Visual Studio Tools for Office I want to show you how easy it is for you to be able to build smart client software that provides the best user experience for your connected systems world. So let me use this opportunity to invite Craig Neable, who’s a technical evangelist at Microsoft, to come up here on stage and show us this. Craig.
CRAIG NEABLE: Good morning, Soma.
SOMA SOMASEGAR: Good morning. (Applause.)
CRAIG NEABLE: Good morning, everybody.
So Soma has been talking about connected systems and how smart clients offer the most productive way for users to interact with that data. What we’re going to show you today is we’re going to show you an illustration of that idea with an application that we’ve built for a fictitious real estate company.
So the job of a real estate agent is really very analogous to a lot of different job roles; they need to take a large volume of data and make sense of it and act on it very quickly. And this is true of a salesperson using CRM data, it’s also true of a field technician who has a list of work orders and parts for replacement and things like that.
So what we’re going to do is illustrate this using the real estate idea because Soma mentioned to me a couple of weeks ago that he wants to buy a place in San Francisco, so I’m going to use this tool as his agent in order to help him out.
SOMA SOMASEGAR: Do I get a discount?
CRAIG NEABLE: We’ll see what we can do with discounts.
So we’re going to show you a few different things here. We’re going to show you how productive users can really be by using smart client technology, we’re going to show you how easy it is to deploy and update smart clients and we’re going to show you how Visual Studio is a very powerful tool to build smart clients and along the way we’ll talk about some of the things we’re doing in Visual Studio 2005 to make it even easier.
SOMA SOMASEGAR: Great, let’s go.
CRAIG NEABLE: Super. So the first thing I’m going to show you is Contosa’s existing solution. So you’ll recognize this as your standard kind of Web site. We’ve got the ability to see all of the listings and there are hundreds of them in San Francisco right now and I can page through to different pages and each time I do this I round-trip with a browser, I can sort things by different criteria like the number of bedrooms and we’ve got some functionality that allows us to filter based on different things.
So what did you say, three bedrooms, two bathrooms and about $650,000, is that right?
SOMA SOMASEGAR: That sounds right, yeah.
CRAIG NEABLE: So I’m going to click — yeah, I hear some laughter. I have to warn you as your real estate agent, Soma, that 650 grand ain’t going to buy you a lot in San Francisco.
SOMA SOMASEGAR: Maybe we should go back to Seattle and buy a house there. (Laughter.)
CRAIG NEABLE: Right, Seattle.
I’m going to click Apply anyway, because the customer is always right, especially when he’s your vice president. So I’ll click on Apply and another roundtrip later and you can see that we’ve gotten some useful information back. We took all of that data and filtered it down to about six things that we can go ahead and look at.
The problem here is that it did take us quite a while to do this, it took us a lot of clicks and we’ve lost a lot of contextual information about that data. And the final thing, of course, is that as a real estate agent I need to do this while I’m mobile, we want to do this actually when we’re on the road. So let’s see what we can do using Visual Studio and smart client technologies to improve things a little bit.
So to illustrate this, I’m going to switch to another machine. The only difference between the previous machine and this machine is that this machine has version 2.0 of the .NET Framework installed on the machine.
So what you see now is exactly the same Web site, the same URL, the same applications. The reason it looks slightly different is that ASP.NET on the server has recognized the fact that the framework is installed and it’s deployed the Windows Form data grid control.
SOMA SOMASEGAR: So just to confirm, I didn’t have to make any change to the application?
CRAIG NEABLE: That’s right. And if we go back to the other page and hit F5 again we’ll get the exact same experience we did before, but because we have the .NET Framework installed, we’ve deployed down this Windows Forms control.
Now, from a development perspective this was very easy. My Web developers don’t need to know a lot about Windows Forms, they’re just using that out of the box data grid control and putting it on the page.
So you can see we can do all of the same things, we can do our sorting and things like that and very interestingly we can scroll through all of the results at once very easily rather than doing a series of roundtrips to see them.
And, of course, we can also do our same filtering and get our results a little bit closer to what we’re actually looking for, our two bedrooms and our there bathrooms. And as we’re doing that, the page is actually updating and you can see that we’re getting filtering and highlighting of those exact same six properties. The interesting thing here is that I still have all those other contextual results. So I might want to look at this one in between that maybe didn’t exactly match what you were looking for but now as a real estate agent I can actually make better decisions faster based on that data.
So what we’ve done here is with one very simple change we’ve added some smart client technology that’s made our real estate more productive. Now, how cool is that? (Applause.) I like that.
But, of course, there’s a problem we still haven’t solved and that is how do we take this with us. So in order to do that, I’m going to go over to another machine. Now, I know a lot of you are asking, well, how does the .NET Framework get down there and that’s a great question. This happens to be one of the 120 million machines worldwide that has the Framework on it but our original machine, as you recall, didn’t.
So we’re going to go up and click on this premium experience and we’re going to get a dialogue popup that asks us if we want to run this application. This is a good thing, it’s a security warning. We’re going to click on Run because we know what this is and we’re going to get a couple more dialogues. Now, the reason we’re getting these, this you might recognize as the ULA from the .NET Framework. What’s actually happening now is click-once is deploying the .NET Framework down onto this machine, then going to deploy the application on the machine.
Now, this takes a little bit to happen, so we’re going to pull a little — it just takes maybe three minutes, four minutes, so we’re going to pull a bit of a Julia Childs and pull the baked cake out of the oven and we’re going to switch over to a Tablet PC where we’re at the end of that process.
So I’ve got my tablet now and this is the application experience that I would generally get. I’d be able to just click once on install and the application is automatically going to deploy down, it’s going to load data in the background and the application is going to load.
So as you can see, we’ve got a lot of the same functionality that we had before. We’ve got the ability to do our sorting, we’ve got our ability to do a little bit of filtering and what you’re going to see here is I’m going to be able to get in on this information just as easy as I was before.
But now because we’re doing a lot of processing locally on the client we can actually give much more detailed information. So what I’m going to be able to do here is enter a bunch of financing terms, a down payment and interest rates and I’m going to be able to use this slider control to adjust the views that we’re getting. And you’re going to see very quickly that as I slide this slider control, I’m getting a lot of highlighting instantaneously happening, so the amount of information that I can get just by sliding this slider control might have taken 30, 40 or 50 roundtrips in the browser and not given it as effectively as that one little swipe of that control. So this is something that’s really cool that you can do because we’re running a smart client application.
SOMA SOMASEGAR: And so dealing with monthly payment, keep it on the lower side.
CRAIG NEABLE: Keep it on the lower side, all right. Well, let’s talk when we get back to Seattle.
So the other thing that we can do is we can take advantage of other local resources and the mapping control that you see over here is not just to show us properties, this is actually also a filtering mechanism. I can take this and lasso a little neighborhood here, zoom in on that neighborhood and each time I do that I’m actually going to be filtering the data and zooming in further on the data over on the left hand side on the chart. So that’s really cool, you can see I’ve zoomed in on that area, I’ve only got two houses there. If that’s where you want to live, you’re looking at about three grand for monthly payments. Can we do that? Okay.
Now, one thing the real estate agent might want to be able to do is take notes while we’re doing this but unfortunately in the first version of the application our developers didn’t quite get around to it. I think they’re back there working on it so I’m going to shut this down, I think they’ve just completed that application and what we’re going to do is use click-once to deploy the new version of the application.
So what you’re going to see is a couple of changes that the administrators are making on the server to update the manifest on the server to give us that new version. You can do a couple things with file swapping here and that’s what our admins want to do, but there are also wizards in Visual Studio that let you do this and we’ll show more of that later on in the week.
SOMA SOMASEGAR: So click-once not only lets you deploy applications easily but also subsequent updates to the applications in a straightforward manner?
CRAIG NEABLE: That’s right, it was just as easy to republish this as it is to republish a Web site.
SOMA SOMASEGAR: Great.
CRAIG NEABLE: So what I’m going to do is go back to the Tablet PC and I’m going to restart the application. One of the other nice things about click-once is it integrates nicely with the shell so you’ll see that I now have a Start Menu entry for that application and as you can see the dialogue is popping up asking me if I want to install the new version. Of course we do, we always want the latest and greatest, so I’m going to install that. And the application looks very similar; the only thing that’s going to be different is we’re going to have the ability to go and take notes.
So we’ve been looking at this Gavin Street property and I’m going to click on this Notes button and it looks pretty good, it looks like it’s not exactly what you were looking for but we scaled back the price a little bit, so let’s buy it. I’ll make this note, I’ll look later on when I get back to my office.
Now, what about the actual offer process? We want to get this offer in as quick as possible, try and close on this sucker and get it bought. So we’re going to go through the arduous process of creating an offer letter. It’s a little bit painful for agents, they do it by copying and pasting in Word and stuff like that, very error prone, so let’s see how we can use Visual Studio 2005 Tools for Office to make this even easier.
When I click on this application I see a Word document pop up. This makes me really comfortable as a user because I know how to use Word. You’ll also see that we’ve really integrated an application experience in here, so from a developer’s perspective this is great as well because I’ve used Word as a platform to very easily integrate my solutions into the document.
Now, the interesting thing that I want to point out about Visual Studio 2005 Tools for Office is that hosting this application over here and linking it in with the XML nodes is a very difficult thing to do in previous versions of the product. In order just to host this part of the application it took about 600 lines of code in previous versions; it takes 1 with Visual Studio 2005 Tools for Office. (Applause.)
We’re going to show you that in the next session, Katy is going to come up and show you that exact one line of code, but for now we can go up and see that we can do a number of things with this document and as I do things and make changes in this application you can actually see the changes come up in the document.
So I can go through, I can select which of the customers I’m dealing with who wants to buy this house and that’s, of course, you, I can set some financing, I can set financing terms in terms of closing date and all that kind of stuff and I can also set some additional clauses in here. For instance, we want an inspection clause. That house doesn’t have a basement so we’ll get rid of that but everything else it has and we want that part of the clause. And you can see that as I click that the document already updates, I’m not copying and pasting in an error-prone kind of way, I’m clicking buttons. This is allowing me to create this document much, much faster than I ever could before.
So the last thing we’ll do, of course, is sign it and I’ll sign for you. Don’t worry, I know how to sign for you; I write checks for you all the time. (Laughter.)
Okay, and because we’re integrated in an application experience, this submit offer button is actually a Windows Form control hosted right in the document. So I’m going to be able to go and click on this thing and submit our offer.
So the next time this application is connected to the Internet — whoa, it seems that we’re not connected to the Internet and our application tells us that we’re offline and if we go back to our original application it shows us what data we have synchronized and when it was synchronized; that’s really valuable.
But for the time being we’ll look at this and we’ll be able to save this document and we’ll be able to go back and the next time it’s connected it will submit it up and we’ll get the fax off.
So that’s a very cool application that allows us to use smart client technologies in order to automate the process of finding the house and submitting the order.
The final thing I want to show you is yet another application that we’ve built, this one with the .NET Compact Framework and it’s running on a Smart Phone.
Now, the next problem that real estate agents always have is that their phone always rings as soon as they sit down for dinner and the customer expects them to know the customer and what houses they look at four weeks ago.
It just so happens we have an application that will allow us to get some very quick information about that. I can quickly open this application. When Soma calls me I can see a picture of him so I can visualize who he is and I’ve taken that picture with the camera that’s built into this phone and some information about the last time we talked. And finally, we can go in and I can get a list of some of the properties that we looked at and there’s the Gavin Street one and a couple other ones there.
So you can see a lot of different applications there and the point of all of these applications is to provide that useful data to the user in a way that the user is naturally interacting with the devices.
Now, you can see that we really have a lot from the software perspective, we’re really ready for smart clients today, and one thing that makes this even better is the hardware that’s also available. You just saw the Audiovox 5600, the new Smart Phone that’s available from AT & T Wireless and I’ve also been using a Tablet PC from HP and this is the newest Tablet PC that HP is producing. It’s the TC4200 and it’s designed for professionals like our real estate professional who’s using it all day long for their computing experience. It’s got Intel Centrino Mobile technology in it, all the latest security features and, of course, the thing I love about it the most is because it’s a tablet I can use it while I’m standing up and walking around.
SOMA SOMASEGAR: Great, thank you so much.
CRAIG NEABLE: Thank you very much, Soma.
SOMA SOMASEGAR: Thank you. (Applause.)
As Craig just walked us through the last 10, 12 minutes, with Visual Studio and Visual Studio Tools for Office it is incredibly easy for our developers to build smart client applications that help them connect to Web Services in the back-end and help deliver up connected systems in the process.
Now, one of the key components of smart client is a rich presentation graphic, and as you all probably know, we’ve been working on the next generation presentation technology codenamed Avalon. We released the first Community Technology Preview of Avalon for developers to sort of take a look at and play around with it, give us feedback back in November and we are currently working on delivering to you the next CTP or Community Technology Preview of Avalon, which will likely come out in the next six weeks or so.
So at a high level there are three design goals that we have with Avalon. The first is to help you dramatically improve the user experience and presentation of the data by building UI, graphics, documents and media all in a single environment. The second is to help you take advantage of the latest and greatest in graphics processor technology. Since Avalon is built on top of DirectX it’s very easy for us to enable you to take advantage of the latest and greatest in hardware. And finally, we will continue to make it easy for you to deploy the application and subsequent updates of the application using further enhancements to click-once.
So if I have to summarize the goals that we have with Avalon, it’s to combine the best of the Web world, the best of the Windows world and the best of the PC graphics world and enable you to deliver the next generation smart client applications. And the best news here is that you can target all these advances from within Visual Studio.
Now, I’ve talked about smart clients for a while, we showed you how easy it is with Visual Studio and Visual Studio Tools for Office to build smart client applications, but smart client is only one part of the connected systems. In today’s world when you think about applications, they usually comprise a set of distributed services that span platforms, programming languages and even protocols. If you think about teams, they are getting highly specialized, teams are becoming more and more geographically dispersed.
In today’s world for us to successfully develop and deploy applications in an IT environment we need to make sure that we bridge the gap between IT and development, the IT folks with the operation folks and developers so that we think about the application through the entire lifecycle starting from design all the way to deployment and operations.
So one of the newest and most important editions to Visual Studio 2005 is the Visual Studio Team System. Now, this is a set of tools that enables teams of developers to come together and work in a highly collaborative environment. We have tools that are targeted at the different roles in a team, targeted at designers or architects, targeted at developers, testers and sort of an integrated workflow that enables smooth development of your application and looking at their application end-to-end through the lifecycle of that application.
Once again, when we started working on Visual Studio Team System there were sort of three goals that we had in mind. We wanted to reduce complexity, we wanted to improve productivity and we wanted to increase the predictability of delivering software for teams, and I’m glad to say that we are on track with Visual Studio Team System to deliver against all those three design goals.
Now let me take this opportunity to invite Eric Lee, who’s a product manager in the Visual Studio Team System, to come up here and show how we’ve integrated a set of tools to create that integrated workflow experience in the connected systems world. Eric.
ERIC LEE: Thank you, thank you, Soma. (Applause.)
Earlier this morning we saw Craig and his team build a great application. They did such a good job, in fact, that I’m going to take Contosa Real Estate and expand it worldwide. I can keep track of all the work that needs to happen right inside of Visual Studio Team System.
What I’m going to do is take one of these work items and assign it to myself to get the project going. So whenever work items change in a Visual Studio Team System project, the right team members get notified. In this case it’s me, so let’s get started.
My first task is to take the back-end Web Service that Contosa Real Estate uses and integrate that with other real estate Web Services that my partners across the world have developed. I’m also going to add a new XML Web Service to my architecture. I’m going to create a service that lets customers like Soma get a notification whenever they’ve been outbid on a piece of real estate that they’re interested in.
Now, normally making so many changes to a service-oriented architecture is a really daunting task but with Team System I have this design surface that makes it really easy for me. So adding a new Web Service is as simple as adding a button to a form.
Adding existing Web Services is really easy as well. I could take advantage of the integrated directory that’s part of Team System.
Wiring or rewiring my architecture is as simple as drag and drop.
All right, so let’s go take a look at some of the code behind this notification Web Services. What I’m going to do is add some code that allows my customers like Soma to get notified whenever they’ve been outbid on a piece if real estate.
The Visual Studio Team System recognizes that writing code and testing code should really go hand in hand, so with Team System I can write, run and manage tests all within the same tool, so let’s start a test pass on our new code. We’ll watch as our test runs and I can see that they’ve all passed.
SOMA SOMASEGAR: This is great, particularly since I used to have a test background at Microsoft, this is exciting for me to know that, hey, I can take or integrate both the development and test environment together, but if I want to get some code coverage information, how easy or hard is it for me to plug that in here?
ERIC LEE: That’s a really good question. So having test pass isn’t the whole story; what Team System does is take code coverage data and integrate that right into the tool, so I can see exactly what parts of my code have been covered and what parts haven’t been covered. In this particular case I’ll need to write new tests to cover my new code.
So once I’ve finished up my testing I’ll feel a lot more comfortable about the quality of my application but what about security?
So when Microsoft started its Trustworthy Computing initiative several years ago, they built a number of new tools, code analysis tools that scan source code and look for problems, particularly source code problems. So Team System took that technology and put it right into the build process.
SOMA SOMASEGAR: So are these the same tools that we are using inside the company for Windows and Office and Visual Studio and all those products?
ERIC LEE: Absolutely, Soma, so these are the same code analysis tools that analyze every single line of Windows source code, SQL source code and Visual Studio source code itself. So I could take advantage of that technology and find a complicated problem like this code path that leads to a buffer overflow every time I compile my application.
So code analysis is a really important part of the development process at Contosa Real Estate and I can express that importance right inside the tool.
Visual Studio Team System includes a new integrated source code control system. I can use that system to create a policy that makes sure everybody on my team runs code analysis before they check in.
Now, quality and security are always important but going worldwide with Contosa Real Estates makes scalability just as important. I can verify my scalability with load testing features that are integrated right inside of Visual Studio Team System. So load tests are just another type of test that I can write, run and manage all within the same tool.
So as my load test runs, Team System is gathering a number of quality metrics and charting them. These metrics allow me, my testers and my operations staff to really understand how Contosa Real Estate is behaving under a load. So when this load test is done running, the results will be stored into Team System’s results repository. This is a centralized database that my team members can come back to and do a full investigation of this data.
While I’m waiting to check in my changes I can take advantage of the fact that work items and source code control work really well together in Team System. What I’ll do is pick and choose the tasks that I want to associate with my check-in. And when I do finally check in, these work items will be automatically resolved for me.
So really I use Visual Studio to look at my work items, I like to use Visual Studio to do that, but the rest of my team could take advantage of the integration that Team System did with Microsoft Project and Microsoft Excel, so they can use the tool that they’re comfortable with and still keep the project on track.
Visual Studio Team System takes the productivity that I’ve always enjoyed as a developer and extends it to the rest of my team, so as a team we can tackle the toughest problems and know that the code that we write is secure while tested and have world class quality. Thank you.
SOMA SOMASEGAR: Thanks, Eric. (Applause.)
So as Eric just showed us, the integration of the workflow using Visual Studio Team System enables team developers to come together and work in a highly effective manner.
Now, if you look at the Visual Studio 2005 product that we are currently working on, which will ship later this year, we have a series of products that are part of the Visual Studio 2005 family. Up until a few years ago we used to have this notion that, hey, let’s build one product, one size fits all and that will just satisfy everybody’s requirements, but in the last few years we’ve come to the realization that though our customer base is a developer customer base there are literally different kinds of developers who have different requirements. So one of the things we’ve done with Visual Studio 2005 is build a series of products, what I call building the right product for the right customer and enabling personalized productivity in the process.
So if you look at the comprehensive set of products here, on the left hand side you’ve got the express set of products, easy to use, easy to learn, easy to get started kind of products that are targeted at students, novice programmers and enthusiasts. On the right hand side extreme you’ve got the Visual Studio Team System that we just talked about and showed you and how it is a great set of tools for teams to work together. We then have the professional edition, which is targeted to the professional developer who either works alone or works with small groups of people.
Now, the newest addition to the family of Visual Studio 2005 is Visual Studio Tools for Office that we sort of announced late last week. The first version of Visual Studio Tools for Office we shipped back in October 2003 in conjunction with Office 2003, so this is sort of the second version of Visual Studio Tools for Office and will be delivered along with Visual Studio 2005.
And then we have the standard edition, Visual Studio 2005 Standard Edition product. I think about this product as sort of the entry point for those of you who are thinking about the .NET world and Web Services world for the first time. So if you’re a classic VB developer or a classic ASP developer, the Standard Edition will be a good entry point for you to get into the world of Web Services.
So between these five products I feel we have a comprehensive set of offerings for our customers, the right product for the right customer that enables personalized productivity.
Here is a quick look at the roadmap. This year for us in the sort of developer division and the server division the key focus is to deliver Visual Studio 2005 and SQL Server 2005. In the spirit of integrated innovation, as you probably know, SQL Server is exposing .NET programming to the database developers, so all the benefit that you’ve seen by programming to .NET, database developers can now access from within SQL Server.
If you look at sort of the .NET roadmap, the delivery of Visual Studio 2005 and SQL Server 2005 is probably the most important milestone from our perspective along the roadmap and once we get done with this suite of products this year then we’ll turn our attention to the next version of tools, which we’ve codenamed Orca, which will ship as part of the Longhorn wave of products.
When I look around this room of people, I sort of feel, hey, you’re my best customers, you’re my best partners, so in some sense I feel like I’m among friends and family. And so I always like to close my talk with sort of listing what are going to be my commitments to you all. And when I talk about my commitments, it’s like me committing as well as me committing on behalf of the developer division at Microsoft.
And when I think about it that way, there are four things that come to my mind. The first is transparency. I want to be highly transparent with you all in terms of what I’m building, in terms of how I am building, in terms of the decisions that I’m making on this feature versus another feature, in terms of how I’m designing and get feedback from you through the development process. I really want to think about you as an extension to my product development organization so that together you and us in the product group, we can combine forces and help develop and deliver the right products for our customers.
Last year with the sort of release of Community Technology Previews we took a huge step forward in transparency but that’s only the first step. Now, if you think about where I want to go, I really want to be in a place where every build that comes out of my main build lab I want to be able to share with you, every spec or specification document that I write I want to be able to share with you, every feature tradeoff decision that I make I want to be able to get your input and involve you in the process.
When I think about the second pillar, it’s enabling a vibrant community. If you think about it and look back at the last two or three years, we have considerably stepped up our community outreach activities. The goal here is simple from our perspective: We want to do whatever we can, whatever it takes for us to work with the thousand MVPs or Most Valuable Professionals that we have for the developer world or the regional directors or other kinds of influentials, we want to work with you all to figure out how to enable and empower you to have vibrant, self-sufficient communities. That’s really my goal here when I talk about a vibrant community.
The third pillar is a rich partner ecosystem. I already talked here about like the great partner momentum that we have behind Visual Studio; we want to continue investing and making sure that our partners who are taking a bet on us continue to be successful and together we deliver great solutions and services to our customers.
And the final pillar I sort of label customer feedback but what I’m really talking about is I want to have a two-day dialogue that’s happening between the product group at Microsoft and our community and customers through the product development lifecycle. We sort of made available something called MSDN Feedback Central last year, which is sort of a first step in the direction here. I want to build a virtuous loop with our customers so that as they make progress I get feedback that I can fold it into the feedback. Today any issue that you submit to MSDN Feedback Center goes directly to the product teams; there isn’t any random sort of people in between looking at it and filtering and all that stuff. It directly flows into the product teams and gives the product team a chance to come back and have a dialogue with the customer and keep building a better product in the process.
To summarize my set of commitments, between transparency, a vibrant community, partner ecosystem, a rich partner ecosystem and customer feedback, that sort of summarizes my commitments to you as my closest customers and partners.
So in summary, I talked about three things today. I talked about the great momentum that we’ve seen with .NET in terms of adoption and mindshare over the last three years and thank you for enabling that to happen, and also this results in a wide variety of resources for you as .NET developers to draw from.
The second thing that I talked about was how we at Microsoft have continued to invest heavily in our tools and platform with Visual Studio, Visual Studio Tools for Office, Microsoft Office and the .NET Framework to enable you to write smart client applications that provide the best user experience for your customers.
And finally with Visual Studio Team System we do have a set of integrated tools that enables teams of developers to come together and work in a highly effective and collaborative manner.
Now, to sort of celebrate the third year anniversary or the third birthday I should say for .NET we have a little thank you here. We have a cake that I want each of you to sort of have a slice, have some cake on us to help us celebrate. Can we see the cake here? They are wheeling in the cake; now just give us a second. Chris, is the cake ready? Okay. Now, when the team was telling me that we were going to have a cake, I was sort of having this sort of fantasy that maybe I’ll jump out of the cake. (Laughter.) But then looking at the size of the cake, I said maybe we need a bigger cake next time, but we do want each and every one of you to have a slice, so don’t get fooled by the size of this cake here; there are 12 such things outside that are ready for you. As you walk out, please have a piece of cake and help us celebrate the great momentum that we’ve seen with .NET on the third year anniversary.
It’s been a great pleasure to have this opportunity to talk to you. Thank you. (Applause.)