1. Overview of Windows Azure. 2. Using the virtual machine with the Windows Azure SDK. 3. Creating a cloud service project. 4. Adding web roles and worker roles. 5. Azure service definition and service configuration. 6. Input endpoints (HTTP and HTTPS) and multiple role instances. 7. Custom ASP.NET Session provider that uses Azure storage. 8. Azure Storage client library. 9. Azure storage - blobs, queues and messages. 10. Development fabric. 11. Development storage. 12. Writing to the Azure log. 13. Loading parameters when your role starts. 14. Running roles in full trust.
Note: we lost sound in the last 25 minutes - you get the Allman brothers instead. 15. Worker Role health status. 16. Custom ASP.NET Session provider that uses Azure storage - configuration in both Azure files and web.config/app.config. 17. Windows Azure portal. 18. Windows Live IDs and Azure CTP. 19. CS (Cloud Service) packages and Azure configuration. 20. Azure Storage Accounts. 21. Azure Staging and Production Environments. 22. Deployment IDs. 23. Staging DNS entries. 24. Upgrade/Run/Suspend/Configure/Delete commands. 25. Initialized/Running/Stopped/Paused role instance states. 26. Billing considerations when instances are deployed. 27. Azure Storage Manager. 28. Custom error pages in ASP.NET. 29. Azure training kit labs. 30. Azure links. 31. Azure Service Management API. 32. Azure SDK Tools documentation and CSPack/CSRun Azure command line tools. 33. Doing a Staging Upgrade. 34. Serving dynamic compressed content in Azure and bug on Microsoft Connect.
35. Using the Windows Azure forums and getting feedback from Microsoft employees. 36. Loading parameters when role starts. 37. Using reflection to log the role's version. 38. Page_Init() calls that should always be made.
39. Unhandled exceptions and custom errors in Web.Config. 40. Handling Upgrades: making sure the roles properly act when we are upgrading SQL Azure. 41. Loading a Windows Azure Storage Queue endpoint (QueueEndPointURI, AccountName, AccountSharedKey, StorageAccountInfo). 42. Creating a persistent and stateless Azure Storage Queue (QueueStorage and MessageQueue). 43. Adding an event to a queue in a web role. 44. Handling the event from a queue in a worker role. 45. Properly returning RoleStatus.Healthy or RoleStatus.UnHealthy in a worker's role GetHealthStatus() to allow for better monitoring of our role instances. 46. Considerations in removing a message from a queue when an error occurs (examples where message should be deleted and should not be deleted when sending out an email). 47. Logging Levels in the Development Fabric UI (Critical, Error, Warning, Information and Debugging). 48. Windows Azure Storage labs in the Azure training kit (to cover blobs and tables). 49. DNS considerations with Windows Azure URLs (CNAME entries). 50. Self signed SSL certificates for Windows Azure development (see Azure Links, OneNote required). 51. Adding purchased SSL certificates to your Windows Azure project.
52. Overview of SQL Azure. 53. Warning on name changes and confusing documentation (e.g. SQL Azure was previously called "SDS", SQL Data Services). 54. SQL Azure CTP limits: 5 databases, 10 GB per Windows Live Account. MyCalyx Windows Live account: cloudservice2@calyxsoftware.com 55. SQL Azure Connection Strings for ADO.NET, ODBC, and OLE DB. Our ORM of choice, .netTiers, uses the ADO.NET connection string. 56. The "sa" account in SQL Azure. 57. Using SQL Management Studio to manage SQL Azure databases. SQL Azure server names, errors and warnings to currently ignore. 58. TDS - Tabular Data Stream protocol on port 1433. 59. Useful "manual" SQL statements. 60. Cleaning up SQL scripts for SQL Azure - including link to my blog entry. 61. Another blog entry I wrote with PowerShell scripts to clean up SQL scripts for SQL Azure: http://blog.ehuna.org/2009/08/windows_powershell_commands_to.html 62. Creating new databases in SQL Azure - having separate SQL Azure databases for Staging and Production. Continue using on-premise SQL Server for development. 63. Types of SQL Azure databases when v1.0 rolls out: Web Edition (1 GB max, $9.99/month) and Business Edition (10 GB max, $99.99/month). 64. Creating a specific Login and User for every database (do not use the "sa" account). 65. Creating a sample database (TESTDB1) on an on-premise SQL Server 2008 Standard and deploying it to SQL Azure. 66. Important: you need at least one primary key - clustered index - before you can insert any records in a SQL Azure table (good and also works well with the .netTiers model). 67. Options to change in SQL Server Management Studio > TESTDB1 > Tasks > Generate Scripts (due to currently unsupported features in SQL Azure). 68. Handling SQL Azure timeouts in SQL Server Management Studio. 69. A better way: the new "SQL Azure Migration Wizard" released on CodePlex. Installing it, configuring it and using it. Automatic cleaned up scripts for SQL Azure including tables, stored procedures, primary keys, foreign keys, indexes, etc. 70. RedGate SQL Compare and my suggestion for a version that works with SQL Azure.
Update 1/27/2010: David A. from Red Gate has announced that they now have an early access build of SQL Compare that works with Azure! You can find the announcement at the bottom of this thread:
I highly recommend Red Gate’s SQL Compare – it’s an amazing product that has literally saved me hundreds of hours. You can download a free trial here and request the SQL Azure early access build here: http://www.red-gate.com/Azure
Good Times!
71. Strategies for deploying a database on SQL Azure (first time) and options for schema changes and upgrades in future versions.
72. Overview of CodeSmith (http://www.codesmithtools.com/) and my favorite ORM tool, .netTiers (http://nettiers.com/) 73. Important .netTiers configuration settings - source database, output directory, enterprise library version, executing the SQL, SQL Server 2005 database features, layer names, and SignAssembly. 74. Creating the Business Logic Layer (BLL) and Data Access Layer (DAL) for our previously TESTDB1 sample database. 75. The .netTiers report: which C# classes were created - with one table we got 64 objects + all of the Stored Procedures. 76. Compiling the generated business layer. 77. Copying the binaries (compiled DLLs) to a middle tier folder in source control. Makes it easier for other developers to use our projects. 78. Adding references to the middle tier DLLs to your Windows Azure projects so they are properly deployed to Staging/Production. 79. The .netTiers SQL Client provider and configuration settings in Web.Config (or app.config). 80. Using .netTiers dynamic connections to connect to a SQL Azure database at runtime. 81. Sample ASP.NET page that uses DataRepository to bind records from sample table (TstMessages) in TESTDB1. Also uses Ajax (update panel and trigger). 82. Idea: sub-classing the System.Web.UI.Page to automatically check if parameters are loaded, check on upgrades and create the .netTiers dynamic connection string. 83. Loading the netTiersConnectionString from Windows Azure configuration. 84. Using a short constant for the dynamic connection string name (to simplify the already elongated code). 85. .netTiers community forums and a thread I started on dynamic connection strings. We get a tip on how to modify the .netTiers templates to add built-in support for Windows Azure and SQL Azure.
86. Modifying the .netTiers templates to read the SQL connection string from Windows Azure configuration instead of Web.Config (or app.config). 87. How the code looks in the ASP.NET page - it doesn't change, it's the same "DataRepository.MyTableProvider" code we've used in the past. 88. Changes in the DataRepository.cst template - changing the ConnectionString collection. 89. Making sure all .netTiers templates use "connectionString" from this collection. 90. The process of creating custom features in CodeSmith templates: first make the changes in the code, then make the changes in the templates. 91. Details of what was executed to modify the .netTiers 2.3 templates to support reading the netTiersConnectionString from Windows Azure configuration using the Windows Azure SDK v1.0. We now have a "IsConnectionStringAzure" property in the main NetTiers.cst templates!
Subscribe to the blog feed and you will automatically receive Emmanuel's latest screencasts as soon as he posts them.
Click on one of the following buttons to add this blog/podcast feed to your favorite application: