SlideShare uma empresa Scribd logo
1 de 93
Introductie tot : ,[object Object]
ASP.NET MVC
Cloud Computing – Windows Azure,[object Object]
Agenda :   Wat iedere desktop, web, mobile, ... programmeur zeker moet weten over HTML5 ,[object Object]
Browser vergelijking
Het verschil in model tussen xhtml, html4 en html5
Database op de client
Oude browsers doen werken met html5
De nieuwe form types
Maak iphone, ipad, android, ... apps met html5  Een overzicht over ASP.NET MVC ,[object Object]
Voordelen van ASP.NET MVC
URL Routing
Form validatie met ASP.NET MVC,[object Object]
Het klassiek IT capaciteitsprobleem tov de capaciteit in een cloud model
Uit wat bestaat cloud computing?
Enkele softwarepakketten bespreken die nu in de Cloud draaien
Windows Azure : Platform as a service
De volledige azure architectuur bespreken (webroles, workerroles, vmroles, tables, blobs, queues, ...)
De verschillende role modellen
Azure storage in de diepte bekijken
De werking van de queue bespreken
De werking van de Azure content delivery network bespreken
De azure AppFabric caching bespreken
SQL in de cloud
Waarom men in een cloud model de session van een asp.net site moet in de database, table of caching steken.,[object Object]
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), ...
HTML5 Doelstelling 1x programmeren, overal ter beschikking stellen  cross platform
Gratis HTML5 boek http://diveintohtml5.org
HTML5 Wanneer is het klaar ? http://ishtml5readyyet.com/ Volgens het W3C in 2014 defintief klaar
HTML5 Test Drive http://ie.microsoft.com/testdrive/ Internet Explorer 9 Firefox 4 beta
A more beautiful web ... Alles wat je ongeveer met HTML 5 kunt doen http://ie.microsoft.com/testdrive/Views/SiteMap/Default.html
HTML5 – Nieuwe HTML tags De <div> tag heeft nu verchillende varianten gekregen
DEMOSymantic Markup
Het verschil in model tussen  vroeger en HTML 5 ...
Old school Model Server Gebruiker browser HTTP GET/POST ASP.NET Dynamischgegenereerde HTML Database DB
AJAX Model Server Gebruiker HTTP GET/POST ASP.NET browser Dynamischgegenereerde HTML HTTP GET/POST WCF (json, xml, ...) JS XML Data Database DB
DEMOOld School Ajax
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
HTML5 – Local Storage
DEMOHTML5 Local Storage
Wat met oude browsers en HTML5 ? modernizr http://modernizr.com
Modernizr toch HTML5 bij oude browsers Detecteer ALTIJD features, geen browsers!!!
DEMOModernizr + NuGet in VS2010
Nieuwe form input types <input type=“text” /> <input type=“search” /> <input type=“tel” /> <input type=“url” /> <input type=“email” /> <input type=“datetime” /> <input type=“date” /> <input type=“month” /> <input type=“time” /> <input type=“datetime-local” /> <input type=“number” /> <input type=“range” /> <input type=“color” />
Nieuwe form input types Waarom ?
HTML5 + CSS3 + JS = Common Application Platform Desktops, Tablets, Mobile, ...
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
DEMOiPhone website
PhoneGab Open source packager die HTML5 + javascript omzet naar native code (iOS, Android, RIM, Palm, Symbian)
In de nabije toekomst ... “web workers” De mogelijkheid om parallel meerdere script te runnen via Threading op de client.
In de nabije toekomst ... “web sockets” Full duplex communicatie over een enkele TCP socket (via poort 80)
ASP.NET MVC
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
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.
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
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)
URL Routing Bij ASP.NET FORMS is elke url een fysiek bestand op de server. Bijvoorbeeld : http://www.mijndomein.be/default.aspx?id=4
URL Routing Bij ASP.NET MVC wordt de URL gerouted naar objecten. Bijvoorbeeld : http://www.mijndomein.be/Products/Overview/4 {controller}            {action}            {id}
URL Routing De routes worden bepaald in de global.asax file
Model MVC - Model ,[object Object]
De controller stuurt deze objecten door
naar de View
Voorbeelden : DataSet, DataReader, Linq to SQL, Entity Framework, ...,[object Object]
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.
Controller MVC - Controller /en/Archive/page1 Hier leg ik een beperking op. Deze methode is enkel aanspreekbaar vanuit een GET request
View MVC - View ,[object Object]
Zit altijd in de map /Views/{controller}/{view}.aspx    of /Views/{controller}/{view}.chtml ,[object Object],[object Object]
View MVC - View Op deze manier hebben we het model in de view Het object dat geretourneerd wordt door de controller
View MVC – HTML Helpers Helpers klassen die de URL routing, html controls, … automatischgenereren. Bv: Hyperlinks, CheckBox, RadioButton, ListBox, TextBox ,…
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
View MVC – Partial Views Model Render UserControl
View MVC – Partial Views Als we die UserControl WidgetUpcomingCafe.ascx openenzien we : Model
View MVC – Partial Views En datproduceertdeze HTML :
View MVC – Partial Views En datproduceertdeze HTML :
Model MVC – Form Validatie VoegDataAnnotations using statement toe
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
Controller MVC – Form Validatie Wanneer de model Is Valid …
View MVC – Form Validatie Met de helpersklasseHtml.ValidationMessageFor() kun je de error op het schermlatentonen.
Cloud Computing
CLOUD   Late 2000s & Future De evolutie Cloud Computing, Social Networks Products>Solutions>Services INTERNET    Mid ‘90s Browsers, Email,  eCommerce,  Hosting, Wi-Fi, Web 2.0 CLIENT/SERVERMid ‘80s Distributed Computing PC & APPSEarly ’80s MAINFRAME  ’60s & ‘70s Word Processor, Spreadsheets DOS, GUI, Windows Financial, MRP Reservations
Wat is cloud computing? ,[object Object]
Het verhuizen van de niet-functionele IT activa naar een provider. De verschillen met traditionele hosting ,[object Object]
Enorme schaalbaarheid
De IT service is volledig beheerd door een provider
De focus ligt op integratie van cloud-cloud toepassingen of cloud traditionele IT toepassingen. ,[object Object]
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
Dit is verleden tijd met het cloud model
Enkele bedrijven die cloud computing aanbieden Amazon Google  Vmware  Rackspace Salesforce.com Microsoft
The Microsoft Cloud Meerdere Data Centers in de wereld Quincy, WA Chicago, IL San Antonio, TX Dublin, Ireland Generation 4 DCs Datacenter CDN Point
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
Dit even bekeken vanuit Microsoft perspectief SAAS IAAS PAAS
Software As A Service PRODUCTIVITEIT SAMENWERKING CRM DATABASE OS MANAGEMENT & SECURITY COMMUNICATIE Traditionele software
Voorbeeld van SAAS : Dynamics CRM Online

Mais conteúdo relacionado

Destaque

Oracle cloud computing strategy
Oracle cloud computing strategyOracle cloud computing strategy
Oracle cloud computing strategyjameskenney
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programminghchen1
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureBob Rhubart
 
Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3John Bertucci
 
Oracle IaaS Overview - AIOUG Hyderabad Chapter
Oracle IaaS Overview - AIOUG Hyderabad ChapterOracle IaaS Overview - AIOUG Hyderabad Chapter
Oracle IaaS Overview - AIOUG Hyderabad Chapteraioughydchapter
 
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapter
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd ChapterOracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapter
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapteraioughydchapter
 
Oracle tech fmw-03-cloud-computing-neum-15.04.2010
Oracle tech fmw-03-cloud-computing-neum-15.04.2010Oracle tech fmw-03-cloud-computing-neum-15.04.2010
Oracle tech fmw-03-cloud-computing-neum-15.04.2010Oracle BH
 

Destaque (10)

Oracle cloud computing strategy
Oracle cloud computing strategyOracle cloud computing strategy
Oracle cloud computing strategy
 
Oracle SaaS Applications Overview
Oracle SaaS Applications OverviewOracle SaaS Applications Overview
Oracle SaaS Applications Overview
 
An Introduction to Ajax Programming
An Introduction to Ajax ProgrammingAn Introduction to Ajax Programming
An Introduction to Ajax Programming
 
Oracle Cloud Reference Architecture
Oracle Cloud Reference ArchitectureOracle Cloud Reference Architecture
Oracle Cloud Reference Architecture
 
Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3Design for Developers: Introduction to Bootstrap 3
Design for Developers: Introduction to Bootstrap 3
 
Ajax Ppt
Ajax PptAjax Ppt
Ajax Ppt
 
Oracle IaaS Overview - AIOUG Hyderabad Chapter
Oracle IaaS Overview - AIOUG Hyderabad ChapterOracle IaaS Overview - AIOUG Hyderabad Chapter
Oracle IaaS Overview - AIOUG Hyderabad Chapter
 
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapter
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd ChapterOracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapter
Oracle Cloud Day(IaaS, PaaS,SaaS) - AIOUG Hyd Chapter
 
Oracle tech fmw-03-cloud-computing-neum-15.04.2010
Oracle tech fmw-03-cloud-computing-neum-15.04.2010Oracle tech fmw-03-cloud-computing-neum-15.04.2010
Oracle tech fmw-03-cloud-computing-neum-15.04.2010
 
jQuery Essentials
jQuery EssentialsjQuery Essentials
jQuery Essentials
 

Semelhante a HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge

Flex In De Praktijk
Flex In De PraktijkFlex In De Praktijk
Flex In De Praktijkmarcel panse
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development CursusLuciuswebsystems
 
Cursus Zend Framework - 1
Cursus Zend Framework - 1Cursus Zend Framework - 1
Cursus Zend Framework - 1bartjeukendrup
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatiemenfey
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingLuciuswebsystems
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills42windmills
 
IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05KatelijneBeheydt
 
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDrupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDavid Coppoolse
 
Third Generation Internet Applications
Third Generation Internet ApplicationsThird Generation Internet Applications
Third Generation Internet ApplicationsPatrick Koning
 
Case Automatisering Gids Sitecore Event 12062008
Case Automatisering Gids Sitecore Event 12062008Case Automatisering Gids Sitecore Event 12062008
Case Automatisering Gids Sitecore Event 12062008efocus.im
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknetHans Rossel
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningLars Smeets
 
Devnology Community Day
Devnology Community DayDevnology Community Day
Devnology Community Dayboonzaai
 

Semelhante a HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge (20)

Flex In De Praktijk
Flex In De PraktijkFlex In De Praktijk
Flex In De Praktijk
 
Drupal 7 Architectuur
Drupal 7 ArchitectuurDrupal 7 Architectuur
Drupal 7 Architectuur
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
HTML5 Overview
HTML5 OverviewHTML5 Overview
HTML5 Overview
 
Cursus Zend Framework - 1
Cursus Zend Framework - 1Cursus Zend Framework - 1
Cursus Zend Framework - 1
 
Sdb Presentatie
Sdb PresentatieSdb Presentatie
Sdb Presentatie
 
HTML 5 in een vogelvlucht (Dutch)
HTML 5 in een vogelvlucht (Dutch)HTML 5 in een vogelvlucht (Dutch)
HTML 5 in een vogelvlucht (Dutch)
 
Excellent rest met de web api
Excellent rest met de web apiExcellent rest met de web api
Excellent rest met de web api
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters Training
 
Waarom 42windmills
Waarom 42windmillsWaarom 42windmills
Waarom 42windmills
 
IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05IT- Presentatie.Net 2011 05
IT- Presentatie.Net 2011 05
 
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse ErfgoedbibliotheekDrupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
Drupal + Open Atrium bij de Vlaamse Erfgoedbibliotheek
 
Third Generation Internet Applications
Third Generation Internet ApplicationsThird Generation Internet Applications
Third Generation Internet Applications
 
Case Automatisering Gids Sitecore Event 12062008
Case Automatisering Gids Sitecore Event 12062008Case Automatisering Gids Sitecore Event 12062008
Case Automatisering Gids Sitecore Event 12062008
 
The Rails way
The Rails wayThe Rails way
The Rails way
 
Html5 jeugdwerknet
Html5 jeugdwerknetHtml5 jeugdwerknet
Html5 jeugdwerknet
 
Modern web development
Modern web developmentModern web development
Modern web development
 
Web3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke DienstverleningWeb3 - Gemeentelijke Dienstverlening
Web3 - Gemeentelijke Dienstverlening
 
Devnology Community Day
Devnology Community DayDevnology Community Day
Devnology Community Day
 

HTML 5, ASP.NET MVC & Windows Azure sessie voor Ivo Brugge

  • 1.
  • 3.
  • 4.
  • 6. Het verschil in model tussen xhtml, html4 en html5
  • 8. Oude browsers doen werken met html5
  • 10.
  • 13.
  • 14. Het klassiek IT capaciteitsprobleem tov de capaciteit in een cloud model
  • 15. Uit wat bestaat cloud computing?
  • 16. Enkele softwarepakketten bespreken die nu in de Cloud draaien
  • 17. Windows Azure : Platform as a service
  • 18. De volledige azure architectuur bespreken (webroles, workerroles, vmroles, tables, blobs, queues, ...)
  • 20. Azure storage in de diepte bekijken
  • 21. De werking van de queue bespreken
  • 22. De werking van de Azure content delivery network bespreken
  • 23. De azure AppFabric caching bespreken
  • 24. SQL in de cloud
  • 25.
  • 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), ...
  • 27. HTML5 Doelstelling 1x programmeren, overal ter beschikking stellen cross platform
  • 28. Gratis HTML5 boek http://diveintohtml5.org
  • 29. HTML5 Wanneer is het klaar ? http://ishtml5readyyet.com/ Volgens het W3C in 2014 defintief klaar
  • 30. HTML5 Test Drive http://ie.microsoft.com/testdrive/ Internet Explorer 9 Firefox 4 beta
  • 31. A more beautiful web ... Alles wat je ongeveer met HTML 5 kunt doen http://ie.microsoft.com/testdrive/Views/SiteMap/Default.html
  • 32. HTML5 – Nieuwe HTML tags De <div> tag heeft nu verchillende varianten gekregen
  • 34. Het verschil in model tussen vroeger en HTML 5 ...
  • 35. Old school Model Server Gebruiker browser HTTP GET/POST ASP.NET Dynamischgegenereerde HTML Database DB
  • 36. AJAX Model Server Gebruiker HTTP GET/POST ASP.NET browser Dynamischgegenereerde HTML HTTP GET/POST WCF (json, xml, ...) JS XML Data Database DB
  • 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
  • 39. HTML5 – Local Storage
  • 41. Wat met oude browsers en HTML5 ? modernizr http://modernizr.com
  • 42. Modernizr toch HTML5 bij oude browsers Detecteer ALTIJD features, geen browsers!!!
  • 44. Nieuwe form input types <input type=“text” /> <input type=“search” /> <input type=“tel” /> <input type=“url” /> <input type=“email” /> <input type=“datetime” /> <input type=“date” /> <input type=“month” /> <input type=“time” /> <input type=“datetime-local” /> <input type=“number” /> <input type=“range” /> <input type=“color” />
  • 45. Nieuwe form input types Waarom ?
  • 46. HTML5 + CSS3 + JS = Common Application Platform Desktops, Tablets, Mobile, ...
  • 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
  • 49. PhoneGab Open source packager die HTML5 + javascript omzet naar native code (iOS, Android, RIM, Palm, Symbian)
  • 50. In de nabije toekomst ... “web workers” De mogelijkheid om parallel meerdere script te runnen via Threading op de client.
  • 51. In de nabije toekomst ... “web sockets” Full duplex communicatie over een enkele TCP socket (via poort 80)
  • 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
  • 60.
  • 61. De controller stuurt deze objecten door
  • 63.
  • 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
  • 77. Controller MVC – Form Validatie Wanneer de model Is Valid …
  • 78. View MVC – Form Validatie Met de helpersklasseHtml.ValidationMessageFor() kun je de error op het schermlatentonen.
  • 80. CLOUD Late 2000s & Future De evolutie Cloud Computing, Social Networks Products>Solutions>Services INTERNET Mid ‘90s Browsers, Email, eCommerce, Hosting, Wi-Fi, Web 2.0 CLIENT/SERVERMid ‘80s Distributed Computing PC & APPSEarly ’80s MAINFRAME ’60s & ‘70s Word Processor, Spreadsheets DOS, GUI, Windows Financial, MRP Reservations
  • 81.
  • 82.
  • 84. De IT service is volledig beheerd door een provider
  • 85.
  • 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
  • 87. Dit is verleden tijd met het cloud model
  • 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
  • 91. Dit even bekeken vanuit Microsoft perspectief SAAS IAAS PAAS
  • 92. Software As A Service PRODUCTIVITEIT SAMENWERKING CRM DATABASE OS MANAGEMENT & SECURITY COMMUNICATIE Traditionele software
  • 93. Voorbeeld van SAAS : Dynamics CRM Online
  • 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
  • 100.
  • 101. Hosting van ASP.NET webpages of WCF Services.
  • 103. Heeft toegang tot de storage service
  • 107. Is een oneindige lus (while true)
  • 108. Hetzelfdealseenbatch job of Windows service.
  • 109. Handelt taken af van de queue
  • 111.
  • 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
  • 122. Het “session” probleem Session www.myurl.be Webrole instantie 1 Webrole instantie 2 Session www.myurl.be
  • 123. Het “session” probleem Session Session - SQL Azure - Table Storage - Cache www.myurl.be Webrole instantie 1 Webrole instantie 2 Session www.myurl.be
  • 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$