No more ORM!

After working some years with different OR- Mappers (NHibernate, Entity Framework, proprietary ones, …) to build a lot of line of business applications, I came to the conclusion to trash them.

So how did I come to this conclusion? Yes, ORMs make it on the first look easy to access your database and query them. That is it all what you get. But you also get some problems, that were not there before.

Some of them are here:

  1. Generated Queries and Performance
    The ORM generates the SQL Query for you. But you will never get the best sql query to get your data. You do not want to fetch all columns of an table? Have fun!
  2. Transactions
    Every ORM has his own idea how to represent a transaction. Why? Plain db transactions are really easy to understand. Why add another complication to your application? When you want a stable and predictable LoB- Application, you want to know exactly when which changes are commited to the database.
  3. Predictability
    Do you know, when which query is executed against your database? How often did you looked for bugs where data not returned by a query, that are caused, because you forget to flush somewhere a session?
  4. Additional Query language
    Most ORM have their own query language or uses LINQ for the queries. LINQ is very nice to query your objects, but when you create more complicated queries, it gets really quick ugly. Group by- Queries? Outer Joins? Hurray!
    Why add another abstraction when you have already a Structured Query Language?
    How often did you fix code of some unexperienced developers that had performance issues, because the queries are done in memory or results in hundred small queries against the db? Simply because the code looks the same and they did not think about it.
  5. Support for different DBS, but no one to 100%
    When did you the last time tried to access a DBS specific feature? You want to use PostGIS? Filestreams on MS SQL? Or much simplier, use timestamptz on PostgreSQL?  No chance.
    Why is this? Simply because the ORM have to provide an API over all supported DBS.
    And when did you wrote a LoB application that have to run on different DBS? I haven’t?
  6. Additional problems that you did not see coming
    This week I was talking with a collegue about some problems with our used ORM and the build queue. WTF? What does the ORM have to do with the build queue?

This post should not be a rant about ORM or dictate to everyone to not use them anymore. I recognized in the last weeks, that the people do not think anymore about the question, if they want to use an ORM. They simply say, “Yeah, let’s use X as ORM”, but did not think if they can achieve their requirements with it. So see this post as an starting point to rethink your technology choices.

ORM are a part of your toolchain, you do not have to fix every problem with your beloved tool. Use the right tool for the job.

Starting developing in F#

In the last weeks I started to develop in F#. What I am doing will be revealed in the future, but I want to give some starting points, if you want to try out this functional language.

 

F# Wikibook: https://en.wikibooks.org/wiki/F_Sharp_Programming

F# for Fun & Profit: http://fsharpforfunandprofit.com/

F# MSDN Reference: http://msdn.microsoft.com/en-us/library/dd233181.aspx

Talk about developing with Xamarin

I am giving a public talk about developing mobile applications with Xamarin at the .Net Open Space Austria.

When: 16.09.2014 18:00
Where: TechTalk Software Support Handelsgesellschaft m.b.H.
Leonard-Bernstein-Straße 10
A-1220 Wien

Link to .Net Open Space Registration: http://dotnetopenspace.ning.com/forum/topics/16-09-2014-xamarin

 

Bring it to life

So, after more than 20 months of owning this domain, let’s put some real content here.

And which content will you find here? It’s all about engineering 😉
But it will be more than software engineering, there will be also hardware related topics and also some cake engineering.

All posts before this are migrated from my older blog.

 

Video of the OHSW presentation

I have finally managed to upload the video of my presentation at the Open Hard & Software Workshop.

Have fun:

First day at Open Hard- and Software Workshop in Munich

Yesterday was the first day of two of the Open Hard- and Software Workshop (www.ohsw.de)  in Munich. My first reason to attend it, was to meet the guys from the GTA04 project again. But now I am presentating my LCD Multitouch table there.

The day started with a presentation of Nikolaus Schaller about the status of the GTA04 project.

After him,  I had my presentation. You find the slides here: OHSW Präsentation MultiTouch Couch Tisch.

There will be also a video of it, but I didn’t looked at it to see how good it is.  If it is ok, I will upload it to Youtube.
At the afternoon, we also saw a presentation about SHR, the programming language Vala  and an extension board for the Freerunner for RFID/NFC.

In the evening we sat together and had nice chats about various open source topics.

 
Let’s have a look, what the second day will bring.

New Video of Multitouch Couch Table

In preperation for the Open Hard- and Software Workshop (www.ohsw.de) in Munich on 2nd-4th December I created a new video of my multitouch couch table.

This time it runs Bodhi Linux 1.2.0

The disappearing PS3Eye

If you have the situation that after some minutes of inactivity the webcam disappears from your system (not displayed on lsusb), deactivate the usb powermanagement.

To do this make following: echo on > /sys/bus/usb/devices/usb[bus of usb port]/power/control

 

This blog post was entered on my multitouch couch table. 😉

Forgotten promised Win8 Multitouch video

I recognized that I promised a video of Windows 8 in multitouch action.

Here is is:

Some pics from my multitouch couch table

At the weekend I finished the look of my multitouch couch table.

Here are some pictures from it:

Stay tuned for more infos about it.