另类的ASP.NET快速开发架构体系(上)

发表于:2012-2-28 09:34

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:秦时明月    来源:51Testing软件测试网采编

  第一部分 另类的MVC架构JVPL架构

JVPL模式的系统结构图

  1、JVPL模式(JSON+视图+处理器+加载器)

  1)定义:

  JVPL和mvc设计模式类似,一个变种的MVC设计模式。

  2)MVC的优弱点:

  MVC让开发从原来的 webform中解脱出来,解决了层次清晰逻辑与UI的隔离以及服务端控件的一些瑕疵等诸多问题,但是MVC的弱点同时也存在。在MVC中我们的Model时常变动,我们必须手动创建Model类和Model的变动修改。同时对于 Model的Action控制操作也需要一定程度上的变动。(由实体框架等生成的实体(Model)是无法满足现行逻辑需求的)。

  其次因为实际开发中没有银弹,只有平衡点。V,C之间的逻辑紧密,然而实际的前台实现和效果需求是变化莫测的, 更加导致美工决定VC的局面,从而VC的重用性很低很低。如果一个页面存在多个视图,那么其逻辑就相对不易(我们需要维护多个VC组,我们需要处理VC组的一定逻辑次序,构造不同的Model)。

  3)JVPL设计模式的优势

  (1)JVPL(json-视图-处理器--加载器),如上图所示。如果我要视图重用我只要载入所需视图和加载器即可。var 新的视图=get(“加载器”,“视图”); 且Moon。net架构会接着脚本引擎帮助我们生成后台所需代码。

  (2)整个JVPL模式建立建立在Ajax的机制上,它具有Ajax所有的优缺点。(但我认为Ajax的优点>>缺点,且我们可以通过手段解决这些缺点)。正如有人说Ajax不安全,因为暴露了系统服务接口,这完全废话,难道纯的form提交就没有暴露?这些都是门外汉说的话,因为根本的权限机制都没有建立。接着说,正如前面文章提到的视图数据的加载。如果我前台的逻辑变动系统的逻辑变动,这是Moon。Web会辅助我们生产新的后台代码。 如果一个页面存在多个视图,那么这多个视图的加载,我们通过加载器直接调度即可。因为脚本引擎的存在,它会帮助我们生成后台代码和数据分配及数据转发。Moon。NET中最为精华的部分就是脚本引擎。它也是我们提高开发效率的关键。

  (3)在我们的开发中,前端展现的标准是由策划及美工定的,所以作为一个开发者还是架构师必须紧密结合实际进行架构或开发。这样才能提高开发效率。 Moon。Web主要对复杂的UI控件诸如:编辑器,分页,异步文件上传......等控件进行了封装且提供了美工可控制接口。因为MVC的控件方法也是一样的。

  2、JVPL设计模式的demo实例

  说明:JVPL设计模式与传统的ASP。NET开发完全兼容,且符合MVC的设计理念。

  实例一:程序配置

  -------------------------------------配置文件设置--------------------------------------

  1. <appSettings> 
  2. <add key="DLL" value="Web.dll" />--------------->数据处理器和数据加载器所在的类库名(放在Bin里面)  
  3. <add key="dbType" value="PostgreSql" />----------->数据库的类型  
  4. <add key="linkString" value="Server=localhost;Database=MoonDB;User ID=postgres;Password=mingyue;" />--->连接字符串  
  5. <add key="HTTP_ROOT_PATH" value="http://localhost:8080/Web"/>--->程序运行的根目录  
  6. </appSettings>

  //--------------------------------------库文件引用----------------------

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号