介绍ASP.NET Provider |
本文标签:ASP.NET Providers ASP.NET Providers 相信大家都已经非常熟悉,它为我们开发 ASP.NET 应用程序提供了方便 。 比如在 Visual Studio 控件工具箱中的 Login 部分,就是基于 Membership provider、Session provider 和 Profile provider,大大地简化了我们在开发过程中处理与用户相关的功能 。
ASP.NET Provider 的类结构图 Azure 上的应用程序也是 ASP.NET 应用程序,所以它也支持 ASP.NET Provider 模型 。不同的是,我们平时用的 Provider 是基于关系数据库的(如SQL Server),而“云端”上 Provider 自然也需要使用“云端”的数据解决方案——Windows Azure Storage 。 云平台是基于分布式计算的 。这就意味着,你的同一个应用程序可能会分布在不同的机器上 。所以包括 Session 在内的各种用户数据不能放在 host 主机上,必须通过 Windows Azure Storage 来统一管理 。 微软认为:基于 Windows Azure Storage 的 provider 比传统SQL provider 具有以下优势: 在保持与 SQL provider 完全相同的使用方法(不用做任何代码修改)的基础上, 并行处理更强悍 。 Azure Provider 的原理 在 Windows Azure SDK(March 2009 CTP)中,微软已经提供了可直接使用的 Azure 版 ASP.NET Provider 。包括 membership, role,profile,session state 4 种providers 。 打开 Azure 版 ASP.NET Provider 项目,非常一目了然 。以下的 4 个文件与 4 种 provider一一对应 。 拿 TableStorageMembershipProvider 来说,它其实是继承了 MembershipProvider 类,override 了 MembershipProvider 类里与数据操作相关的方法,将它们换成使用 Windows Azure Table Storage 版本的 。 public class TableStorageMembershipProvider : MembershipProvider配置使用 AzureProvider: 刚才说了,从传统的 SQL Provder 转换到使用 Azure Provider,不用做任何代码上的改动,只需要更改配置文件就可以了 。 |