【原文】The Differences Between Development on Windows Azure and Windows Server
摘要
Azure的架构和状态管理
对于架构的考虑,普通的ASP.NET应用与在Azure上的没有什么不同,一些重要的包括:
- 整个程序的架构,如n层的还是面向服务的(n-Tier or SOA),代码存在并运行在哪里。
- 定义那些层是服务层,哪些是面向用户的(customer facing)。
- 数据存储在哪。
- 状态管理以及性能。
- 安全。
已经运行在IIS上ASP.NET应用如果要迁移到Azure,可参考 Azure Application profile guidance [PDF]。
状态管理是ASP.NET开发人员经常面对的比较棘手的问题,尤其是考虑到性能以及可扩展性时。Azure上的缓存机制请参考 differences between caching on-premise and Azure caching。对于ASP.NET页面输出缓存(output cache)可以用output cache provider for windows Azure。如果用了Session,那么Azure上可以用session state provider for Windows Azure。ASP.NET的Provider架构使得应用迁移到Azure上很方便。更多有关缓存信息,参考Windows Azure Caching Services。
工具及项目类型的区别
对于ASP.NET Web Forms和ASP.NET MVC开发人员来讲,开发工具上不会感觉有什么大的不同,参考get started with the Windows Azure tools。需要安装Windows Azure SDK for .NET,其中包含了Windows Azure Tools for Visual Studio。本地开发时要使用 Windows Azure developer emulator来运行你的程序,而不是VS内置的ASP.NET development Web server或IIS Express。
Azure上的ASP.NET应用程序一般分为两类,Web Role和Worker Role,VS里包括了这2类的项目模板。Azure的项目模板其实就是标准的ASP.NET Web Forms或ASP.NET MVC项目,只是引用了Microsoft.Windows Azure和其他一些相关的命名空间,.config配置文件里包含了一些部署到Azure上所需要的配置。
部署(Deployment)、诊断(Diagnostics)及Instrumentation、Monitoring、QOS(Quality of Service)、Uptime(保证正常服务时间)等方面的不同,请见原文。