Friday, 14 April 2006

On April 12th I presented Genome at Persistence Day in Karlsruhe, Germany which was organised by dotnetpro, a German .NET development publication. Persistence Day is quite interesting, as it is a full day event concentrating solely on two topics:

  • Object-relational mapping for .NET
  • Object-oriented databases for .NET

While the latter is more of a niche in today’s enterprise development market (still, quite an interesting one), there is a huge demand for object-relational access for the .NET platform. The event hosted nearly 200 people and was booked out quickly. The fact that a one-day event with a 99€ price tag that attracts only a regional audience (no one would travel further than a few hundred kilometres for it) was so rapidly booked out (and would have been so even if the event had been planned for 500 people, according to the organiser) amply demonstrates that the .NET developer community is starving for solutions to this problem.

Still, O/RM is an exotic thing on the .NET platform, while it is widely accepted in the Java world. When I attended a software architect workshop in Cortina this February with a group of Java and .NET architects, the Java people just yawned when O/RM topics were proposed for discussion. So how can it be that this topic is widespread on other development platforms but so underdeveloped in .NET?

I see two main reasons for that:

First of all, Microsoft contributes a lot to this situation. They announced Object Spaces twice (PDC 2001, PDC 2003) but never released it. Except at PDC (and on some rare occasions at TechEd), you will never hear about O/RM from Microsoft. It's very funny to read through Microsoft’s current Patterns & Practices chapter on “Designing Data Tier Components and Passing Data Through Tiers” without encountering the word “object-relational mapping” once. I understand that Microsoft does not endorse any specific products, but concealing an entire product category shows Microsoft's attitude to this topic quite well.

Another reason is the .NET development community itself. With few exceptions, many people are advocating against the use of O/RM. They already spoke against it some years ago and they still do. I don’t want to dispute their arguments here, but looking at the number of comments those people receive on their O/RM related posts clearly tells me what an important topic O/RM is for the .NET community after all.

Posted by Chris

Friday, 14 April 2006 15:34:02 (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [2]  | 
 Thursday, 13 April 2006

I like the WinForms user interface, but not the Web UI. I know, I'm not alone with this, but please keep in mind that it's 2006 and you can conjure a full realistic 3D world on your PC with any of the trendy FPS games, but you go back to work the next day and have to work with an enterprise application with a web front end and still have to struggle with inconveniences determined by the technology you use. It's crazy, isn't it?

On the other hand (if I don’t count AJAX technologies, which are a big hope for me), you have the WinForms UI, which provides you with a useable environment for your applications. As we have mostly worked with web applications in the last two years, we looked into the ASP.NET improvements first when the new .NET framework came out. Although we found strange things there, what I have seen and tried out is really promising (I promise I'll collect our findings on this topic as well). Thus, full of enthusiasm (and knowing that many of our customers are interested in using Genome with WinForms UI), I’ve started to put together a sample that shows a few databinding scenarios using the ever famous Northwind database and Genome of course (the sample will already be online by the time you read this).

I'm a bit disappointed. I see the improvements and the fancy new stuff they have shovelled together at MS, but it cannot make me happy. Let me tell you what I've found.

Thursday, 13 April 2006 16:13:45 (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [4]  | 
 Monday, 10 April 2006

We have just released a new version (2.5) of our O/R mapping tool, Genome. You may already have noticed that TechTalk frequently releases new versions of Genome. When we created the first automated data access layer implementation for one of our .NET projects four years ago (which later became Genome), we tried to build up a core framework that can be easily extended in many ways without breaking the existing public API. This allows us to provide frequent updates with improved functionality that can be used easily by our customers without spending valuable efforts on integration.

Genome 2.5 is a bit different. You might not notice any difference because this release is as backwards compatible as previous ones: when you upgrade, you most probably don’t have to do anything else but modify your references to Genome to use the new version. However, Genome 2.5 introduces a big change, or at least a bigger one than usual: we have integrated support for Oracle and Microsoft database server platforms into one build. This will also allow us to extend Genome’s support for further database platforms in the future more easily and it has made Genome, our lovely child (as we’re used to calling it), a teenager who has successfully graduated from elementary school.

You’ll probably say: “What’s the big deal? There are several O/RM products on the market that support multiple database platforms.” Well, that’s true, but there can be significant differences in how they support a specific database platform. The challenge is not to provide an abstraction for the various SQL syntax flavours used by different database platforms but to deal with the semantic differences found in those platforms, such as identity generation (automatically incremented field value versus sequence), limiting the result set to a maximum row count (TOP n vs. ROWNUM <=n), handling LOB parameters in grouped database commands or different database type systems.

In Genome 2.5 we have tried to provide transparent integration with the different database providers. And in most cases, it just works! You simply change the database provider setting in the properties of your DataDomain schema project, modify the connection string, and your application is ready to run on a different database platform. We have found, however, that providing a safe, straightforward and transparent solution is not always possible. Because of the semantic differences mentioned before, there are cases when you cannot achieve exactly the same functionality on another database platform. One problem is that of the empty string, to finally arrive at the topic I wanted to talk about.

Monday, 10 April 2006 18:44:21 (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  | 
 Sunday, 09 April 2006

As you might already have seen, Genome's public support newsgroup (news:// contains answers to lots of questions and issues posted by our users. But what about those little tips, tricks, hints and personal opinions of the Genome team members?

We have opened this blog so we have a channel for posting valuable and useful information which doesn't quite fit in with our product descriptions and documentation.

We're going to use this blog to share our personal Genome experiences with you for several reasons. For one, we know that not all of Genome's capabilities are immediately apparent to all users. As the insiders, we can give you pointers that can save you a lot of development time and will help you get the knack of developing with Genome. If you're already an advanced user, this is the place to gain an even deeper knowledge.

This blog will also be a space for our developers to air their thoughts, plans and ideas about Genome, so check it regularly to see what's cooking.

Posted by Elina

Sunday, 09 April 2006 22:33:46 (W. Europe Daylight Time, UTC+02:00)  #    Disclaimer  |  Comments [0]  |