Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

EPiServer7-MVC

781 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

EPiServer7-MVC

  1. 1. EPiServer 7 ja MVC”EPiServer tarjoaa kehittäjälle kaksi vaihtoehtoa sivupohjienrakentamisessa – valitse Web Forms tai MVC projektinvaatimuksien ja kehittäjän osaamisalueen mukaan.”#EPi7FinMikko Huilaja, Ohjelmistoarkkitehti01.11.2012
  2. 2. Agenda• Mitä on MVC ja ASP.NET MVC• Miksi MVC:llä on merkitystä• Web Forms vs MVC• MVC EPiServer 7 ympäristössä• Miltä MVC projekti näyttää Visual Studiossa
  3. 3. MVC on suunnittelumalli• Model - View - Controller• Malli - Näkymä – Käsittelijä/Ohjain/Kontrolleri• Malli erottelee vastuuut ‒ Datan ‒ Ulkoasun ‒ Logiikan
  4. 4. ASP.NET MVC versiot• ASP.NET MVC v1.0 julkaistiin 2009• ASP.NET MVC v2.0 julkaistiin 2010• ASP.NET MVC v3.0 julkaistiin 2011• ASP.NET MVC v4.0 julkaistiin 2012• EPiServer 6.0 käyttää MVC 1.0• EPiServer 6 R2 käyttää MVC 2.0• EPiServer 7 käyttää MVC 4.0
  5. 5. ASP.NET Framework
  6. 6. Mitä hyötyä MVC:stä on?• Parantaa osien uudelleenkäytettävyyttä.• Helpottaa kehittäjien roolijakoa.• Selkeyttää projektin rakennetta.• Ohjaa tilattomien sovellusten tekoon.• Helpottaa projektien ulkoasun toteutusta.
  7. 7. MVC ohjaa kehittäjiä tekemääntilattomia sovelluksia• Ei mahdollista ViewState:n käyttöä• Näkymät eivät voi kutsua enää kontrolleria• Näkymään välitetään vain Model, joka suunnitellaan ulkoasun tarpeisiin• Kontrollereihin on helppo tehdä erityyppisiä Action metodeja.• ModelBinderit automatisoivat kutsujen konvertoinnin takas Modeleiksi
  8. 8. ViewState tilakoneen poistuminenmuuttaa kehitystä monella tapaa• Button Click pitää toteuttaa esim. POST kutsuna, joka sisältää halutut parametrit.• Pitää olla entistä tarkempi ettei käyttäjä pysty sivua uudestaan lataamalla (F5) syöttämään samaa riviä uudestaan.• Ei ole olemassa DataTable:ja jotka helpottavat sivutuksia ja sorttauksia.• Kutsujen kesken ei voi välittää tietoa ellei käytä sessioita tai keksejä.
  9. 9. Miksi tilattomia sovelluksia (RESTful)• Selaimen URL-osoitte todella vastaa sisältöä.• Selaimen back ja forvard napit toimivat kuten käyttäjät ovat tottuneet.• Hakukoneet löytävät sisällön ja linkit koska ne eivät vaadi javascriptiä (ViewState:a).• Testaus ja virheiden selvitys helpottuu, kun sivujen tilaa virheen sattuessa ei tarvi huomioida.
  10. 10. EPiServer 7 ja MVC• EPiServer CMS 7 on puhdas ASP.NET MVC projekti, jota EPiServer on laajentanut.• Tukee samanaikaisesti sekä Web Forms:ia ja MVC:tä.• Laajennukset: ‒ Route Handler ‒ EPiServer Template Resolver ‒ Filters ‒ HtmlHelperts
  11. 11. MVC execution life cycle (EPiServer) EPiServer
  12. 12. MVC execution life cycle (EPiServer) EPiServer EPiServer Template Resolver
  13. 13. MVC in EPiServer 7 CMS• CMS registers a few default routes, {lang}/{node}/{partial}/{action} is the most important • {lang} is optional, allows you to specify the desired language. • {node} is ’greedy’, will match as much of your page tree as possible. • {partial} only applies if the leaf content node’s type is registered to have an EPiServer.Web.IPartialRouter. • {action} is optional, but if specified corresponds to a method name in the Controller.• en/Products/Alloy Meet/Holographic/Projector-2000/Details {lang}{ node }{ partial } {action}• When the leaf Content node has been found, the ContentType’s handler is determined: WebForms .aspx-page, or MVC-style Controller
  14. 14. MVC helpers in EPiServer CMS 7• In Web Forms, you would use the Property WebControl to output a property <EPiServer:Property PropertyName=”MainBody” runat=”server” />• In MVC Razor... @Html.PropertyFor(m => m.MainBody)
  15. 15. Razor & syntaksi<%= foo %>
  16. 16. Web Forms ei mahdollista• Model, View, Controller vastuihin jakoa• Tilattomien sovellusten tekoa• Vahvasti tyypitettyjä näkymiä• Sivutyyppien uudelleenkäyttöä• Blockkien käyttöäSama on mahdollista tehdä myös WebFormilla!!!
  17. 17. Interweb: Web Forms vs MVC!
  18. 18. MVC ja Web Forms hybridiprojektiMVC ja Web Forms:ia voi käyttää rinnakkain, mutta on hyväottaa huomioon:• Eri ViewEngineillä tehtyjä sivuja voidaan käyttää ristiin.• Blockkien ristiinkäyttö vaatii omat implementaatiot MVC:lle ja Web Forms:ille.• MasterPages ja Razor Layout tiedostot täytyvät elää rinnakkain.• Pidemmän päälle koodi alkaa duplikoitumaan.• Projektin rakenne on haastavaa pitää selkeänä.
  19. 19. Koodin pariin! DEMO
  20. 20. Tiivistelmä• EPiServer on menossa kohti MVC:tä.• Web Forms on edelleen hyvin tuettuna EPiServerissä.• Olemassa olevien projektien konvertointi MVC:lle ei välttämättä tapahdu hetkessä.• Kehittäjien kannalta MVC tuo paljon muutoksia.• MVC soveltuu pääsääntöisesti paremminkuin Web Forms ulkoasultaan rikkaisiin verkkopalveluihin.• EPiServer 7 ja MVC ovat loistava pohja projektille.
  21. 21. Kiitos! Lisää tietoa löytyy twitter.com/huilaajaKysymyksiä voi lähettää #EPi7Fin tai @huilaaja

×