Moderne architectuur van
een applicatie
26/05/2011 Moderne architectuur van een applicatie 1
Informatiesessie door Luc Standaert & Christophe Ketels
Kennisevent ORBID – 26 mei 2011
De Agenda
• Inleiding
• Architectuur
• Demo
• Technologie
26/05/2011 Moderne architectuur van een applicatie 2
Inleiding
• Architectuur = Fundering van de applicatie
• De gekozen architectuur is een evenwicht tussen
– Vereisten en beperkingen opgelegd door de business
– Moderne tools en technologieën
– Zoveel mogelijk toegevoegde waarde voor de business
– Onderhoudbaarheid (interfaces), flexibiliteit en schaalbaarheid
26/05/2011 Moderne architectuur van een applicatie 3
26/05/2011 Moderne architectuur van een applicatie 4
Architectuur
• Caching
• Afhandelen van fouten
• Meertaligheid
• Logging
• Security (authentication, authorization)
• Validatie
• Navigatie
• Beheer van transacties
26/05/2011 Moderne architectuur van een applicatie 5
Architectuur: algemeen
• Client / Server (C/S)
• Domain Driven Design (DDD)
• Layered Architecture a layer is a logical structuring mechanism for the elements that make up your software solution
• N-Tier a tier is a physical structuring mechanism for the system infrastructure
• Object-Oriented (OO) include features such as data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance
• Service-Oriented (SOA) A system based on a SOA will package functionality as a suite of interoperable services that can be used within multiple, separate systems from several business domains.
26/05/2011 Moderne architectuur van een applicatie 6
Architectuur patterns
• Architectuur = combinatie van
verschillende patterns
• Voorbeeld:
– Layered architectuur (Data – Business – UI)
– Layered UI laag: vb. MVC, MVP, MVVM, ...
– 3-Tier (elke laag op andere server)
– Object-Oriented objectmodel vb. Customer,
Order,...
26/05/2011 Moderne architectuur van een applicatie 7
Architectuur patterns
• Applicatie type:
– Mobiele applicatie
– Rich Client applicatie: WPF, Windows Forms
– Rich Internet Client applicatie: Silverlight
– Web applicatie: ASP.NET, ASP.NET MVC
– Service applicatie: Windows Communication
Foundation (WCF)
26/05/2011 Moderne architectuur van een applicatie 8
Architectuur
26/05/2011 Moderne architectuur van een applicatie 9
Windows vs Web Applicatie
Windows
Application
Web Application Silverlight
Application
GUI Complex Eenvoudig Complex
OS Windows Alle Veel
Toestellen Windows
gebaseerde
Alle Veel
Installatie Lokaal Server Server
Interactie met
lokale
applicaties
Ja Nee Beperkt
Toegang tot
lokale
systeembronnen
Ja Nee Beperkt
Internet toegang Nee Ja Ja
• WPF:
– Meer grafische mogelijkheden: 2D & 3D
– Schermresolutie onafhankelijk
– Streaming audio en video
– Vector graphics
– XAML (Extensible Application Markup Language):
scheiding tussen UI en UI logica.
– Data binding
26/05/2011 Moderne architectuur van een applicatie 10
WPF vs Windows Forms
• Windows Forms:
– Bestaat al langer
– Meer third-party controls beschikbaar (inhaal-race !)
– Misschien reeds expertise in huis
• Maar:
– WPF is de opvolger van Windows Forms
– Windows Forms krijgt op termijn enkel nog vermelding in geschiedenisboeken
26/05/2011 Moderne architectuur van een applicatie 11
WPF vs Windows Forms
26/05/2011 Moderne architectuur van een applicatie 12
WPF vs Windows Forms
• Silverlight is een ontwikkelingsplatform waarmee complexe grafische interfaces kunnen worden ontwikkeld voor in browsers, als desktopsoftware of in mobiele apparaten
– Plugin
– Ook voor oudere browsers
– XAML based UI en .NET code
– „concurrent‟ van Adobe Flash
• HTML5: – Nog niet 100% af
– Enkel nieuwste browsers
– HTML syntax en javascript (CSS3, Javascript, XML, JSON)
26/05/2011 Moderne architectuur van een applicatie 13
Silverlight vs HTML5
• Silverlight is enige optie bij:
– Windows Phone
– Out of browser applicaties
– Games
• Anders:
– HTML5 waar dit volstaat/kan
– Silverlight voor specifieke functionaliteit,
geavanceerde databinding
– Mix is mogelijk
26/05/2011 Moderne architectuur van een applicatie 14
Silverlight vs HTML5
26/05/2011 Moderne architectuur van een applicatie 15
Silverlight
• Canvas
26/05/2011 Moderne architectuur van een applicatie 16
HTML5
• Javascript Library voor het
lezen/bewerken van DOM, CSS en Ajax
interactie.
26/05/2011 Moderne architectuur van een applicatie 17
JQuery
• Windows Communication Foundation
• Opvolger van Web Services
• HTTP en TCP gebaseerd
• SOAP (XML) en binair
• Gebruik:
– Uitwisseling van data
– Synchronisatie van data
26/05/2011 Moderne architectuur van een applicatie 18
WCF
• Object Relational Mapper (=ORM)
• Aanbevolen manier om database te benaderen
• Voordelen: – Geen code meer schrijven
om database te benaderen
– Query‟s met LINQ
– Database onafhankelijk
– Extra abstractie niveaus
– Resultaat: objectmodel
– evenwicht kan gevonden worden met stored procedures (kunnen opgenomen worden in EF)
26/05/2011 Moderne architectuur van een applicatie 19
Entity Framework
26/05/2011 Moderne architectuur van een applicatie 20
DEMO
• Historiek .NET
26/05/2011 Moderne architectuur van een applicatie 21
Visual Studio
26/05/2011 Moderne architectuur van een applicatie 22
Visual Studio
• Package Manager Console in VS 2010
• Installatie via Tools -> Extension Manager
• Gemakkelijker gebruik van Third-party
libraries:
– Via “Add Library Package Reference”
– Via Package Manager Console
• Gebaseerd op powershell
26/05/2011 Moderne architectuur van een applicatie 23
NuGet
• Eenvoudige commando‟s:
– get-package –remote
– get-package –remote –filter [filter name]
– install-package [package name]
– uninstall-package [package name]
26/05/2011 Moderne architectuur van een applicatie 24
NuGet
• Package Explorer: packages bekijken!
26/05/2011 Moderne architectuur van een applicatie 25
NuGet
• Geen Edmx meer
• Maak je klassen in code
• Database
– Connecteren met bestaande
– Automatisch aanmaken
• Alternatief:
– Database First
– Model First
26/05/2011 Moderne architectuur van een applicatie 26
EF Code First
• Open web protocol: – Ophalen van data
– Updaten van data
• Gebaseerd op HTTP - REST
• Data formaat: – Atom
– JSON
– XML
• Gebruik: – Informatie uitwisseling met derden
– Eigen applicaties
– API op je data
26/05/2011 Moderne architectuur van een applicatie 27
OData
• Gebruik
– http://localhost:49955/AdventureWorksDataSe
rvice.svc/Products?$filter=ProductID eq 710
– Filter operatoren
26/05/2011 Moderne architectuur van een applicatie 28
OData
26/05/2011 Moderne architectuur van een applicatie 29
Powerpivot & OData
• NuGet: http://nuget.codeplex.com/
• EF Code First:
http://weblogs.asp.net/scottgu/archive/201
0/07/16/code-first-development-with-entity-
framework-4.aspx
• OData: http://www.odata.org/
• Powerpivot: http://www.powerpivot.com/
26/05/2011 Moderne architectuur van een applicatie 30
Links
Vragen?
26/05/2011 Moderne architectuur van een applicatie 31
www.orbid.be
Luc Standaert
Projectleider • ORBID IT Services
Axxes Business Park • Guldensporenpark 29 • Blok C • 9820 Merelbeke
T. 32 9 272 99 11 • F. +32 9 272 99 11
www.orbid.be
Christophe Ketels
Technical Consultant • ORBID IT Services
Axxes Business Park • Guldensporenpark 29 • Blok C • 9820 Merelbeke
T. 32 9 272 99 11 • F. +32 9 272 99 11
• Contact us:
26/05/2011 Moderne architectuur van een applicatie 32