episerver forms (fi)

32
EPISERVER FORMS Episerver Developer Meetup 21.4.2016 Mikko Huilaja

Upload: mikko-huilaja

Post on 12-Apr-2017

2.033 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Episerver Forms (fi)

EPISERVER FORMSEpiserver Developer Meetup21.4.2016 Mikko Huilaja

Page 2: Episerver Forms (fi)

MIKKO HUILAJA› Software Architect @Solita› twitter.com/huilaaja

blog.huilaaja.netgithub.com/huilaaja

Page 3: Episerver Forms (fi)

AGENDA1. Ominaisuudet

• DEMO

2. Laajennettavuus• DEMO

3. Visuaalisuus• DEMO

4. Käytännön neuvoja

Page 4: Episerver Forms (fi)

New beginning of Forms and R.I.P. Episerver XForms

Page 5: Episerver Forms (fi)

FORMS (LOMAKE-EDITORI)› 1.0 versio julkaistiin helmikuussa› Nyt jo versiossa 2.0.0.2 (eli vasta teini-iässä)› Add-on eli erillinen NuGet› Vaatii Episerver 9 MVC projektin› Helppo asentaa NuGetista ja SMTP-asetukset

Page 6: Episerver Forms (fi)

OMINAISUUDET• Helppokäyttöinen

• Forms gadget• Form Elements gadget• Drag and drop

• Elementit ovat blockeja eli samat ominaisuudet lokalisointi, versiointi, käyttöoikeudet

• Voi tehdä “sivu lomakkeita” ja “globaaleja lomakkeita”

Page 7: Episerver Forms (fi)

OMINAISUUDET• Multi-step forms• S-posti templatet• Käyttäjän profilointi• Laajennettavuus “Dev<3”• Käännetty vain Englanniksi

(tulossa suomeksi)

Page 8: Episerver Forms (fi)
Page 9: Episerver Forms (fi)

SPAMMIN ESTO1. Käyttöoikeuksilla sallit vain kirjautuneiden käyttäjien

päästä lomakkeelle2. CAPTCHA-elementti3. Tai voit tehdä oman esim. Honeypot -elementin.

Page 10: Episerver Forms (fi)
Page 11: Episerver Forms (fi)

LAAJENNUKSET JA INTEGRAATIOT

Page 12: Episerver Forms (fi)

EXTENSIONS› Custom Elements› Events› Repositoryn käsittely› Actors› Controllerit› Service API› Web Hooks› IoC implementaatiot

› Alf Nilssonilla on hyviä esimerkkejä:https://github.com/alfnilsson/EpiserverForms

Page 13: Episerver Forms (fi)

CUSTOM ELEMENTS› Forms vaatii MVC projektin (ei WebForms)› Peri luokasta ElementBlockBase› Tee MVC näkymä kansioon Views/Shared/ElementBlocks

› Custom Elementtien validointiin toteuta seuraavat interfacet• IElementValidatable• IExcludeValidatorTypes

Page 14: Episerver Forms (fi)

EVENTS

› FormsEvents.Instance.FormsSubmitting += FormsSubmitting;

› FormsEvents.Instance.FormsStepSubmitted += FormsStepSubmitted;

› FormsEvents.Instance.FormsSubmissionFinalized += FormsSubmissionFinalized;

› FormsEvents.Instance.FormsStructureChange += FormsStructureChange;

Page 15: Episerver Forms (fi)

REPOSITORYN / DDS:N KÄSITTELY› IFormDataRepository› var repo = ServiceLocator.Current.GetInstance<IFormDataRepository>();

var submissionData = new Dictionary<string, object>() { {"elementId", "esimerkki"} };var friendlyNames = new FriendlyNameInfo[] {

new FriendlyNameInfo("elementId", "friendlyName", "label", FormatType.String) };var removeNonFriendlyFields = false;

repo.TransformSubmissionDataWithFriendlyName( submissionData, friendlyNames, removeNonFriendlyFields);

› DDS Storageen tiedon vientiDdsPermanentStorage.SaveToStorage(

EPiServer.Forms.Core.Models.FormIdentity formIden, EPiServer.Forms.Core.Models.Submission submission

)

Page 16: Episerver Forms (fi)

ACTORS› PostSubmissionActorBase› UI interface IUIPropertyCustomCollection› https://github.com/episerver/EPiServer.Forms.Demo

• A very simple Actor, with no UI, just do some business after Form finalize it submission

• A configurable Actor, has UI in EditView for Editor, and use that information to do its business

Page 17: Episerver Forms (fi)

CONTROLLERIT› On mahdollista ylikirjoittaa Epin omat Controllerit:

• SubmitFormController• PreviewFormController

Page 19: Episerver Forms (fi)

IOC IMPLEMENTAATIOT› Inversion of Control eli StructureMap ja Epin luokkien

korvaavat implementaatiot › http://

world.episerver.com/Modules/Forum/Pages/Thread.aspx?id=146780

Page 20: Episerver Forms (fi)

IOC IMPLEMENTAATIOT

Page 21: Episerver Forms (fi)

VISU JA TEMPLATES

Page 22: Episerver Forms (fi)

CUSTOM TEMPLATES

Page 23: Episerver Forms (fi)

ELEMENT TEMPLATES› Kaikkien elementtien ulkoasut on

muuteltavissa› MVC mallilla tehty› Helppo muutella› Html-rakenne ja class nimet ovat

herkkiä rikkoontumaan

Page 24: Episerver Forms (fi)

FORMS WITH BOOTSTRAP› Jos käytätte Bootstrappiä tai haluat yhtenäisemmän

ulkoasun/html sisällön lomakkeiden elementeille. › Responsiivinen ja mobile friendly› https://github.com/huilaaja/EpiserverFormsWithBootstrap

Page 25: Episerver Forms (fi)
Page 26: Episerver Forms (fi)

XSS JA TIETOTURVA› Oletuksena mitään lähetettyjä tietoja ei näytetä julkisella

puolella.› Ylläpito näkymät on suojattu XSS:ltä

• Eli kaikki kentät näkyvät vain tekstinä. Esim.<SCRIPT>alert(“Cookie”+document.cookie)</SCRIPT>

› XSS ei ole OOTB huomioitu teidän omissa laajennuksissa tai Service API käytettäessä.

Page 27: Episerver Forms (fi)

KÄYTÄNNÖN NEUVOJANäihin tulet törmäämään

Page 28: Episerver Forms (fi)

PRO TIP› Required Client

Resources!

Page 29: Episerver Forms (fi)

PRO TIP› Jos Forms-tab ei

näy, niin Palauta näkymät .

› "Display options" and click the "Reset views" button.

Page 30: Episerver Forms (fi)

PRO TIP› Rich text editor

näkyy vain kun lomake on jo submitoitu eli se on “lomake kooste elementti”.

Page 31: Episerver Forms (fi)

Twitter @SolitaOywww.solita.fi

KIITOSMIKKO HUILAJASoftware [email protected]

Page 32: Episerver Forms (fi)