There's two different ways that you can structure an enterprise application as you know. One is I can develop a browser-based application, so a very lightweight client in essence and then all the associated infrastructure for that. Or I could develop a very rich client. So let's take a look at both of those because .NET supports both of those in a very rich fashion. The first is if I'm developing a light weight browser-based client I would utilize a technology called ASP .NET. Now ASP .NET is the next generation of web application infrastructure that's based upon or at least gets its beginnings from ASP technology that first debuted in IS 3.0. So, to coin a phrase "This is VB for the web." So we give you a very simplified way of developing web applications in a very RAD type of environment. Now moving from the UI, we move to the middle tier. So, we do provide a set of frameworks in an infrastructure known as Enterprise Services. Enterprise Services are the core framework and infrastructure to enable an enterprise developer to take advantage of things such as distributed transactions, such as pooling, things of that nature. Now some applications may choose to take advantage of those, others may not and it really depends on the requirements. So, if you don't need distributed transactions, chances are you could just build a component and deploy that with ASP .NET. Sort similar to doing JSPs and Servlets say with a JavaBean accessing a database directly. So it's sort of a light weight model. And Enterprise Services is the model where I need a richer set of perhaps declarative transactions, things of that nature. And in the backend, well not the backend but rather the data access end, we have a technology called ADO .NET which is the next generation of the ADO technology that debuted several years ago. And this provides the ability to talk directly to hierarchical data stores such as XML as well as relational data stores such as SQL server, Oracle, DB2. So those are the technologies you would utilize to build a very lightweight application where I'm rendering through a browser. We also support a rich client model that you could obviously tie into that overall infrastructure. And so there's Winforms. So this is a way that you can build very smart clients that take advantage of the core platform. At Microsoft we think that it's kind of silly that you have a 2Ghz machine sitting on your desktop and you're not taking advantage of any of that processing power. So we do have support for things such as smart clients that take advantage of the core platform.