Steve Michelotti

218 posts

Presentation at SOMD NUG – LINQ to SQL

Tomorrow I’ll be giving a presentation at Southern Maryland .NET User Group on LINQ to SQL. Details of the event can be found here: http://www.communitymegaphone.com/ShowEvent.aspx?EventID=1022....


Custom C# 3.0 LINQ Max Extension Method

The System.Core assembly in .NET 3.5 contains the main LINQ methods for dealing with objects such as the Max() extension method [http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx]. Like many of the LINQ extension methods, the Max() method has many overloads that allow you to do things like this: List<int> list = new List<int> { 1, 2, 17, 14, 21, 4 }; Console.WriteLine("Max: " + list.Max()); //<- "Max: 21" This is all well and good but what if you need to do something a...


C# 4.0 Optional Parameters

One of the new language features coming in C# 4.0 is Optional Parameters. In large part, this is due to Microsoft's plan of co-evolution with C# and VB.NET since VB.NET has had this feature for a while.  Personally, I'm still somewhat undecided about this feature and there has been much written about method overloads versus optional parameters. For example, Considerations in Overloading Procedures [http://msdn.microsoft.com/en-us/library/e18yd02w.aspx].  Ultimately, I do think there will be some...


Verbal Graffiti

These days it is absolutely essential to have solid communication and presentation skills as a developer. This will serve you well whether you are presenting at conferences and users groups or professionally on a day-to-day basis communicating with managers and colleagues. I've given many presentations at developer user groups and code camps and I'm always looking for little ways to improve my presentations. Recently I picked up a copy of The Exceptional Presenter [http://www.amazon.com/exec/obi...


Validation Application Block – Unit Test Validation Logic

The Enterprise Library Validation Application Block (VAB) is a great library for putting your validation in your business layer where it belongs rather than in the UI. It allows us to apply attributes to the properties of our business objects like this: public class Person { [StringLengthValidator(1, 20, MessageTemplate="First Name must be between 1-20 characters.")] public string FirstName { get; set; }   [StringLengthValidator(1, 20, MessageTemplate="Last Name must be between 1-2...