View stunning SlideShares in full-screen with the new iOS app!Introducing SlideShare for AndroidExplore all your favorite topics in the SlideShare appGet the SlideShare app to Save for Later — even offline
View stunning SlideShares in full-screen with the new Android app!View stunning SlideShares in full-screen with the new iOS app!
Developing Azure SolutionIn Developer PrespectivesRiza OktavianClient Development Specialist | Microsoft Innovation CenterYogyakarta, Indonesia
Azure for Developer Audiences Web Corporate ISV Develop applications at Extend existing and build Accelerate SaaS solutions Internet scale new applications development Focus on business logic and Accelerate Innovation with Deepen customer not operational constraints new IT flexibility relationships and continuously provide new Use one platform for Use consistent, familiar value expansive user experience programming models & and device support tools Capture built-in multi- tenancy Get started quickly using Maintain enterprise your existing skills architecture & process Inherent extensibility & governance integration features Reach broad market with Microsoft Live properties Integrate applications with partners across networks Flexibility Reliability Scalability Security Interoperability
Cloud Service Anatomy Web Role Web Role 1 (IIS) Worker Role 1 Web Role Port 80 LB Web Role 2 (IIS) Port 8080 Worker Role 2 Worker Role 2Windows Azure Storage SQL Azure Internet Services (Table, Blob, Queue)
Developing in Azure DifferencesAzure Solutions have a Cloud Project – Describes the platformAdditional Entry Points in the Execution PipelineUse RoleEnvironment Class for Infrastructure knowledgeAlways Copy referenced Assemblies
WorkerRole Call OrderWaWorkerHost process is started. Worker Role assembly is loaded and surfed for a class that derives from RoleEntryPoint. This class is instantiated. RoleEntryPoint.OnStart() is called. RoleEntryPoint.Run() is called. If the RoleEntryPoint.Run() method exits, the RoleEntryPoint.OnStop() method is called .
WebRole Call Order WaWebHost process is Global.Application_End() RoleEntryPoint.OnStop() started. is called. is called. Hostable Web Core is Hostable Web Core is The web application runs… activated. deactivated. Web role assembly is loaded and Global.Application_Start() WaWebHost process is RoleEntryPoint.OnStart() is called. stopped. is called.
SQL Databases MIC • aspnetdbWeb Application • MIC WCF Service Intranet Offices Location
SQL Databases MIC • aspnetdbAzure Application • MIC ServiceBus Service Intranet Offices Location
Demo Porting the Web into Azure ApplicationPAGE 9
Migrating SQL Server Data to SQL AzureUse the Azure Portal for initial creationUse SQL Server Management Studio 2008 R2 for managingSQL Azure databasesUse SQL Azure Migration Wizard v3.2 for analyzing andgenerating migration db scriptshttp://sqlazuremw.codeplex.com/
Migrating Intranet Service to App FabricSBChange Service and Client implementationAdd a ServiceBus ReferenceCreate a Service Bus namepsaceGenerate a new Endpoint AddressUse a RelayBinding from Azure AppFabric SDKAdd a TransportClientEndpointBehavior for registering the Service to the Service Bus
Windows Azure DiagnosticsDeveloper Prespectives SDK component providing distributed monitoring & data collection for cloud apps Support Standard Diagnostics APIs Cloud-Friendly – Manage multiple role instances centrally Scalable – Built on Windows Azure Storage & used by scale-out Windows Azure platform components Developer In Control – What to collect & when to collect it
Development Best Practices Always develop in the Azure DevFabric first Make sure you copy local assemblies not in the Framework Use the _CSPACK_FORCE_NOENCRYPT_ to check if your package is valid Check application using Cloud Resources (Storage, Service and SQL Azure) Remove the use of Development Storage (in case some code uses it)