ORM для Mono, MonoTouch и ASP.NET MVC

Я планирую приложение, которое будет повторно использовать сущности между веб-приложением ASP.NET MVC, приложением WinForms и приложением MonoTouch для iPad.

Я рассматривал возможность использования (Fluent) NHibernate в качестве ORM, но меня беспокоит, что если я спроектирую свои объекты для использования в WinForms, при создании приложения для iPad мне придется дублировать объекты и переназначать их для SQLLite на iPad. (Нет NHibernate на MonoTouch).

Есть ли ORM, с которым я могу уйти:

  1. Использование тех же сущностей (это должно быть возможно, если сущности абстрагированы от сопоставлений согласно Fluent NHibernate)
  2. Используя те же сопоставления (это, возможно, труднее достичь и не так важно

Заранее спасибо.


person Darbio    schedule 24.05.2011    source источник
comment
Ваши объекты - это просто POCO, поэтому вам не нужно их дублировать. Вы можете использовать NH, который работает с Mono, а затем написать урезанную версию ваших репозиториев для MonoTouch, я сомневаюсь, что вам нужно будет реализовать все, что вам нужно, для MonoTouch. IoC FTW.   -  person Phill    schedule 25.05.2011
comment
Я согласен - POCO будут такими же. Я пытался отказаться от использования двух ORM и, следовательно, отображать объекты в каждом проекте отдельно. Увы, кажется, что это непросто, и, вероятно, потребуется меньше времени на отображение и тестирование, чем на то, чтобы делать это вручную.   -  person Darbio    schedule 25.05.2011


Ответы (1)


Я использую ViciProject CoolStorage, и это великолепно. Рекомендуемые!

http://viciproject.com/wiki/projects/coolstorage/home

person Pavel Sich    schedule 25.05.2011
comment
Выглядит неплохо - хотя я не уверен, что буду использовать это и на стороне сервера. Спасибо, похоже, победитель за МТ :) - person Darbio; 25.05.2011
comment
Мы также используем его на стороне сервера, он написан на .NET 4.0 и развернут как служба IIS в кластере, отлично работает. Простота этого API - то, что нам нужно, и она значительно ускоряет разработку. - person Pavel Sich; 26.05.2011