构建asp

构建asp_net逻辑构件库
概要
使用asp.net开发高重用,松耦合,框架良好的web 应用程序。并且可以形成高可用的构件库。

对象
本文主要针对使用asp.Net开发BS系统的开发人员、项目经理以及负责软件质量的领导。

背景以及解决之道
背景,应用软件的特点:1、看重业务,业务繁杂,客户独特要求很多,版本众多,有些公司对每个客户都要产生一个新的版本,很少有人了解所有版本之间的差别,如此之多的版本成为公司的繁重负担,2、产品功能耦合严重,功能很难复用,3、软件修改任务繁重,也许这是最让人头疼的,一个项目开发完之后,客户不断的提出修改意见,很多开发人员长期的陷入修改任务中。这些特点和问题使公司开发部门象雪球一样越滚越大,工作量越来越重。

解决之道:

针对以上问题,应用软件开发可以使用以下方法解决问题:

1、 提取构件,提高重用。

2、 界面换肤,容易修改,界面多变。

3、 脚本传参,避免耦合。

内容
框架:包括页面、构件库、数据组件库、数据组件工厂四个部分。页面负责网站整体外观并且加载构件库,构件库提供逻辑功能,数据组件库提供业务数据、数据组件工厂负责生成数据对象。这四个部分可以概括为两库两纽带。页面是构件库和用户的纽带,数据组件工厂是构件库和数据组件的纽带。

1、 页面
页面负责网站整体外观并且加载构件库。

页面是网站整体UI的表现,主要工作是图片制作,页面切割,加载构件,并且给构件传递参数,并且要负责网站导航。

分工: 美工和熟练html的人员开发。

2、 构件库
这个是框架的核心,我们使用用户控件(user control )可以方便,快捷的完成这3点:

1、提取构件,提高重用。

2、界面换肤,容易修改,界面多变。

3、脚本传参,避免耦合。

1.提取构件,提高重用。

把有一定逻辑功能的处理部分封装成用户控件,这很容易,主要是怎么重用,一般我们主要在同一个工程中使用用户控件,但是只有跨工程使用,才能实现重用,其实,codeBihand技术是一种继承关系,用户界面继承自类库,所以把用户控件所在类库引用到工程中,并且把用户控件的ascx代码放入工程下的目录中,就可以像使用同一个工程中的用户控件一样了。

另外,如果需要调试,可以源代码放入用户控件所在目录,即可跟踪调试。

2. 界面换肤,容易修改,界面多变。
用户控件的界面很容易修改,这个也要深刻理解CodeBihand技术,多个ascx文件(控件ui代码)可以对应同一个cs文件(控件类代码)。我们也需要这样做,例如:

这是一个登录构件,功能是接受用户输入,验证用户,返回登陆信息,如果成功,导向其他页面。 这个构件完成之后,我们发现还需要一个能够放在导航条上的登陆构件,这是我们有3个选择,1,新建一个,复制代码,代码复用,不过代码重复带来到的问题是相当麻烦的。2,扩展构件功能,通过一个参数决定怎么显示。这有一个问题,要修改程序,是程序变得复杂,并且使用代码控制显示往往在以后的维护阶段很麻烦,动不动就需要修改程序,3,作一套皮肤,程序员轻松了,代码不用改动,并且皮肤是可以方便修改的,维护也容易。

这个就是导航条上的登陆构件。

让这2个UI部分对应同一cs代码,是个好主意。

在Microsoft Visual Studio .NET 2003开发工具中,对这个支持的不是很好,它没有很好的对这种代码的组织形式,看上去其中一个控件的cs代码好像丢了一样。如图:

GCon_lineLLogin.ascx 的代码看上去关联不上,不过不影响使用。

可能是微软也没有想到,不过我们确实需要这样用,并得到了实惠。

分工:软件工程师在经过详细设计,功能划分,并且开发出构件,可能不是很美观,然后,美工可以拿走构件的皮肤,制作出多套不同皮肤的构件。而构件的编码只有一份,这样,即实现了构件的多样化,又避免了多个版本的产生。

3、 脚本传参,避免耦合。

控件的使用就必然涉及到与其他控件和页面的交互问题。对于大部分用户控件,它与页面和其他用户控件的交互并不是很复杂,比如上面的登录控件,仅仅需要知道登录成功后,要显示那个页面,对于这种简单的交互就要使用脚本传递参数,就是在页面中书写代码,而不使用codebihand技术。在页面上写的代码更容易改变,降低了强耦合。

下面看一看怎么写脚本代码:

通过分析,发现页面部分与codebihand代码是中继承的关系。所以我们就可以重载OnInit()方法。在页面开发执行是就加入我们的操作。采用这种方式传递参数,在任何时候改变这个参数的值都很方便,程序也不需要编译。

错误的做法,在用户控件中直接决定导入哪个页面,不留参数,这个用户控件会因为这个小小的举动,完全失去灵活性,也失去了重用的可能。

附加:

用户构件的活用,

asp.net 用户构件的作用非常大,用户构件首先是一个服务器构件,它具有服务器端的构件的优点,另外开发方便,非常适合应用软件开发者的需要。

要想活用用户构件,需要了解以下几点:

1, 深入了解Codebehind,它带来的不仅仅是像开发win form 程序一样开发应用。

2, 尝试给用户构件加属性,事件,方法。充分扩展和理解用户构件的功能。

3, 尝试让用户构件继承一个自定义的接口,接口是非常强大的,我们不得不用。

4, 动态加载用户构件。同一个页面上的多个用户构件可以全部是动态加载的。

5, 加载使用另一个dll中的用户构件,这中可以重用用户构件, 构建我们自己的构件库的基础。

6, 让美工给一个编译好的用户空间更护不同的皮肤(编辑ascx中的html代码即可),可以发现因为ascx代码的改变,用户构件将有各种各样的面孔,形成多样的界面系列。

7, 不通过改变页面的cs代码给用户构件传递参数,这样就可以实现构件和页面的松耦合,页面上添加,减少构件, 传递参数,统统不编译程序。

总结:

使用C#开发业务构件和构件工厂,这里暂时没有写出, asp.net构件库和业务构架库共同配合可以统一完成优质的开发流程,包括美工和程序员的分工,形成美工素材库等,积累起公司的资源。

时间: 2024-10-31 00:34:52

构建asp的相关文章

在Dreamweaver中构建ASP.net开发环境

asp.net|dreamweaver 在开发网站,特别是开发网络数据库之前,首先应该认真构建好 Dreamweaver MX 2004+ASP.NET 开发环境.本例将向读者介绍如何在 Windows XP 操作系统下构建开发环境. 操作步骤 ( 1 )单击[开始]→[控制面板]. ( 2 )在弹出的[控制面板]窗口中双击[添加或删除程序]按钮图标,在弹出的[添加或删除程序]对话框中选择安装 IIS 服务器. ( 3 )安装好 IIS 服务器后,在[控制面板]窗口中单击管理工具,然后在弹出的[

构建ASP.NET网站十大必备工具

构建ASP.NET网站十大必备工具 最近使用ASP.NET为公司构建了一个简单的公共网站(该网站的地址:http://superexpert.com/).在这个过程中,我们使用了数量很多的免费工具,如果把构建ASP.NET网站的必备工具总结一下,将会是一件十分有趣的事情.这些工具既支持ASP.NET Web Forms又支持ASP.NET MVC. 性能工具 读了两本关于网站的前端性能的书(这两本优秀的图书分别是:<High Performance Web Sites> 和 <Even

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(5)-EF增删改查by糟糕的代码 上一讲我们创建了一系列的解决方案,我们通过一个例子来看看层与层之间的关系. 我们把Controllers分离出来了BLL层和DAL层 BLL专注于业务上的处理 DAL专注于数据访问层的处理 而Controller跟清楚的与View交互 我们上一讲已经在EF添加了一个实体SysSample 下面我们创建IDAL,DAL,IBLL,BLL的代码吧 using App.Mod

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(2)-easyui构建前端页面框架[附源码] 开始,我们有了一系列的解决方案,我们将动手搭建新系统吧. 用户的体验已经需要越来越注重,这次我们是左右分栏,左边是系统菜单,右边是一个以tabs页组成的页面集合,每一个tab都可以单独刷新和关闭,因为他们会是一个iframe 工欲善其事必先利其器.需要用到以下工具. Visual Studio 2012 您可以安装MVC4 for vs2010用VS2010

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(3)-漂亮系统登陆界面

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(3)-漂亮系统登陆界面 良好的登录页面是系统的唯一入口,良心说,我是很难做出漂亮的登录界面,所以有点违背本文的标题,因为我不是一个美工.汗..! 第二讲我已经发布了源码,我们添加一个Account空控制器,虽然后台未实现,但是以后我们就要用到了. 添加index视图,以下代码 @{ Layout = null; } <!DOCTYPE html> <html> <head> &

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(16)-权限管理系统-漂亮的验证码   我们上一节建了数据库的表,但我发现很多东西还未完善起来,比如验证码,我们先做好验证码吧,验证码我们再熟悉不过了,为了防止恶意的登录,我们必须在登录页面加入验证码,下面我将分享一个验证码,这个是用C#画的,原理是,生成一个随机4位数,将其保存为session或者是cookie形式,将用户输入的验证码进行对比, 验证码可以是一个视图cshtml,或者是一个aspx页面

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(14)-系统小结 不知不觉已经过了13讲,(本来还要讲多一讲是,数据验证之自定义验证,基于园友还是对权限这块比较敢兴趣,讲不讲验证还是看大家的反映),我们应该对系统有一个小结.首先这是一个团队开发项目,基于接口编程,我们从EasyUI搭建系统的框架开始,开始了一个样例程序对EasyUI的DataGrid进行了操作,并实现Unity的注入到容器,使程序 的性能大大提升,代码质量上升,更佳利于单元测试,使用

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(28)-系统小结 我们从第一节搭建框架开始直到二十七节,权限管理已经告一段落,相信很多有跟上来的园友,已经搭配完成了,并能从模块创建授权分配和开发功能了 我没有发布所有源代码,但在14节发布了最后的一次源代码,之后的文章代码是完整的. 注:以后不会发布打包的源代码,我发布文章是献给想学习MVC的朋友,并不是共享结果的源代码,请大家不要再找我要 我们采用VS2012+MVC4+EF5+Unity(IOC)

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码]

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(32)-swfupload多文件上传[附源码] 文件上传这东西说到底有时候很痛,原来的asp.net服务器控件提供了很简单的上传,但是有回传,还没有进度条提示.这次我们演示利用swfupload多文件上传,项目上文件上传是比不可少的,大家这个心里都知道.主要提供给源码说明及下载 最终效果图: SWFUpload的特点: 1.用flash进行上传,页面无刷新,且可自定义Flash按钮的样式; 2.可以在浏

构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(21)-权限管理系统-跑通整个系统

原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(21)-权限管理系统-跑通整个系统 这一节我们来跑通整个系统,验证的流程,通过AOP切入方式,在访问方法之前,执行一个验证机制来判断是否有操作权限(如:增删改等) 原理:通过MVC自带筛选器,在筛选器分解路由的Action和controller来验证是否有权限. 首先我们要理解一下筛选器 筛选器的由来及用途有时,您需要在调用操作方法之前或运行操作方法之后执行逻辑. 为了对此提供支持,ASP.NET MV