如何通過AgileEAS.NET快速搭建屬於你的公司專屬應用程式(一)——解決方案的建立

來源:互聯網
上載者:User

本系列隨筆的主旨在於讓一個具有.NET程式編寫基礎的人通過使用平台提供的SOP中介軟體,快速、專業的搭建出屬於自己的.NET企業級應用。我將會從EAS架構的構成和方案的建立開始,最終的目的是提供一個以分布式通訊的方式串連資料庫的解決方案構建思路,作為我對於部落格園各位前輩的回報以及自己學習經曆的總結和概括。

1、準備工作

首先,你當然需要下載一個最新的AgileEAS.NET的開發程式包,100m的樣子很快就下好了,看一下裡面的內容:

下面說明一下各個檔案夾都是個啥東西:(最外面有李哥寫的發布步驟,想直接看如何發布的請下載完畢後Alt+F4)

AgileLab.CN是一個使用AgileEAS開發web平台的案例,內容就是AgileEAS的官方網站,由於我這裡重點說的是cs架構的winform解決方案,所以pass

AppServer,這個很重要,這將是你放在你服務端的唯一的也是最重要的內容,它配置的正確與否將會直接影響你是否能夠正常的實現分布式通訊以及SmartUpdate的自動更新功能,請各位主動把它放在一個穩妥的地方儲存好備用。

Bin,和上面的一樣,可以理解為這個檔案夾將承載你的用戶端,也可以說他是你項目調試、發布等功能實現的場所,內容構成是所有的依賴DLL檔案以及SOP中介軟體(快速開發工具),同樣,備份好,一會有用。

Data,EAS平台需要一坨坨的基礎資料庫來支撐他的正常工作,登入你的伺服器,在你的資料庫裡執行相應的sql語句,建立好eas的基礎資料庫之後這裡的東西沒啥用(恢複不算。。。),資料庫內容無非是一些賬戶啊角色啊許可權啊菜單啊流程啊審批啊模組啊啥啥的,說道模組在這bytheway一下,EAS平台採用模組化的載入方式,也就是說,最終你所開發出來的所有winform頁面(usercontrol)都將以模組(module)的形式被平台引用和載入,所以你的引用程式集需要集中在一個統一的位置,哪裡呢?剛才不是有個Bin的待命資料庫檔案夾麼,就這裡。

DLL,請無視

Documents裡面是針對藥店系統的案例所作的詳細的說明,詳細程度令人髮指,對於希望採用DrugShop作為學習參考資料的同學請一定仔細研讀,本文所採用的案例和技巧也有很多是通過DrugShop學習總結而來,如果你看不懂,那麼恭喜你,回來繼續這個吧。

Drugshop-src,藥店系統的源碼,參考價值100w,不得不看。

WF.Demo,連下面的都無視掉即可(我就這麼做的)

2、建立一個項目

瞭解了程式包的內容,我們需要建立自己的案例了,首先,相信我,為了將來省心,請按照我下面的圖示建立你的項目構成:

找個舒服的位置按照上述圖形建立自己的解決方案吧,IronMES是我自己的項目,你們叫啥請自便,但是源碼檔案夾裡得有東西啊對不?不然不是坑人麼,接下來就是如何快速的建立一個簡單的項目,方便起見,案例將以本人項目中的方案來進行說明,不是現場建立的,中間難免有跳步請見諒!

首先開啟Bin檔案夾——DotNet4.0(silverlight無視掉即可),找到這麼一個東西這個叫做ORM設計器,功能是通過資料庫(一般都用資料庫)來建立一個用來承載所有對資料表CRUD操作的實體類庫,你沒看錯,通過EAS,所有的CRUD操作都是可以從實體類直接獲得,讓你把更多的時間和精力放在複雜業務的構思和設計中去。

開啟orm設計器,一上來啥都沒有沒關係,點擊 工具——從資料庫產生,

看到了麼親,這是多麼的親切啊,我們在vs裡畫報表建dataset的時候不就是他嗎?選擇SQL2005(我自己用2008會報錯),速度寫上你的連結字串,下一步吧

在這裡選擇自己需要的資料表(選擇視圖也是可以的,只是通過視圖生產的實體類是無法進行增刪改操作的),然後下一步,PS:由於為了照顧資料的通用性,EAS在處理Guid的時候使用的是String形式,所以在MSSql資料庫中使用Uid的同學,請改成varchar(36)後在建立自己的orm類庫!

往往資料表的建立是會隨著你項目的進展而進行的,所以orm產生器儲存的SDM檔案,請對應存在剛才的SDMs檔案夾中,方便管理,最後你的SDM應該是這樣的

下面那個“模型”倆字請無視掉

我們開啟一個實體類看一下都有些啥

其中的內容和我們在資料庫建表時候看到的很類似,在代碼,ddl和文檔選項卡中對應的是這個資料表結構的對於項內容,你自己點開就明白了,其中文檔很方便你寫資料庫說明書時候用,當然有細心的朋友可以在“標題”列改成對應欄位的中文Desc,我這種比較懶的向來是不改的。。。改完了之後別忘了儲存

接下來很關鍵,通過在“解決方案”節點上右鍵,來設定項目的基本參數,這個一定要和你自己的項目一致(沒項目的話好辦以這個為主即可),規範的命名空間可以省去你以後修改的時間

資料目錄你們看到我吧所有的輸出代碼都放在Assets檔案夾作為整理,這樣需要時候比較好找

設定好後繼續在“解決方案“節點上右鍵,產生代碼,產生後的代碼檔案夾

然後複製這個Entities檔案夾到一開始說的用來存放源碼的檔案夾裡,建立一個空的解決方案或者其他解決方案把這個項目添加到方案裡,形成這麼一個效果

好吧。。。我承認我比較懶這個是現在項目的,你看紅顏色圈圈的部分就是這個類庫,這個解決方案的結構和DrugShop是一樣的,這種結構是EAS項目構建的標準結構,既然說到這裡就順便講一下這些項目的構成和作用好了(IronMES一下略),上面那些事服務端。。。。

BLL.Contract 這個是介面類庫,分布式通訊的時候詳細說

BLL.Host 服務類庫,繼承介面,分布式通訊詳細說,個人認為不使用分布式通訊的時候沒有必要用ServiceContainer來實現資料庫業務(關於ServiceContainer是什麼以後詳細說。。。)

Entities 這個是核心,EAS實體類庫,通過這些和資料庫同步的實體類庫可以直接實現Insert(),Update(),Delete()方法

Entities.xxx 這個是我自己由於連不同資料庫產生的不同實體類(方便管理)

AsposeExcelTools 這個是excel報表匯出的操作類。。。aspose.cell這個東西很好用(題外話)

-------------------------------用戶端的分界線------------------------------------------------------------

AppStart,這個是啟動項,為什麼呢?因為他的AppConfig檔案裡我會把資料庫連接方式配置為資料庫直連的方式,在調試的時候使用直連資料庫的方式比較便於調試

Hellowang的是測試的請無視

Main,這個項目是用戶端的啟動項目,你在製作SetUp安裝包的時候用這個來作為Desktop上的捷徑,為啥呢?這個和appstart一樣的,就是appconfig用的是分布式通訊。。。不用分布式通訊的可以刪掉

Res,這個項目純copy自drugshop,他存在的唯一意義(極其重要)就是替換AgileEAS裡面的登入介面啊、表徵圖啊、bottom條啊啥啥啥的。。。你肯定要換的。。。換法以後將,忘了提醒我下

WinUI,這裡承載了所有的UI模組,介面業務,也是最重要的一部分,下面正好接著說如何製作我們的UI模組

wpf這個無視

-----------------------------廢話---------------------------------------------------------

PS:重點,所有項目的OutPutPath必須都指向..\..\Bin\DotNet4.0\目錄,對,也就是之前準備好的Bin檔案夾(目的是所有的dll都在一個檔案夾發布後直接可用),

3、製作一個標準化的模組介面

接下來是關鍵的如何通過SDM檔案快速的建立一個UI介面,如果對這裡的描述不太明白,官方包裡面的pdf也有詳細的說明

在Bin檔案夾裡面找到這個開啟後發現右面有2個目錄:

列表裡面代表的是表的資料查詢主介面,也就是winform中的Usercontrol,表單中的是對應每一條資料的明細資訊視窗,對應的是winform中的window,在這裡開啟你的sdm檔案(就是你剛才使用orm設計器儲存好的那個),在“列表”的節點上點擊右鍵——建立,這裡面就是你添加到entities裡面的所有資料表了,找到你要進行crud業務的資料表(只能選一個),點擊下一步:

這個介面就是用來設計住要查詢ui的了,通常欄位都是要顯示的,右鍵可以全選,後面的這個是否查詢項是用來標識那些欄位將作為Linq查詢中的where條件出現滴,當然在介面上也會有對應的條件資料控制項,PS:如果條件錄入控制項的類型不是textbox,你就需要在“空間類型”裡面選擇一下控制項的類型,常用的有下拉框,時間日期(千萬不要用年月日期不解釋)。

添加之後的介面設計器如下

介面設計器和我們在vs中的介面設計器是一樣的,使用方法當然也是一樣的,這裡除了必要的名字修噶和dataGird的欄位修改,其他的建議都在把模組添加在VS中之後修改。

下面在“視窗”節點右鍵,建立,選擇同樣的資料表Entity,介面如下:

這裡的技巧是不要把主鍵自增和記錄時間,uid之類的不需要使用者手動錄入的資訊展示出來(特殊需求除外),是否新增和是否顯示同步即可,由於我們之前對於本smd檔案的參數都有設定,所以不需要在建立頁面的時候修改命名空間,保持每一個項目的不同模組的命名空間的一致性很重要。對於欄位比較多的資料表,可以在多行多列出勾選,設定自己需要的列數,最終的window效果如下:

在設計了幾個基礎介面和表單介面之後,我們的這個sdm檔案構成成了下面這個樣子(list和editor不一定非要一一對應,你看你自己的需求,比如我有個視圖查詢介面的話就不需要對應編輯器了)

4、將代碼匯入解決方案

在UI設計器的項目根節點上右鍵,產生解決方案,看一下我們生產的方案結構

,Entities裡面的是實體類庫的項目,WinUI裡面的是UI介面層的項目,將UI裡面的cs檔案拷貝到你項目對應的目錄下,在項目中雙擊查看(vs會自動提示轉成Usercontrol和window的):

Module中第二第三個屬性分別是名稱和描述,名稱將會在EAS平台添加模組後顯示在菜單中

這裡對UI介面的代碼修改做過多陳述,一些中介軟體產生時帶的bug都很好改(類似多個=啊,DateTime寫成Datetime之類的),關鍵前面在ui設計器裡注意改好dateTimePiker的Name即可。。。(嘮叨鬼)

這樣即可形成了,一個查詢介面對應一個明細單編輯介面的介面組合了,接下來是重頭戲啊,你總要調試一下的

5、如何調試

首先,各位回頭看一下我項目與的構成,中間有2個很關鍵的項目AppStart和Main,我將的是一樣的東西僅僅是AppConfig不同對吧,那麼,請你們可恥的,在DrugShop中把這個Copy到你的項目裡吧。。。。(有需要的RES也一起copy了,不過這篇不會說道如何改RES),看下代碼,把裡面資料庫直連的連接字串改成你需要的:

設定appstart為啟動項,調試。。。。

注釋掉的那行看到嗎?你的項目叫啥寫上即可直接進入偵錯模式,如果寫成下面這個,就會啟動平台的登入介面,登入平台了

6、模組的安裝和菜單的設定

這個最沒啥可說的,登入之後在系統管理——模組管理——安裝,找到你Bin/DotNet4.0裡面承載你模組的WinUI.dll檔案,裡面是不是出現你的模組了?如果真有不明白的在藥店系統的說明文檔中,他寫的實在是很詳細,看下就明白了,在這就不對這一項做贅述了

由於EAS平台已經將使用者權限和角色的設定設計好了,我們只需要按照相應的許可權對模組進行綁定即可實現許可權管理,當真是很方便啊。。。。。

大概就這些。。。這些看起來多其實就是流水帳啊,打字打的我都有點惆悵了。。。。寫的沒啥章法,但是也應該大概指出了些問題,希望我以後的同志少走彎路吧,有啥問題跟貼或直接找我都可以,希望更多的人通過這樣一個免費的平台開發出更多優秀的產品,這第一發就這樣吧。。。倉促成文,毫無章法,各位見諒!

不出意外你會報錯吧,貌似忘了說添加引用了,引用的添加很容易哈,還是在Bin/DotNet4.0裡面,首先,所有跟EAS有關的項目都加上EAS.Data和MicroKernal這兩個,這是基礎啊,然後在介面層看你需要啥就加個啥即可,推薦你按照藥店系統的案例進行添加,當然項目之間的引用也別忘了加,這個沒啥可說的,UI要引用Entities之類的啊

不出意外的話這樣你就應該可以順利的搭建出一個簡單的解決方案了,下一次會說一下如何修改Res定製自己的表徵圖登入框和歡迎介面之類的,或者是分布式通訊的內容

btw:由於官方的發出版本是5.0,此版本的linq不支援分組查詢,初級使用者或者對linq不感冒這可以無視,linq控可等下個版本出來(功能不斷完善中),或者找下敏捷EAS平台Team Dev尋求支援人員!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.