ASP.NET Aries 开源开发框架:开发指南(一)
前言:
上周开源了Aries开发框架后,好多朋友都Download了源码,在运行过程里,有一些共性的问题会问到。
所以本篇打算写一下简单的开发指南,照顾一下不是太看的懂源码的同学,同时也会讲解一下框架原理。
开源的文章或源码获取地址见上一篇文章:开源:ASP.NET Aries 开发框架
关于框架:
首先,这是一套开发框架,它类同于WebForm、MVC、.NET Core。
相比webform,mvc,.NET Core 它简化了后端很多东西,它也加强了前端一些功能,默认集成的功能和界面,使得框架更倾向某种场景的开发。
在.NET的世界里,开发框架的选择,不应该只有微软系列,还可以有第三方系列。
框架运行指南:
1:Download 源码:
见上篇文章结尾处:http://www.cnblogs.com/cyq1162/p/5487796.html
2:创建数据库:
源码下载后其中一个文件夹:Aries.DataBase
可以选择Mssql或Mysql文件夹下的:数据表脚本(执行创建表),数据脚本(执行创建数据)。
3:配置Web.config:
配置框架初始数据库链接后,执行F5,如果点击登陆提示undefine,需要把关于httpmodule的注释打开。

然后运行,就可以了。
框架开发指南:
1:关于数据库:
开发:
框架有初始的数据库:其中有一个:Sys_UserInfo 这个表是可以修改扩展用户信息的。
然后你有两种选择:
A:在原有的数据库里建表,开展业务(这时只有一个数据库)。
B:创建新的数据库,开展业务(这时有N个数据库,需要在Web.config添加对应的数据库链接语句,只有一个注意,Key的命名为:数据库名称Conn)。
设计原理:
关于数据库设计这一块,是支持多数据库,同时跨各种数据库类型的,可以各种混搭,只要不存在表名相同,在使用过程中就不用管它属于哪个数据库。
设计原来是这样的:搜集数据库链接(以Conn结尾的)=》搜索所有数据库表及对应的数据库。所以反之根据表名就可以找到对应的库。
如果遇到不同数据库有相同的表名:则需要在前端使用时用:数据库名.表名。(因为按查找规则只会找到第一个出现的表名对应的库)
2:关于增删改查导入导出:
开发:
1:如果你是单表:通过配置菜单就可以搞定了。
2:如果你要呈现的是复杂的多表联合,你有两种选择:
A:在数据库里创建视图,然后把它当单表一样通过配置菜单就可以搞定了。
B:将视图语句,通过文件形式放在App_Data目录下的SQLCode目录下(按指定格式)即可,然后配置菜单就可以搞定了。
关于配置表头:列头里右键出来的(有人不知道哪出来)。
配置表头里集成了很多常见功能,动动手就可以看出效果了,如把搜索项打勾,就会出来搜索条件框。

视图语句放在文件的,通过点击查看脚本时,可以在线编辑。

3:关于格式化:
A:数据库里存档的是0,1,2这种数字,呈现是中文翻译,所以有配置表,在配置表里增加配置项后,在格式化里填写#配置键 就可以了。
B:如果有些数据是动态的,单独有表存放的,就需要写SQL语句放在App_Data\SQLCode目录下的Sql_Combobox.sql文件里(按约定格式),然后把名字配上去。
C:这些弄好的名字,除了格式化,还可以使用在下拉框:configkey取的是配置表的,objName取的是数据库语句的。
<input configkey="性别“.../>
<input objName="C_SYS_Role" .../>
这样就会自动格式好下拉框。
设计原理:
对于这一块的东西,前端发起的各种请求:ajax.html?sys_method=xxxx&sys_objname=xxxx 到最后都会定位到Core项目里的AjaxBase.cs处理(这里集成了核心的操作)
对于ajax.html这个文件是不存在的,只是一个虚拟地址,作为标识判断条件而已,在Core项目里UrlRewrite里相关的判断条件。
一个页面:通常会发起四个请求:

GetInitConfig:返回ui(子应用程序部署时的目录),actionkeys(当前页面的功能权限),mid(菜单ID)。
GetKeyValueConfig:返回配置表的数据(后台会有缓存),用于翻译和绑定下拉框。
GetHeader:返回列头信息(第一次不存在时,会读数据库的元数据,创建生成)
GetList:返回表的数据。
如果界面有对于自定义语句的的下拉数据绑定,则会多一个请求:

GetCombobox是动态发起请求,获取自定义SQL语句的数据,然后绑定下拉框数据。
4:关于请求的处理流程:
1:一个Ajax请求从页发起后:AR.Utility.Ajax.Post之后,所有的请求地址都是ajax.html。
2:然后到了UrlRewirte.cs,判断是ajax.html,就调用InvokeLogic
3:然后到了Aries.Logic项目里Handler文件夹下的类,具体调用哪个类,处理流程如下:
A:如果有类名和文件名同名,就调用类名.cs
B:如果不存在A,则看有没和html所在文件夹名同名的,如果有,就调用文件夹名.cs(就像SysAdmin系统管理的请求都在SysAdminHandler处理)
C:如果B也不存在,则调用DefaultHandler.cs
所有的Handler入口,都继承自AjaxBase。
结束:
本篇先介绍到这里,其它内容,另外再写文分享,谢谢各位支持点赞的朋友,还有各位给我打赏让我买水喝的朋友。
作为.NET战线上的十年的一名老战士,衷心希望.NET的明天会更好,为了这份更好,贡献自己目前为止的最优作品。
ASP.NET Aries 开源开发框架:开发指南(一)的更多相关文章
- ASP.NET Aries 高级开发教程:Excel导入之代码编写(番外篇)
前言: 以许框架提供的导入配置功能,已经能解决95%以上的导入情况,但有些情况总归还是得代码来解决. 本篇介绍与导入相关的代码. 1.前端追加导入时Post的参数: var grid = new AR ...
- 开源:ASP.NET Aries 开发框架
前言: 随着岁月的推进,不知不觉已在.NET这领域上战斗了十年了. 青春还没来得急好好感受,却已是步入健忘之秋的老人一枚了. 趁着还有点记忆,得赶紧把硬盘里那私藏的80G除外的东西,和大伙分享分享. ...
- 开源:ASP.NET Aries 开发框架(已支持.NET Core)
前言: 随着岁月的推进,不知不觉已在.NET这领域上战斗了十年了. 青春还没来得急好好感受,却已是步入健忘之秋的老人一枚了. 趁着还有点记忆,得赶紧把硬盘里那私藏的80G除外的东西,和大伙分享分享. ...
- ASP.NET Aries 开发框架
开源:ASP.NET Aries 开发框架 前言: 随着岁月的推进,不知不觉已在.NET这领域上战斗了十年了. 青春还没来得急好好感受,却已是步入健忘之秋的老人一枚了. 趁着还有点记忆,得赶紧把硬盘里 ...
- ASP.NET Aries 入门开发教程2:配置出一个简单的列表页面
前言: 朋友们都期待我稳定地工作,但创业公司若要躺下,也非意念可控. 若人生注定了风雨飘摇,那就雨中前行了. 最机开始看聊新的工作机会,欢迎推荐,创业公司也可! 同时,趁着自由时间,抓紧把这系列教程给 ...
- cWeb开发框架,基于asp.net的cWeb应用开发平台介绍(一)
cWeb开发框架是基于asp.net的B/S应用开发平台,采用三层架构理论,应用简单.代码简洁.运行快速. cWeb是bubufx提供,是分享资源,无任何版权限制,bubufx继续传承互联网精神,可随 ...
- 读《asp.net MVC4开发指南(黄保翕编著)》笔记
在刚刚过去的中秋节中,利用了两天的碎片时间把黄保翕编著的<asp.net MVC4 开发指南>看了遍,笔记如下,欢饮在开发MVC的同学一起来探讨: 1.社区 2.开源程序 3.易测试性 4 ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑
前言: 为了赶进度,周末也写文了! 前几篇讲完查询框和工具栏,这节讲表格数据相关的操作. 先看一下列表: 接下来我们有很多事情可以做. 1:格式化 - 键值的翻译 对于“启用”列,已经配置了格式化 # ...
随机推荐
- [BI项目记]-新任务创建
上一篇介绍了如何处理一个Bug工作,此篇主要介绍如何借助TFS对于一个新需求创建一个新的工作项. 这里假定,有一个新的需求,需要创建五个报表. 然后开发的工作流程如下: 这个流程总结起来大致如下: 首 ...
- Linux 2.6内核中新的锁机制--RCU
转自:http://www.ibm.com/developerworks/cn/linux/l-rcu/ 一. 引言 众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁 ...
- Servlet
建议:对于javaEE,在如何学习jsp和servlet时,初学者往往是一头雾水.我当时就被jsp的各种标签.内置对象和servlet整的很惨.所以,学习方法变得特别特别重要:而且,随着技术的更新和发 ...
- Android-Menu [使用C# And Java实现]
本篇是对安卓菜单使用编程方式实现,当然可以使用XML的方式完成同样的功能,基本Java和C#写法都是一致的,所以使用XML的方式在本篇中使用Java演示,需要注意的是,对于如果不是VS开发的话,那么资 ...
- HDU 5742 Chess SG函数博弈
Chess Problem Description Alice and Bob are playing a special chess game on an n × 20 chessboard. ...
- Java 之 集合框架(JCF)
1.集合框架 a.框架:为了实现某一目的或功能,而预先提供的一系列封装好的.具有继承或实现关系的类与集合 b.集合:①定义:Java中对一些数据结构和算法进行封装,即封装(集合也是一种对象) ②特点: ...
- tecplot 脚本文件
一个简单的C++代码,可以生成tecplot的脚本文件,打开文件就能自动绘图.绘图过程是先把文件导入,然后镜像,最后生成一个动画,但是导入的文件名称要求是有规律的. /* ** This progra ...
- android开发:深入理解View(一):从setContentView谈起
我们都知道 MVC,在Android中,这个 V 即指View,那我们今天就来探探View的究竟. 在onCreate方法中,可以调用this.setContentView(layout_id),来设 ...
- Python爬虫学习(10):Selenium的好基友PhantomJS
上一节中我们学习了selenium,用python来操作浏览器,在做网页自动化测试的时候最好不过了 .如果我们来做爬虫用一个带界面的浏览器似乎不太好吧,那可咋办呢?别着急,下来我们要介绍的就是一款不带 ...
- 16-1-27---图解HTTP(02)
图解HTTP第四章 返回结果的HTTP状态码 HTTP状态码负责表示客户端HTTP请求的返回结果.标记服务器端的处理是否正常.通知出现错误等工作.4.1状态码告知从服务器端返回的请求结果 ...