前言:
上周開源了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,如果點擊登陸提示“please check web.config's httpmoudle!”。
login.html中的內容:
需要把關於httpmodule中關於Aries.Core的配置的注釋打開(或關閉)
然后運行,就可以了。
框架開發指南:
1:關於數據庫:
開發:
框架有初始的數據庫:其中有一個:Sys_UserInfo 這個表是可以修改擴展用戶信息的。
然后你有兩種選擇:
A:在原有的數據庫里建表,開展業務(這時只有一個數據庫)。
B:創建新的數據庫,開展業務(這時有N個數據庫,需要在Web.config添加對應的數據庫鏈接語句,只有一個注意,Key的命名為:數據庫名稱Conn)。
比如你有一個數據庫名叫:MyDB,那么你就添加一條<add name="MyDBConn" connectionString="..." />
設計原理:
關於數據庫設計這一塊,是支持多數據庫,同時跨各種數據庫類型的,可以各種混搭,只要不存在表名相同,在使用過程中就不用管它屬於哪個數據庫。
設計原來是這樣的:搜集數據庫鏈接(以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:InvokeLogic會根據規則調用相應的Controller,處理流程如下:
A:如果有類名和文件名同名,就調用類名.cs
B:如果不存在A,則看有沒和html所在文件夾名同名的,如果有,就調用文件夾名.cs(就像SysAdmin系統管理的請求都在SysAdminController處理)
C:如果B也不存在,則調用DefaultController.cs
所有的Controller入口,都繼承自Aries.Core.Controller。
更多教程:https://www.cnblogs.com/cyq1162/category/828163.html
結束:
本篇先介紹到這里,其它內容,另外再寫文分享,謝謝各位支持點贊的朋友,還有各位給我打賞讓我買水喝的朋友。
作為.NET戰線上的十年的一名老戰士,衷心希望.NET的明天會更好,為了這份更好,貢獻自己目前為止的最優作品。