I consider Yukon a new way of supporting Microsoft.NET. In fact, when I heard about Yukon I began asking myself many questions like "How will Yukon support .NET?", "What will make me choose Yukon?" and "What are Yukon’s features?" After doing some research on my own I found the answers and I'd like to share with you.
"Yukon will change the world of database development", is what Professor Prakhar Deva told me before the release of .NET. Now I believe him.
Yukon will give developers the power of integrating the .NET Framework into SQL Server, and I think it needs some further explanation.
Imagine that you can use your favorite .NET language (like VB.NET or C#) to write database objects (triggers, stored procedures, functions and more) without using T-SQL statements.
Now you can use your .NET Class Library (more than 5500 classes) to write your Yukon objects. It's great that the Common Language Runtime has been integrated in Yukon. The .NET integration with Yukon provides developers with many benefits which decrease the development time, thus making the final results better than ever.
Benefits
The first of these benefits is a more powerful programming model, which means that using .NET languages to write your SQL Server objects is more powerful than with the traditional T-SQL statements (Even though T-SQL is the primary language and will continue to be the primary language of SQL Server). A safer and more robust environment for databases has been considered in Yukon, now that SQL objects will run in the CLR environment; that means it will be more secure than the traditional stored procedure that runs on the server. Also, Microsoft has added 2 more objects in Yukon; User Defined Types and Aggregates, which give developers more querying capabilities.
The really good thing that makes our team (and actually all developers around the world) happy is that Microsoft will integrate database development tools into Visual Studio.NET's future versions. So you will use only one Visual Studio to develop and debug your database objects, scripts, as well as also writing your client-side code or middle tier. That is, you will use Visual Studio.NET to develop the entire application. Microsoft will release a version of Visual Studio.NET, code-named "Whidbey", with these capabilities.
Stability was one of the most important issues that Microsoft wanted to optimize in Yukon, and, in my opinion, the folks at Microsoft have done a great job. As you may already know, Managed Code uses Code Access Security (CAS) to prevent assemblies from performing certain operations, and because Yukon integrates with the CLR, Yukon now uses CAS which optimizes the performance of Microsoft SQL Server and the Operating System at the same time. Also, the performance optimization comes from the fact that the CLR provides many services and functions (like memory management, strong data-types, advanced handling mechanism through Try-Catch blocks and Threading) which improves the performance and stability of the server.
You now have the ability to write complex database code with .NET languages such as C#, and that's because of the CLR’s integration with Yukon. Don't forget that you can use the Object Oriented Programming model in your databases as well, because .NET languages provide you with this model. For example, you can use assemblies and namespaces to organize your database code, which will help with large-scale complex databases. Remember, that your .NET code is far more powerful than T-SQL. You can use threading, text manipulation capabilities, type safety, thousands of ready-to-use classes that can be easily accessed from any stored procedure, trigger or User Defined Function that provide you with almost all you need to deliver the best applications ever.
Choosing between .NET languages or T-SQL when writing your SQL Server objects is a question that you will ask yourself each time you develop Yukon databases. And I can tell you that you will come to know the answer with experience. Let me tell you a little about this choosing issue.
I think that T-SQL is very appropriate when you want code that will only perform data access, such as using an INSERT statement to insert records into a database. You will need to use .NET Languages when you want the code to manipulate complex business logic that needs the power of the .NET Framework Class Library.
An important question that you may ask is, "Now that Yukon can understand .NET code and T-SQL, where do I put the data and where do I put the functionality?" In fact, it's up to you and up to the business logic. However, if you put the data and the functionality on the server you risk the chance of decreasing the server’s performance, especially if the functionality takes a lot of processor time. You can, however, solve this by placing the data on the server and the functionality on the client.
Microsoft has done a good job of improving the database engine, XML and ADO.NET Support and Database Administrator tools.
For Database Administrators, Microsoft has folks working hard to improve the entire administration process. Most of the administration tasks can now be done without taking Yukon offline. Recovery is now much faster than SQL Server 2000 and they’ve done a good job of improving server security, availability and reliability. They’ve also added new functionality to the server, such as dedicated administrator connection. I can't even begin to tell you how many features Microsoft has added to Yukon for Administrators. Another example is that the Administrator can now depend on Yukon's self-tuning capability without worrying about all the details.
Replication and SQL Profiler have also been improved with Yukon; but the most important feature that I can talk about is the replacement of the Server-Side Enterprise Manager tool with the new Client-Side Management console (code-named SQL Workbench). SQL Server Administrators will have great control on the Client-Side with this new tool. Yukon's Workbench is an integrated environment which will help Administrators and developers do many things. Microsoft has integrated the Workbench with Analysis Services and Reporting Services. And you will use it to develop XML and T-SQL code. Workbench will be integrated with Visual Studio.NET (AKA 'Whidbey') so it will have many features, such as IntelliSense. Also, SQL Server Administrators and Developers will find great toolset for almost everything related to databases from designing databases to debugging and deployment.
Using .NET, you will be able to program Yukon's new management language, which is called Server Management Objects (SMO), a replacement of SQL DMO. SMO is very easy to use and don't forget that you can use .NET to program in SMO too!
As you know indexing is one area that Administrators need more power over, with Yukon you can create and maintain indexes online without taking the server offline. This will be done using the T-SQL index option create index with online. Dropping and altering indexes will be performed online as well.
Yukon includes native XML data-types for improving management, storage and retrieval of XML data. Yukon supports XQuery for retrieving XML data and XML Schema Definition (XSD). Web Services have been improved and how you can create them in the database-tier making SQL Server an HTTP Listener. This will provide us a new way of accessing the data. In Yukon you can use HTTP to access SQL Server directly without the need for a middle-tier listener such as Microsoft Internet Information Services (IIS) Server. SQL Server exposes a Web service interface to allow execution of SQL statements and invocation of functions and procedures. Query results are returned in XML format and can leverage the Web Services infrastructure of Visual Studio.
Using SQL Server, code-named "Yukon", and Microsoft Visual Studio.NET, code-named "Whidbey", Microsoft takes us many steps forward in the way of Global Digital Systems with .NET GDS.NET.