I've been getting more and more pessimistic lately about the value of generated code. While generated code has the huge advantage of outputting the cleanest and fastest code, I've started to really dislike the developer workflow aspect of opening up an external application that looks and feels completely different from Visual Studio and has absolutely no clue as to where the generated output is being used. For this reason, as much as I admired MyGeneration and CodeSmith (particularly the former since it was free and open source and more powerful, arguably, than the latter), I was never entirely comfortable as I adopted them into my workflow, always scared of the painful isolation of the code generation from my IDE workspace. The same is true of what I thought I saw of Llblgen, which has a very rich ORM toolset but it's still isolated.
Isn't the standalone nature of SQL Server Management Studio enough isolation for us??
I was slow on the uptake of interest in EntitySpaces 2009's promises to perform code generation inline with Visual Studio, but now that it's being discussed, and screenshots are displayed, I don't know, there's something about a screenshot that helps me imagine it in my workflow. And now I'm feeling all excited. Microsoft added the database servers view in Visual Studio for lightweight database management for a reason: they understand that developers often don't like to Alt-Tab out of their workflow, and by integrating it into the IDE they can introduce such things as project awareness and drag-and-drop features, etc. The EntitySpaces team apparently understands this, and they've gone in the same direction (although as far as I know, and as far as I care, drag-and-drop data binding is not an EntitySpaces feature, nor would I expect it to be).
But what I love about this new direction is that the management of data mapping is no longer XSD XML/CS (a la Microsoft ADO.NET integrated tooling), it's no longer nHibernate XML maps, it's no longer an external application, and it's not a tool that forces you to choose between a diagram and XML (LINQ-to-SQL). It's a built-in tool that appears to look and feel like the data servers / schema tree tool but emits user-configured, performance-optimized, easily adaptive POCO business objects that you can build around. Now I think I can comfortably include this in my workflow; my question is, when can I get my hands on this bad boy?
http://www.entityspaces.net/blog/2008/10/12/EntitySpaces+2009+Running+Under+Visual+Studio.aspx
(Neither Entity Spaces nor its owner Mike Griffin paid me nor requested for me to post this.)