SlideShare ist ein Scribd-Unternehmen logo
1 von 10
© Copyright Muzika.hr 2010. IT ShowOff – Dodatak- Primjeri - 12. veljače 2010.
NHibernate © Copyright Muzika.hr 2010. 2
© Copyright Muzika.hr 2010. 3 NHibernate- Primjer mapiranja objekta - namespace MuzikaHr.Core.Model {   public class City   {     /// <summary>Protected constructor. Used internally by NHibernate.</summary>     protected City() { }     public City(int id) { Id = id; } protectedvirtual int Id { get; set; }     public virtual string Name { get; set; }     public virtualRegionAssociatedRegion { get; set; }     public virtual IList<EventLocation> EventLocations { get; protected set; }     // -- domain logic methods here...   } }
© Copyright Muzika.hr 2010. 4 NHibernate- Primjer mapiranja objekta - <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name=“MuzikaHr.Core.Model.City, MuzikaHr.Core" table="grad" lazy="true"> <idname="Id" column="sifGrad">       <generator class="native" /> </id> <propertyname="Name" column="imeGrad"/> <many-to-onename="AssociatedRegion" column="sifRegija"           class="MuzikaHr.Core.Model.Region, MuzikaHr.Core” /> <bagname="EventLocations" table="eventLocation" inverse="true" cascade="none"> <keycolumn="cityId"/> <one-to-many class="MuzikaHr.Core.Model.EventLocation, MuzikaHr.Core" /> </bag> </class> </hibernate-mapping>
© Copyright Muzika.hr 2010. 5 NHibernate- Primjer dohvata podataka - namespace MuzikaHr.Data.NHibernate {   public class CityDao : AbstractNHibernateDao<City, int>, ICityDao   {     // -- constructor here public List<City> GetCitiesByRegion(int regionId) {       ICriteria criteria = NHibernateSession.CreateCriteria(typeof(City)) .Add(Expression.Eq("AssociatedRegion.Id", regionId)) .AddOrder(Order.Asc("Name"));       try { return criteria.List<City>() as List<City>; }       catch (HibernateException exc) {...} }   } }
SparkViewEngine © Copyright Muzika.hr 2010. 6
© Copyright Muzika.hr 2010. 7 SparkViewEngineViewData Dictionary, lokalne varijable Template: <s:viewdataArticles="IList[[MuzikaHr.Models.Article]]"/> <s:varstyles="new[] {‘left',’right'}"/> <ps:each="var article in Articles" class="${styles[articleIndex%2]}“>${article.Title} </p> Rezultat: <p class="left">Vangelis</p> <p class="right">Simple Minds</p> <p class="left">The Stranglers</p> <p class="right">Michael Jackson (1958.–2009.)</p> <p class="left">A Perfect Circle</p> <p class="right">Suede (1989.–2003.)</p>
© Copyright Muzika.hr 2010. 8 SparkViewEngineIterator (for-each), if-clause automatske iterator-varijable: Index, Count, IsFirst, IsLast Template: <s:foreach="var lineItem in CurrentInvoice.LineItems"> <tr><td>Item ${lineItemIndex + 1} of ${lineItemCount}</td>   <td>${lineItem.Etc}</td></tr> <trs:if="lineItemIsLast"><td>Grand total</td><td>${grandTotal}</td></tr> </s:for> Rezultat: <tr><td>Item 1 of 14</td><td>5</td></tr> <tr><td>Item 2 of 14</td><td>2</td></tr> <tr><td>Item 3 of 14</td><td>9</td></tr> ... <tr><td>Item 14 of 14</td><td>14</td></tr> <tr><td>Grand total</td><td>97</td></tr>
© Copyright Muzika.hr 2010. 9 SparkViewEngineConditional attribute output Template: <s:viewdatafeaturedHeading=“MuzikaHr.Models.Heading"/> <s:viewdataHeadings=“IList[[MuzikaHr.Models.Heading]]"/> <ul> <lis:each="var heading in Headings"> <a ... class="selected?{heading.Id==featuredHeading.Id}">${heading.Name}</a> <li> </ul> Rezultat: <ul>   <li><a href="...">Sve</a></li>   <li><a href="...">Interview</a></li>   <li><a href="..."class="selected">Biografije</a></li>   <li><a href="...">B Scena</a></li>   <li><a href="...">Zanimljivosti</a></li> </ul>
© Copyright Muzika.hr 2010. 10 SparkViewEngine: Macro Macro helper function: Metoda koja prima argumente i kao rezultat vraća string Macro definicija: <s:macro name="ShowError"caption="string" message="string"> <div class="message error">   <h3>${caption}</h3>   <div>${message}</div>   <% logger.Warn(caption); %> </div> </s:macro> Macro poziv iz templatea: <s:viewdataerrorMessage="string" /> <h2>Place Order</h2> <s:test if="!string.IsNullOrEmpty(errorMessage)"> ${ShowError("Failed to place order", errorMessage)} </s:test> ...

Weitere ähnliche Inhalte

Mehr von IT Showoff

Mehr von IT Showoff (15)

Tomislav Pokrajčić, Ivica Kukić - Yet Another Vehicle Tracking System (IT Sho...
Tomislav Pokrajčić, Ivica Kukić - Yet Another Vehicle Tracking System (IT Sho...Tomislav Pokrajčić, Ivica Kukić - Yet Another Vehicle Tracking System (IT Sho...
Tomislav Pokrajčić, Ivica Kukić - Yet Another Vehicle Tracking System (IT Sho...
 
Stjepan Zlodi - Misleći uređivač teksta (IT Showoff)
Stjepan Zlodi - Misleći uređivač teksta (IT Showoff)Stjepan Zlodi - Misleći uređivač teksta (IT Showoff)
Stjepan Zlodi - Misleći uređivač teksta (IT Showoff)
 
Krešimir Prcela - Tehnologija iza popularnih Augmented reality aplikacija na ...
Krešimir Prcela - Tehnologija iza popularnih Augmented reality aplikacija na ...Krešimir Prcela - Tehnologija iza popularnih Augmented reality aplikacija na ...
Krešimir Prcela - Tehnologija iza popularnih Augmented reality aplikacija na ...
 
Tomislav Car - Kako smo od Duracell zeca napravili Chuck Norrisa (IT Showoff)
Tomislav Car - Kako smo od Duracell zeca napravili Chuck Norrisa (IT Showoff)Tomislav Car - Kako smo od Duracell zeca napravili Chuck Norrisa (IT Showoff)
Tomislav Car - Kako smo od Duracell zeca napravili Chuck Norrisa (IT Showoff)
 
Zvonimir Vanjak - Fakultetsko IT obrazovanje u Hrvatskoj - no bullshit inside...
Zvonimir Vanjak - Fakultetsko IT obrazovanje u Hrvatskoj - no bullshit inside...Zvonimir Vanjak - Fakultetsko IT obrazovanje u Hrvatskoj - no bullshit inside...
Zvonimir Vanjak - Fakultetsko IT obrazovanje u Hrvatskoj - no bullshit inside...
 
Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
Dobrica Pavlinušić - Rest (IT Showoff)
Dobrica Pavlinušić - Rest (IT Showoff)Dobrica Pavlinušić - Rest (IT Showoff)
Dobrica Pavlinušić - Rest (IT Showoff)
 
Senko Rašić - Git (IT Showoff)
Senko Rašić - Git (IT Showoff)Senko Rašić - Git (IT Showoff)
Senko Rašić - Git (IT Showoff)
 
24 Sata - Ne zaboravi titlove prezentacija (IT Showoff)
24 Sata - Ne zaboravi titlove prezentacija (IT Showoff)24 Sata - Ne zaboravi titlove prezentacija (IT Showoff)
24 Sata - Ne zaboravi titlove prezentacija (IT Showoff)
 
Željko Filipin - Testing Showoff (IT Showoff)
Željko Filipin - Testing Showoff (IT Showoff)Željko Filipin - Testing Showoff (IT Showoff)
Željko Filipin - Testing Showoff (IT Showoff)
 
Tomislav Grubišić - Facebook Platform (IT Showoff)
Tomislav Grubišić - Facebook Platform (IT Showoff)Tomislav Grubišić - Facebook Platform (IT Showoff)
Tomislav Grubišić - Facebook Platform (IT Showoff)
 
Tomislav Capan - Muzika Hr (IT Showoff)
Tomislav Capan - Muzika Hr (IT Showoff)Tomislav Capan - Muzika Hr (IT Showoff)
Tomislav Capan - Muzika Hr (IT Showoff)
 
Dinko Korunić - Skalabilna web rješenja (IT Showoff)
Dinko Korunić - Skalabilna web rješenja (IT Showoff)Dinko Korunić - Skalabilna web rješenja (IT Showoff)
Dinko Korunić - Skalabilna web rješenja (IT Showoff)
 
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
Ivan Guštin - Iskustva u optimizaciji IT Sustava primjenom Opensource rjesenj...
 
Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)Branimir Šloser - Razbor IT (IT Showoff)
Branimir Šloser - Razbor IT (IT Showoff)
 

Kürzlich hochgeladen

Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
PsychicRuben LoveSpells
 
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
Faga1939
 

Kürzlich hochgeladen (20)

BDSM⚡Call Girls in Indirapuram Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Indirapuram Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Indirapuram Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Indirapuram Escorts >༒8448380779 Escort Service
 
BDSM⚡Call Girls in Greater Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Greater Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Greater Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Greater Noida Escorts >༒8448380779 Escort Service
 
Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Phoenix, AZ (310) 882-6330 Bring Back Lost Lover
 
AI as Research Assistant: Upscaling Content Analysis to Identify Patterns of ...
AI as Research Assistant: Upscaling Content Analysis to Identify Patterns of ...AI as Research Assistant: Upscaling Content Analysis to Identify Patterns of ...
AI as Research Assistant: Upscaling Content Analysis to Identify Patterns of ...
 
Julius Randle's Injury Status: Surgery Not Off the Table
Julius Randle's Injury Status: Surgery Not Off the TableJulius Randle's Injury Status: Surgery Not Off the Table
Julius Randle's Injury Status: Surgery Not Off the Table
 
Kishan Reddy Report To People (2019-24).pdf
Kishan Reddy Report To People (2019-24).pdfKishan Reddy Report To People (2019-24).pdf
Kishan Reddy Report To People (2019-24).pdf
 
Embed-2 (1).pdfb[k[k[[k[kkkpkdpokkdpkopko
Embed-2 (1).pdfb[k[k[[k[kkkpkdpokkdpkopkoEmbed-2 (1).pdfb[k[k[[k[kkkpkdpokkdpkopko
Embed-2 (1).pdfb[k[k[[k[kkkpkdpokkdpkopko
 
02052024_First India Newspaper Jaipur.pdf
02052024_First India Newspaper Jaipur.pdf02052024_First India Newspaper Jaipur.pdf
02052024_First India Newspaper Jaipur.pdf
 
BDSM⚡Call Girls in Sector 143 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 143 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 143 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 143 Noida Escorts >༒8448380779 Escort Service
 
Verified Love Spells in Little Rock, AR (310) 882-6330 Get My Ex-Lover Back
Verified Love Spells in Little Rock, AR (310) 882-6330 Get My Ex-Lover BackVerified Love Spells in Little Rock, AR (310) 882-6330 Get My Ex-Lover Back
Verified Love Spells in Little Rock, AR (310) 882-6330 Get My Ex-Lover Back
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
THE OBSTACLES THAT IMPEDE THE DEVELOPMENT OF BRAZIL IN THE CONTEMPORARY ERA A...
 
Busty Desi⚡Call Girls in Sector 62 Noida Escorts >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Sector 62 Noida Escorts >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Sector 62 Noida Escorts >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Sector 62 Noida Escorts >༒8448380779 Escort Service
 
Nara Chandrababu Naidu's Visionary Policies For Andhra Pradesh's Development
Nara Chandrababu Naidu's Visionary Policies For Andhra Pradesh's DevelopmentNara Chandrababu Naidu's Visionary Policies For Andhra Pradesh's Development
Nara Chandrababu Naidu's Visionary Policies For Andhra Pradesh's Development
 
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 47 (Gurgaon)
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 47 (Gurgaon)Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 47 (Gurgaon)
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 47 (Gurgaon)
 
Embed-4.pdf lkdiinlajeklhndklheduhuekjdh
Embed-4.pdf lkdiinlajeklhndklheduhuekjdhEmbed-4.pdf lkdiinlajeklhndklheduhuekjdh
Embed-4.pdf lkdiinlajeklhndklheduhuekjdh
 
declarationleaders_sd_re_greens_theleft_5.pdf
declarationleaders_sd_re_greens_theleft_5.pdfdeclarationleaders_sd_re_greens_theleft_5.pdf
declarationleaders_sd_re_greens_theleft_5.pdf
 
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 48 (Gurgaon)
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 48 (Gurgaon)Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 48 (Gurgaon)
Enjoy Night ≽ 8448380779 ≼ Call Girls In Gurgaon Sector 48 (Gurgaon)
 
Group_5_US-China Trade War to understand the trade
Group_5_US-China Trade War to understand the tradeGroup_5_US-China Trade War to understand the trade
Group_5_US-China Trade War to understand the trade
 
06052024_First India Newspaper Jaipur.pdf
06052024_First India Newspaper Jaipur.pdf06052024_First India Newspaper Jaipur.pdf
06052024_First India Newspaper Jaipur.pdf
 

Tomislav Capan - Muzika Hr Dodatak Primjeri (IT Showoff)

  • 1. © Copyright Muzika.hr 2010. IT ShowOff – Dodatak- Primjeri - 12. veljače 2010.
  • 2. NHibernate © Copyright Muzika.hr 2010. 2
  • 3. © Copyright Muzika.hr 2010. 3 NHibernate- Primjer mapiranja objekta - namespace MuzikaHr.Core.Model { public class City { /// <summary>Protected constructor. Used internally by NHibernate.</summary> protected City() { } public City(int id) { Id = id; } protectedvirtual int Id { get; set; } public virtual string Name { get; set; } public virtualRegionAssociatedRegion { get; set; } public virtual IList<EventLocation> EventLocations { get; protected set; } // -- domain logic methods here... } }
  • 4. © Copyright Muzika.hr 2010. 4 NHibernate- Primjer mapiranja objekta - <?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"> <class name=“MuzikaHr.Core.Model.City, MuzikaHr.Core" table="grad" lazy="true"> <idname="Id" column="sifGrad"> <generator class="native" /> </id> <propertyname="Name" column="imeGrad"/> <many-to-onename="AssociatedRegion" column="sifRegija" class="MuzikaHr.Core.Model.Region, MuzikaHr.Core” /> <bagname="EventLocations" table="eventLocation" inverse="true" cascade="none"> <keycolumn="cityId"/> <one-to-many class="MuzikaHr.Core.Model.EventLocation, MuzikaHr.Core" /> </bag> </class> </hibernate-mapping>
  • 5. © Copyright Muzika.hr 2010. 5 NHibernate- Primjer dohvata podataka - namespace MuzikaHr.Data.NHibernate { public class CityDao : AbstractNHibernateDao<City, int>, ICityDao { // -- constructor here public List<City> GetCitiesByRegion(int regionId) { ICriteria criteria = NHibernateSession.CreateCriteria(typeof(City)) .Add(Expression.Eq("AssociatedRegion.Id", regionId)) .AddOrder(Order.Asc("Name")); try { return criteria.List<City>() as List<City>; } catch (HibernateException exc) {...} } } }
  • 6. SparkViewEngine © Copyright Muzika.hr 2010. 6
  • 7. © Copyright Muzika.hr 2010. 7 SparkViewEngineViewData Dictionary, lokalne varijable Template: <s:viewdataArticles="IList[[MuzikaHr.Models.Article]]"/> <s:varstyles="new[] {‘left',’right'}"/> <ps:each="var article in Articles" class="${styles[articleIndex%2]}“>${article.Title} </p> Rezultat: <p class="left">Vangelis</p> <p class="right">Simple Minds</p> <p class="left">The Stranglers</p> <p class="right">Michael Jackson (1958.–2009.)</p> <p class="left">A Perfect Circle</p> <p class="right">Suede (1989.–2003.)</p>
  • 8. © Copyright Muzika.hr 2010. 8 SparkViewEngineIterator (for-each), if-clause automatske iterator-varijable: Index, Count, IsFirst, IsLast Template: <s:foreach="var lineItem in CurrentInvoice.LineItems"> <tr><td>Item ${lineItemIndex + 1} of ${lineItemCount}</td> <td>${lineItem.Etc}</td></tr> <trs:if="lineItemIsLast"><td>Grand total</td><td>${grandTotal}</td></tr> </s:for> Rezultat: <tr><td>Item 1 of 14</td><td>5</td></tr> <tr><td>Item 2 of 14</td><td>2</td></tr> <tr><td>Item 3 of 14</td><td>9</td></tr> ... <tr><td>Item 14 of 14</td><td>14</td></tr> <tr><td>Grand total</td><td>97</td></tr>
  • 9. © Copyright Muzika.hr 2010. 9 SparkViewEngineConditional attribute output Template: <s:viewdatafeaturedHeading=“MuzikaHr.Models.Heading"/> <s:viewdataHeadings=“IList[[MuzikaHr.Models.Heading]]"/> <ul> <lis:each="var heading in Headings"> <a ... class="selected?{heading.Id==featuredHeading.Id}">${heading.Name}</a> <li> </ul> Rezultat: <ul> <li><a href="...">Sve</a></li> <li><a href="...">Interview</a></li> <li><a href="..."class="selected">Biografije</a></li> <li><a href="...">B Scena</a></li> <li><a href="...">Zanimljivosti</a></li> </ul>
  • 10. © Copyright Muzika.hr 2010. 10 SparkViewEngine: Macro Macro helper function: Metoda koja prima argumente i kao rezultat vraća string Macro definicija: <s:macro name="ShowError"caption="string" message="string"> <div class="message error"> <h3>${caption}</h3> <div>${message}</div> <% logger.Warn(caption); %> </div> </s:macro> Macro poziv iz templatea: <s:viewdataerrorMessage="string" /> <h2>Place Order</h2> <s:test if="!string.IsNullOrEmpty(errorMessage)"> ${ShowError("Failed to place order", errorMessage)} </s:test> ...