1 / 22

EPiServer 7 ja MVC

EPiServer 7 ja MVC. ”EPiServer tarjoaa kehittäjälle kaksi vaihtoehtoa sivupohjien rakentamisessa – valitse Web Forms tai MVC projektin vaatimuksien ja kehittäjän osaamisalueen mukaan .” #EPi7Fin. Mikko Huilaja, Ohjelmistoarkkitehti 01.11.2012. Agenda. Mitä on MVC ja ASP.NET MVC

nerys
Download Presentation

EPiServer 7 ja MVC

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EPiServer 7 ja MVC • ”EPiServer tarjoaa kehittäjälle kaksi vaihtoehtoa sivupohjien rakentamisessa – valitse Web Forms tai MVC projektin vaatimuksien ja kehittäjän osaamisalueen mukaan.” • #EPi7Fin • Mikko Huilaja, Ohjelmistoarkkitehti • 01.11.2012

  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. MVC on suunnittelumalli Model - View - Controller Malli - Näkymä – Käsittelijä/Ohjain/Kontrolleri Malli erottelee vastuuut Datan Ulkoasun Logiikan

  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. ASP.NET Framework

  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. MVC ohjaa kehittäjiä tekemään tilattomia 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. ViewState tilakoneen poistuminen muuttaa 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. 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. EPiServer 7 ja MVC EPiServer 7 CMS 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. MVC execution life cycle (EPiServer) EPiServer EPiServer Template Resolver

  12. MVC execution life cycle (EPiServer) EPiServer EPiServer Template Resolver

  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 • When the leaf Content node has been found, the ContentType’s handler is determined: WebForms .aspx-page, or MVC-style Controller {lang}{ node }{ partial } {action}

  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. Razor & syntaksi <%= foo %>

  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. Interweb: Web Forms vs MVC!

  18. MVC ja Web Forms hybridiprojekti MVC 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. Koodin pariin! • DEMO

  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. Kiitos! • Lisää tietoa löytyy twitter.com/huilaaja • Kysymyksiä voi lähettää #EPi7Fin tai @huilaaja

More Related