SlideShare a Scribd company logo
Migrating an Application to
Windows Azure
Cloud Dojo
I’m all in.




Cory Fowler
Consultant, ObjectSharp
Microsoft MVP, Windows Azure
@SyntaxC4
http://blog.syntaxc4.net       gettag.mobi
Starter Site: Nerd Dinner


    ASP.NET MVC

    SQL Server

    Entity Framework

    IIS
Resulting Site: Nerd Dinner
   ASP.NET MVC

      SQL Azure

Entity Framework

 Windows Azure

Windows Identity
     Foundation
A Quick word on Tools
Alright, Let’s do this…
Windows Azure!!!
Windows Azure Compute


     JIT Knowledge
A Hosted Service is a container for an Application.
      An Application must consist of at least one Role.
             A Role is Scalable to meet the demand of traffic.
Role




                      Role




                                            Role
       Web                   Worker                VM
        ASP.NET
                             Long Running          Windows Server
          WCF                   Process               2008 R2

        Fast CGI        Emulates Windows     Customized Guest OS
                            Services
       Emulates IIS
Application Roles




                       Web Site
                     Web Site
                   Back-End
                    Web Site
Web Site                            Admin Site
                   Services

   [Web Role]       [Worker Role]      [VM Role]
Convert your Web Application

        To a Web Role
Add Cloud Project

1. Right-Click on Solution File.
2. Hover over Add Menu Item.
3. Click New Project.
4. Select your Language of Choice.
5. Select Cloud.
6. Name your Project and hit OK.
Azurify your Web Application
1. Right-Click on Web Project
2. Click Manage NuGet Packages
3. Filter using Azure Web Role
4. Install Windows Azure Web Role
                  Or
1. Open Package Manager Console
2. Type
Install-Package WindowsAzure.WebRole
-ProjectName NerdDinner                PM>
Associate your Web & Cloud Projects

          1. Right-Click on Roles Folder in Cloud Project.
          2. Click Web Role Project in Solution.
          3. Select the Nerd Dinner Project from the
             Dialog.
          4. Click OK.
What did I just do…?



   JIT Knowledge
Cloud Configuration



ServiceDefinition.csdef
[Life-Time]


ServiceConfiguration.cscfg
[Modifiable]
Service Definition
<?xml version="1.0" encoding="utf-8"?>

<ServiceDefinition name="ExploringServiceDefinition"
xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">

        <WebRole name="" vmsize="ExtraSmall" enableNativeCodeExecution="true">
                <!-- ... -->
        </WebRole>

        <WorkerRole name="" vmsize="ExtraSmall">
                <!-- ... -->
        </WorkerRole>

        <VirtualMachineRole name="" vmsize="ExtraSmall">
                <!-- ... -->
        </VirtualMachineRole>

</ServiceDefinition>
Service Configuration
<ServiceConfiguration serviceName="NerdDinner.Cloud"
       xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration"
       osFamily="2" osVersion="*">

  <Role name="MvcWebRole1">

    <Instances count="1" />

    <ConfigurationSettings>

      <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString"
               value="UseDevelopmentStorage=true" />

    </ConfigurationSettings>

  </Role>

</ServiceConfiguration>
public class WebRole : RoleEntryPoint
{                                                                                     WebRole.cs
    // Included in Both Web and Worker Role Template
    public override bool OnStart()
    {
       RoleEnvironment.Changing += RoleEnvironmentChanging;
       return base.OnStart();
    }
    // Included in Worker Role Template - Still available in Web Role but needs to be overridden
    public override void Run() { base.Run(); }

    // Not Included but available in Web and Worker Roles
    public override void OnStop() { base.OnStop(); }

    // Is not generated ANYWHERE but SHOULD be Implemented
    private static void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
    {
        // If a configuration setting is changing
        if (e.Changes.Any(change =>
               change is RoleEnvironmentConfigurationSettingChange))
             e.Cancel = true; // Set e.Cancel to true to restart this role instance
    }
}
Prepare your Database

    For SQL Azure
SQL Azure
                                      Tables, indexes and views
                                      Stored Procedures
1GB, 5GB           10-50GB            Triggers
                                      Constraints
                                      Table variables,
                                       session temp tables (#t)
Web Edition     Business Edition      Spatial types, HierarchyId
                                      Data Types
         Feature Set                     XML, Sparse Columns, Filestream
                                      Partitions
                                      Full-text indexes
                                      SQL-CLR
Attach NerdDinner Database

1. Open SQL Server Management Studio (SSMS)
2. Connect to .SQLExpress
3. Right-Click on Databases
4. Click Attach…
5. Find NerdDinner.mdf in App_Data
6. Click OK
Generate Scripts for SQL Azure
    1. Right-Click Attached NerdDinner Database
    2. Click Tasks
    3. Click Generate Scripts…

                          4. Change Database Engine Type to
                             SQL Azure
                          5. Click OK
                          6. Click Finish
Connect to SQL Azure




https://<servername>.database.windows.net             [SSMS]
Create SQL Azure Database
New-SqlAzureServer
  -SubscriptionId               1. Sign in to Windows Azure Portal
  -Certificate                  2. Open SQL Azure Section
  -AdministratorLogin           3. Create Server
  -AdministratorLoginPassword       a) Select Region
  -Location                         b) Create Administration Credentials
                                    c) Add Firewall Rules
                                4. Create Database
                                    a) Enter Database name
                                    b) Click OK
                                5. Copy Connection String from Properties


                                Powershell for Firewall Rules: http://bit.ly/qCvdpN
Run the NerdDinner Scripts



1. Open [ File | Script ] NerdDinner.sql
2. Execute Script
Cloud Aware Configuration

  web
.config
                           ConnectionStringResolver
                             .Create()
                             .WithCloudConnectionStringName
                                      ("NerdDinnerEntities")
                             .WithLocalConnectionStringName
                                      ("NerdDinnerEntities")
 Cloud                       .ConnectionString
Service
 .cscfg




                   Get it on GitHub: http://bit.ly/r7Hvj0
A Quick Note on Data Migration

Tools
DTS Wizard (SSIS)
http://bit.ly/gzLsl9

BCP Utility
http://bit.ly/bQdAIn

Import/Export
[Blog on Import/Export CTP]
                                      SQL Azure Data Sync
What About AuthN?

SQL Azure   Windows Azure Storage   Claims Based
SQL Membership Approach

PM> Install-Package System.Web.Providers



           Remember aspnet_regsql?

Download the Updated SQL Azure supported Scripts

               http://bit.ly/gB5DIt
Windows Azure Storage
http[s]://account.*.core.windows.net   Account      Container    Item
                                                      images
     BLOB Storage                      NerdDinner                  Blobs
                                                      videos

                                                     locations
     TABLE Storage                     NerdDinner                  Entities
                                                     dinners

                                                       rsvp
     QUEUE[S] Storage                  NerdDinner                  Messages
                                                      resize
** Experimental **
                                          Windows Azure Storage
                                          Membership Approach
<membership defaultProvider="TableStorageMembershipProvider">
  <providers>
   <clear />
     <add name="TableStorageMembershipProvider“
            type="Microsoft.Samples.ServiceHosting.AspProviders.TableStorageMembershipProvider"
            description="Membership provider using table storage"
            applicationName="/"
            enablePasswordRetrieval="false"
            enablePasswordReset="true"
            requiresQuestionAndAnswer="false"
            minRequiredPasswordLength="1"
            minRequiredNonalphanumericCharacters="0"
            requiresUniqueEmail="true"
            passwordFormat="Hashed"
            allowInsecureRemoteEndpoints="true" />
  </providers>
 </membership>                                       Download ASP.NET Samples: http://bit.ly/pEguoW
Claims Based Authentication
      Windows Azure Access Control Service



      ACS (v2.0) enables AuthN with:

         Active Directory Federation Service [ADFS]
         Facebook
         Google
         LiveID
         Yahoo!
         WS-Fed
         WS-Trust
How Does Claims Based AuthN Work?



          JIT Knowledge
Google ID                      Application




                                                            0.2 No Auth




               3. Send claims

Customer                              Access Control Services
           0.3 Redirect to provider
4. Normalize identity

                   Access Control Services



                                                 7. Consume identity

                                                           Your App

                                                             Claims
                                                           Framework

                6. Send identity
Customer                                     Application
ACS Friendly AuthN Screen
Changing this…




                    Into this…
Create Access Control Namespace
1. Open the Windows Azure Platform Portal
2. Select Service bus, Access Control & Caching from the lower
   left-hand menu
3. Click New
4. Ensure Access Control is selected


                                       5. Provide a Namespace for your AppFabric
                                          Endpoint
                                       6. Click Check Availability
                                       7. Select a Region
                                       8. Click Create Namespace
                                       9. Click on Manage Access Control Service
Add an Identity Provider


1. Select Identity Provider (IP)
    i. Google
    ii. Yahoo!
2. Click Next
3. Add path to IP Logo
4. Click Save
Create Relying Party Application

1. Enter Name
2. Enter Realm [localhost is allowed]
3. Enter Return URL [localhost is allowed]
4. Select SAML 1.1
5. Select Identity providers
    i. Google
    ii. Windows Live
6. Select Create new rule group
7. Select Use service namespace certificate
Enable Claims-Based AuthN



                                           1. In Visual Studio. Tools > Add STS Reference
                                           2. Ensure the Web.config location is correct
                                           3. Enter the Application Url




Requires Windows Identity Foundation SDK
Enable Claims-Based AuthN

     4. Select Use an existing STS
     5. Login to Windows Azure Portal
     6. Navigate to ACS Menu
     7. Select AppFabric endpoint
     8. Click manage ACS Service
     9. Click on Application integration
     10. Select & Copy WS-Federation Metadata Url
     11. Switch back to Federation Utility
     12. Paste Endpoint in Textbox
     13. Next through the remainder of the Tool.
MVC WS-Federation Fix




       PM> Install-Package SyntaxC4.WindowsAzure.ACSManagement.Mvc

<httpRuntime requestValidationType=
"SyntaxC4.WindowsAzure.ACSManagement.Mvc.WsFederationRequestValidator" />
Include WIF in cspkg


Copy Local = True isn’t enough in this case



Specific Version must be False
Home Realm Discovery Wrapped Up!

             Home Realm Discovery is the act of retrieving a list of the Identity
                    Providers that are available to your application.


              PM> Install-Package SyntaxC4.WindowsAzure.ACSManagement


public ActionResult LogOn()
{
   var manager = new ACSServiceManager("nerddinnerc4", "http://127.0.0.1:81/");
   IIdentityProvider[] providers = manager.GetIdentityProviders<IdentityProvider>();
   return View(providers);
}
Create a Custom Login Screen


<ul class="login">
     <% foreach (var ip in Model)
        { %>
        <li class="login-item">
              <object data="<%: ip.ImageUrl %>"
                   onclick="javascript:location.href='<%: ip.LoginUrl %>'">
                  <a href="<%: ip.LoginUrl %>" class="login-item-link">
                       <%: ip.Name %></a>
              </object>
             </li>
     <% } %>
</ul>
To the Cloud!
Publish to Windows Azure
1. Right-Click on Cloud Project
2. Select Publish…
3. Select <Add…> from Credentials Dropdown list
    a) Give Certificate a Friendly Name
    b) Copy Certificate Path
    c) Upload Certificate to Management Portal
    d) Paste SubscriptionId into dialog

                        4. Select Deployment Environment
                        5. Select Storage Account
                        6. Select Cloud Service
                           Configuration
                        7. Select Release Build
                           Configuration
                        8. Click Publish
Dinner Time!
Next Steps…




Geo-Distributed
                  Decrease Latency with
       with                                    Phone App?
                   Windows Azure CDN
Traffic Manager
Cloudy Reading
Resources

Blog                                    http://blog.syntaxc4.net
GitHub                                  http://github.com/syntaxc4


Windows Azure Platform Training Kit     http://bit.ly/jXfyyD
Windows Azure Powershell Cmdlets        http://bit.ly/m75gEc
Windows Azure Tools                     http://bit.ly/miooC4


Cloud Cover Show                        http://bit.ly/g4nQbT
Essential Resources for Windows Azure   http://bit.ly/efmzGo
Ad

More Related Content

What's hot (20)

Hibernate
HibernateHibernate
Hibernate
ksain
 
Capture, record, clip, embed and play, search: video from newbie to ninja
Capture, record, clip, embed and play, search: video from newbie to ninjaCapture, record, clip, embed and play, search: video from newbie to ninja
Capture, record, clip, embed and play, search: video from newbie to ninja
Vito Flavio Lorusso
 
A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)
Nati Shalom
 
AWS essentials S3
AWS essentials S3AWS essentials S3
AWS essentials S3
mustafa sarac
 
AWS essentials EC2
AWS essentials EC2AWS essentials EC2
AWS essentials EC2
mustafa sarac
 
Dandelion 0.10.0
Dandelion 0.10.0Dandelion 0.10.0
Dandelion 0.10.0
Thibault DUCHATEAU
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
Joshua Long
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
Arun Gupta
 
SCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AISCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AI
Hiroshi Tanaka
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
Joshua Long
 
Vuex
VuexVuex
Vuex
Asaquzzaman Mishu
 
Servlets
ServletsServlets
Servlets
Abdalla Mahmoud
 
Protect your app from Outages
Protect your app from OutagesProtect your app from Outages
Protect your app from Outages
Ron Zavner
 
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js + Expres...
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js +  Expres...Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js +  Expres...
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js + Expres...
Edureka!
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
IndicThreads
 
Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8
Brian Ward
 
Bt0083 server side programing
Bt0083 server side programing Bt0083 server side programing
Bt0083 server side programing
Techglyphs
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Arun Gupta
 
Ecom2
Ecom2Ecom2
Ecom2
Santosh Pandey
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
Sunghyouk Bae
 
Hibernate
HibernateHibernate
Hibernate
ksain
 
Capture, record, clip, embed and play, search: video from newbie to ninja
Capture, record, clip, embed and play, search: video from newbie to ninjaCapture, record, clip, embed and play, search: video from newbie to ninja
Capture, record, clip, embed and play, search: video from newbie to ninja
Vito Flavio Lorusso
 
A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)A Groovy Kind of Java (San Francisco Java User Group)
A Groovy Kind of Java (San Francisco Java User Group)
Nati Shalom
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
Joshua Long
 
Java EE 6 = Less Code + More Power
Java EE 6 = Less Code + More PowerJava EE 6 = Less Code + More Power
Java EE 6 = Less Code + More Power
Arun Gupta
 
SCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AISCasia 2018 MSFT hands on session for Azure Batch AI
SCasia 2018 MSFT hands on session for Azure Batch AI
Hiroshi Tanaka
 
Multi Client Development with Spring
Multi Client Development with SpringMulti Client Development with Spring
Multi Client Development with Spring
Joshua Long
 
Protect your app from Outages
Protect your app from OutagesProtect your app from Outages
Protect your app from Outages
Ron Zavner
 
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js + Expres...
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js +  Expres...Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js +  Expres...
Node.js Express Tutorial | Node.js Tutorial For Beginners | Node.js + Expres...
Edureka!
 
Testing Your Application On Google App Engine
Testing Your Application On Google App EngineTesting Your Application On Google App Engine
Testing Your Application On Google App Engine
IndicThreads
 
Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8Using VueJS in front of Drupal 8
Using VueJS in front of Drupal 8
Brian Ward
 
Bt0083 server side programing
Bt0083 server side programing Bt0083 server side programing
Bt0083 server side programing
Techglyphs
 
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010Deep Dive Hands-on in Java EE 6 - Oredev 2010
Deep Dive Hands-on in Java EE 6 - Oredev 2010
Arun Gupta
 
SpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSLSpringBoot with MyBatis, Flyway, QueryDSL
SpringBoot with MyBatis, Flyway, QueryDSL
Sunghyouk Bae
 

Viewers also liked (7)

G meredith scala
G meredith scalaG meredith scala
G meredith scala
sdeconf
 
Ro r trilogy-part-1
Ro r trilogy-part-1Ro r trilogy-part-1
Ro r trilogy-part-1
sdeconf
 
Rackforce the cloud
Rackforce the cloudRackforce the cloud
Rackforce the cloud
sdeconf
 
Sdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svtSdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svt
sdeconf
 
S bueckert sdecmobile
S bueckert sdecmobileS bueckert sdecmobile
S bueckert sdecmobile
sdeconf
 
Pscad agile adoption
Pscad agile adoptionPscad agile adoption
Pscad agile adoption
sdeconf
 
Sdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svtSdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svt
sdeconf
 
G meredith scala
G meredith scalaG meredith scala
G meredith scala
sdeconf
 
Ro r trilogy-part-1
Ro r trilogy-part-1Ro r trilogy-part-1
Ro r trilogy-part-1
sdeconf
 
Rackforce the cloud
Rackforce the cloudRackforce the cloud
Rackforce the cloud
sdeconf
 
Sdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svtSdec 2011 ux_agile_svt
Sdec 2011 ux_agile_svt
sdeconf
 
S bueckert sdecmobile
S bueckert sdecmobileS bueckert sdecmobile
S bueckert sdecmobile
sdeconf
 
Pscad agile adoption
Pscad agile adoptionPscad agile adoption
Pscad agile adoption
sdeconf
 
Sdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svtSdec 2011 ask_watchlisten_svt
Sdec 2011 ask_watchlisten_svt
sdeconf
 
Ad

Similar to C fowler azure-dojo (20)

Playing with php_on_azure
Playing with php_on_azurePlaying with php_on_azure
Playing with php_on_azure
CEDRIC DERUE
 
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
MUG-Lyon Microsoft User Group
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
Manish Corriea
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud service
Jeffray Huang
 
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Takayoshi Tanaka
 
MS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applicationsMS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applications
Spiffy
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall
 
Go…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows AzureGo…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows Azure
Thomas Robbins
 
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Marc Müller
 
Move to azure
Move to azureMove to azure
Move to azure
feature[23]
 
Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros Windows azure overview for SharePoint Pros
Windows azure overview for SharePoint Pros
Usama Wahab Khan Cloud, Data and AI
 
Take the spaghetti out of windows azure – an insight for it pro techies part 2
Take the spaghetti out of windows azure – an insight for it pro techies part 2Take the spaghetti out of windows azure – an insight for it pro techies part 2
Take the spaghetti out of windows azure – an insight for it pro techies part 2
Microsoft TechNet - Belgium and Luxembourg
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
Michael Collier
 
Azure in Developer Perspective
Azure in Developer PerspectiveAzure in Developer Perspective
Azure in Developer Perspective
rizaon
 
Exploring App fabric
Exploring App fabricExploring App fabric
Exploring App fabric
Kevalsing Rajput
 
Session 2: SQL Server 2012 with Christian Malbeuf
Session 2: SQL Server 2012 with Christian MalbeufSession 2: SQL Server 2012 with Christian Malbeuf
Session 2: SQL Server 2012 with Christian Malbeuf
CTE Solutions Inc.
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien
 
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DECWEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
ncodeit123
 
Building & Managing Windows Azure
Building & Managing Windows AzureBuilding & Managing Windows Azure
Building & Managing Windows Azure
K.Mohamed Faizal
 
Building & managing wa app wely
Building & managing wa app   welyBuilding & managing wa app   wely
Building & managing wa app wely
Spiffy
 
Playing with php_on_azure
Playing with php_on_azurePlaying with php_on_azure
Playing with php_on_azure
CEDRIC DERUE
 
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
Global Windows Azure Bootcamp : Cedric Derue playing with php on azure. (spon...
MUG-Lyon Microsoft User Group
 
Developing and deploying windows azure applications
Developing and deploying windows azure applicationsDeveloping and deploying windows azure applications
Developing and deploying windows azure applications
Manish Corriea
 
Java and windows azure cloud service
Java and windows azure cloud serviceJava and windows azure cloud service
Java and windows azure cloud service
Jeffray Huang
 
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShiftDeep Dive OpenShitt on Azure & .NET Core on OpenShift
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
Takayoshi Tanaka
 
MS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applicationsMS Cloud Day - Deploying and monitoring windows azure applications
MS Cloud Day - Deploying and monitoring windows azure applications
Spiffy
 
Deploying windows containers with kubernetes
Deploying windows containers with kubernetesDeploying windows containers with kubernetes
Deploying windows containers with kubernetes
Ben Hall
 
Go…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows AzureGo…Running Kentico CMS on Windows Azure
Go…Running Kentico CMS on Windows Azure
Thomas Robbins
 
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Experts Live Europe 2017 - VSTS / TFS automated Release Pipelines for Web App...
Marc Müller
 
Take the spaghetti out of windows azure – an insight for it pro techies part 2
Take the spaghetti out of windows azure – an insight for it pro techies part 2Take the spaghetti out of windows azure – an insight for it pro techies part 2
Take the spaghetti out of windows azure – an insight for it pro techies part 2
Microsoft TechNet - Belgium and Luxembourg
 
More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)More Cache for Less Cash (DevLink 2014)
More Cache for Less Cash (DevLink 2014)
Michael Collier
 
Azure in Developer Perspective
Azure in Developer PerspectiveAzure in Developer Perspective
Azure in Developer Perspective
rizaon
 
Session 2: SQL Server 2012 with Christian Malbeuf
Session 2: SQL Server 2012 with Christian MalbeufSession 2: SQL Server 2012 with Christian Malbeuf
Session 2: SQL Server 2012 with Christian Malbeuf
CTE Solutions Inc.
 
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developers
Chris O'Brien
 
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DECWEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
WEBLOGIC ADMINISTRATION 11g NEW BATCH STARTS FROM 16 DEC
ncodeit123
 
Building & Managing Windows Azure
Building & Managing Windows AzureBuilding & Managing Windows Azure
Building & Managing Windows Azure
K.Mohamed Faizal
 
Building & managing wa app wely
Building & managing wa app   welyBuilding & managing wa app   wely
Building & managing wa app wely
Spiffy
 
Ad

More from sdeconf (13)

S rogalsky user-storymapping
S rogalsky user-storymappingS rogalsky user-storymapping
S rogalsky user-storymapping
sdeconf
 
L phillips apm
L phillips apmL phillips apm
L phillips apm
sdeconf
 
J wagner security
J wagner securityJ wagner security
J wagner security
sdeconf
 
Friesens agile adoption
Friesens agile adoptionFriesens agile adoption
Friesens agile adoption
sdeconf
 
Dan perron lim
Dan perron limDan perron lim
Dan perron lim
sdeconf
 
D alpert ux102
D alpert ux102D alpert ux102
D alpert ux102
sdeconf
 
Sdec11.agile ina day
Sdec11.agile ina daySdec11.agile ina day
Sdec11.agile ina day
sdeconf
 
D alpert ux101
D alpert ux101D alpert ux101
D alpert ux101
sdeconf
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk android
sdeconf
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azure
sdeconf
 
Booked in agileadoption
Booked in agileadoptionBooked in agileadoption
Booked in agileadoption
sdeconf
 
A baryklo design-patterns
A baryklo design-patternsA baryklo design-patterns
A baryklo design-patterns
sdeconf
 
T bunio active-architecture
T bunio active-architectureT bunio active-architecture
T bunio active-architecture
sdeconf
 
S rogalsky user-storymapping
S rogalsky user-storymappingS rogalsky user-storymapping
S rogalsky user-storymapping
sdeconf
 
L phillips apm
L phillips apmL phillips apm
L phillips apm
sdeconf
 
J wagner security
J wagner securityJ wagner security
J wagner security
sdeconf
 
Friesens agile adoption
Friesens agile adoptionFriesens agile adoption
Friesens agile adoption
sdeconf
 
Dan perron lim
Dan perron limDan perron lim
Dan perron lim
sdeconf
 
D alpert ux102
D alpert ux102D alpert ux102
D alpert ux102
sdeconf
 
Sdec11.agile ina day
Sdec11.agile ina daySdec11.agile ina day
Sdec11.agile ina day
sdeconf
 
D alpert ux101
D alpert ux101D alpert ux101
D alpert ux101
sdeconf
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk android
sdeconf
 
C fowler intro-azure
C fowler intro-azureC fowler intro-azure
C fowler intro-azure
sdeconf
 
Booked in agileadoption
Booked in agileadoptionBooked in agileadoption
Booked in agileadoption
sdeconf
 
A baryklo design-patterns
A baryklo design-patternsA baryklo design-patterns
A baryklo design-patterns
sdeconf
 
T bunio active-architecture
T bunio active-architectureT bunio active-architecture
T bunio active-architecture
sdeconf
 

Recently uploaded (20)

TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 
TrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business ConsultingTrsLabs - Fintech Product & Business Consulting
TrsLabs - Fintech Product & Business Consulting
Trs Labs
 
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdfComplete Guide to Advanced Logistics Management Software in Riyadh.pdf
Complete Guide to Advanced Logistics Management Software in Riyadh.pdf
Software Company
 
How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?How Can I use the AI Hype in my Business Context?
How Can I use the AI Hype in my Business Context?
Daniel Lehner
 
Heap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and DeletionHeap, Types of Heap, Insertion and Deletion
Heap, Types of Heap, Insertion and Deletion
Jaydeep Kale
 
Generative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in BusinessGenerative Artificial Intelligence (GenAI) in Business
Generative Artificial Intelligence (GenAI) in Business
Dr. Tathagat Varma
 
Rusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond SparkRusty Waters: Elevating Lakehouses Beyond Spark
Rusty Waters: Elevating Lakehouses Beyond Spark
carlyakerly1
 
Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.Greenhouse_Monitoring_Presentation.pptx.
Greenhouse_Monitoring_Presentation.pptx.
hpbmnnxrvb
 
Cyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of securityCyber Awareness overview for 2025 month of security
Cyber Awareness overview for 2025 month of security
riccardosl1
 
Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025Splunk Security Update | Public Sector Summit Germany 2025
Splunk Security Update | Public Sector Summit Germany 2025
Splunk
 
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersLinux Support for SMARC: How Toradex Empowers Embedded Developers
Linux Support for SMARC: How Toradex Empowers Embedded Developers
Toradex
 
Big Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur MorganBig Data Analytics Quick Research Guide by Arthur Morgan
Big Data Analytics Quick Research Guide by Arthur Morgan
Arthur Morgan
 
Mobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi ArabiaMobile App Development Company in Saudi Arabia
Mobile App Development Company in Saudi Arabia
Steve Jonas
 
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes Partner Innovation Updates for May 2025
ThousandEyes
 
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdfSAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
SAP Modernization: Maximizing the Value of Your SAP S/4HANA Migration.pdf
Precisely
 
Procurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptxProcurement Insights Cost To Value Guide.pptx
Procurement Insights Cost To Value Guide.pptx
Jon Hansen
 
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptxSpecial Meetup Edition - TDX Bengaluru Meetup #52.pptx
Special Meetup Edition - TDX Bengaluru Meetup #52.pptx
shyamraj55
 
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
AI Changes Everything – Talk at Cardiff Metropolitan University, 29th April 2...
Alan Dix
 
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-UmgebungenHCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungen
panagenda
 
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...
SOFTTECHHUB
 
tecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdftecnologias de las primeras civilizaciones.pdf
tecnologias de las primeras civilizaciones.pdf
fjgm517
 

C fowler azure-dojo

  • 1. Migrating an Application to Windows Azure Cloud Dojo
  • 2. I’m all in. Cory Fowler Consultant, ObjectSharp Microsoft MVP, Windows Azure @SyntaxC4 http://blog.syntaxc4.net gettag.mobi
  • 3. Starter Site: Nerd Dinner ASP.NET MVC SQL Server Entity Framework IIS
  • 4. Resulting Site: Nerd Dinner ASP.NET MVC SQL Azure Entity Framework Windows Azure Windows Identity Foundation
  • 5. A Quick word on Tools
  • 8. Windows Azure Compute JIT Knowledge
  • 9. A Hosted Service is a container for an Application. An Application must consist of at least one Role. A Role is Scalable to meet the demand of traffic.
  • 10. Role Role Role Web Worker VM ASP.NET Long Running Windows Server WCF Process 2008 R2 Fast CGI Emulates Windows Customized Guest OS Services Emulates IIS
  • 11. Application Roles Web Site Web Site Back-End Web Site Web Site Admin Site Services [Web Role] [Worker Role] [VM Role]
  • 12. Convert your Web Application To a Web Role
  • 13. Add Cloud Project 1. Right-Click on Solution File. 2. Hover over Add Menu Item. 3. Click New Project. 4. Select your Language of Choice. 5. Select Cloud. 6. Name your Project and hit OK.
  • 14. Azurify your Web Application 1. Right-Click on Web Project 2. Click Manage NuGet Packages 3. Filter using Azure Web Role 4. Install Windows Azure Web Role Or 1. Open Package Manager Console 2. Type Install-Package WindowsAzure.WebRole -ProjectName NerdDinner PM>
  • 15. Associate your Web & Cloud Projects 1. Right-Click on Roles Folder in Cloud Project. 2. Click Web Role Project in Solution. 3. Select the Nerd Dinner Project from the Dialog. 4. Click OK.
  • 16. What did I just do…? JIT Knowledge
  • 18. Service Definition <?xml version="1.0" encoding="utf-8"?> <ServiceDefinition name="ExploringServiceDefinition" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition"> <WebRole name="" vmsize="ExtraSmall" enableNativeCodeExecution="true"> <!-- ... --> </WebRole> <WorkerRole name="" vmsize="ExtraSmall"> <!-- ... --> </WorkerRole> <VirtualMachineRole name="" vmsize="ExtraSmall"> <!-- ... --> </VirtualMachineRole> </ServiceDefinition>
  • 19. Service Configuration <ServiceConfiguration serviceName="NerdDinner.Cloud" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="2" osVersion="*"> <Role name="MvcWebRole1"> <Instances count="1" /> <ConfigurationSettings> <Setting name="Microsoft.WindowsAzure.Plugins.Diagnostics.ConnectionString" value="UseDevelopmentStorage=true" /> </ConfigurationSettings> </Role> </ServiceConfiguration>
  • 20. public class WebRole : RoleEntryPoint { WebRole.cs // Included in Both Web and Worker Role Template public override bool OnStart() { RoleEnvironment.Changing += RoleEnvironmentChanging; return base.OnStart(); } // Included in Worker Role Template - Still available in Web Role but needs to be overridden public override void Run() { base.Run(); } // Not Included but available in Web and Worker Roles public override void OnStop() { base.OnStop(); } // Is not generated ANYWHERE but SHOULD be Implemented private static void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e) { // If a configuration setting is changing if (e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange)) e.Cancel = true; // Set e.Cancel to true to restart this role instance } }
  • 21. Prepare your Database For SQL Azure
  • 22. SQL Azure  Tables, indexes and views  Stored Procedures 1GB, 5GB 10-50GB  Triggers  Constraints  Table variables, session temp tables (#t) Web Edition Business Edition  Spatial types, HierarchyId  Data Types Feature Set  XML, Sparse Columns, Filestream  Partitions  Full-text indexes  SQL-CLR
  • 23. Attach NerdDinner Database 1. Open SQL Server Management Studio (SSMS) 2. Connect to .SQLExpress 3. Right-Click on Databases 4. Click Attach… 5. Find NerdDinner.mdf in App_Data 6. Click OK
  • 24. Generate Scripts for SQL Azure 1. Right-Click Attached NerdDinner Database 2. Click Tasks 3. Click Generate Scripts… 4. Change Database Engine Type to SQL Azure 5. Click OK 6. Click Finish
  • 25. Connect to SQL Azure https://<servername>.database.windows.net [SSMS]
  • 26. Create SQL Azure Database New-SqlAzureServer -SubscriptionId 1. Sign in to Windows Azure Portal -Certificate 2. Open SQL Azure Section -AdministratorLogin 3. Create Server -AdministratorLoginPassword a) Select Region -Location b) Create Administration Credentials c) Add Firewall Rules 4. Create Database a) Enter Database name b) Click OK 5. Copy Connection String from Properties Powershell for Firewall Rules: http://bit.ly/qCvdpN
  • 27. Run the NerdDinner Scripts 1. Open [ File | Script ] NerdDinner.sql 2. Execute Script
  • 28. Cloud Aware Configuration web .config ConnectionStringResolver .Create() .WithCloudConnectionStringName ("NerdDinnerEntities") .WithLocalConnectionStringName ("NerdDinnerEntities") Cloud .ConnectionString Service .cscfg Get it on GitHub: http://bit.ly/r7Hvj0
  • 29. A Quick Note on Data Migration Tools DTS Wizard (SSIS) http://bit.ly/gzLsl9 BCP Utility http://bit.ly/bQdAIn Import/Export [Blog on Import/Export CTP] SQL Azure Data Sync
  • 30. What About AuthN? SQL Azure Windows Azure Storage Claims Based
  • 31. SQL Membership Approach PM> Install-Package System.Web.Providers Remember aspnet_regsql? Download the Updated SQL Azure supported Scripts http://bit.ly/gB5DIt
  • 32. Windows Azure Storage http[s]://account.*.core.windows.net Account Container Item images BLOB Storage NerdDinner Blobs videos locations TABLE Storage NerdDinner Entities dinners rsvp QUEUE[S] Storage NerdDinner Messages resize
  • 33. ** Experimental ** Windows Azure Storage Membership Approach <membership defaultProvider="TableStorageMembershipProvider"> <providers> <clear /> <add name="TableStorageMembershipProvider“ type="Microsoft.Samples.ServiceHosting.AspProviders.TableStorageMembershipProvider" description="Membership provider using table storage" applicationName="/" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresUniqueEmail="true" passwordFormat="Hashed" allowInsecureRemoteEndpoints="true" /> </providers> </membership> Download ASP.NET Samples: http://bit.ly/pEguoW
  • 34. Claims Based Authentication Windows Azure Access Control Service ACS (v2.0) enables AuthN with:  Active Directory Federation Service [ADFS]  Facebook  Google  LiveID  Yahoo!  WS-Fed  WS-Trust
  • 35. How Does Claims Based AuthN Work? JIT Knowledge
  • 36. Google ID Application 0.2 No Auth 3. Send claims Customer Access Control Services 0.3 Redirect to provider
  • 37. 4. Normalize identity Access Control Services 7. Consume identity Your App Claims Framework 6. Send identity Customer Application
  • 38. ACS Friendly AuthN Screen Changing this… Into this…
  • 39. Create Access Control Namespace 1. Open the Windows Azure Platform Portal 2. Select Service bus, Access Control & Caching from the lower left-hand menu 3. Click New 4. Ensure Access Control is selected 5. Provide a Namespace for your AppFabric Endpoint 6. Click Check Availability 7. Select a Region 8. Click Create Namespace 9. Click on Manage Access Control Service
  • 40. Add an Identity Provider 1. Select Identity Provider (IP) i. Google ii. Yahoo! 2. Click Next 3. Add path to IP Logo 4. Click Save
  • 41. Create Relying Party Application 1. Enter Name 2. Enter Realm [localhost is allowed] 3. Enter Return URL [localhost is allowed] 4. Select SAML 1.1 5. Select Identity providers i. Google ii. Windows Live 6. Select Create new rule group 7. Select Use service namespace certificate
  • 42. Enable Claims-Based AuthN 1. In Visual Studio. Tools > Add STS Reference 2. Ensure the Web.config location is correct 3. Enter the Application Url Requires Windows Identity Foundation SDK
  • 43. Enable Claims-Based AuthN 4. Select Use an existing STS 5. Login to Windows Azure Portal 6. Navigate to ACS Menu 7. Select AppFabric endpoint 8. Click manage ACS Service 9. Click on Application integration 10. Select & Copy WS-Federation Metadata Url 11. Switch back to Federation Utility 12. Paste Endpoint in Textbox 13. Next through the remainder of the Tool.
  • 44. MVC WS-Federation Fix PM> Install-Package SyntaxC4.WindowsAzure.ACSManagement.Mvc <httpRuntime requestValidationType= "SyntaxC4.WindowsAzure.ACSManagement.Mvc.WsFederationRequestValidator" />
  • 45. Include WIF in cspkg Copy Local = True isn’t enough in this case Specific Version must be False
  • 46. Home Realm Discovery Wrapped Up! Home Realm Discovery is the act of retrieving a list of the Identity Providers that are available to your application. PM> Install-Package SyntaxC4.WindowsAzure.ACSManagement public ActionResult LogOn() { var manager = new ACSServiceManager("nerddinnerc4", "http://127.0.0.1:81/"); IIdentityProvider[] providers = manager.GetIdentityProviders<IdentityProvider>(); return View(providers); }
  • 47. Create a Custom Login Screen <ul class="login"> <% foreach (var ip in Model) { %> <li class="login-item"> <object data="<%: ip.ImageUrl %>" onclick="javascript:location.href='<%: ip.LoginUrl %>'"> <a href="<%: ip.LoginUrl %>" class="login-item-link"> <%: ip.Name %></a> </object> </li> <% } %> </ul>
  • 49. Publish to Windows Azure 1. Right-Click on Cloud Project 2. Select Publish… 3. Select <Add…> from Credentials Dropdown list a) Give Certificate a Friendly Name b) Copy Certificate Path c) Upload Certificate to Management Portal d) Paste SubscriptionId into dialog 4. Select Deployment Environment 5. Select Storage Account 6. Select Cloud Service Configuration 7. Select Release Build Configuration 8. Click Publish
  • 51. Next Steps… Geo-Distributed Decrease Latency with with Phone App? Windows Azure CDN Traffic Manager
  • 53. Resources Blog http://blog.syntaxc4.net GitHub http://github.com/syntaxc4 Windows Azure Platform Training Kit http://bit.ly/jXfyyD Windows Azure Powershell Cmdlets http://bit.ly/m75gEc Windows Azure Tools http://bit.ly/miooC4 Cloud Cover Show http://bit.ly/g4nQbT Essential Resources for Windows Azure http://bit.ly/efmzGo