The latest .Net release of Visual Studio and SQL Server added a brand new feature, unique to the best of our knowledge: integration of the common language runtime (CLR) component of the .NET Framework for Microsoft Windows. What this means is that it is possible now to write stored procedures, triggers, user-defined types, user-defined functions (scalar and table-valued), and user-defined aggregate functions using any of the.NET Framework languages, including the revitalized Visual Basic .NET and of course C#. The code written in one of those languages is managed code and when it is used to run inside SQL Server it is referred to as a "CLR routine". Examples of CLR routines are: scalar-valued user-defined functions, table-valued user-defined functions, user-defined procedures, user-defined triggers. Any routine has a T-SQL declaration and can be used anywhere in SQL Server that the Transact-SQL equivalent can be used.
So, the question is obvious. Which strategy should developers follow ? The traditional T-SQL one, or the CLR integration of managed code, written in any of the supported programming languages ?