I moderne web og mobile applikasjoner forventer brukerne å ha samme kontroll og oversikt som i tradisjonelle desktopapplikasjoner. Det skaper noen nye utfordringer for oss utviklere når front-end kjøres på en annen enhet en back-end som igjen typisk kjøres på en annen server en eksisterende kjernesystemer.
I denne sesjonen viser Joar Øyen hvordan slike utfordringer er løst i en moderne web applikasjon fra Lindbak Retail Systems. Du får vite mer om Service Bus for Windows Server, Signal R og Windows Azure Notification Hubs og hvordan disse produktene er satt sammen for å holde brukere oppdatert i en asynkron verden.
2. Hva vi skal oppnå i kveld
Hvorfor det er viktig å gi brukere kontinuerlig
feedback
Hvilke verktøy og teknologier finnes på .NET
plattformen i dag og hvordan de kan benyttes
Dette er ikke rocket science!
3. Scenario: Butikkdata fra
Lindbak Retail Systems
Moderne web front-end integrert med
eksisterende kjernesystemer
Ny funksjonalitet bygges på den nye web
plattformen
Ny web applikasjon skal i størst mulig grad være
uavhengig av eksisterende løsninger
Skalerbarhet
Oppetid
Sikkerhet
Versjonering
Kundetilpasninger
http://www.lindbak.no/butikkdata
6. Utfordring
Uten tilbakemeldinger kan ikke brukere stole på
løsningen
Hvordan håndtere situasjoner hvor brukeren må
informeres eller håndtere nye hendelser som
oppstod i kjølvannet av en tidligere operasjon?
Hvordan sikre at vi har komponenter og tjenester
som kan ta i mot notifikasjonene?
8. Teknologi
Service Bus for Windows Server
SignalR
Windows Azure Service Bus Notification Hub
Windows Azure Mobile Services
AppFabric for Windows Server
Alle teknologiene er supportert av Microsoft i dag
9. Service Bus for Windows Server
Tillegg til Windows Server 2008 R2 og 2012
«Fjorårets Windows Azure Service Bus»
Garantert asynkron leveranse av meldinger
Køer
Emner og abonnement (topics og subscriptions)
Prøver å levere meldinger på nytt om abonnent ikke
kvitterer alt ok
AD basert sikkerhet
Skalerbar
10. SignalR
Med i ASP.NET and Web Tools 2012.2 Update
Bibliotek for nær sanntids kommunikasjon mellom
browsere og back-end
Tilbyr et høynivå API over kommunikasjonsmåter
som WebSockets og HTTP long polling
Kan sende meldinger til en eller flere mottakere
Benytter sikkerhetsmekanismer i ASP.NET
11. Windows Azure Service Bus
Notification Hub
Basert på Azure Service Bus multicast og pub/sub
routing
Plattformuavhengig
Støtter de fleste enheter: Windows 8, Windows Phone 8, iOS
og Android
Kan benyttes fra enhver serverside applikasjon: .NET, Node.js
og REST
Kan skreddersys via maler
Enhetshåndtering
Skalerbar
hundrevis av millioner notifikasjoner hver måned
Gratis for inntil 500 enheter og 100.000 notifikasjoner
per måned
12. Windows Azure Mobile Services
"Gratis" for inntil 500 enheter og 500.000 API kall
per dag
Støtter plattform spesifikk push, men kan også
benytte Notification Hubs
Tilbyr i tillegg andre tjenester som
Lagring i skjemaløse tabeller
Cron-jobber
13. AppFabric for Windows Server
Tillegg til Windows Server 2008, 2008 R2 og 2012
Autostart av web applikasjoner i IIS
Monitorering
Throttling
14. (Andre komponenter og rammeverk
som benyttes i web applikasjonen)
ASP.NET MVC 4
jQuery
Bootstrap
KendoUI
Knockout
FontAwesome
Modernizr
Mousetrap
EntityFramework
AutoMapper
Enterprise Library Logging
Elmah
16. Hva har vi bygd
Brukergrensesnitt som vises i browseren når brukeren får
notifikasjoner. Her kan brukeren få mer informasjon om
hendelsen, navigere til kilden og bekrefte at notifikasjonen
er lest.
SignalR hub for utsending av notifikasjoner når mottaker
har en levende sesjon
WCF klient og tjeneste for publisering og mottak av
forretningshendelser mellom web og kjernesystem
Service Bus Tokens/Subscriptions
Hosting i AppFabric
Tilsvarende WCF klient og tjeneste for å sende asynkrone
notifikasjoner fra kjernesystem tilbake til web applikasjon
Mottak og lagring av notifikasjoner i web applikasjonen
18. Oppsummering
Hvorfor det er viktig å tenke på å gi brukere
kontinuerlig feedback?
Ingen liker å vente, spesielt ikke på teknologi
Uten gode tilbakemeldinger mister vi troen på
teknologien
Vi kan ikke forvente at brukere selv tar initiativ og følger
opp påstartede oppgaver for å verifisere at alt er ok
19. Oppsummering
Hvilke verktøy og teknologier som finnes på .NET
plattformen i dag og hvordan de kan benyttes?
Bruk Service Bus Topics og Subscriptions for asynkron
kommunikasjon on-premise og i Azure
Bruk SignalR for asynkron kommunikasjon mellom web
server og browsere
Bruk Notification Hubs for plattform uavhengige
notifikasjoner for kommunikasjon mellom back-end og
mobile klienter
20. Oppsummering
Dette er ikke rocket science!
Teknologi og verktøy for å implementere asynkrone
notifikasjoner har dere i dag
Asynkrone brukermeldinger er så enkel å implementere
at det er en low-hanging-fruit som kan forbedre enhver
brukeropplevelse på web og på mobil
21. Oppsummering
Vi må begynne å gi slipp på atomiske transaksjoner
Verden er i kontinuerlig endring og vi kan ikke lengre
forvente at vi kan rulle tilbake til en tid da alt var OK
22. Referanser
Service Bus for Windows Server
http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10).aspx
SignalR
http://signalr.net/
Windows Azure Service Bus Notification Hub
http://msdn.microsoft.com/en-us/library/windowsazure/jj927170.aspx
Windows Azure Mobile Services
http://www.windowsazure.com/en-us/develop/mobile/
AppFabric for Windows Server
http://msdn.microsoft.com/en-us/windowsserver/ee695849.aspx
Presentasjonen legges up på SlideShare
http://www.slideshare.net/joaroyen/