您的位置:首页 > 数据库

在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)

2008-07-09 22:18 1006 查看
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 5)


设计开发表现层

表现层负责应用程序的用户界面,图4.1是表现层的详细视图,包括Web Forms, Web User Control, Code-Behind 和共享的用户界面代码。表现层负责推送信息给终端用户和应用程序。在基于.NET的WEB应用程序中,这一层有.aspx / .ascx / .cs / .vb / web.config / .xml / .js / .resx / .css 等等。所有的这些文件集成在一起组成了表现层,提供给用户友好的界面。


图4.1:表现层 – 详细视图

ASP.NET 为web页面的开发提供了丰富的控件,通过这些控件,我们可以开发出可视化的界面和功能。在本示例程序中,表现层包括一个WebForm和一个Web User Control,使用GridView / DetailsView 控件给用户提供友好的界面,实现基本的功能,如查询、插入、更新和删除等等操作。下面展示部分HTML脚本和code-behind代码,这些脚本用来在GridView中显示数据。可以了解如何通过LINQ访问Table对象:

代码片段1.3:用户界面-HTML
[align=left] <asp:GridView ID="gvCustomer" runat="server" Width="100%" AutoGenerateColumns="False"[/align]
[align=left] AllowPaging="True" DataKeyNames="CustomerID" [/align]
[align=left] onpageindexchanging="gvCustomer_PageIndexChanging" [/align]
[align=left] onrowediting="gvCustomer_RowEditing" >[/align]
[align=left] <FooterStyle CssClass="GridFooter"></FooterStyle>[/align]
[align=left] <RowStyle CssClass="GridItem"></RowStyle>[/align]
[align=left] <AlternatingRowStyle CssClass="GridAltItem"></AlternatingRowStyle>[/align]
[align=left] <HeaderStyle CssClass="GridHeader" HorizontalAlign="Left"></HeaderStyle>[/align]
[align=left] <Columns>[/align]
[align=left] <asp:BoundField DataField="CustomerID" HeaderText="客户ID" />[/align]
[align=left] <asp:BoundField DataField="CompanyName" HeaderText="公司名称" />[/align]
[align=left] <asp:BoundField DataField="ContactName" HeaderText="联系人" />[/align]
[align=left] <asp:BoundField DataField="ContactTitle" HeaderText="联系人头衔" />[/align]
[align=left] <asp:BoundField DataField="Address" HeaderText="地址" />[/align]
[align=left] <asp:CommandField ButtonType="Link" HeaderText="选择" ShowEditButton="true" EditText="选择"[/align]
[align=left] CausesValidation="false" />[/align]
[align=left] </Columns>[/align]
</asp:GridView>

代码片段1.4:code-behind
[align=left] private void BindGridView()[/align]
[align=left] {[/align]
[align=left] Table<Customer> localDataTable;[/align]
[align=left] localDataTable = objCustomer.SelectRecordAll();[/align]
[align=left] [/align]
[align=left] gvCustomer.DataSource = (from tbl in localDataTable[/align]
[align=left] select new[/align]
[align=left] {[/align]
[align=left] tbl.CustomerID,[/align]
[align=left] tbl.CompanyName,[/align]
[align=left] tbl.ContactName,[/align]
[align=left] tbl.ContactTitle,[/align]
[align=left] tbl.Address[/align]
[align=left] });[/align]
[align=left] gvCustomer.DataBind();[/align]
[align=left] [/align]
[align=left] if(localDataTable.Count() == 0)[/align]
[align=left] {[/align]
[align=left] lblMessage.Text = "没有找到记录!";[/align]
[align=left] }[/align]
}

上面的代码是Web页面后台代码,该代码调用业务外观层的SelectRecordAll()方法,该方法返回Table集合记录。然后查询Table集合,绑定返回结果到GridView。
注:表现层没有实现任何业务逻辑或数据访问逻辑,因此它仅仅包含用户界面代码。在表现层和业务外观层编写代码时,确保不要创建DataContext类的实例,仅仅创建业务实体类的示例。

当完成这些后,现在你可以看看你做了哪些工作。下面是Customer 的Web界面:


图4.2:Customer用户界面


总结

希望你已经了解了如何使用LINQ创建Web应用程序。这篇文章是作者使用LINQ进行N-Tire架构设计的分析和经验。使用LINQ to SQL可以减少大量的数据库操作代码,同时减少应用程序的开发时间,减少编码错误和是应用程序的维护更加容易。

最后,LINQ to SQL 对传统ADO.NET编程说“不”!

EntLib.com 开源小组注:本文翻译《Building Multi-Tier Web Application in .NET 3.5 Framework Using LINQ to SQL》。现已全部翻译发布。文章中对于LINQ 在多层/三层Web应用程序的应用作了详细的介绍,但EntLib.com开源小组 针对LINQ 的使用有自己的见解和想法。随后,EntLib.com 开源小组会单独发表文章进行阐述。

上几篇文章:
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 1)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 2)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 3)
在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统 (Part 4)

欢迎各位发表意见和一起探讨!谢谢!

***********
即将提供LinqWebApp - 《在.NET 3.5 平台上使用LINQ to SQL创建三层/多层Web应用系统》项目源代码下载!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SQL to ASP.NET LINQ 3.5 N-Tier
相关文章推荐