670 likes | 686 Views
Learn how to develop Silverlight applications on Windows Azure, including database migration, using WCF services, and hosting in blob storage.
E N D
Switching on the cloud for Silverlight MSDN Live Meeting 27-06-2011 Gill Cleeren Microsoft Regional Director – Silverlight MVP Ordina Belgium
About myself... • Gill Cleeren • Microsoft Regional Director • MVP ASP.NET • .NET Architect @Ordina (www.ordina.be) • Speaker (TechDays, DevDays, NDC Norway, Spring Conference UK, SQL Server Saturday Switzerland, TechEd Berlin, SDC...) • Visug user group lead (www.visug.be) • Author (Silverlight 4 Data and services cookbook) • Blog: www.snowball.be • Email: gill@snowball.be • Twitter: @gillcleeren
Agenda • What is Windows Azure? • Parts of Windows Azure • Why does a Silverlight developer need to care? • Developing for Windows Azure • Required tools • Emulators (“local cloud”) • Azure Portal • Moving Silverlight applications to the cloud • Database only • WCF • What with REST • Entire Silverlight applications • RIA Services • Azure as intermediate layer for Twitter
Agenda (2) • Using blob storage • Accessing files in blob storage • XAP hosted in blob storage • (optional) Windows Phone 7 and Azure • Accessing services in the cloud
What is a Cloud Platform ? "The concept, quite simply, is that vast computing resources will reside somewhere out there in the ether (rather than in your computer room) and we'll connect to them and use them as needed." • Jonathan Weber (The Times Online)
So, Windows Azure then? • An operating system for the cloud • Internet Scale • Microsoft data centers • Based on internet standards (Interopability) • Features • Service Management / Scalability • Compute power • Storage • Familiar tools for development
Windows Azure Cloud Operating System: More value than what you think of with the term “OS” however! Compute Virtual Network Storage Run code in the cloud Scalable storage for files Connect cloud with on-premise
Microsoft is committed to the cloud! Infrastructure-as-a-Service “SaaS” “PaaS” “IaaS” Platform-as-a-Service Software-as-a-Service consume build host Abstraction
Cloud Services Although the abstraction is raised, developers still need to know what happens behind the scenes! Infrastructure (as a Service) Platform (as a Service) Packaged Software Software (as a Service) Applications Applications Applications Applications You manage Data Data Data Data You manage Runtime Runtime Runtime Runtime Managed by vendor Middleware Middleware Middleware Middleware You manage Managed by vendor O/S O/S O/S O/S Virtualization Virtualization Virtualization Virtualization Managed by vendor Servers Servers Servers Servers Storage Storage Storage Storage Networking Networking Networking Networking
Parts of Windows Azure • Hosted services • Web role • IIS in the cloud • For running ASP.NET applications • Worker role • Run any executable in the cloud (own database, server...)
Parts of Windows Azure (2) • Azure storage • Scalable storage in the cloud • 100TB per storage account • Auto-scale to meet massive volume and throughput • Accessible via RESTful Web Service API • Access from Windows Azure Compute • Access from anywhere via internet • Supporting .NET Client Library
Parts of Windows Azure (3) • Azure storage • Blob storage • Table storage • Queue storage
Parts of Windows Azure (4) • SQL Azure • Familiar SQL Server relational database model delivered as a service • Highly available • Contains: • Database • Reporting • Data sync
Parts of Windows Azure (5) • AppFabric • Access control • Service bus • Caching
Why does a Silverlight developer need to care? • Azure targets web applications • Highly available • Easy scaling • May not be important for XAP • Important for services and database
Developing for Windows Azure • Required tools • Visual Studio (duh) • Azure SDK • Azure Tools • Installs • Compute emulator • Storage emulator • Account on Windows Azure
Let’s move! • Silverlight applications can be “moved” to Azure on different levels • Database only • WCF/ASMX/REST services • All-in: Move the hosting site • XAP in webrole • XAP in blob storage • RIA Services
Scenario Hosting site Service layer (WCF, REST...) Database Silverlight application
Scenario Hosting site Service layer (WCF, REST...) Database Silverlight application
Database only • Case: • A Silverlight business app • WCF services to expose the data • Data in a SQL Server 2008 database • Task: move database only to the cloud
Database only • Steps: • Create database on SQL Azure • Use Migration wizard to export database to Azure • Change connection strings in service configuration
Database only Demo
Scenario Hosting site Service layer (WCF, REST...) Database Silverlight application
WCF service • Case: • Silverlight business application communicates with WCF service, service exposes data • Data is migrated to SQL Azure • Task: move WCF service to Azure
Side information • Silverlight can communicate with • ASMX • WCF (using BasicHttpBinding) • Both expose a WSDL file • Used by Visual Studio to generate proxy class • Generates config containing service location in Silverlight application • Possible to • move existing service • “use” cloud services inside VS Silverlight project
Silverlight and WCF service • Steps: • Create Cloud project • Add webrole to contain service hosting site (ASP or WCF) • Test in compute emulator • Update Silverlight configuration to use new service address • Deploy service package to the cloud • Re-deploy new Silverlight application
REST service • Case: • Silverlight business application communicates with REST service, service exposes data • A WCF service can be configured to work as a REST service • Data is migrated to SQL Azure • Task: move REST service to Azure
Side information • REST (REpresentational State Transfer) • Protocol based on web standards (GET, PUT...) • All information is a resource • Information exchanged over XML or JSON • Using WCF, we can create REST services • Silverlight sends request to URL • Service responds with XML • Silverlight can parse the XML Possible to move the REST service to Azure
Silverlight and REST service • Steps: • Create Cloud solution • Move service hosting site to webrole (ASP or WCF) • Test in compute emulator • Update Silverlight configuration to use new service address • Deploy service package to the cloud • Re-deploy new Silverlight application (Yes, this is identical!)
REST service Demo
Scenario Hosting site Service layer (WCF, REST...) Database Silverlight application
Move Silverlight to the cloud • Case: • Database hosted in SQL Azure • WCF Service hosted in Windows Azure (web role) • Silverlight application and hosting website need to move to the cloud • Task: • Move Silverlight hosting site to (other) web role
Side information • Silverlight is just a XAP file, hosted inside an HTML, ASPX, PHP... page • XAP file is downloaded from • Azure Hosted service • Azure Storage • Site can be a web role
Move Silverlight to the cloud • Steps: • Add second web role to cloud project OR second cloud project (accessible via port number) • (optional) Create a new hosted service for this role
RIA Services in the cloud • Case • Silverlight application that uses RIA Services • Server-side use of Entity Framework • Database is moved to SQL Azure • Task: • All-in approach: move everything to the cloud
Side information • RIA Services create a link between server-side and client-side project • Hosting site requires configuration changes and assembly references • RIA Services is not installed on your Azure VM! • Specific template exists if starting from scratch
RIA Services in the cloud • Steps: • Add new web role to cloud project • Move service hosting site to webrole • Change configuration • Set Copy local to true for RIA Services assemblies • Deploy Silverlight XAP along with services • Services can be in a different assembly, will be hosted alongside
Scenario SERVICE Silverlight Twitter
Use Azure as Twitter intermediate • Case • We want to use Twitter API in in-browser Silverlight apps • Need to build intermediate service layer • Task: • Use Windows Azure for this purpose