About Me
I'm a technical architect with Headspring in Austin, TX. I focus on DDD, distributed systems, and any other acronym-centric design/architecture/methodology. I created AutoMapper and am a co-author of the ASP.NET MVC in Action books.
Upcoming Talks
-
Recent Posts
Recent Comments
Archives
- May 2013 (4)
- April 2013 (1)
- March 2013 (6)
- February 2013 (2)
- January 2013 (2)
- December 2012 (3)
- November 2012 (6)
- October 2012 (7)
- September 2012 (3)
- August 2012 (6)
- July 2012 (5)
- June 2012 (3)
- May 2012 (3)
- April 2012 (3)
- March 2012 (8)
- February 2012 (5)
- January 2012 (5)
- December 2011 (3)
- November 2011 (6)
- October 2011 (4)
- September 2011 (6)
- August 2011 (8)
- July 2011 (3)
- June 2011 (4)
- May 2011 (8)
- April 2011 (6)
- March 2011 (3)
- February 2011 (7)
- January 2011 (6)
- December 2010 (4)
- November 2010 (2)
- October 2010 (1)
- September 2010 (7)
- August 2010 (6)
- July 2010 (4)
- June 2010 (7)
- May 2010 (9)
- April 2010 (8)
- March 2010 (5)
- February 2010 (4)
- January 2010 (9)
- December 2009 (9)
- November 2009 (5)
- October 2009 (8)
- September 2009 (8)
- August 2009 (8)
- July 2009 (11)
- June 2009 (10)
- May 2009 (11)
- April 2009 (10)
- March 2009 (9)
- February 2009 (12)
- January 2009 (10)
- December 2008 (8)
- November 2008 (14)
- October 2008 (11)
- September 2008 (10)
- August 2008 (12)
- July 2008 (11)
- June 2008 (11)
- May 2008 (15)
- April 2008 (10)
- March 2008 (15)
- February 2008 (13)
- January 2008 (19)
- December 2007 (9)
- November 2007 (17)
- October 2007 (23)
- September 2007 (10)
- August 2007 (11)
- July 2007 (11)
- June 2007 (9)
- May 2007 (14)
- April 2007 (7)
Categories
- Agile (53)
- ALT.NET (1)
- altnetconf (3)
- Architecture (13)
- ASP.NET (11)
- ASP.NET MVC (46)
- ASP.NET MVC in Action (1)
- ASP.NET Web API (2)
- Austin Code Camp (2)
- Austin DDD Book Club (2)
- AutoMapper (31)
- BDD (8)
- Behave# (6)
- Behavior-Driven Development (5)
- C# (70)
- Code smells (2)
- Community (6)
- Continuous Improvement (3)
- Continuous Integration (7)
- CQRS (3)
- Dependency Injection (9)
- Design (19)
- Distributed Systems (3)
- Domain Driven Design (2)
- Domain-Driven Design (50)
- Entity Framework (2)
- git (15)
- HTML5 (1)
- JavaScript (4)
- Legacy Code (11)
- LINQ (10)
- LINQ to SQL (5)
- Mercurial (9)
- Messaging (8)
- Misc (50)
- MonoRail (4)
- MSBuild (1)
- MVC (1)
- NBehave (3)
- NFJS (1)
- NHibernate (10)
- NServiceBus (18)
- OO (2)
- OSS (1)
- PabloTV (1)
- Patterns (8)
- People (4)
- Personal (2)
- Presentations (1)
- Process (3)
- PTOM (1)
- Rails (3)
- Rant (31)
- Refactoring (22)
- REST (2)
- Rhino Mocks (1)
- Ruby (3)
- SOA (8)
- SQL (4)
- StructureMap (9)
- TDD (32)
- Team Build (6)
- Testing (25)
- TFS (2)
- Tools (36)
- Uncategorized (7)
- VSTS (7)
- WCF (5)
Meta
Category Archives: LINQ
Thinking Linq
I’ve been comfortable using LINQ for what seems like a long time. I’m noticing that I’ve been implementing some of the lesser used functions a bit more as of late, but I’m not sure exactly when they’re appropriate. Take the … Continue reading
Also posted in TDD
7 Comments
Queue is Always Empty Using yield return
I ran into an issue in a C# application the other day. Thankfully I figured out what was going wrong right away, but it could have turned into a big headache potentially. Post Footer automatically generated by Add Post Footer … Continue reading
Also posted in Tools
Leave a comment
Autoprojecting LINQ queries
Something I’ve been looking at adding to AutoMapper was the idea of doing automatic query projection in the Select query projection in LINQ statements. One downside of AutoMapper is that projection from domain objects still forces the entire domain object … Continue reading
Also posted in AutoMapper, C#
22 Comments
What is Projection?
I think there’s great benefit in not only knowing how to design your code to use common patterns but also to be able to speak about them clearly and concisely to others. If I mention that the problem sounds like … Continue reading
Also posted in Agile
Leave a comment
Implementing Domain Queries
My current Repository interface looks something like this: public interface IRepository { T FindOne<T>(int id); T FindBy<T>(Expression<Func<T, bool>> expression); IEnumerable<T> FindAllBy<T>(Expression<Func<T, bool>> expression); IEnumerable<T> FindAll<T>(); T FindOneBy<T>(Expression<Func<T, bool>> expression); void Save<T>(T target); void Update<T>(T target); void SaveOrUpdate<T>(T target); void Delete<T>(T … Continue reading
Also posted in Agile
Leave a comment
Selecting Static Results with Dynamic LINQ
Dynamic LINQ (DLINQ) is a LINQ extension provided in the VS 2008 Samples. Scott Guthrie provides a good overview here: Dynamic LINQ (Part 1: Using the LINQ Dynamic Query Library), but the executive summary is that it implements certain query … Continue reading
Also posted in Team Build, VSTS
Leave a comment
LINQ query operators and null lists
One of my pet peeves with the LINQ extension methods is their inability to handle null source lists. For example, this will throw an ArgumentNullException: [Test] public void Should_handle_nulls() { List<int> ints = null; ints.Any(num => num < 0).ShouldBeFalse(); } … Continue reading
More missing LINQ operators
Continuing an old post on missing LINQ operators, the wonders of extension methods allow us as developers to fill potential holes in LINQ operators. Whether it’s a Zip method (now included in .NET 4.0), or better methods for IComparer-based operators, … Continue reading
Hacking LINQ Expressions: Join With Comparer
In this installment of my Hacking LINQ series we’ll take a look at providing an IEqualityComparer for use in a LINQ join clause. The Problem Many of the Standard Query Operators require comparing sequence elements and the default query providers … Continue reading
Also posted in C#
Leave a comment
Hacking LINQ Expressions: Select With Index
First, a point of clarification: I use LINQ Expressions to mean (Language-INtegrated) Query Expressions (the language feature) rather than Expression Trees (the .NET 3.5 library in System.Linq.Expressions). So what do I mean by “Hacking LINQ Expressions”? Quite simply, I’m not … Continue reading
Also posted in Rant
Leave a comment
