<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.aspnet.sk/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Skippov blog : Design Patterns, .NET</title><link>http://blog.aspnet.sk/skippo/archive/tags/Design+Patterns/.NET/default.aspx</link><description>Štítky: Design Patterns, .NET</description><dc:language>sk-SK</dc:language><generator>CommunityServer 2007 SP1 (Build: 20510.895)</generator><item><title>Spring.NET a podpora NHibernate</title><link>http://blog.aspnet.sk/skippo/archive/2010/01/04/spring-net-a-podpora-nhibernate.aspx</link><pubDate>Mon, 04 Jan 2010 10:09:00 GMT</pubDate><guid isPermaLink="false">cbdfeddd-8b45-43cb-b10b-361e40cba84b:220253</guid><dc:creator>skippo</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://blog.aspnet.sk/skippo/rsscomments.aspx?PostID=220253</wfw:commentRss><comments>http://blog.aspnet.sk/skippo/archive/2010/01/04/spring-net-a-podpora-nhibernate.aspx#comments</comments><description>&lt;p&gt;Nedavno sa mi pod ruky dostala celkom nahodou (trosku starsia)&amp;nbsp;prezentacia Thomasa Hauga o kniznici Spring.NET; &lt;br /&gt;&lt;a href="http://www.springframework.net/presentations/SpringNet-ThomasHaug-2008.pdf"&gt;http://www.springframework.net/presentations/SpringNet-ThomasHaug-2008.pdf&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Vacsina pouzivatelov vratane mna najviac vyuziva core functionalitu a to IoC kontajner. Na co som bol zvedavy, je podpora inych kniznic a toolov, najma NHibernate.&lt;/p&gt;
&lt;p&gt;Potesila ma podpora DAO patternu, nasledujuci priklad priamo z prezentacie:&lt;/p&gt;
&lt;p&gt;using Spring.Data.NHibernate.Generic.Support;&lt;br /&gt;...&lt;br /&gt;class NHibernatePersonDAO : HibernateDaoSupport, IPersonDAO {&lt;br /&gt;&amp;nbsp; public void SavePerson(SpringBeispiel.Entities.Person person){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //wirft eine Spring.Dao.DataAccessException&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //falls ein Fehler auftritt&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.HibernateTemplate.Save(person);&lt;br /&gt;&amp;nbsp; }&amp;nbsp; &lt;/p&gt;
&lt;p&gt;&amp;nbsp; public IList&amp;lt;Person&amp;gt; ListPersons() {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return HibernateTemplate.LoadAll&amp;lt;Person&amp;gt;;&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; public void UpdatePerson(Person person) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.HibernateTemplate.Update(person);&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;A priklad na servis s podporou transakcii:&lt;/p&gt;
&lt;p&gt;using Spring.Transaction.Interceptor;&lt;br /&gt;...&lt;br /&gt;class PersonServiceImpl : IPersonService {&lt;br /&gt;&amp;nbsp;...&lt;br /&gt;&amp;nbsp;[Transaction(Timeout=1000)]&lt;br /&gt;&amp;nbsp;public void RenameLastName(Person p1, Person p2, string lastName) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;p1.Nachname = lastName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;p2.Nachname = lastName;&lt;br /&gt;&amp;nbsp;&amp;nbsp;this.personDAO.UpdatePerson(p1);&lt;br /&gt;&amp;nbsp;&amp;nbsp;this.personDAO.UpdatePerson(p2);&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;[Transaction(ReadOnly=true)]&lt;br /&gt;&amp;nbsp;public IList&amp;lt;Person&amp;gt; ListPersons()&lt;br /&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;return this.personDAO.ListPersons();&lt;br /&gt;&amp;nbsp;}&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;Je dobre vediet, ze spring so sebou prinasa aj takuto existujucu infrastrukturu. Vedel by som si predstavit jej vyuzitie aj pri implementacii Repository design patternu zalozenej na NH, kde by sme sa vyhli vyvoju+testovaniu infrastruktury ziskavania session a&amp;nbsp;podporu transakcii. Vyskusam a dam vediet.&lt;/p&gt;
&lt;p&gt;pre pouzivatelov springu, nezabudnite checknut instalacny .zip archiv a nainstlaovat podporu pre VS, Resharper, xsd schemy, atd.&lt;/p&gt;
&lt;!-- AddThis Button BEGIN --&gt;&lt;div&gt;&lt;script type="text/javascript"&gt;var addthis_pub="spigi";&lt;/script&gt;&lt;a href="http://www.addthis.com/bookmark.php?v=20" onmouseover="return addthis_open(this, '', 'http://blog.aspnet.sk/skippo/archive/2010/01/04/spring-net-a-podpora-nhibernate.aspx', 'Spring.NET a podpora NHibernate')" onmouseout="addthis_close()" onclick="return addthis_sendto()"&gt;&lt;img src="http://s7.addthis.com/static/btn/lg-share-en.gif" width="125" height="16" alt="Bookmark and Share" style="border:0"/&gt;&lt;/a&gt;&lt;script type="text/javascript" src="http://s7.addthis.com/js/200/addthis_widget.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;!-- AddThis Button END --&gt;&lt;img src="http://blog.aspnet.sk/aggbug.aspx?PostID=220253" width="1" height="1"&gt;</description><category domain="http://blog.aspnet.sk/skippo/archive/tags/Design+Patterns/default.aspx">Design Patterns</category><category domain="http://blog.aspnet.sk/skippo/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.aspnet.sk/skippo/archive/tags/NHibernate/default.aspx">NHibernate</category><category domain="http://blog.aspnet.sk/skippo/archive/tags/Repository/default.aspx">Repository</category><category domain="http://blog.aspnet.sk/skippo/archive/tags/DAO/default.aspx">DAO</category><category domain="http://blog.aspnet.sk/skippo/archive/tags/Spring.NET/default.aspx">Spring.NET</category></item></channel></rss>