<p>What are some important practices to follow when creating a .NET assembly that is going to be embedded to SQL Server 2005?</p>

<p>I am brand new to this, and I've found that there are significant method attributes like:</p>

<pre><code>[SqlFunction(FillRowMethodName = "FillRow", TableDefinition = "letter nchar(1)")]
</code></pre>

<p>I'm also looking for common pitfalls to avoid, etc.</p>

Some that I remember:
Keep its usage to a minimum, only use it when T-SQL proved too complex.
Avoid pointers/cursors at all costs because a for loop is so easily abusable in CLR context.
Only use the SQL-Server native data types unless totally necessary.
Can't remember where I've found the information, but those are some that I do remember.
Basically, only use it when declarative T-SQL is too complex or is impossible to do (such as registry editing etc.).