• AnyWise企业级快速开发框架开篇


    为什么要使用框架?

          因为软件系统发展到今天已经很复杂了,特别是服务器端软件,设计到的知识,内容,问题太多。在某些方面使用别人成熟的框架,就相当于让别人帮你完成一些基础工作,你只需要集中精力完成系统的业务逻辑设计。而且框架一般是成熟,稳健的,他可以处理系统很多细节问题,比如,事物处理,安全性,数据流控制等问题。还有框架一般都经过很多人使用,所以结构很好,扩展性也很好,而且它是不断升级的,你可以直接享受别人升级代码带来的好处。 
          框架一般处在低层应用平台和高层业务逻辑之间的中间层。 衡量应用系统设计开发水平高低的标准就是:解耦性;你的应用系统各个功能是否能够彻底脱离?是否不相互依赖,也只有这样,才能体现可维护性、可拓展性的软件设计目标。
          为了达到这个目的,诞生各种框架概念,当然我们有时不是以这个具体技术区分,而是从设计上抽象为表现层、服务层和持久层,这三个层次从一个高度将.NET分离开来,实现解耦目的。
          框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成。 
          由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。 
          框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。 
          框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。

    什么是AnyWise?

          我们经常在对相同业务需求和技术需求进行着重复设计和编码,每次重复的做使得开发效率低,质量也得不到保证,AnyWise就是抽取了信息系统的一些共性,用平台的方式提供大粒度的重用,增长开发效率并提高质量。

          AnyWise是一个基于.NET的应用程序快速开发框架。包含数据访问、权限、日志等底层体系,支持B/S、C/S、SL等开发。AnyWise不会带来创新性的技术,而是将现有的技术和产品中有价值的部分引入一起,它要做的就是整合别人已经实践的方法来提高我们自身的开发能力,以求快速、高质量的完成开发。

          AnyWise早期核心框架是基于VBA写的,主要根据数据库设计及其模板完成代码生成。在扩展模块的设计上,主要针对于底层支持。这次开发代号为Robin的框架扩展主要在老版本的框架基础之上,增加ORM框架、报表引擎、工作流引擎,并且将权限、日志、缓存、配置、异常处理等模块进行重构和改进,并且增加了对SL、WPF等的开放支持,在此基础之上,增加了项目管理框架,扩展封装了一部分项目中沉淀出来的复用模块。

    1. 架构划分 

                                           

     

    1.1      基于生产流水工艺的工作体系

    该子框架主要面向于应用层复用及公共引擎、组件等,目前主要包含复合架构的数据访问框架、工作流引擎、报表引擎、插件式引擎(非资源型)、UI框架、日志、缓存、Office替代组件等一系列企业级应用组件,可以实现从UI到数据访问到服务到应用一站式应用。

     

    1.2      基于模板引擎的代码生成

    该模板引擎产生于2005年,使用VBA编写,当时主要应用在COBOL开发中,用来提高生成的,后期重写全部底层核心代码,规范模板标签,可以完成对SQL、BS、CS下各种应用架构、各种语言的代码生成,实现跟平台无关、跟语言无关、跟架构无关的代码生成,从实体到数据访问到UI都可以完美完成,而且该引擎基于Excel,简单轻巧,可以与后面要讲到的“凤凰应用”完美结合。

     

    1.3     工作平台

    企业协作开发平台,主要在企业内用来监督进度,任务划分,绩效考核相关的。从项目立项开始,到项目技术,全程监控,包括文档、任务还有缺陷等。

    1.4      规范标准

    主要是针对于企业应用所需的规范,规范主要参考CMMI等相关标准,不但符合标准,而且与企业实际项目息息相关,更符合企业级开发要求。

    1.5      凤凰应用


    AnyWise企业级快速开发框架

     


  • 相关阅读:
    事件对象
    type of 操作符和instanceof操作符的区别以及使用方法
    JS:XML
    JS:事件处理程序
    JS:event对象下的target属性和取消冒泡事件
    JS:callee属性
    JS:call()和apply的区别
    JS:事件对象1
    DOM元素的大小和位置
    CSS:在IE浏览器下,元素下沉一行的解决办法
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2298835.html
Copyright © 2020-2023  润新知