vb实现三层结构及Wcf的入门实例(.net)

更新时间:2024-04-13 04:07:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

网上用vb.net来写三层结构和Wcf的实例不多, 本人最近因为工作需要,简单学习了三层结构和Wcf服务,这里用vb.net (vs 2010)作一个简单实例,希望能帮助一些需要的人快速入门。

网上关于三层结构和Wcf的解释都太专业和高大上,这往往会初学者带来困难。这里用一些个人的理解作一些粗浅说明,各位配合下面的例子写出自己的代码后,再返回去看他们的专业定义,也许会更容易理解些。

所谓三层结构,按我的理解,就是把一个软件的开发,分成三块,一块专门作界面,一块专门作业务流程,一块专门作数据操作。这在团队开发中非常有用,可以分工合作,一人作一部分,将来出错也好查错,维护起来也方便,特别是系统庞大了以后,作用更明显。当然,如果是个人作个小软件,个人觉得什么界面、业务、数据还是放在一起吧,分层浪费的时间更多。

所谓的Wcf,我的简单理解就是为了实现三层结构中的数据层。就是作一个数据操作的DLL,然后在网上发布这个DLL,别人调用这个DLL中的函数来实现功能,而不用管DLL是怎么写的。那为什么不直接在自己的代码中写呢,而是要发布Dll到网上呢?答案是为了数据安全。比如你要调用sql server中的数据库,客户端中如果使用了连接的用户名和密码,别人可以简简单单挂个小程序就把你的用户名、密码就截获了;而使用了wcf,数据库连接语句都是在服务器上进行,客户端只获得了返回的结果,显然就安全多了(平时我们浏览网页也是这种模式),还有一个好处就是如果这个数据的逻辑发生变化,更新服务器的DLL文件就好,不需要再更新客户端了,比如某个算法,由原来的X*0.2调整为X*0.3,这个时候你也要客户端和你一起更新?这显然不经济。当然如果你是作单机版的软件,在本机上运行的,就没有必要学wcf了。下面会讲到Wcf的建立和在IIS 5.1上的发布,大家慢慢往下看。

以下的图例就不再作详细的文字描述了。

一、打开vs 2010,新建一个解决方案,名字为test,存在e:\\mytest下

二、左上角菜单->文件->添加->新建项目->windows->windows窗体应用程序,名称:界

面层

三、左上角菜单->文件->添加->新建项目->windows->类库,名称:业务层

四、左上角菜单->文件->添加->新建项目->Wcf->Wcf服务库,名称:数据层。

五、点击数据层。点击[项目]菜单->数据层属性->将根命名空间改为dal,原因是wcf发布到iis以后,不认中文。

六、改名,将界面层的form1.vb改为Ui.vb,业务层的class1.vb改名为Bll.vb,数据层的IService1.vb改为I_dal.vb,Service1.vb改为Dal.vb,三层结构基本建立完成。

为了实现三层结构,我们按数据层->业务层->界面层的顺序往里面写代码。其中的数据层用到了wcf,篇幅比较大,仔细看好。 七、设置IIS,用于发布Wcf

(1) 打开IIS,选择【默认网站】-属性】-【主目录】-【配置】,看有没有.svc选项,没有

得重装.net framework (2)安装ServiceModel ? 进

C:\\WINDOWS\\Microsoft.NET\\Framework\\v3.0\\Windows

Communication

Foundation

? ServiceModelReg.exe -r (3)ASPNET账户权限分配

? 进入c:\\windows\\microsoft.net\\framework\\v2.0.50727 ? aspnet_regiis.exe –ga ASPNET

(注意:1、上述命令都是在CMD下执行的;2、上述目录路径因系统安装的.net而定,如果没有对应的目录,可以直接搜索C:\\WINDOWS\\Microsoft.NET\\Framework目录,找到ServiceModelReg.exe和aspnet_regiis.exe)

八、开始制作第一个wcf服务。打开数据层的I_dal.vb,先作好接口,见图。

前缀说明是接口,说明是数据协定,简单理解就是自定义类

型,用来做传输的参数。

九、打开数据支的Dal.vb。实现上述接口,语句比较简单,不明白的把代码写进去慢慢看就懂了。 Implements 来实现接口,然后在时面写上处理的语句,这里面是一个用户与口令的判断。

十、右键点击数据层,点生成。再点发布,这里发布到e:\\abc目录

十一、 打开IIS,选择【默认网站】->新建->虚拟目录->输入 Wcf ->选择 e:\\abc

十二、在ie浏览器中输入http://127.0.0.1/wcf/Dal.Dal.svc,出现以下的提示,说明wcf服务已经发布成功。

十三、点击业务层,打开菜单[项目]->添加引用_>项目->数据层,这里主要是要用到自定义类型(数据协定)

十四、点击业务层,打开菜单[项目]->添加服务引用-> 地址输入http://127.0.0.1/wcf/Dal.Dal.svc,命名空间为:wcf

十五、点击界面层,打开菜单[项目]->添加服务引用-> 地址输入http://127.0.0.1/wcf/Dal.Dal.svc,命名空间为:wcf,这里的步骤和业务层的引用步骤是一致的。为什么要进行这一步?因为很奇怪的,界面层引用了业务层的功能,但却不引用它的wcf配置。或许新的vs版本会解决这个问题?图略。 十五、打开业务层的Bll.vb,输入一个函数据F_身份验证,看图,引用了刚才的Wcf服务。

十六、打开业务层的Bll.vb,输入以下代码。

十七、打开界面层的ui.vb,放入一个button,两个文本框txt_姓名,txt_口令。

十八、点击界面层,打开项目菜单->添加引用->项目->数据层、业务层

十八、Ui.vb中输入代码

十九、右键点击界面层->设置为启动项目。

二十、运行,输入用户名:王小二,密码:123,得出结果。

二十一、小结。

三层结构我个人的理解,应该是为了分工,界面归界面,业务实现归业务实现,数据归数据。作一个大的系统时,光靠一个人是时间是太长的,而分工是就了节省时间,同时最重要的是,将来出问题时,维护好维护。而wcf就是实现这个数据模块,不同的是他不在本机上运行,他放在服务器上运行,而本例子就是利用IIS来实现Wcf,这样子,客户端只能得到数据结果,不知道这个数据是怎么来的,提高了数据的安全性。

本文来源:https://www.bwwdw.com/article/mp0p.html

Top