I would like to know if I am making the right decision. I am developing an application that allows a user to mix database records from a local database (possibly SQL CE or SQLite) and from a remote shared database (most likely MySQL). Ideally, it should be flexible and compatible with several types of database servers (statically in accordance with the initial configuration, without mixing several types dynamically), but this is not a demo stop.
Code - C #, .NET 4.
Naturally, I was thinking about NHibernate, since it has LINQ in version 3.0, plus for reading and code efficiency, and a model-based approach is more natural than the Entity Framework. It also has Shards for the mixed portion of the database, which should be much easier to handle. Another option is EF 4, which I would love to support, since it is fully supported in the context of .NET and Visual Studio, and there is a promising future there.
Are the Shards mature enough? He stayed on 3 beta versions for quite some time and looks like a dead project, have people deployed professional applications based on this extension? Does it have a future? Or is there another option?
Is NHibernate 3 included in Mono? I think so, but the actual confirmation would be wonderful. This would be another advantage over EF if the web server should be designed as an alternative interface.
Thanks in advance for any information or feedback!
Update 1
Obviously .NET 4 is a problem, and to use NHibernate.NET 3.5 is wiser. In addition, there are obvious issues with SQLite and SQL CE or other parts of the infrastructure such as WPF.
Does NHibernate support the outline of different types of databases (e.g. MySQL and SQLite)?
So, I'm starting to believe that EF 4 is more secure for the client side and NHibernate when it comes to the possible ASP.NET interface.
database entity-framework nhibernate sharding
Redglyph
source share