Hi,
For the criterias below, what a technology stack would fit best?
- Cross-platform (Linux/Windows).
 - Ability to run as a service (daemon).
 - Powerful object-oriented data access (O/R-mapping).
 - Multiple databases support (MsSql, Oracle, MySQl, SqlLite, Postgress).
 - Web application can be tested (Unit and Integration testing).
 - Reasonable or no development price (includes IDE and other tools).
 - Reasonable or free licensing (price of OS, Databases etc).
 - Very small dev team (1-5 people).
 - Windows/.NET background of the team.
 
I would easily choose .NET as a platform with ASP.NET MVC/NHibernate. I am good at .NET and doing it for about 3 years or so. So that is easiest choice for me.
But there seem to be too many issues running ASP.NET on Mono. Mostly I found those on the net. But the ones I am aware of are:
- different versions of Mono on different hosts
 - different behaviuor of some objects on different platforms (Ayende wrote in his blog some time ago about this)
 - conservative garbage collector
 - legal issues with MS.
 
I particularly like Ruby as a language, but not too sure if it requires a lot of tricks to satisfy points 2, 3, 4.
As for Java, for some reason I just can't do it. Every time I have to think to write get/set instead of a property, I fall back to C#. I would do Java if there would be no .NET 2/3.
So 2 main questions:
- What language would fit best?
 - What related technologies would be useful?