深入体验C - 项目开发- 在线留言簿系统

发布时间 : 星期一 文章深入体验C - 项目开发- 在线留言簿系统更新完毕开始阅读

第2章 在线留言簿系统

2005年12月9日,傍晚,数据库的重要性

静下心细想一下,数据库工作看似比较简单,其实很有技术含量。合理的数据库设计

是一个项目是否高效的基础。所以在进行设计时,C很谨慎、认真,经过4天的努力后才满足他的要求。接下来,需要我自己亲自出马,完成参数设置文件和数据库访问层的设计。

2.5 系统配置设置和数据库访问层

系统配置设置和数据库访问层的工作由我来完成,此步骤是整个项目的基础,项目中的具体功能将以此为基础进行扩展。我深知此步骤的重要性,所以一直通宵达旦,尽力寻求最优方案。

2005年12月10日,上午,多云间阴

拿着A的功能分析、B的规划文件和C的数据库设计,我仔细统筹规划,总结出此过程需要两个阶段,分别需要完成系统配置和实现数据库访问层。

2.5.1 系统配置

经过前面两天的忙碌,总算有了一点成果。经过总体构成功能分析后,接下来就可以根据各构成功能模块进行实质性的工作了。具体有如下两个工作。

? 新建网站项目。 ? 实现。

1. 新建网站项目

实质性工作的第一步是创建一个Visual Studio 2005项目,流程如下。

(1) 打开Visual Studio 2005,选择【文件】︱【项目】︱【网站】命令,在弹出的【新建网站】对话框中创建一个名为“Liuyan”的网站项目,如图2-5所示。

(2) 然后根据2.3.1节中介绍的规划文件,分别创建对应的程序文件,并分别命名。创建完毕后的效果如图2-6所示。

图2-5 新建网站项目

图2-6 Visual Studio 2005解决方案

资源管理器中的程序文件

45

深入体验C#项目开发 2. 配置系统文件

我们的这个在线留言簿项目是由几个程序文件实现的。要想这些程序成功运行,需要一个前提:配置系统文件。在Visual Studio 2005开发ASP.NET程序时,系统配置文件是Web.config,其主要功能是设置数据库的连接参数,并配置了系统与Ajax服务器的相关内容。

1) 配置连接字符串参数

配置连接字符串参数即设置系统程序连接数据库的参数,其对应实现代码如下。

其中,“source”设置连接的数据库服务器;“user id”和“pwd”分别指定数据库的登录名和密码;“database”设置连接数据库的名称。

Web.config文件是ASP.NET的基本文件,通常用于存储系统的公用信息,数据库的连接语句就在里面建立。上述代码是通用的ASP.NET配置代码,但是在ASP.NET代码调试时需要加入如下调试代码。

defaultLanguage=\debug=\/>

设置“compilation debug=\”后就启用了 ASPX 调试。如果将此值设置为“false”,将提高此应用程序运行时的性能。设置为“true”后可以将调试符号(.pdb 信息) 插入到编译页中。因为这将创建执行起来较慢的大文件,所以应该只在调试时将此值设置为 true,而在所有其他时候都设置为false。

2) 配置Ajax服务器参数

配置Ajax服务器参数即配置Ajax Control Toolkit程序集参数,为AjaxControlToolkit.dll程序集提供一个前缀字符串“AjaxControlToolkit”。这样,系统页面在引用AjaxControlToolkit.dll中的控件时,不需要额外添加代码。上述功能在元素内的对应实现代码如下。

2005年12月10日,中午,Web.config文件的重要性

我深刻知道Web.config文件的重要性,在ASP.NET中,资源的配置信息包含在一组配

46

第2章 在线留言簿系统

置文件中,每个文件都名为Web.config。每个配置文件都包含XML标记和子标记的嵌套层

次结构,这些标记带有指定配置设置的属性。因为这些标记必须是格式正确的XML,所以标记、子标记和属性是区分大小写的。标记名和属性名是Camel大小写形式的,这意味着标记名的第一个字符是小写的,任何后面连接单词的第一个字母都是大写的。属性值是Pascal大小写形式的,这意味着第一个字符是大写的,任何后面连接单词的第一个字母也是大写的。但true和false例外,它们总是小写的。总结完毕之后,我决定早点休息,为接下来的数据库访问层设计做好准备。

2.5.2 数据库访问层设计

2005年12月10日,下午,出现阳光,什么是数据库访问层设计

数据库访问层我已经使用了多次,但是其具体是一个什么东西我还是不很明白。带着问题,我在网络中找到了答案:数据库访问层就是实现数据库访问。网络中检索到的信息如下。

数据库访问层:有时也称为是持久层,其功能主要是负责数据库的访问。简单的说法就是实现对数据表的 Select、Insert、Update、Delete的操作。如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。

我编写了文件lei.cs,实现应用程序的数据库访问层。文件lei.cs的主要功能是,在ASPNETAJAXWeb. AjaxLeaveword空间内建立Message类,并实现对系统库中数据的处理。上述功能的实现流程如图2-7所示。

图2-7 数据访问层实现流程图

2005年12月15日,傍晚,数据访问的方式

数据库访问层是.NET框架的核心知识,建立合理的数据库访问层结构,可以提高系统的效率,并为后期维护带来极大的方便。通过实现数据的访问模式,可达到对物理数据库中的表、视图等的访问。应用程序对数据库的访问有以下3种方式。

(1) 事务脚本:存储过程。 (2) ORM:对象-关系映射。

47

深入体验C#项目开发 (3) 表模型:以物理数据表为基本单位进行访问,类似 .NET中的DataTable。

而我的想法是:在.NET中第三种方式更容易实现。因为表和视图有很多相似点,不同的是视图是只读的。通过表模型,可以很好地解决实现层和表现层的结合问题,并解决效率问题,这在大型站点中十分重要。

下面介绍文件lei.cs的具体实现流程。

1. 定义Message类

定义Message类的实现代码如下。

using System;

using System.Data;

using System.Configuration; using System.Data.SqlClient;

namespace ASPNETAJAXWeb.AjaxLeaveword { public class Message { public Message() { … } }

2. 获取系统内留言信息

获取系统内留言信息即获取系统库内已存在的留言信息,其功能是由方法GetMessages()实现的。方法GetMessages()的具体实现流程如下。

(1) 从系统配置文件Web.config内获取数据库连接参数,并将其保存在connectionString内。 (2) 使用连接字符串创建con对象,实现数据库连接。 (3) 新建获取数据库留言数据的SQL查询语句。 (4) 创建获取数据的对象da。

(5) 打开数据库连接,获取查询数据。

(6) 将获取的查询结果保存在ds中,并返回ds。 上述功能的对应实现代码如下。

public DataSet GetMessages() { ///获取连接字符串 string connectionString = ConfigurationManager.ConnectionStrings [\ ///创建连接 SqlConnection con = new SqlConnection(connectionString); ///创建SQL语句 string cmdText = \ ///创建SqlDataAdapter SqlDataAdapter da = new SqlDataAdapter(cmdText,con); ///定义DataSet DataSet ds = new DataSet();

48

联系合同范文客服:xxxxx#qq.com(#替换为@)