"One of my favorite creations over the past year has been this.Log(). It works everywhere including static methods and in razor views. Everything about how to create it and set it up is in this gist.
How it looks
public class SomeClass {
public void SomeMethod() {
this.Log().Info(() => "Here is a log message with params which can be in Razor Views as well: '{0}'".FormatWith(typeof(SomeClass).Name));
this.Log().Debug("I don't have to be delayed execution or have parameters either");
}
public static void StaticMethod() {
"SomeClass".Log().Error("This is crazy, right?!");
}
} "
"Returns information from, or expressions based on, each row affected by an INSERT, UPDATE, DELETE, or MERGE statement. These results can be returned to the processing application for use in such things as confirmation messages, archiving, and other such application requirements. The results can also be inserted into a table or table variable. Additionally, you can capture the results of an OUTPUT clause in a nested INSERT, UPDATE, DELETE, or MERGE statement, and insert those results into a target table or view."
"The Issue, in which Dylan gets bit in the ass by a legacy database
I'm building some message-oriented-middleware (MOM?) for a 3rd party vendor product. The database has evolved over many years and has all of the quirks that you might expect of such a system: primary keys that are implied but not made explicit with constraints, relationships that are implied but not explicit, columns that are not nullable in the business logic but are nullable in the tables, etc. I'm not knocking the vendor: I am keenly aware that keeping a multipurpose database absolutely clean of cruft is a tough challenge indeed. But it does make for some really tough integration points. My major challenge over the past week has been auditing. The vendor system makes very heavy use of sprocs and embeds the creation of the audit trail in those sprocs rather than using what, to my mind, is the more obvious approach of triggers."
"Welcome to the Apache NMS project, the .NET Messaging API.
This allows you to build .NET applications in C#, VB, or any other .NET language, using a single API to connect to multiple different providers."
"Programmers take certain features for granted - sequential programming for instance, writing down an algorithm that does one thing after the other.
RelatedVendorContent
State of Agile Development Survey Results & Summary
Architecting the Ultimate Service Security Control Point
2010 Open Source Integrity Report: Defect Scan of 291 Key Projects Including Android Kernel
DataPower: Messaging, ESB, Cloud, Security as an Appliance
The Agile Tester
However, if you're writing code in Javascript that uses blocking I/O or other long running operations, sequential coding is out of the question because blocking the only thread in the system is a very bad idea. The solution is to implement algorithms using asynchronous callbacks, ie. spread out sequential code over multiple callbacks."