Silicon Valley Speaker Series
Visual Studio .NET Beyond Web Services
Remarks by Tom Button, Corporate Vice President of Developer Tools at Microsoft
June 11, 2002
ROB SCHOEBEN: I’m Rob Schoeben. I just want to welcome you here to the Silicon Valley campus of Microsoft. We’re here to have the next installment of the Microsoft Silicon Valley Speaker Series and today we have Tom Button, corporate vice president of Developer Tools from Redmond. I looked at the Web site and it looks like the weather is clearing in Redmond but it’s not going to push 90 so I’m not sure which is better today, but we’re going to keep him inside for the next couple of hours to talk about the .NET strategy and how it affects the issue that IT is facing today.
Tom’s history is a long one at Microsoft. He joined 14 years ago and has been working on behalf of the development community the entire time. His current responsibilities as the vice president of Developer Tools are really twofold. Overall he’s responsible for product management, evangelism, business development for all of the products that are targeted at the developer community, including the tools, the applications server and all other products, including things like Microsoft Office Developer Edition. In addition to that, he also oversees R & D specifically for the enterprise tools and strategy for the .NET platform, much of which he’s going to talk about this afternoon.
Tom’s current role, he’s coming off of basically developing and launching Visual Studio .NET, which puts him in a great position to talk to you about that today, but in addition a set of other related technologies, everything from Visual Studio for applications, Visual BASIC for applications, scripting languages, J-Script and VB Script, and as I said Microsoft Office Developer Edition, on and on.
In the very beginning he was brought on board to be the program manger for Quick BASIC a long time ago and BASIC Compiler, moved off of that to launch the first version of Visual BASIC. Since then he’s been in charge of building the developer business, developer tool business and setting the overall strategy for developer evangelism at Microsoft.
Prior to that, let’s just go back to the beginning. Tom got his degree from Princeton in computer science and electrical engineering, spent a year prior to joining Microsoft in Boston Consulting Group, but most importantly he spent 14 years working on the development community and getting to where we are today with .NET and the associated development tools.
With that, let me introduce Tom Button.
TOM BUTTON: Thank you, Rob. Thank you very much.
Well, that’s true, I’ve been at Microsoft for a long, long time. And it’s amazing, I just got back from my 15th college reunion just a week ago and people could not believe that I was still at Microsoft. When I left Princeton to go to BCG and then ended up coming to Microsoft very shortly thereafter, after realizing that I really did need to go back and start building some cool new technology, a lot of folks, a lot of the classmates that I had back then thought that I had really missed it at Microsoft.
I don’t know if you remember in 1988, Microsoft went public in about late 1986, early 1987 and ran up quickly and had a stock split and the price ran up by a factor of five and had a stock split and all my classmates were laughing at me in 1988 saying, Oh, you already missed it at Microsoft and their day has already come; you’re just chasing yesterday’s news.
And so I reluctantly agreed that I probably already missed it at Microsoft, they’ve already had their heyday but those guys at Microsoft have learned something about how to run a high-tech business and how to build great technology and that was something that I wanted to learn anyway so that I could go off and do it for myself at some point.
Sure enough, I blink and that was 14 years ago and the last 14 years have just been an incredible time for me at Microsoft.
Microsoft has been in the developer tools business its entire history. I assume you folks know that Microsoft was founded on the developer tools business. How many people here knew that Microsoft was founded on the developer’s tools business? A few of you; a lot of you are reluctant to raise your hands.
All the way back to 1975 Bill Gates and Paul Allen when they got together, when Bill was still a sophomore at Harvard and Paul Allen, I don’t remember how much older he was, but they had this vision that the micro-computer that they had just seen on the cover of Popular Electronics magazine, I think it was the January 1975 issue, they thought that that was going to be an incredibly powerful lever for making information technology accessible to the general user. And from their perspective the big thing that was missing for that micro-computer to make it just one of the most exciting developments ever was easy to use development tools.
Their initial vision that has been broadly spoken about was to put a computer on every desk and in every home and in order to make that happen they didn’t go out and create a game, they didn’t go out and write Pong — somebody else did that — they didn’t go out and write the first word processor, some of the things that were going to be kind of the most popular first generation of applications; they went out and built the biggest lever that they knew how to build and that was easy to use programming tools that would enable at the time, they envisioned hundreds to a few thousands of developers to leverage their imagination and create some very popular applications that would ultimately drive the adoption of this early computer.
And sure enough about 13 years later I inherited that strategy and that vision of trying to enable developers, still trying to enable developers to make the next exciting computing platform most accessible to what is now a professional development community of about 7.3 million developers around the world.
I came here to work on, as Rob said, the Microsoft BASIC Compiler and Microsoft Quick BASIC at the time. Anyone out here ever use Microsoft Quick BASIC? Oh wow! All right! So my personal view is that we’ve never built a better development tool than Quick BASIC 4.5 but don’t let that get back to the folks in Redmond.
And then I worked on Visual BASIC that really worked hand in hand to make graphical user interface programming accessible to millions of professional developers who had before then really been relegated to a world of command line tools and character mode programming.
Visual BASIC came out at the same time as another landmark product, Power Builder, followed shortly thereafter by a product named Delphi from Borland, based on the Pascal product. Turbo Pascal was, in fact, while I was running the Quick BASIC product at Microsoft, Turbo Pascal was really the rabbit out in front of us. We viewed the early work on Microsoft BASIC as being very enabling to developers from a language perspective but it was really Turbo Pascal that I credit with building the first widely popular integrated development environment that gave you editing and debugging and build tools all in one place. And so that was a very important competitor for us in that timeframe and I think a very important milestone in the industry.
The same thing with Power Builder in the early 1990s: Where Visual Basic really approached developing for the GUI from the perspective of building user interface components and building great Windows exploitive user interface, Power Builder approached it from the other direction of building great data connected applications that had kind of native concepts of data connectivity and their ever popular data window.
Delphi, of course, brought the Turbo Pascal language into that generation of tools and really made graphical programming very accessible to people who favored that language.
1995 is the timeframe when the Web became incredibly powerful. Whole new concepts of how to program, how to write server-side programming, how to do server-side programming integrated with scripts, UI being generated and driven down to the client, so it was really an incredibly important time for us.
Many of you have heard I think about the famous speech that Bill made on December 7th, 1995, when, in fact, Microsoft had just finished shipping Windows 95, we had just finished shipping a huge round of products from Microsoft, a new version of Microsoft Office for Windows 95, all of our development tools were released in that timeframe, all on top of what was then called the Chicago wave of products inside Microsoft.
And so this whole Internet thing had been building and building and building and we had been talking about information at your fingertips for years before then, talking about kind of the world of usually accessible information and how it could be connected but it really wasn’t until 1995 or towards the end of 1995 that we realized that the standards that were going to drive what we had always thought of as being the information at your fingertips vision would be based on TCPIP and HTTP protocols and using standards like HTML to make that happen. And as soon as we really woke up in the second half of 1995 to that, that just changed everything.
Microsoft at that time had even become a relatively large company. It still wasn’t a huge company but it was still a relatively large company, and being able to move all of Microsoft in unison in that timeframe was really an impressive thing to watch from inside the company to see how Bill and Steve rallied the troops around that particular milestone.
So here we are in 2002 and the next big challenge that we envision, the next big milestone along that progression we think of as being how can we take the innovations that we’ve had in programming, making programming easy, how can we take the innovations and the connectivity of the Web, you know, easy access to information at least in kind of a free flowing, less structured form that we saw with HTML, and that’s when we combined those concepts to make it very easy to program in a world of ubiquitously accessible information.
So we see that problem exist at many different levels. We see that problem exist inside companies where they have many different departments and many different kind of islands of information within those departments and islands of information within their legacy systems, and we see them trying to enable new scenarios just within their companies, connecting up their mobile employees who might be working through devices, connecting up directly with customers, connecting up remote offices within that company.
But, of course, that isn’t the extent of the challenge or the opportunity that these developers are seeing now. We also have great opportunities to do a much better job of integrating and connecting with key partners or key customers such that the companies together can work together more efficiently, build a combined value proposition with a partner such that when you ultimately go to market to a customer you have the best that the two companies can offer together and our vision going forward is one that we think is shared by a large amount of the industry, which is that we’re not just going to be seeing two companies who are going to work relentlessly together to come up with some type of interoperability like we saw laboriously implemented over the last several decades using standards like EDI as being a very painstakingly implemented custom connection strategy between individual companies, but we think the opportunity is going to be building networks that together can act in much better synchronization and come up with better combined value propositions much more efficiently with lower friction between them than we’ve been able to see before. And so we see companies interacting through relatively arbitrary connect points.
What is this that’s going to make that possible? The industry has spoken loudly in the last year that the collection of standards, which is going to enable those networks of companies to be able to work together with that level of efficiency is something that we call XML based Web services. It’s based on Internet standards, running on TCPIP and running over standard Internet protocols, not wedded to any particular platform, not wedded to any particular application server, not wedded to any programming language, but instead it provides a very reliable wire level connection of protocols that will enable you to build message-based loosely coupled distributed systems much more efficiently than could have ever been done before.
The intention here is not to rip and replace existing systems at all but instead provide you with a mechanism that allows you to easily integrate or wrap and integrate existing technologies and, in fact, you’re going to see one example of that in a little while.
These same technologies, these same protocols can work equally well inside the firewall. In fact, the initial implementations that we’re seeing most of our customers using is using these XML-based Web service protocols like UDDI and WSDL and SOAP and XML-based data to connect their existing legacy systems inside their organization, so within a given organization across departments or certainly in large enterprise scenarios whenever you have the results of mergers and acquisitions and you’re acquiring entire new companies and your challenge in the IT organization is to integrate across those previously completely disparate organizations, these same protocols can be exactly what the doctor ordered for those kinds of problems.
There’s broad industry support. So XML-based Web services really had a flood of support since the announcement of the Web Services Interoperability Organization. This was announced about four months ago, in early February, about a week before we launched Visual Studio .NET. It’s the result of several years of work both on standards as well as on kind of more of the business development side between what was initially IBM and Microsoft working very closely together. We recruited about 50 other companies to join us at launch time in early February and since then we’ve added about 70 more.
You might recognize many of the companies who have joined us in this. There just about the who’s who of the technology industry. You’ll see that it’s just about everybody who’s a major standards driver today with a couple of notable exceptions but for the most part — for the most part the industry is very well represented in the Web Services Interoperability Organization.
So at Microsoft acknowledging kind of the inevitability of this trend of using XML-based Web services is kind of a primary integration fabric. Microsoft is in the process of rebuilding its entire product line to be able to interoperate using these protocols. We’re rebuilding all of our servers, our clients as well as exposing services using these same collection of protocols and, in fact, every one of these major products that we have has already come out with toolkits or add-on tools that make it easy to take your existing investments in the current generations of those technologies and expose them through Web services.
For example, we have our toolkit for SQL Server to be enable you to expose stored procedures out as callable Web services. Office XP has already released its Web services connection toolkit. Commerce Server has just released a new version of Commerce Server 2002, which supports XML-based Web service protocols. BizTalk Server has already released its Web services connection toolkit.
Microsoft is going to be one of many companies that provides services and exposes services using those protocols. We expect literally millions of these things to be accessible over the Web, some of them publicly, some of them behind security protocols but we still expect to be a player in providing services as well as many of our partner companies.
So the product that’s missing out of that is the one that we just launched, Visual Studio .NET, which is our first major product, which has been completely rebuilt end to end with the notion of XML-based Web services at the core. It’s a product that we have been in development on for nearly four years before we’ve finally released it. We started it in — boy, I guess the early, early work on this started in late 1997. I guess we had some of our concepts developed during early to mid 1997 while we were still working on what was then Visual Studio 6 generation technology but then we basically went back and we tore down most of what we had done in the past in development tools and rebuilt it with this at the core.
Now that isn’t to say that this is only used for the new generation of challenges for the XML-based Web services generation of development. People are being very successful in using Visual Studio .NET to address in kind of a more natural way many of the challenges that they face today, even before trying to do that kind of systems connection.
It targets a broad range of platforms, a broad range of clients, both device-based clients as well as rich Windows-based clients. It runs on a variety of versions of Windows servers. It provides a fully integrated development environment with support for more languages than we’ve ever seen under one roof before. Microsoft is shipping four major languages that we’re really focused on: Visual Basic, C++, C# and J#, where there’s significant changes in many of these, significant improvements.
Visual Basic for the first time is what we call a first class citizen as a systems programming language, meaning it has full support for object orientation. Its native object model is the same exact native object model as the rest of the platform uses, targeting exactly the same runtime infrastructure that these other languages use, C++, C# and J#.
C++ has been enhanced for things like attribute-based programming.
C# is our new language, which was really invented during this product cycle, intended to be, if you could start over from scratch and create a new language, which is fully optimized for this new world with XML-based data structures at the core of the language, C# is the language that we came up with. For people who are used to and comfortable with C and C++ based programming syntax we think that’s a great choice.
For people who want to program in Java we’re coming out with our own J# product, which is a Java language on top of the .NET platform.
Plus there’s an unbelievable assortment of third party languages, which are coming out under this roof, things like Haskell and Mondrian and AS and PERL and Python, in addition to Pascal and APL and some of the golden oldies of COBOL and Fortran and some of the more kind of esoteric academic languages are coming out on the .NET platform inside Visual Studio, as well as some of the kind of mainstream bread and butter languages of prior years that people may have either code bases that they want to be able to move to take advantage of the new stuff or developers who frankly they only want to develop for the new things but they want to be able to leverage their expertise in their existing languages.
And so it’s really exciting to see the flurry of language innovation that in the past could never really have been very commercially competitive. If you think about for the last 10 or 20 years what it would have taken for a language developer, somebody who wanted to innovate in the area of programming languages, what it would have taken for them to be able to create a commercial viable editor and debugger and project management system and deployment tools and that kind of thing, for the person whose main objective is to create a new way to express programming logic, it was virtually insurmountable and that was certainly something that hindered academic innovation in the area of languages.
What we’re seeing now with Visual Studio .NET and the VSIP interfaces that we’re exposing to allow people to innovate in languages is all of a sudden we’re seeing languages that never could have had commercially viable toolsets associated with them plugging into the development environment and getting Intellisense based editing, the very nice editing where you type in the root of an object name and then a dot and then all of the valid things that can follow, any method or any data member of a particular class would just drop down, and that’s something that many of those languages before had never had facilities like that at their disposal.
So one of the other exciting aspects of Visual Studio .NET is the Visual Studio Integration Program. We have about close to a hundred — we’re not quite at a hundred yet. I think at last count we’re at 90-something Visual Studio Integration Partners. In fact, we have a couple folks from those companies in the room. Mercury Interactive, is somebody here from Mercury? There we go. There are a couple folks here from Mercury who are one of our VSIP partners. We have some folks here from Intel who are also are VSIP partners.
Where is Intel? Is somebody in the room from Intel? They’re on the list. They signed up. They’re a little bit shy to admit it. So Intel is one of our VSIP partners.
There are several other major companies that have a significant Bay Area presence are down here. Rational is obviously a very high profile long-term partner of ours who takes full advantage of that. IBM is building tools that plug into the Visual Studio program. MERANT, I didn’t see MERANT on the list, thank you very much. MERANT is building tools that integrate into the Visual Studio development environment as well.
We also have a steady flow of new Visual Studio Integration Partners who are launching products all the time. We have companies like Segway and Mentor Graphics and I-Log who all just very recently have announced their partnerships with Microsoft.
And so really kind of the combined value proposition of participating in the Visual Studio .NET development environment far exceeds what Microsoft could develop, meaning there’s really a lot of innovation and a lot of great development tools that are coming out from nearly a hundred other companies. Right now there’s almost 200 additional products that will also plug in.
Rob mentioned that one of my personal responsibilities is building the enterprise tools that are part of Visual Studio and we have a little bit of a hint at what’s to come in that area right now with some of our applications modeling and testing tools that Microsoft has developed and shipped and that’s an area where we’re going to be investing a lot in going forward, so look for more interesting stuff from us in that department.
We also have tools in our current generation of Visual Studio .NET that help architects not only architect the applications well but also enforce their architectural policy with whatever level of rigor they think is appropriate for their organization such that you can build and define templates that your individual developers working in your organization would be working under that would pre-structure not only their workspace but also the types of resources that you want them to use in their application and it could either prevent or generate messages whenever developers go outside of the architectural guidelines that an architect had set for a given project.
But, of course, one of the big benefits of moving to the .NET technology is more in the operations and management side, the fact that we have a well-acknowledged problem from really the whole Windows generation of what we had called inside Microsoft all the time and sometimes outside Microsoft DLL Hell. How many of you folks have struggled with DLL Hell? Oh, come on, you’re lying. Everybody has suffered from DLL Hell. My mother calls me about DLL Hell problems and I’m still embarrassed to get those calls.
And so moving away from kind of having a central registry intensive deployment and management challenge to instead being able to deploy applications with simple Xcopy type deployment, where you have all of the resources, all of the assemblies for a given application that you need, can be copied into a common directory, not overlapping or affecting any other application running on the system.
And so it’s that kind of thing that can radically simply operations and deployment and ultimate management of applications once they’re out there, and so that’s one that everybody struggles with today and frankly I think Visual Basic created a lot of that problem in part through the popularization of the custom and control mechanism and so we’re taking great steps in this product to try to correct some of those problems.
One of the most exciting things about working in the Dev Tools space is seeing how the little bit of work that we can do at Microsoft to build interesting new tools results in unbelievable creativity and innovation on the part of our customers and partners who work with our tools and on our new platform.
We’re lucky enough today to have two of our customers who have traveled up some significant distance to come and join us today. The first one that we have is from Pacific Life, who’s stationed down in southern California. Pacific Life, for those of you that don’t know the top line, Pacific Life manages about $336 billion in assets. They are providers of insurance services to 240 of the 500 Fortune 500 companies. They also provide a variety of services directly to end customers and they for a long time have been working with Microsoft on just about all of our new application development technology over several years.
And so like many of our customers who have adopted prior generations of Windows and prior generations of our development tools they’ve had a significant investment in both source code and expertise in our existing technologies and for them the transition to .NET was one that was not obviously going to be easy, and so we’re lucky enough today to have Brad Sherrell, the assistant vice president of Pacific Life, to show us one of their projects that they built as kind of a melding of old technology and new technology. Will you join me in welcoming Brad? Thank you, Brad.
BRAD SHERRELL: Thank you, Tom.
For about two years now in the financial services industry of which we’re a part in the life insurance industry we’ve been getting requirements along the lines of I’d like to programmatically reach into your building, your enterprise, grab some data, maybe some functionality, take that data and we’re getting these requirements from business partners, sophisticated sellers of our products, who want to reach in, grab data, take that data back, put it on their own extranet, syndicate it so that the end consumer may not even know it came from Pacific life, or they want to take that data and they want to stuff it into their back office system.
And as you’ve all probably come to know we call that now a Web service, programmatically reaching over the Internet, grabbing some data our of my enterprise and handing it back to a consumer.
So we know at least at Pacific Life that in the life insurance industry we’re going to be forced to create this next generation of capabilities that are going to be centered around Web services.
And so part of my job at PL is IT planning and strategy, so about a year and a half ago I sat down with our CIO, our business leaders and our leaders in IT and tried to figure out what does that mean for IT to create this next generation of capabilities and we came up with four things.
First of all, I need to be able to create this next generation of capabilities. I need a toolset and a platform to enable me to do that.
The second thing I need is I need infrastructure to back that up. And when this next generation of capabilities comes online we see the pace of change increasing even more so than it is today, and the only way we feel we’re going to be able to keep up with that is if we have robust infrastructure that we can build applications on. And our core competency is life insurance; it’s not technical infrastructure. So as much of that as I can buy, that’s better for me. I don’t want to have to build that. I don’t want to be in the infrastructure business; I want to be in the life insurance business.
The third thing that I need is I need to be able to leverage existing assets that I have in my shop, both in code, components, et cetera, and I need to be able to leverage the skill sets that I’ve developed on the Microsoft platform over the last several years. Most of our developers use Visual Basic and so it was pretty important for us that to take advantage of this next generation of capabilities my Visual Basic developers don’t have to make a platform shift and learn something entirely new to create these new applications.
And the fourth thing that we needed was we needed to be able to kind of control the rate of change that we adopted this new platform. So I needed to be able to choose where I innovated and I needed to be able to choose where I leveraged existing things. I can’t afford to do a rip and replace, like Tom mentioned earlier.
So what you see here is an application that we converted over to .NET to see if .NET actually could meet those four requirements that I just laid out for you.
Now, in its previous life this application was a Windows DNA style application. It’s in three tiers. There’s a presentation tier, which was the Web pages and that was built on Active Server page technology. The middle tier, the business tier were COM+ components and there’s a data tier that includes SQL Server and the host.
Every night that cycle runs on the mainframe, programs there that are older than I am. We mine data out of the host. We put it in SQL Server and then there’s some stuff that I can’t actually mine and put in SQL Server. I have to calculate that stuff in real time and we call that a quote. So our middle tier is actually smart enough to know when it needs to go to SQL Server and when it needs to go to the host directly.
So what we did when we converted this over to .NET, I tore down the presentation tier and we rebuilt it in ASP .NET. The middle tier we left it untouched. I have about $4 million invested in my middle tier over the last two years. That middle tier gets leveraged across three other extranet properties that we use for sellers of our products and the business case to rip and replace a $4 million investment is pretty light. Two years ago during the Internet heyday maybe that would have worked but not today. And we left the data tier untouched.
So let me demonstrate this to you. So I’m going to be forced to authenticate. And when I authenticate I actually call a Web service. I called one Web service. I passed in a social security number that was associated with that user that just authenticated, and what came back from that Web service was a list of holdings that that person has with Pacific Life.
When I click on this now I’m going to call another Web service. I’m going to pass in the policy number and I’m going to get policy level details back for that particular holding. And it’s using the same exact middle tier that we’ve used before. It’s untouched; we’ve just wrapped it in a Web service.
And we designed these Web services so that when there’s enough momentum in the life insurance industry that I need to have these Web services outside my firewall, these have been designed so that they could be publicly consumable.
And the last two requirements that I outlined for you, we were honestly quite skeptical that we’d be able to do that. I was very skeptical I’d be able to leverage my existing com, my existing components, and I was extremely skeptical that I’d be able to take just a piece of my application, convert it to .NET and leave other pieces untouched, allowing me to control the rate of change with which I adopted this new technology.
So then when I click here I’m calling methods on a Web service and I’m just getting data back. Now, I’m not actually reaching back into the host. I didn’t bring my mainframe with me today, so I’m not actually doing that.
So we were actually able to prove that I can convert this new technology at my rate of change that I want to go at and I’m actually able to create this next generation of capability.
So this has gone well enough that we actually have three other projects in the hopper right now that we consider more strategic than this project and we’re actually going to convert those over to .NET.
So with that I think I will turn it back over to Tom.
TOM BUTTON: Thanks very much, Brad. (Applause.)
We also have another gentleman with us by the name of Chris Adams who comes from American Electric Power. American Electric Power is one of the biggest companies that deals in trading, trading and distributing electric power. They have 4.9 million customers in the United States, another 2 million around the rest of the world and they have a variety of challenges.
One of the challenges that these folks wrestle with is a very widely distributed organization. They have development centers that are in three different places around the U.S., in Virginia, in Oklahoma and Ohio. The company itself is distributed across, I guess they have customers in a total of 11 states in the United States as well as several around the rest of the world, and so a company, which is that distributed, that is in an industry, which has the kinds of challenges they do in providing energy, they have challenges around how can they get their teams, not only how can they assemble virtual teams around given challenges in the organization but also how can they disassemble them and how can they preserve the information, which is developed and the knowledge that’s developed across these organizations.
So Chris is going to show us how he used some .NET technology to address that challenge. Welcome, Chris. (Applause.)
CHRIS ADAMS: Thanks, Tom. Like Tom said we’re across several states. We have IT resources in probably four to five states, so we needed a way to share the knowledge that was being consumed or intellectual property that we had there but we didn’t know how to share where people felt like they were being a part of it, and we also just went through a merger. We just went through a merger and acquired another power company and so we also had a need for the ability to have teams pop up rather quickly and be able to consume and share resources. In most IT infrastructures you pop up a group and by the time you need some file space out there on a hard drive or you need a group set up in your Lotus so they can call communicate together these groups are actually disbanded before they can actually get IT to get the work done for them that they need, as far as having space out there.
So what we were commissioned to do was build a knowledge base. A lot of companies need systems like this, but we were commissioned to also do it with a product that was in beta one, which was .NET. We actually hooked up with Microsoft about 18 months ago, so we were early pre-beta, pre-anything customers to test this technology. So we had a big void to fill trying to work through .NET and at the same time try to answer a business requirement.
The other issue is that w also had to be able to use this technology in the next application. Our group is real hot and heavy on being able to use a template-based Web system and be able to fold it out into the next application.
So in this application what you’re seeing here is actually what looks like a single Web page is actually loading what they call user controls. We saw this as a way that .NET gave us that no other application building tool previously would allow us to do, including Microsoft products. We tried this in InterDev using include modules, Active X controls, various methods of being able to allow our users, being business units that come to us with their actual business cases, and apply that to, say, a business unit will come to you and say we want this application built. But we didn’t want to be maintenance people; we wanted to be developers. So what we were looking for is ways to let the business unit actually administrate their application without any IT person being involved in it.
So I’m going to jump right into that and kind of show you how that kind of works so you can see how .NET has changed really the way application development actually can go for a unit.
So what we have here is we use user controls. And one thing I want to get out there is the word control here is sometimes looked on badly just because Microsoft did it to themselves with design time controls. Everybody hates those. Active X controls you have to download to the client. The use of user controls, basically you’re encapsulating HTML and code behind pages together. When it’d downloaded to the client all it is is D-HTML so you’re really allowing the code just to be for the developer to look at.
When you look at this page you don’t realize there’s actually about 30 controls that are loading to visualize this page. If I view the source all you’ll see is HTML code come down to the browser. So user controls I want to get that out that it’s not a bad thing as in the past with design kind of controls.
So what we’re looking at here is basically our knowledge management system and we have some setup that I’ve downloaded to my client here so I can get to them. And I’m going to jump into a Visual Basic community.
So like I said we’re trying to get to the point of allowing our users to actually control — and when I say user I mean the business unit before the client actually gets to it — to control the application so we as IT people don’t have to.
So I’m going to jump right over to design and show you how that kind of works. So what we have is metadata based on those controls loaded. So what you’re looking at here is a layout, which is loading controls throughout the page, like the logon information, a menu there, and then we’ve got a Web link down in the corner and then we’ve got a control right here.
So what we’ve done is we’ve built into the application the ability for these business unit administrators to be actually control the actual application itself.
So I’m going to load up this layout that I’m showing you now and allow you to view it. So this would be a business unit administrator loading up and you can see it says user control, design menu control and Web links are all the control that’s going to load to build this page on the fly.
So I’m going to go in here just for an example and I’m going to take that Web link control down in the corner and I’m going to take that off the page and I’m going to refresh the page so it does that.
And you’ll notice down in the corner we no longer have a Web links control. No IT person was called on the phone. No ticket was turned in. And we just without compiling this page over again we just changed a Web page. In the past that was like pulling teeth. We found in the IT community that was just not something that was easily done. So we think this is going to take us into the future on every single application because we’re no longer going to be working with the business units to change small things. They’re going to be able to change them themselves and we’ll just get to work on the next cool .NET thing that, comes out. So we find that a real cool thing about this new architecture.
Just to walk you through the application a little bit, it’s a knowledge management system. It’s got day planners in it. It’s got discussion groups so you can have your peers post messages and be able to reply to them. And by the way this whole application, which amounts to about 145 user controls, about 80 layouts or 80 Web pages as most people think of Web sites; it took two developers approximately three months to create. And all these user controls are usable on the next project we start as long as they’re not built into the requirements of what this application actually does.
So we’ve also got a knowledge base where people can upload files to the actual server and then other users can look at them and download, even rate them so we can see if our peers are just posting things that are useful or they’re just posting stuff to get credit, because our career coaches are also using this to do performance measurements for employees.
We have calendar events that we can go in and post events and we’ll drill down into one of those. And much like a tech ed event or something we can actually post sessions on those events, we can actually have attachments, say, if a required reading was required before you came to this meeting. You could click on one of these attachments and actually view it and be up to speed with what was supposed to be talked about today.
And then we could also have more like a TechEd layout where you have sessions throughout the day. We can also have sessions that would happen throughout the day and you can register for these sessions and even download presentations right from each session that would be going on throughout the day.
It does have search engine capabilities and because we use the technology in .NET we’re actually calling back those user controls from the knowledge base of discussion forums and event calendar without having to rewrite that code all over again. Our search engine just pulls the same object models and implements those. So if I was to go in here and type in, say, test, and do a search it’s actually going to call from the discussion area of knowledge base and events and feed me back a list of things that meet that search criteria and then I would just drill down into one of those items and proceed forward.
TOM BUTTON: Great. Thanks, Chris. (Applause.)
So a couple of examples of what some of our customers are doing with our technology.
A couple other last few things I wanted to talk about before I open it up for discussion, one thing that really merits pointing out is we had a 1995-esque experience over this past winter when we learned the hard way on a couple of different pretty embarrassing problems that we had, specifically around the NIMDA virus that came out I guess it was last September, and obviously security had been a concern and a priority for everybody in IT for a long time but I’ll tell you that was a real wakeup call for us. That was something that caused all of Microsoft once again to start to ask the questions about are we fundamentally developing software as best as we can do reflect the priorities of the customers and the people who are relying on us.
And we decided that while there are certainly some pockets of Microsoft that had this right at the center of their priority list and, in fact, we had already had an organization that was up and running under one of our more senior managers, Craig Mundie, trustworthy computing or the concept of building in security as kind of a core concept across our product line was not something that we were consistently doing on every product for every release.
Bill came out with one of kind of the company changing memos, which has been talked about and talked about extensively since then, around trustworthy computing in early January. He did this right on the heels of when we had just completed our big .NET security push that we had done really starting in I guess about mid-November of last year that we finally completed right in the early parts of January right before we released it to manufacturing.
And so the commitment to trustworthy computing and security overall was something where I’d have to say that the .NET framework, the underlying platform in Visual Studio .NET were really the first products at Microsoft to undergo the most rigorous end-to-end, every single line of code examination for potential exploits that we could identify and correct before the first version of this thing is launched.
Since then we’ve had just about every other major product undergo a full end-to-end security sweep for known patterns of security problems or known patterns of code that can create vulnerabilities. And while we certainly don’t claim to be perfect at this point we do claim to have an unbelievably higher focus and priority on this particular critical area of computing to ourselves and our customers.
We think about trustworthy computing along three dimensions: Availability, just making sure the thing runs, making sure that it stays up for you and you don’t end up with down time problems, so architectural support for redundancy is kind of a core concept in our systems going forward; self-management for auto recovery, those types of things such that your systems never have any user perceivable down time; security, the concept of data fortresses within software and services, making these things as close to impenetrable as you possibly can, as well as making it easier for our customers and specifically our developer customers to be able to build secure applications inside of our development tools and our new application server technology; and lastly from the user perspective having an absolute commitment to privacy, making sure that their information never falls into the wrong hands or hands that they don’t intend.
We have a variety of different initiatives that are coming out that implement this. Not only are we doing this within our corporate walls going systematically and sweeping through every single one of our products to make sure that they adhere to not only the policies but also reflect the latest and greatest knowledge that we’re accumulating as an organization for building trustworthy software, but it’s also something that we’re working on at an industry level. You might have heard about our announcements last week of Trust Bridge, which is our implementation of the new GXA WS security specification that we’ve recently agreed to with IBM as being some of the things that we’re doing outside the company as well.
So things that we have coming down the pipe that you can expect to see from our organization are specifically continued work in the standards area. We think that the initial WS-I organization that was based initially on those four key kind of underlying foundational specs of XML and SOAP and UDDI and WSDL, we think that that specification is really just a foundation layer. In order for us to get to the vision of the level of interoperability and the ability to build distributed systems both within the firewall as well as across corporate boundaries it’s going to need a lot more protocols to fill out the full semantic needs of these applications, including things like security and routing and just unbelievable volumes of things like schema standardization that will allow the messages that comes across to actually be received and be able to be acted upon without having the systems being designed fundamentally with knowledge of each other. So there’s going to be a lot of work there both on a more horizontal industry standards level as well as within each vertical industry to agree on not just protocols but also schema for standard entities.
In the tools space there are some things that are imminent right now. We have J#, which is going to be released early in the second half of this year and that will be provided free of charge to customers of Visual Studio .NET 2002 and it will be integrated in with the next major release that we have of that toolset overall.
We’re also going to be having our devices technology, specifically our Compact Frameworks — CFX is our abbreviation for that — as well as tools that target the Compact Frameworks, and so specifically being able to target handheld devices or even cell phones with this technology is something that we think is going to be an exciting addition creating new opportunities for our developers to enable mobile workers and mobile customers to turn their applications.
Within Microsoft we certainly have hundreds of developers working on our own tools but the work that our partners are doing we think is going to be even more exciting in many ways, and so the new VSIP partners that continue to come out almost weekly, new announcements of new companies and new products are something which we continue to anxiously look forward to going forward.
Lastly, the underlying platforms: For us one of the more important releases of Windows in the near future is the Microsoft .NET Server, which is intended to be coming out toward the end of this year, which is the first time that we actually have a full server platform with the .NET framework and the .NET technology and the programming model and all of that application server technology build in in a much more integrated way so that customers will be able to build and deploy applications onto full end-to-end integrated application servers supporting .NET.
So that’s kind of the end of my prepared remarks. I was hoping to throw it open for discussion and feedback and comments and questions and anything that is on your mind. Nothing is off limits. Everything is fair game. I am at your disposal here for another 20 or so minutes, so anything that you want to talk about. Yes?
QUESTION: SQL Server and .NET, how long will SQL Server be supported?
TOM BUTTON: The question was how long will SQL Server be supported with .NET.
QUESTION: (Off mike.)
TOM BUTTON: Well, SQL Server is something that is a pretty core product at Microsoft and we’re going to support that forever, at least as far as we anticipate.
QUESTION: (Off mike.)
TOM BUTTON: No, SQL Server is not being replaced by .NET Server at all. SQL Server is going to run very well on .NET Server. SQL Server has .NET capabilities today in that you can right now expose SQL stored procedures in the form of XML-based Web services. It will run on top of Windows .NET Server as our industrial strength database, providing great scalability and the attributes that you’ve come to expect of SQL Server. It doesn’t come free in the operating system.
There is a version of SQL Server called MSDE, which is semantically compatible, really you can think of it as kind of a shrunken down, miniature version of SQL Server that’s predominantly used for local storage in a SQL compatible way, but no, SQL will continue to exist as an independent product.
QUESTION: I worked at Sun and did some work on Java and have to say that C# is awesome. It’s elegant and I think it solves a lot of problems.
TOM BUTTON: Thank you.
QUESTION: And I’m very impressed by the new libraries. I think it’s much, much better, you know, the .NET libraries are just astoundingly better than MFC so I see that as a real step in a positive direction. I hope to see everything you can do in MFC available from within C#. That’s not quite there yet.
My question is about —
TOM BUTTON: I’m writing down my feedback here. Excuse me, I’m writing down your comments. Loves C#. Used to work at Sun.
QUESTION: Well, I think, I mean there are some issues. You know, the Bay Area —
TOM BUTTON: I promise you I’ve never met this guy. I didn’t plant him.
QUESTION: Yeah, no, but I mean I think —
TOM BUTTON: I think you don’t believe me.
QUESTION: — for the first time —
TOM BUTTON: Have I ever met you before?
TOM BUTTON: No, okay.
QUESTION: For the first time I think Microsoft is addressing server-side issues well enough that it’s better than a lot of the alternatives. And so I think there are some holes, for example, there’s very little documentation available for COM objects like the Web browser and some of the other spreadsheet objects, you know, the COM objects. There’s no documentation for those things anywhere.
But at a higher level it was an interesting community because we saw a lot of companies from the East Coast, a lot of companies from not the Bay Area, I mean I saw some from the Bay Area but where are the hotspots for Visual Studio .NET development here and where are the user communities and what are you guys doing to coordinate the community, because that’s really important?
TOM BUTTON: No, that’s a great question. Microsoft is making a huge investment in communities and we have a few different places where that’s manifesting itself. We were happy to see that there was a spontaneous user-driven organization called INETA, which grew up, which is I think it’s called the International .NET User Group Association, which sprang up spontaneously and came to our attention over this winter that somebody was trying to organize a collection of user groups around .NET and right now, in fact, and we gave them our mailing list so that they could go ahead and communicate to them and have kind of a community hub for at least the user group community to work together. And right now there are approximately 760 different user groups that have all joined INETA so that they can share information and have ways to collaborate that way.
Online is another place, which is a very rapidly growing community hub, and, in fact, Microsoft is in our division, in the developer division where we’re building developer stuff we have not only new online forums that you can go to — if you go to MSDN Online you’ll find that there are community forums, which are exposed for just about everything that you could possibly be interested in, and so covering all of the tools and all of the different technologies in these frameworks. If you have questions, if you have issues, if you want to find other people who are working on projects that are similar to you that you want to share best practices with, I’d encourage you to go online.
I’d also encourage you to go online and you’ll find the directory of the INETA user groups that you can also find local in your area.
The user basis for this technology, I mean .NET is already a very broad — you know, I don’t want to overstate it but while it’s very broadly used today, it’s something, which just in the first four months we have something like 1.3 million developers around the world who are using .NET based technology, it’s still something, which is not — you know, I’d describe it as broad but still shallow in some areas, meaning the number of people who have had a chance like Chris and Brad to work with this stuff for a year or more is still relatively few and so there are still a lot of people who are still going through their evaluation phases and doing pilot projects.
But you’ll find that the distribution of those developers geographically, because of just the sheer size of over a million developers already using this stuff, is going to pretty closely mirror the geographic distribution of developers in general. And so you’ll find there’s a lot of them in the Bay Area, there are very active INETA user groups down in this area and you’ll certainly find that information online as well as I think find what in many ways is going to be a more useful community resource using our online forums and MSDN Online as kind of a hub for that.
That’s great. I appreciate your feedback.
QUESTION: Briefly, what’s in .NET Server that you don’t get in Windows 2000 Server? (Off mike.)
TOM BUTTON: That’s a great question. The question was what do you get in Windows .NET Server that’s not in the .NET framework?
And semantically — semantically the frameworks are identical and so the class libraries are the same and that stuff. The main benefits are we have a substrate, which is not only integrated for install purposes but it’s also performance tuned end to end, and so our expectation is that people will see many operational kind of management-oriented benefits of running them together but semantically the types of applications that you can build are exactly the same.
QUESTION: (Off mike.) As you went from NT 4 to 2000 Active Directory was the most fundamental difference in how the whole architecture was changed.
Going from 2000 to .NET would it be accurate to say the integration of XML and new open standards is the most fundamental shift technologically that’s occurred?
TOM BUTTON: I think as a long-term trend I think that’s going to be profoundly true. I think the shift to XML-based Web services is something that’s going to play out over — in many ways I think it’s going to play out over the next ten years as different parts of the world’s IT infrastructure get exposed through interoperability that way.
I think that kind of tactically, meaning when you think about just what’s the impact, the operational impact going to be for the next year, you know, or for the next year or 18 months I think that it’s going to be more subtle than that. I think people are going to find that there’s operational benefits of moving to this generation of the technology because it simply is easier to deploy and easier to manage and there really is some scalability and reliability type benefits of moving to this generation of technology.
So our mantra that we’re using for kind of this generation of technology is it truly is better for today, given the kinds of approaches that you can use to get to that generation of technology from where you are today, some of the things like Brad has done very successfully at Pacific Life, leveraging a lot of those existing investments very easily and wrapping them with .NET stuff, to building new stuff. I think that there’s going to be for people who do cross that hurdle and do decide that they’re going to invest in .NET I think that they’ll find kind of operational benefits today but I think that the long-term impact is going to be felt largely from the adoption of those new protocols and the interoperability that that enables.
Does that answer your question?
QUESTION: (Off mike.)
TOM BUTTON: A question in the back?
QUESTION: Are Web services as building blocks intended just for developers to use or what tools is Microsoft providing or going to provide to help end users or business analysts assemble Web services together as whole?
TOM BUTTON: Oh, that’s a great question. Yes, so no we think Web services — like many technologies we think Web services are initially going to be found and taken advantage of by developers but long-term we definitely see an important role for business analysts as well as end users who are going to get increasing access to this.
For example, the BizTalk product that we have today that is predominantly designed for use by business analyst levels of people who want to take more abstract views of systems, of business systems and IT systems and be able to orchestrate their interaction, we think that they’re going to find great high level modeling tools that enable them to design those interactions, map messages from one to another without having to write code, map I want this information to go, know, when this event happens I want this information to go from this system to that system, triggering this other thing that’s going to happen and then I want this message to come back. And we think that business analysts are clearly going to be able to work with tools like BizTalk and the next generation of those things in order to directly manipulate Web services.
For me personally one of the products I loved when I came to Microsoft and I still haven’t had a chance to work on it while I’m there other than as a user is Microsoft Excel. If you can imagine sitting at Microsoft Excel and having the namespace of the world of XML-based Web services available as basically function calls, you know, for me to be able to sit in Excel and get real time bank account balances and have something equal in Excel in a formula, for example, equal a current stock price or equal a current bank account balance or have something in Word that has a field inside of a Word document that refers to some result of a real time call, I think that all of those scenarios are going to become very commonplace for the end user and they clearly are not going to require development to do it. So we’ll have easy ways to browse it, we’ll have easy ways to discover what the relevant XML-based Web services are from each of those end user scenarios.
So remember that doughnut slide that I showed you with all of the Microsoft products being recast on top of an XML-based Web services fabric, you know, the stuff that we’re doing on the client side I think is going to be some of the most exciting stuff that you see coming.
Initially like many technologies — it’s one of the reasons why I’m in the developer business as long as I’ve been at Microsoft — we’re really kind of the point of the arrow into a lot of the hot new stuff, which a lot of the systems infrastructure stuff will immediately follow and then ultimately a lot of the end user facing things will also follow. But I think the work that you’re seeing now for the developers in the area of Web services is inevitably going to find its way through all of those things.
QUESTION: First of all, this stuff is really cool.
TOM BUTTON: Thanks.
QUESTION: I wanted to ask a question about Exchange. I’ve been listening to all of the presentations about .NET for some time and Exchange seems to be like the Belgium of Microsoft, you know, it’s a lot of power concentrated there but nobody invites them to the soccer match.
So I’m trying to figure out in Web services, because it’s fundamentally a communications oriented technology, is there a future role for Exchange or does that become just part of the .NET Server?
And then, of course, what does it have to do with developer tools for Exchange specifically?
TOM BUTTON: Well, that’s a great question. We’ve viewed Exchange for a long time as a core part of the infrastructure of a lot of companies and providing a backbone for collaborative type technologies, you know, not just as a mail server but also providing kind of a message based infrastructure for applications that take advantage of that kind of service.
And so I personally would expect, without saying anything that’s not public, I would expect Exchange to become programmable through these protocols so that you can remotely access it. I’d expect there to be Web services that I can use to drive Exchange to either set up mailboxes that I’m going to be receiving from or ways that I can post mail to it. We have many customers and partners that are building more collaborative type applications, more open-ended collaborative type applications on top of the Exchange infrastructure.
So I think long-term the destiny of Exchange will certainly continue to be a stand-alone piece of corporate infrastructure that will be programmable just like everybody else is through these same protocols. So much like SQL Server in that regard we expect it to continue to be a core part of infrastructure that’s programmable through a consistent set of classes and protocols.
QUESTION: My question is probably more productivity, programmer productivity based and probably just more pie in the sky kinds of questions. I have three sort of disparate questions.
One, the J#, J# .NET, which JDK is this going to be? Is it the old, the new? Because a lot of people have gotten used to the new way. I presume, because of the legal situation, it’s the old one.
TOM BUTTON: Yeah. Our top priority with J# was really to find a way to take care of our J++ customers. And J++, Visual J++ from Microsoft built a huge following of developers in its first two or three years of existence and our primary challenge with J# was to provide something that was compatible with that generation, which I think is JDK 1.1.2, if I remember correctly. I think that’s the version of the spec that it was designed to support. So it’s basically intended to support everything that was available in J++, so our intention is to make it easy for those customers to bring their applications forward in a compatible way. It’s also intended to support kind of the base level of anything new in the language that’s happened since then that’s commonly used across all Java implementations, across all the different Java application server technologies and kind of become a standard part of the language.
But you’re right, I mean when Sun sued us in what was that — the fall of ’97 — I mean they stopped sending us the updated specs and they stopped sending us the SDKs at that time that would allow us to keep current and so we’re kind of left at that level.
QUESTION: Okay. And just two more parts of my question and I’ll ask about them at the same time and you can answer them any way you want.
Are you going to have code translators so that my Microsoft Visual Basic people can actually go pick up something that someone wrote in C# and look at it as Visual Basic?
TOM BUTTON: That is a great question.
QUESTION: And the second one is probably not so great but are you going to integrate Web parts into the mainstream of the world so that, for instance, one of the applications there look sort of Web parts like but where it would have been streamlined even more with Web parts but unless you’re using SharePoint you can’t get at it? So are you looking to pull all that stuff out and make it into some sort of standalone or integrated with a lot of other things?
TOM BUTTON: No, that’s a great question. Let me try to deal with your first one first. This technology for the first time actually lends itself to fully semantically compatible language-to-language translation. I mean, we finally have all of these languages, the four that we’re investing in as well as the dozens more that our customers have. I mean, these things are all running exactly on top of the same common language runtime and so they all have the same intermediate language. They’re targeting the same class libraries with a few exceptions where the languages bring in their own classes or their own frameworks to support their stuff. For the most part they’re all targeting the same exact underlying framework and so semantically we finally have languages that are like closely, closely aligned and so the possibility to have very high fidelity mechanical language-to-language translation is really truly there.
That said, we have a relationship with a company in Costa Rica that really impressed us a couple years ago with their ability to do language-to-language translation tools and I have to tell you that the primary thing that we’re constrained on in this is really the size of that particular company. We have already exceeded their capacity with requests for translators just to get kind of the basics done for this launch, which had been like doing a full semantic VB 6 to VB .NET translator, trying to get a J++ to C# tool in place. And so we basically have a waiting list of translators that we’re trying to work with them as our primary language translation tool partner to generate.
I think that you can expect us to be very market driven going forward. Where there’s demand for these things and certainly the generation of ones that you’re talking about, C# to VB .NET should be a lot easier to do than kind of things that span platforms trying to bring a language on top of one platform to a different language on top of a different platform.
And so if we see interesting user demand for that, I would certainly be open to it. There isn’t anything strategically or anything that would prevent us from doing that other than just customer interest. So if customers want it we can certainly do it.
The second question about Web parts. It’s actually a very interesting component technology that we have debated a lot internally about whether that’s exactly the right component technology that we want to invest in for that scenario to be used in everything horizontally going forward. And I have to tell you that the people who are inside Microsoft who work on component technology have looked at Web parts with great interest and it’s something that we have thought very hard about what it is that we want to do going forward, but at this point I can’t say that we have a big commitment to making Web parts kind of a central component technology in the next generation of Visual Studio.
It’s very much right now on the drawing board. It’s something that we’re looking at. We’re trying to figure out how to get the benefits of that and have it still integrate in with everything else that we’re doing.
So I can say that we’re very aware of it, we’re very interested in it. We’re looking at it closely but I can’t tell you right now what our ultimate plans are going to be.
QUESTION: Can you tell me if you can elaborate a little bit? It looks like most of the products are for transaction processing and oriented towards interfacing with customers on data. What comments would you have on services and support that you’re building into .NET to support things like video objects, like streaming technologies or large collections of data that you may have distributed anywhere?
TOM BUTTON: Right. No, that’s a great question. No, you’re right, I mean most of the applications that our customers are building today are fairly transactional and are about kind of building Web presences using kind of traditional HTML, not as much on the media side.
I don’t know, what do you think, Chris? Is there something there that we can say about what we’re doing with media and streaming on the programming side.
CHRIS: (Off mike.)
TOM BUTTON: Why don’t you talk to him?
CHRIS: So, I mean the client we have, the Media Player is totally exposed as an object. We basically provide the public the Media Player (off mike.) In terms of the larger server side solution that distributes, that smartly distributes video or otherwise that’s really something that we haven’t focused on and it’s probably best served by our community.
TOM BUTTON: I think it’s interesting to get some feedback. How many people in this room would actually like to see us elevate streaming media to a first-class concept in the tools and framework?
A few of you. More than I would have guessed. We’ll take a look at that.
STAFF: I think we’ve got time for about one more question.
TOM BUTTON: I honestly haven’t been very focused on that and so we’re going to go back and take a look at what that would mean.
QUESTION: So I work for a company that already sells a suite of products as Web services. Is there anything we can do to facilitate our move onto the UNIX side, particularly Solaris, other than, say, mono or having an equivalent Java code base?
TOM BUTTON: I’m sorry, you’re asking me you’ve already built .NET applications and you need to be able to deploy that on UNIX and you’re trying to figure out what’s the best way to do that?
TOM BUTTON: Right now we don’t have a commercial implementation of the .NET frameworks on UNIX. We have the projects that it sounds like you’ve heard about. We’ve had a project that we’ve been partnering with Corel on for about the last year and a half to move kind of the core common language infrastructure parts onto a flavor of UNIX, which has got, to us anyway, more reasonable licensing terms and BSD, but in terms of having a commercial implementation of this stuff available on something like Solaris we just don’t have it.
It’s something that we certainly get the request on occasion and from our perspective it’s something, which is interesting and something that customers and partners do have interest in but every time that we take a look at it we ultimately end up deciding that the cost to us of starting to split off the feature teams that we have to do cross-platform porting ends up being so high that we just feel like we can create more value on a single platform than we possibly could if we had to target multiple.
So right now we don’t have a commercial quality thing and I’m sorry that we can’t announce plans that that kind of thing is imminent.
All right, well thank you very much for coming. It’s been good to talk to you. Appreciate the feedback.