Microsoft ORM saga revealed

Matt Warren talks about what happened to ObjectSpaces, WinFS and why [MS] is going with LINQ to SQL as sole ORM product in Orcas wave. Very interesting read I have to say and kudos to Matt for such a revealing post. It actually reveals many (odd looking) decisions. They remain odd but at least one can understand the reasoning behind them.

Anyway, one piece of the puzzle is missing. He doesn't mention Entity Framework with a single word. Perhaps in next post we'll read about EF's story (hint for Matt).

My ORM presentations at NT Konferenca 2007 (Slovene event)

A year passed like nothing and NT Konferenca, biggest national [MS] event, is here again. This year I'll be all ORM oriented, in fact, I'll give two presentations on topic: LINQ to SQL and ADO.NET Entity Framework (which was recently postponed to 2008  - won't make it into Orcas).

Nedless to say that I am an ORM convert and really excited about ORM products in general. Even more now, that [MS] is LINQing the ORM products. I have deliberately written ORM products because LINQ wave will hit all ORM products, not just [MS]' ones, like Tsunami and this is soooo good - I really can't imagine an ORM product ignoring LINQ for more than three months. IOW writting ORM queries using LINQ will be much more clear, readable and concise - this is huge huge benefit for ORM community (note that using LINQ for ORM queries is just a part of where LINQ shines).

There are two things I have to figure out though:

  • why the heck is [MS] going with two very overlapped ORM products instead of focusing on one and make it great.
  • how to explain to DBAs that ORM product is not a public enemy and a threat to them, at least not when used properly

So, see you there!

Implementing more useful tracing for LLBLGenPro 2.0

[LGP] has an internal tracing mechanism that outputs data to Trace class using standard .net mechanism. To enable various tracing categories you have to switch one various TraceSwitches either at runtime or in config file.

But what if you want to execute the same select directly in Sql Server Management Studio perhaps? The reason might be your curiosity. More valid reason would be to check the generated sql statement as it might behave poorly of badly (or not at all) if it isn't constructed properly. And finding why in a huge statement soon becomes picking a needle in haystack.

Find the solution in this article.

Extending LLBLGenPro's ResultsetFields to work like List

These days I had a need to use ResultsetFields for fetching dynamic list. As you know, ResultsetFields derives from EntityFields2 (I am working with LLBLGenPro 2.0 .net 2) which is basically an array. There is nothing wrong with that, it is just you have to set its size beforehand (ok, you can explicitly expand or contract it later on) and you have to use indexes. But why would one need to deal with indexes and sizes? Hence, here is my solution...read my article and get source code here.

Taking LLBLGenPro and other CHM help files everywhere with PocketPC

If you have a PocketPC and you want to read CHM files (compiled HTML Help Format - previous MS' help format) on it then here is the solution. Pete's free CHMReader does the job very well and the result is actually very readable. I read every issue of MSDN Magazine (free CHM downloads) on PocketPC while I wait somewhere (don't you hate waiting at i.e. doctor's doing nothing?). Plus I have a copy of LLBLGenPro's help file on PocketPC, too. Very useful at the start since it is not just a help file, but also a guide to OR mappers in general.

Almost forgot - this is my first blog entry with Windows Live Writer.

Generic Plugin for LLBLGen Pro v2

I started to build my own collection of [LGP] plugins. For now, there is only one - Generic Field Setter. It is capable of looping through single/all project entities and set matching fields to read only. The comma delimited field list can be set through project custom propery or typed directly. As a bonus, you can set default values through modifying included .config file.

Free download here.

FinalBuilder4 action for LLBLGenPro available

Yesterday I crafted a [FB4] action for [LGP] that invokes its command line code generator utility (CliGenerator). You can find free download here.
Note: CliGenerator is included with [LGP] SDK which is an extra download available for customers (actually you have to build the utility from sources that ship with SDK).