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,如果點擊登陸提示“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的明天會更好,為了這份更好,貢獻自己目前為止的最優作品。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM