Комбинации NHibernate и Spring.NET действительно полезны в приложениях уровня предприятия! - PullRequest
3 голосов
/ 31 декабря 2008

Каково мнение разработчиков программного обеспечения, которые использовали Spring.NET и NHibernate в своих проектах? В нескольких наших проектах в компании, где я работаю, мы очень широко использовали эти сторонние инструменты и получили огромную производительность. Небольшое предостережение заключается в том, что начинающему разработчику .Net немного сложно понять концепцию.

Ответы [ 3 ]

2 голосов
/ 23 января 2009

Imo, Spring.Net и NHibernate идут рука об руку: если вы освоите кривую обучения, вы будете очень довольны, когда Spring будет использоваться (почти прозрачно) обработка транзакций для NHibernate, а также внедрение зависимостей как Db: обработка провайдера.

1 голос
/ 09 мая 2012

Использование spring.net/nHibernate имеет множество преимуществ.

Для доступа к данным вы можете в полной мере использовать nHibernate ORM с ленивой загрузкой, независимым от баз данных программированием, простым сохранением загрузки, обновлением, удалением ваших сущностей. Нет необходимости писать какие-либо запросы, чтобы сделать это. Вот почему после проектирования базы данных и после разработки, если какие-либо изменения требуются в любом состоянии разработки, это очень легко изменить.

Внедрение зависимостей (DI) помогает разделить пользовательский интерфейс и бизнес-логику. Вот почему в любой момент вы можете изменить свой графический интерфейс, не нарушая никакой бизнес-логики. Точно так же, если вам нужны какие-либо изменения в бизнес-логике, вам нужно только построить бизнес-уровень. И это также настраивается.

Аспектно-ориентированное программирование (AOP) - еще одна особенность Spring.Net. Это помогает регистрировать приложение, динамический перехват методов позволяет лучше контролировать вызов метода. Это позволяет легко авторизовать приложение. Декларативное управление транзакциями - хорошая функция для управления транзакциями. Вам не нужно писать код для начала и остановки соединения с базой данных. Просто напишите в конфигурационном файле, каким способом вы хотите поддерживать транзакцию. Таким образом, в крупномасштабном проекте это сэкономит много времени и даст вам больше гибкости по сравнению с управлением транзакциями.

Spring webservice очень прост в написании и потреблении от клиента. Не нужно добавлять какие-либо пользовательские атрибуты, нет WSDL. Вы можете перехватывать каждый вызов метода, вы можете добавлять рекомендации, такие как рекомендации по ведению журнала, рекомендации по аутентификации / авторизации.

В целом это экономит приблизительно 33% времени разработки, делает приложение более удобным в обслуживании и легко настраиваемым.

1 голос
/ 31 декабря 2008

NHibernate (или аналогичные ORM) могут быть чрезвычайно полезны при разработке «с нуля», где объектная модель домена может быть спроектирована должным образом, а затем схема базы данных и сопоставления NHibernate могут быть сгенерированы кодом для соответствия модели. С другой стороны, NHibernate может быть очень трудно применить к устаревшей или плохо нормализованной базе данных. Несмотря на то, что он поддерживает обработку некоторых необычных структур данных, кривая обучения для этих методов намного выше.

Я не могу много сказать о Spring.Net, за исключением того, что в 2007 году наша команда пыталась внедрить его в существующее комплексное решение для обработки транзакций БД и проверки сущностей, но мы отказались от этой идеи после недели работы. Наш постоянный Spring / Java-эксперт пришел к выводу, что Spring.Net был парой версий, стоящих за Spring и не был достаточно зрелым, чтобы обрабатывать сценарии использования в нашем проекте. Отказ от ответственности: не уверен, что это была версия Spring.Net, так что в последнее время ситуация может улучшиться.

...