Deze presentatie werd gegeven bij de sessie die we gaven voor de 2de en 3de jaars studenten van het graduaat informatica aan het IVO te Brugge. In deze presentatie behandelden we 3 grote onderwerpen: HTML 5, ASP.NET MVC en Windows Azure.
26. HTML5beschikbaar op ... Desktop : Windows, Mac, Linux Web : IE9, Chrome, FF, Opera, Safari, ... Mobile: iOS, Android, Blackberry 5+, Symbian 5, webOS, Windows Phone 7 (na de zomer van 2011), ...
38. HTML5 Model Server Gebruiker HTTP GET ASP.NET browser Dynamischgegenereerde HTML HTTP GET WCF (json, xml, ...) JS XML Data Database Lokale JS Database DB DB
47. HTML5 Model (offline apps iPhone, iPad, WP7, Android, ...) Apple Device Eenmaligeinstallatie App Engine App Store HTTP GET WCF (json, xml, ...) JS XML Data Sync wanneer WIFI of 3G beschikbaar is Server Lokale JS Database Database DB DB
53. Het design pattern Het patroonheeft 3 belangrijkecomponenten (objecten) Het is eenalternatief op asp.net forms Het is gebouwdbovenop asp.net forms Maaktgebruik van alle asp.net functionaliteiten System.Web.Mvc is de main assembly Business layer, DAL, … Model View Controller Object datdientvoor de visualisatie Object dat elk event opvangtdatveroorzaaktwordt door eengebruikersactie. Dit object raadpleegttelkens het model object en het retourneerttelkenseen view object
54. Model – View - Controller Model : Dit zijn de objecten die de uitvoering van de applicatie voor hun rekening nemen (Dit kan het opslaan van gegevens in de DB zijn, maar kan ook een wiskundige optelsom zijn). Dit wordt soms ook de Business Layer genoemd. M.a.w. Alle logica die niets met de interface te maken heeft. Controller : Dit object verwerkt de actie van de gebruiker, stuurt de vraag van de gebruiker door naar de model, krijgt van het model een antwoord terug en stuurt dit antwoord door naar de view. View : Dit is het object dat enkel maar de User Interface weergeeft (html). Doorgaans wordt de view gemaakt door de gegevens dat hij krijgt van de Model.
55. De voordelen van ASP.NET MVC Betere scheiding tussen interface en Business laag Maximale controle over de html Complexe routing scenario’s mogelijk Betere ondersteuning voor Test-Driven development Werkt beter tussen designer en developer
56. Wat niet wordt gebruikt bij ASP.NET MVC Postbacks View States Events (on click events bv) Eigen <asp: ... runat=“server” /> controls Vaste aspx bestanden. De view wordt dynamisch at runtime opgebouwd (door de url routing – zie volgende slide)
57. URL Routing Bij ASP.NET FORMS is elke url een fysiek bestand op de server. Bijvoorbeeld : http://www.mijndomein.be/default.aspx?id=4
58. URL Routing Bij ASP.NET MVC wordt de URL gerouted naar objecten. Bijvoorbeeld : http://www.mijndomein.be/Products/Overview/4 {controller} {action} {id}
59. URL Routing De routes worden bepaald in de global.asax file
64. Controller MVC - Controller - De klasse heeft altijd een Controller suffix - De {actions} zijn publieke methodes - Het implementeert de business logica (models) - De publieke methodes (de actions) retourneren altijd een View() om op deze manier model objecten naar de views te sturen. Het retourneren van het model naar de view wordt meestal met een nieuw POCO object (ook ViewModel object genaamd) geretourneerd.
65. Controller MVC - Controller /en/Archive/page1 Hier leg ik een beperking op. Deze methode is enkel aanspreekbaar vanuit een GET request
66.
67.
68. View MVC - View Op deze manier hebben we het model in de view Het object dat geretourneerd wordt door de controller
69. View MVC – HTML Helpers Helpers klassen die de URL routing, html controls, … automatischgenereren. Bv: Hyperlinks, CheckBox, RadioButton, ListBox, TextBox ,…
70. View MVC – HTML Helpers Voorbeeld, deze html helper genereertdeze html : <a href=“/en/Archive/3_mic-webcafe”>View more</a> Html attributen Controller Action Tekst van de hyperlink Parameters
71. View MVC – Partial Views Model Render UserControl
72. View MVC – Partial Views Als we die UserControl WidgetUpcomingCafe.ascx openenzien we : Model
73. View MVC – Partial Views En datproduceertdeze HTML :
74. View MVC – Partial Views En datproduceertdeze HTML :
75. Model MVC – Form Validatie VoegDataAnnotations using statement toe
76. Model MVC – Form Validatie VoegDataAnnotations using statement toe Maak via een attribute duidelijkaan de partial class datdit object metadata heeft, en de metadata bevindtzich in een inner class
86. De capaciteit in een Cloud model Verwachte Load Allocated IT capacities Geen “te weinig capaciteit“ IT CAPACITEIT Vermindering van de “over-capaciteit“ Minder belasting = minder capaciteit ter beschikking stellen Het verschil van de initiële investering Huidige Load TIJD
88. Enkele bedrijven die cloud computing aanbieden Amazon Google Vmware Rackspace Salesforce.com Microsoft
89. The Microsoft Cloud Meerdere Data Centers in de wereld Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs Datacenter CDN Point
90. Cloud computing bestaat uit Infrastructure As A Service (hardware) Servers die beschikbaarzijn in de cloud Platform As A Service (developer) Het beschikbaarstellen van een OS voor cloud-enabled applicaties Ondersteuningvoor de hosting van applicaties Het beschikbaarstellen van een service die de onderlingecommunicatieregelttussenverschillendesystemen Relationele databases in de cloud Software As A Service (eindgebruiker) Google Apps Salesforces Office 365 Skype Facebook SAAS IAAS PAAS
94. Platform As A ServiceWindows Azure bekijken in de diepte
95. Platform As A Service The Windows Azure platform fits here IaaS TraditioneleIT SaaS PaaS Door u beheerd Applicaties Applicaties Applicaties Applicaties Door u beheerd Data Data Data Data Beheerd door de provider Runtime Runtime Runtime Runtime Door u beheerd Middleware Middleware Middleware Middleware Beheerd door de provider O/S O/S O/S O/S Beheerd door provider Virtualisatie Virtualisatie Virtualisatie Virtualisatie Servers Servers Servers Servers Opslag Opslag Opslag Opslag Netwerk Netwerk Netwerk Netwerk
96. Servers (Compute) Virtual Network Storage Access Control Service Bus Caching Reporting Database Data Sync
97. Vandaag behandelen we Storage Compute Virtual Network Access Control Service Bus Caching Reporting Database Data Sync
98. Azure Development Ontwikkel met Visual Studio (of Eclipse) Draait op ASP.NET, classic ASP, Java, Ruby, Phyton en PHP SDK met Azure emulator
99. De Azure architectuur Network Load Balancer Windows Azure Service SQL Data Service NL B SQL Woker Service VM Role Worker Role Internet SQL Storage SQL Queues NL B (ASPX, ASMX, WCF) (ASPX, ASMX, WCF) Web Role (ASPX, WCF) Tables Blobs
113. Azure Storage Geen SQL data!! Onbeperkte storage 4 types Tables: geen fixed schema, geen relations (enkel entities) Blobs: grote binaire objecten (jpg’s, ...), mogelijkheid om metadata attributen op te slaan bij de binaire objecten, MIME type Queues: Assynchrone communicatie naar de workerrole Drives: NTFS volume mounted to roles Toegankelijk via HTTP/REST API !!
114. Service busy free webrole workerrole Instance 1 Instance 1 busy Instance 2 Instance 2 Instance 3 Instance 3 put message De werking van de Queue
115. De werking van de Queue Service busy free Get message webrole workerrole Instance 1 Instance 1 busy Instance 2 Instance 2 Instance 3 Instance 3 Eén (en enkel één) vrije instantie van de workerrole neemt de message
116. Azure Content Delivery Network user Azure Datacenter Service (webrole, workerrole) requestsblob Blob storage CDN Node Is de blob cached hier ? blob
117. Azure Content Delivery Network user Azure Datacenter Service (webrole, workerrole) andere request Blob storage CDN Node blob
118. Azure AppFabric Caching Worker Role Instance 1 WebRole Instance 2 On Premise app Read/Write data Read/Write data Read/Write data Caching
119. SQL Azure Relationele DB in de Cloud Gebasseerd op SQL 2008 R2 Toegankelijk vanuit iedere ADO.NET client SQL 2008 R2 Management Studio High-availability Geenconfiguratie is nodig De bestaande T-SQL wordtgebruiktalstaal Verschaal database up en down (tussen1GB and 50GB)
120. SQL Azure SQL Azure Server My DB (1 GB) My DB (50 GB) Master DB stored op 3 replicas stored op 3 replicas stored op 3 replicas firewall internal restricted IP ranges Azure Services (webrole,workerrole) Anybody
124. Start with Azure Je hebt nodig : Visual Studio 2010 + SQL Server Express Download Windows Azure SDK Windows Azure Training Kit Voorbeelden op code.msdn.com
125. SQL Azure Database Manager Via webinterface Via SQL Management Studio 2008 R2 Geen uitgebreide support. Hopelijk komt die er wel in de toekomst
127. De ontwikkelingscyclus 1. Start met de ontwikkeling in VS2010 2. Run/Test app in de Local Fabric met local SQL Server 3. Publish naar Azure portal in staging environment 5. Monitor logging en performance 6. Scale Local Machine Staging (in de cloud) testomgeving Production (in de cloud)
128. De Azure prijzen Compute Per service hour of 1 CPU = 0,12 U$ Storage Per GB/month =0,15 U$ Transactions Per 10K = 0,01 U$ SQL Azure 10 GB/maand = 99,99 U$ Access Control Transactions 10K = 0,01 U$ Service Bus Connections 1 connection/maand = 3,99 U$ Data Transfer egress Per GB = 0,15 U$ Data Transfer ingress Per GB = 0,10 U$