微软已经发布了适用于ASP.NET 4.5的数据访问指导。大部分变更都与ASP.NET 4.5的新功能有关,例如在Web Form(窗体)、及新的ASP.NET Web API方面的变更。
一些出自该指导的注意事项——
- 要尽可能与ASP.NET Web Form(窗体)及MVC一起使用ORM,而不要直接(通过Database helper)在ASP.NET Web Page(网页)中使用ADO.NET。
- 适用于WebForm的数据控件
- 为了显示单条记录(Single Record) ——应使用FormView控件以便自定义生成的HTML代码;要想最大限度地发挥HTML代码生成自动化,就用DetailsView控件吧
- 为了显示列表(List)—— 应使用ListView控件以便自定义生成的HTML代码;尽管Repeater控件也适用于自定义HTML代码,但仅限只读访问(read-only access)情况下使用,并且效率更高(不过高级功能较少);而GridView控件则适用于最大限度地发挥HTML代码生成自动化
- ASP.NET Web Form(窗体)数据绑定方法——
- 数据源(Data Source)控件适用于不写任何代码的简单绑定情形
- 模型绑定(Model Binding)适用于编写数据检索及更新代码具有可行性的情形
- 手动数据绑定(Manual Data Binding)适用于需要精细控制绑定操作、抑或不支持模型绑定的情形
- 数据绑定表达式(Data-Binding Expression)
- 适用于弱类型数据的Eval(计算)及Bind(绑定)
- 适用于强类型数据的Bind(绑定)及BindItem(绑定项)
- 在开始分隔符中使用冒号(<%#:)以便启用自动HTML编码(HTML-encoding)
值得一提的是,有个指导针对的是,在WCF数据服务(Data Service)与ASP.NET Web API之间如何选择你的web服务。——
要是你希望通过HTTP协议快速暴露某个数据库,以便在公司内部网络的防火墙内使用该数据库,就该选择WCF数据服务。
与此相反,由于白名单方法比黑名单方法更安全,因此对于基于Internet的服务就应选择Web API。
WCF使用黑名单方法进行安全限制(默认情况下所有内容都可用),而Web API却使用白名单方法(默认情况下无内容可用)
在MSDN上有很多涉及不同场景的演练——有关更详细信息,请参见MSDN。