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

另类的ASP.NET快速开发架构体系,第1张

JVPL和mvc设计模式类似 一个变种的MVC设计模式 下面我们将详细介绍JVPL模式以及JVPL设计模式的demo实例   第一部分 另类的MVC架构JVPL架构

 (JVPL模式的系统结构图)

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

)定义:

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

)MVC的优弱点:

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

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

)JVPL设计模式的优势

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

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

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

JVPL设计模式的demo实例

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

实例一:程序配置

配置文件设置

<appSettings> <add key= DLL  value= Web dll  />>数据处理器和数据加载器所在的类库名(放在Bin里面)  <add key= dbType  value= PostgreSql  />>数据库的类型  <add key= linkString  value= Server=localhostDatabase=MoonDBUser ID=postgresPassword=mingyue />>连接字符串  <add key= HTTP_ROOT_PATH  value=//localhost: /Web />>程序运行的根目录  </appSettings> 

// 库文件引用

引用Moon Orm和Moon Web库

// 加入脚本库到根目录

// 页面开发

结构

 凯灶 

<%@ Page Language= C#  AutoEventWireup= true  CodeBehind= WebForm aspx cs  Inherits= Web WebForm  %>    <!DOCTYPE  PUBLIC  //W C//DTD XHTML   Transitional//EN   transitional dtd > < xmlns= >     <head>         <title>model加载和数据更新</title>         <meta  equiv= content type  content= text/ charset=utf  />          <script type= text/javascript  src= Scripts/jquery min js ></script>             <script type= text/javascript  src= Scripts/Qin Engine js ></script          <script>               var pID=               $(function () {                   Qin_LoadDataToDom ( Web UserInfoAction   GetUserInfo  {}   form_UserInfo function(data){                       alert(data A)                      pID=data A                  })                                 })              function AjaxUpdateUserInfo() {                   var ID =pID                     _TableName= PersonSet                   Qin_AjaxUpdate( Web UserInfoAction   AjaxUpdateUserInfo   form_UserInfo   ID  ID  {  }  function (data) {                       alert( 主键为 +data+  update success )                  })              }           </script>     </head>     <body>           <form id= form_UserInfo   >                 <input id= keyID  class= Key  field= ID  type= hidden  />                        <table style= width:  %>                 <tr>                     <td>                         姓名:                      </td>                     <td>                           <input field= UserName  type= text  />                     </td>                 </tr>                 <tr>                     <td>                         性别                      </td>                     <td>                         <input name= Sex  field= Sex  value= true  type= radio  />男<input name= Sex  field= Sex                              value= false  type= radio  />女                      </td>                 </tr>                 <tr>                     <td>                         年龄                      </td>                     <td>                         <input field= Age  type= text  />                     </td>                 </tr>                  <tr>                     <td>                         北京户口                      </td>                     <td>                         <input field= IsBeiJing  type= checkbox    />                     </td>                 </tr>                  <tr>                     <td>                         年龄段                      </td>                     <td>                          <select field= AgePeriod ><option value= >老年人</option><option value= >中年人</option><option value= >年轻人</option></select>                     </td>                 </tr>              </table>     <input type= button  onclick= AjaxUpdateUserInfo() value= 更新用户数据  />     </form>     </body> </> 

两处黄色部分 表示的数据的加载和数据提交

[Log()]//加载的代码          public static void GetUserInfo()          {                   PersonSet data=    DBFactory GetEntity<PersonSet>(PersonSetTable ID Equal( ))             CustomData cus=new CustomData()             cus A=              ReturnJSONString(data cus)         } 

[Log()]//更新部分的代码(代码生成器会自动生成)           public static void AjaxUpdateUserInfo()           {               PersonSet data=new PersonSet()                             string UserName=Request[ UserName ]              string Sex=Request[ Sex ]              string Age=Request[ Age ]              string IsBeiJing=Request[ IsBeiJing ]              string AgePeriod=Request[ AgePeriod ]              string otherData=Request[ otherData ]              string PrimaryKey=Request[ PrimaryKey ]              data Set(PersonSetTable UserName UserName)              data Set(PersonSetTable Sex Sex)              data Set(PersonSetTable Age Age)              data Set(PersonSetTable IsBeiJing IsBeiJing)              data Set(PersonSetTable AgePeriod AgePeriod)              data SetOnlyMark(PersonSetTable ID Equal(long Parse(PrimaryKey)))              DBFactory Update(data)              ReturnTextString(PrimaryKey)          } 

// 页面效果及代码生成效果

第二部分 高效便捷的ORM架构

背景

针对Qin Data的架构设计反应出的一些问题进行了全新的架构设计 弥补了多数据源使用不便 同道反应不过ORM 自身架构的瑕疵等问题

介绍

Moon ORM是一个通用数据库处理框架(可以包含MSSQL POSTGRESQL SQLITE EXCEL MYSQL DB ORACLE 只要你愿意实现接口就可以) 很便捷地进行常用数据库 *** 作(增删改查) 其性能是几近纯ADO NET 对于实体的查询采用emit实现 如果您还不满意可用此框架的代码生成器直接生成纯ADO NET SQL形式 其主要特色就是性能和便捷的 *** 作

特色

高性能(该框架采用纯的ADO NET进行框架 避免Linq以及反射带来的性能损失) 易用性强(配置简单 智能感知 代码生成器的辅助 会sql就可(可以自我性能优化)) 多数据库支持(如果需要可自我扩增 热烈欢迎同道加入团队开发中(联系qq: )) 强大查询语法糖功能 多数据源支持 <framework 2.0原生支持。tW.winGWit

4、配置简单

<appSettings>    <add key="dbType" value="MSSQL" />  <!--数据库的类型 还可以写MYSQL,SQLITE,ACCESS等....—>       <add key="linkString" value="Server=mainserverdatabase=HD01SystemDBUid=saPwd=123" />    </appSettings> 

代码功能演示

using System using System.Collections.Generic  using Moon.Orm using  MoonDB  namespace r  {                        class Program      {          public static void Main(string[] args)          {                             //数据添加              PersonSet person=new PersonSet()             person.Age=133             person.AgePeriod=1             person.IsBeiJing=true             person.Sex=true             person.UserName="秦仕川"                           DBFactory.Add(person)             Console.WriteLine("新的数据唯一识别标志:"+person.GetOnlyMark())                           //另类数据添加              person.Set(PersonSetTable.UserName,"另类")             person.Set(PersonSetTable.Age,12)             person.Set(PersonSetTable.AgePeriod,11)             person.Set(PersonSetTable.IsBeiJing,false)             person.Set(PersonSetTable.Sex,true)             DBFactory.Add(person)             Console.WriteLine("新的数据11唯一识别标志:"+person.GetOnlyMark())                           //数据删除              long ret= DBFactory.DeleteWhen(PersonSetTable.IsBeiJing.Equal(1).And(PersonSetTable.Age.BiggerThan(12)))             Console.WriteLine("被删除的条数:"+ret)                           //改数据                                            person.UserName="另类修改后"             person.SetOnlyMark(PersonSetTable.UserName.Equal("另类"))             DBFactory.Update(person)                           //查询              PersonSet p=DBFactory.GetEntity<PersonSet>(                  PersonSetTable.UserName.Equal("另类修改后"))             Console.WriteLine(p.Age)                           //查询一个字段              int age=DBFactory.GetOneField<int>(PersonSetTable.Age, PersonSetTable.ID.Equal(5))             Console.WriteLine(age)              Console.Write("Press any key to continue . . . ")             Console.ReadKey(true)                                                    }      }  } 

实体代码生成器

数据库升级问题(我们常常面临数据库表的变动问题)

lishixinzhi/Article/program/net/201311/12132

程序设计中的架构早咐是指是一系列相关的抽象模式,用于指导大型软件系统各个方面的设计。

软件架构所指的就是说相应的系列性的抽象模式,可以为设计大型软件系统的各个方面提供相应的指导。从本质上来看,软件架构是属于一种系统草图。

在软件架构所描述的对象掘则就是直接的进行系统抽象组件构成。连接系统的各个组件之间就是做到把组件之间所存在的通讯比较明确与相对细致的实施描述。

处于相应的系统实现环节,那么就会使得细化这些抽象组件成为现实的组件,比如可以是具体的某个类或者是对象。从面向对象领域进行分析,那么各个组件之前实施的连接实现往往是接口。

扩展资料:

程序设计中架构的三种分类:

1、逻辑架构:

软件系统系统当中的各个元件之间所存在的关系,比如外部系统接口、用户界面、商业逻辑元件、数据库等。

2、物理架构:

究竟是怎样做到在硬件当中放置软件元件。例如处于上海与北京进行分布的分布式系统的物理架构,这也就是说全部的元件都是属于物理设备,主要的有主机、整合服务器、应用服务器、代理服务器、存储服务器、报表服务器、Web服务器、网络分流器等。

3、系统架构:

相应的系陆散纯统存在着性能、强壮性、可扩展性、灵活性、可靠性等这些非功能性特征。设计系统的架构比要让系统架构设计人员存在着过硬的软件与硬件的性能与功能,往往从事这样的工作这是属于设计系统架构环节最为困难的工作。

参考资料来源:百度百科-软件架构

软件设计中系统架构设计包括哪些内容

架构师的职责主要有如下4条: 1、确认需求 在项目开发过程中,架构师是在需求规格说明书完成后介入的,需求规格说明书必须得到架构师的认可。架构师需要和分析人员反复交流,以保证自己完整并准确地理解用户需求。 2、系统分解 依据用户需求,架

面向对象的设计中,系统架构设计的内容有哪些

面向对象程序设计中的概念主要包括:对象、类芦汪、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。

1)对象(Object) 可以对其做事情的一些东西。一个对象有状态、行为和标识三种属性。

2)类(class) 一个共享相同结构和行为的对象的集合。

类(Class)定义了一件事物的抽象特点。通常来说,类定义了事物的属性和它可以做到的(它的行为)。举例来说,“狗”这个类会包含狗的一切基础特征,例如它的孕育、毛皮颜色和吠叫的能力。类可以为程序提供模版和结构。一个类的方法和属性被称为“成员”。

系统架构设计师,难考吗

系统架构师属于软考的高级,考试肯定是有有一定的难度的,但是如果自身基础好,通过考试自然是没问题;如果自身基础较为薄弱,参加培训通过系统的学习架构的知识体系,再做相关的试题,想要通过考试也是不难的。

系统架构设计师应学哪些书籍

《软件体系结构原理、方法与实践》

《系统架构设计师教程(第2版)》

《系统架构设计师陪答仔考试全程指导》

《系统架构设计师考试试题分类精解与题型练习》

《系统架构设计师考试串讲视频教程》

《新技术与新方法串讲视频教程(3课时)》

《数学与经济管理视频教程(7课时)》

《系统分析师技术指南(2009版)》

《系统分析师考试培训视频教程(88课时)》

《Beautiful Architecture》?

《Beautiful Code》的姐妹作,里面有三成的架构是自己感兴趣的,已经有国内出版社拿下了,架构师的唐诗三百首------O'reilly新书Beautiful Architecture(InfoQ)?。

《97 Things Every Sofare Architect Should Know 》?

一个开放的wiki?,O'Reilly 将它发布成书,不知道有没人在翻,架构公理的书(InfoQ)?。

《Pattern-Oriented Sofare Architecture, Volume 4 - A Pattern Language forDistributed Computing》?

架构模式的集大成者,号称有人在翻但等了一举慎年中文版还是没翻出来啊,面向模式软件架构第4、5卷出版(InfoQ)?。

架构技术类

云计算已经开始代替SOA成为新一代Buz Word,回顾一下整个SOA出版风潮,自己觉得值得一读不忽悠的居然只有一本《SOA in Practic - SOA实践指南-分布式系统设计的艺术》?。

在热潮彻底退却前,SOA的书还在继续出着,OSGI与SCA的书也开始出现:

《SOA Design Patterns》?

又是Thomas Erl的书,很奇怪的连电子版都找不到,SOA设计模式出版啦(InfoQ)?。

还 没出版的呀一大堆 --《SOA Patterns》、《ESB Architecture for SOA》、《SOA with Java》、《Open Source SOA》、《OSGi in Action》、《SpringSource dm Server in Action》、《Modular Java: Creating Flexible Applications with OSGi and Spring》、《Understanding SCA》、《Apache Tuscany in Action》...

编程匠师类

立志做一个匠师的人今年比较幸福,可以看的书很多:

《Beautiful Code - 代码之美》 ?

很有经典潜质的一本,去年没有读完今年继续,《代码之美》的精选版(InfoQ)?。

《Produtive Programmer - 卓有成效的程序员》?

Thoughorks中国翻译的,看了下样章,熊节(透明)的翻译依然是这么好, 《卓有成效的程序员》推荐序:做一个懒人(InfoQ)?。

《Clean Code: A Handbook of Agile Sofare Craft *** anship》?

Rober。C大叔的书,不知道谁在翻,应该很容易翻啊,到后面大段大段都是代码。

《Effective Java中文版(第2版)》?

怎么理解"软件概要设计是系统总体结构设计或系统架构设计

概要设计的目标是描述软件模块的外观以及处理逻辑.模块对外暴露的服务接口,以及需要引用的接口,接口标识,接口的访问协议,接口描述都属于模块的外观,其他的模块通过这些接口和模块打交道,自然需要在概要设计阶段对接口做细致的刻画,初此之外,对于关键的模块,外观还应该说明模块的非功能属性,比如并发处理能力,数据吞吐量以及接口调用的反馈时长等等.处理逻辑是指模块从输入到输出的转换过程,描述其转换算法.无论通过何种图例和表现形式,只要能够清晰地说明模块外观和处理逻辑描述,就是好的概要设计.

系统架构设计师怎么复习比较好?系统架构设计师含金量。

系统架构设计师含金量。考了两次系统分析师都没有通过,下半年没开考,所以想考系统架构设计师,考了几次都没通过,着实没太多信心了,不知道怎么办才好。 满意答案颠沛流离德小0级2011-07-13系统架构设计师,既然是架构设计,其实质是偏软,走的是纯技术专家路线。当然此处的偏软并非程序的设计,而是整个软件的体系架构的设计,架构设计的好坏将直接影响到软件的质量,从这点看,其技术含量是非常高的,其职业定位应该是纯软件技术专家的角度,职业选择可以主要是企业内的高级软件设计者或IT公司技术经理或技术总监一类的职位。

系统架构设计师考试

武汉不报考le

系统架构设计师复习哪些重点?

既然你男朋友要考的话,应该他自己是知道这个证是有说明作用。像系统架构设计设考的重点是数据库系统、嵌入式系统、数据通信与计算机网络、系统配置与性能评价、企业信息化与电子商务、分布式系统设计具体我建议你去看一些考试大纲,希赛教育的网站上就有关于系统架构设计师的考纲,复习的资料希赛的网站上也有,你去那里看就全明白了。

系统架构设计师能挂靠吗

系统架构设计师属于软考高级工程师级别,

完全可以挂靠,一年8000以上,这要看是哪些城市。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8240091.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存