Monday, April 20, 2009

NHibernate – где узнать больше?

Я вот довольно много пишу про Entity Framework и LINQ to SQL, но мало про другие ORM, особенно про NHibernate. Исправляюсь.

Ни для кого ни секрет, что несмотря на то, что NHibernate – это очень мощный ORM, он достаточно сложен в освоении. Как модно сейчас говорить, у него слишком крутая кривая обучения (learning curve), на которую многим тяжело забраться, особенно в условиях сжатых сроков и рисков. И несмотря на то, что у наших друзей из java-community O/R Mappers в целом, и Hibernate в частности пользуются популярностью уже давно, бОльшая часть .NET-программистов не пользовались этим продуктом, а многие даже и не знали о нем до выхода аналогов от Microsoft: LINQ to SQL и Entity Framework. К сожалению, .NET-сообщество программистов слишком часто не обращает внимания на то, что исходит не от Microsoft, или не доверяет этому, поэтому до недавнего времени NHibernate был интересен лишь очень небольшому проценту посвященных.

К слову, во многом это именно наша локальная проблема. В других странах существует так называемое ALT.NET-сообщество (в основном, опенсорсной направленности), которые проводят свои конференции и встречи, обсуждая на них альтернативные инструменты и подходы к разработке приложений, отличающиеся от инструментов и подходов Microsoft, тем самым рекламируя их и продвигая. Многие из лидеров этого сообщества выступают с критикой продуктов от Microsoft, являясь по своей сути оппозицией в терминах, понятных нашей стране :) К слову сказать, благодаря этой “оппозиции” мы имеем достаточно серьезное движение Microsoft навстречу сообществу, более серьезное внимание к нуждам программистов, открытые исходные коды и целые проекты, идущие по open-source лицензиям.

Но это, скорее всего, вы и так уже знали… А заметка эта на самом деле о том, где узнать больше о NHibernate. К сожалению, на данный момент существует лишь одна книжка по NHibernate: NHibernate in Action, которая до нашей страны дойдет, уверен, не скоро. Однако, есть довольно много альтернативных источников информации, которые, надеюсь, будут вам полезны:

http://www.nhibernate.org/ – официальный сайт, где есть полная документация

http://nhforge.org/ – ресурс, посвященный NHibernate, на котором есть Getting Started Guide, блоги, wiki, и еще много чего полезного

http://blogs.hibernatingrhinos.com/nhibernate/Default.aspx – NHibernate FAQ, фактически блог, который ведут разные авторы, много полезной информации

http://ayende.com/Blog/category/510.aspx – категория NHibernate в блоге Oren Eine, одного из контрибьюторов (разработчиков) NHibernate, который в последнее время постит очень много информации по маппингу – на мой взгляд, самой высокой ступеньке в кривой обучения NHibernate

http://summerofnhibernate.com/ – видео обучалки (скринкасты) по NHibernate, для тех, у кого восприятие визуальной информации происходит лучше, чем восприятие текстовой, или кому просто нужно быстро разобраться на простых примерах

http://www.codeproject.com/KB/architecture/NHibernateBestPractices.aspx – NHibernate best practices при разработке ASP.NET приложений

http://www.codeproject.com/KB/database/Nhibernate_Made_Simple.aspx – еще одна интересная статья с CodeProject.com, вкратце обо всем

http://www.theserverside.net/tt/articles/showarticle.tss?id=NHibernate – аналогично предыдущей, только с другого ресурса

Также я вам советую посмотреть следующие полезности, разработанные для NHibernate:

http://sourceforge.net/projects/nhcontrib – NH Contrib, много полезных компонентов

http://code.google.com/p/sharp-architecture/ - Sharp Architecture – фреймворк для разработки веб-приложений с использованием ASP.NET MVC и NHibernate, рекомендуется для тех, кому нужны шаблоны использования NH с MVC, и кто хочет использовать готовый каркас приложения

http://nhplugin.lieser-online.de/ – поддержка NH в ReSharper, здесь добавить просто нечего

И, напоследок, еще парочка постов, похожих на мой, в которых вы найдете эти и другие полезные ссылки:

http://www.theserverside.net/news/thread.tss?thread_id=46642

http://www.thefreakparade.com/2008/07/so-you-want-to-learn-nhibernate-part-1-of-1-the-links/

Удачи в изучении NH.

7 comments:

  1. Привет.
    Хочется поправить:

    http://nhforge.org - скорее является официальным сайтом теперь.

    и добавить:

    http://groups.google.com/group/nhusers - можно всегда задать осмысленный вопрос, и получить ответ.

    http://code.google.com/p/unhaddins - неофициальные дополнения.

    http://nhibernate.ru - ресурс на русском, не часто обновляется.

    Я советую всем изучающим смотреть тесты, самый эффективный способ обучения.

    Книгу в электронном виде можно найти в интернете.

    Спасибо.

    ReplyDelete
  2. Да, и http://nhprof.org тоже скорее всего будет весьма полезен в изучении NH.

    ReplyDelete
  3. Спасибо за дополнения, Никита. Уверен, они будут полезны всем.

    А NHProf - шикарная штука, но платная :) Я бы ее рекомендовал не для изучения, а уже для реальной разработки. Там она точно оправдает вложенные в нее деньги.

    ReplyDelete
  4. Есть еще книга

    NHibernate in Action (Unedit draft)
    http://c-books.info/books/news6.php/2009/04/02/nhibernate-in-action-unedit-draft.html

    ReplyDelete
  5. Действительно мы про нее забыли :)

    ReplyDelete
  6. ИМХО начинать надо не с НХибирнейта самого, а с Fluent-NHibernate для конфигруации, я первые шаги с NHibernate сделал за пол часа, через пару часов у меня уже вся модель была в базеданных. Потом по надобности учиш адвансед топики.

    И NHibernate.Linq для кверисов. Опять же относительно сложный синтаксис критейрий, мне понадобился тока через пару недель активной работы.

    Вобщемто если правильно подойти к делу, то курва обучения не настолько уж и отличаеться от майкровских дизайнеров...

    ReplyDelete
  7. Просьба не удалять.

    Продам книгу по NHibernate: https://www.kharkovforum.com/showthread.php?t=4826374

    ReplyDelete