IMPACT Framework en Evaluatie by Clemens Neudecker
IT- Presentatie.Net 2011 05
1. 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
2. De Agenda
• Inleiding
• Architectuur
• Demo
• Technologie
26/05/2011 Moderne architectuur van een applicatie 2
3. 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
5. • 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
6. • 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
7. • 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
8. • 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
9. 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
10. • 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
11. • 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
13. • 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
14. • 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
17. • Javascript Library voor het
lezen/bewerken van DOM, CSS en Ajax
interactie.
26/05/2011 Moderne architectuur van een applicatie 17
JQuery
18. • 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
19. • 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
23. • 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
24. • 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
25. • Package Explorer: packages bekijken!
26/05/2011 Moderne architectuur van een applicatie 25
NuGet
26. • 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
27. • 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