400 likes | 536 Views
EPiServer MeetUp #10. Agenda. Kodekvalitet Mobil. EPiServer MeetUp #10 – Frontend i Epinova. Frontend i Epinova . Miljø og kode Tett s amarbeid mellom frontend og backend Frontend er med i hele leveransen (fossefall) Effektiv kode CMS-tankegangen
E N D
Agenda Kodekvalitet Mobil
Frontend i Epinova • Miljø og kode • Tett samarbeid mellom frontend og backend • Frontend er med i hele leveransen (fossefall) • Effektiv kode • CMS-tankegangen • Utfordringer ved ekstern leveranse av Javascript, xHTML og CSS
Kvalitet og frontend • Behov • Sikrekvalitetialleledd • Leverekodesomlettkanvidereutvikles • Prosjekterkanletttas over avandrekodereinternt og eksternt • Ikkemål å finnevinnereogtapere, men motiveretilkonstant å hevekvalitet • OppdageevtmanglerpåkodelevertaveksternefrontendereførimplementeringiEPiServer • Unngåoffentleg“lynsjing” for åpenbaretabber
Kvalitet og frontend • Hvordan? • Verktøyunderveis, ikkenoesomskalbliintroduserttilslutt i et prosjekt • Prosjektetskalkvalitetssikresegselv • Alltid under oppdatering, lager QA sammen • Alle kanutføre QA på et prosjekt, men ikkepåegetarbeid • Læring
Kvalitet og frontend, sjekkliste • Sjekkliste på 32 punkt • Prosjekt • Kodekvalitet • Universell utforming • Semantikk • Redaktørvennlighet • Andre funn og sammendrag • Rett, feil eller ikke aktuelt
Kvalitet og frontend, sjekkliste • Ikke alt kan lett påvirkes av frontender:
Agenda Våre behov Ulike tilnærminger Implementering/ teknisk EPiServer 7 (kort) Hvorfor ikke MobilePack SEO Skalering av bilder Spørsmål/ diskusjon
Agenda • Kom gjerne med spørsmål underveis.
Våre behov • Enkelt å bruke • For redaktører og utviklere • Pålitelig devicedetection • Begrense dobbeltpublisering • Kan være ønskelig i enkelte scenarier • Ikke m.site.no / annen url-struktur • Deling av url’er til andre devicer • Fallback til desktop om det ikke finnes mobile maler • Desktop malen kan da evt være «responsiv» slik at det ikke ser helt merkelig ut • MobilePack er ikke alltid løsningen
Implementering/ Teknisk • Epinova.Mobile.Core • Core funksjonalitet brukt av flere andre moduler • Benytter WURFL for devicedetectinon • context.Request.Browser.IsMobileDevice benytter browserfiler i .net rammeverket som fort blir utdatert • Caches i første request • Epinova.Mobile.TemplateProvider • Bytter ut maler basert på info fra Core • Epinova.Mobile.Core.EPi7 • Epinova.Mobile.MobileDisplayChannel
Ulike tilnærminger • Responsivt design/ egne mobile maler • Ingen fasit, må vurdere behovet • Uproblematisk med en kombinasjon (Alt responsivt, men med x antall mobile maler) • Responsivt design (RWD) • Viktig å sørge for at bilder blir skalert og at det ikke leveres unødvendig data til klient (Skjule kode serveside med Mobile.Core) • Med egne maler kan man styre dette helt selv (egne MasterPage/ JS/ CSS osv)
Implementering/ Teknisk • Gradvis innføring av mobile maler • Kombinasjon av responsivtdesign og egne maler • Mulighet for at mobile maler kan legges ut uten at de tas i bruk
Implementering/ Teknisk Initializablemodule som hooker seg på UrlRewriteProvider.ConvertedToInternal Sjekker om det finnes en mobil template for denne malen og bytter ut templatepathen
Implementering/ Teknisk • Detektering av devices • Default verdi er IsWirelessDevice && !IsTablet • Kan overstyres med:
Implementering/ Teknisk • Settings for plassering av templates • Default verdier • Setting for aktivering av mobil funksjonalitet
Implementering/ Teknisk Detektering av mobile request Uthenting av verdier fra WURFL
Implementering/ Teknisk Tempalteswitcher Eks: http://localhost:1098/?fdv=true Cookie som husker valget Settings for varighet
Implementering/ Teknisk • Redirect til ekstern mobilløsning • Sender bruker til ekstern mobil løsning • Håndterer cookie for å gi riktig versjon neste gang • Ingen endringer behøves på ekstern løsning
Implementering/ Teknisk • EPiServer 7 • Display Channels – forskjellige visninger for forskjellige kanaler
Implementering/ Teknisk http://www.epinova.no/blog/Anders-Murel/dates/2012/10/using-wurfl-as-display-channel-detection-in-episerver-7/
Implementering/ teknisk - Caching http://www.asp.net/whitepapers/add-mobile-pages-to-your-aspnet-web-forms-mvc-application IMPORTANT NOTE ABOUT OUTPUT CACHING! If you are using output caching please do the following. 1. Add "isMobileDevice" EPiServer.configsitesettinghttpCacheVaryByCustom. 2. Add this to your Global.asax.cs file: publicoverridestringGetVaryByCustomString(HttpContextcontext, stringcustom) { if (Regex.IsMatch(custom, "isMobileDevice", RegexOptions.IgnoreCase)) returncontext.Request.IsMobileDevice().ToString(); returnbase.GetVaryByCustomString(context, custom); }
Hvorfor ikke Mobile.Pack • Upålitelig devicedetection • User agents i Web.config • Ingen mulighet for å hente ut mer info om enheten • Egen innholdsstruktur/ url’er • Etterligner en iPhoneapp • Benytter visitor groups • Dersom du kommer inn på en underside vil den ikke detektere
SEO Alt skjer på samme URL
Triks Legg på ?ismobiledevice=true for å teste mobil i vanlig nettleser
Eksempler https://www.rica.no – mobile maler https://www.rikstv.no/ - blanding http://www.interoptik.no – ekstern mobilløsning http://www.volvat.no – ekstern løsning http://www.rodekors.no/ - kun redirect på enkelte maler Snart: http://www.erdetfarlig.no – mobile maler
Ressursser http://www.epinova.no/blog/Anders-Murel/dates/2012/10/using-wurfl-as-display-channel-detection-in-episerver-7/ http://www.epinova.no/blog/Anders-Murel/dates/2012/5/introducing-the-epinovamobilecore-framework-for-mobile-episerver-solutions/ http://www.epinova.no/en/blog/Anders-Murel/dates/2012/5/flexible-episerver-mobile-content-strategy-with-epinovamobiletemplateprovider/
Spørsmål Spørsmål?
Takk for oss! Se flere av våre suksesshistorier på epinova.no Anders Murel EPiServer-ekspert +47 99 70 95 45 Anders.murel@epinova.no twitter.com/murela