什麼是Serenity平臺
Serenity是一個 ASP.NET MVC / Javascript 的已經創建在開源技術上的平臺git
它的目標是讓開發變得更容易,同時下降維護成本,避免樣板式代碼,減小重複性的任務所花費的時間和應用最好的軟件設計實踐。github
它是用來作什麼/給誰用的
Serenity 是最適合業務應用程序,有許多數據輸入表單或公共網站面臨的管理界面。它的功能能夠用於其餘類型的web應用程序。web
去哪裏找資料
在閱讀本指南和教程以後,遵循下面的參考資料,瞭解更多有關Serenity的信息。數據庫
-
Github Repository:
-
https://github.com/volkanceylan/Serenity
-
Issues / Questions
-
https://github.com/volkanceylan/Serenity/issues
-
Change Log:
-
https://github.com/volkanceylan/Serenity/blob/master/CHANGELOG.md
-
Serene Application Template:
-
https://visualstudiogallery.msdn.microsoft.com/559ec6fc-feef-4077-b6d5-5a99408a6681
-
Tutorial / Sample Source Code:
-
https://github.com/volkanceylan/Serenity-Tutorials
What's In The Name
Serenity 字典裏意味着和平、溫馨 、平靜。json
這是咱們正在用Serenity努力實現的。咱們但願在安裝和使用它時你也會有這樣的感受……c#
它提供了什麼特性
- 一個模塊化、基於服務的web應用程序模型
- 代碼生成器生成初始服務/爲SQL表生成用戶界面代碼
- T4引用腳本代碼生成基於服務器小部件與智能感知/編譯時驗證
- T4 based code generation to provide compile time type safety and intellisense while calling AJAX services from script side.
- 從腳本端調用AJAX服務時,基於T4代碼生成提供編譯時類型安全和智能感知。
- An attribute based form definition system (prepare UI in server side with a simple C# class)
- 基於屬性的表單定義系統(一個簡單的c#類在服務器端預備UI)
- 經過表單定義自動無縫的數據綁定(< - >實體< - >服務)。
- 緩存助手(本地/分佈)
- 自動緩存驗證
- 配置系統(存儲介質獨立。設置存儲在數據庫,文件等等…)
- 簡單的日誌記錄
- 報告(報告只提供數據,沒有依賴呈現,相似於MVC)
- 腳本綁定,縮小(利用節點/ UglifyJS / CleanCSS)和內容版本(沒有更多的F5 /清除瀏覽器緩存)
- Fluent SQL Builder (SELECT/INSERT/UPDATE/DELETE)
- Micro ORM (集成Dapper)
- Customizable handlers for REST like services that work by reusing information in entity classes and do automatic validation.可定製的處理程序等其餘服務工做經過重用信息實體類和自動驗證。
- 基於特性的導航菜單
- UI 本地化 (本地化文本存儲在json文件、嵌入式資源數據庫,在內存中類,任何地方)
- 數據本地化(使用一個擴展表機制有助於定位即便用戶輸入的數據,如查找表)
- Script widget 系統 (靈感來自jQueryUI但更適合c#代碼)
- 客戶端和服務器端驗證(基於jQuery驗證插件,但抽象依賴)
- 審計日誌記錄(在CDC 不可用的地方)
- 系統基於數據集成測試
- 動態腳本
- 腳本端模板
背景
這部分最初是寫給CodeProject上的一篇文章介紹Serenity。文章被拒絕的緣由是,它不包含代碼而是一個廣告代碼。他們是對的,由於我在教程裏面放了電影指導教程連接,而不是複製粘貼代碼。瀏覽器
您能夠安全地跳到下一章,若是你不喜歡閱讀歷史:)緩存
開發人員,咱們天天都解決同一方面的問題。就像大學生在他們的問題書本上面工做同樣安全
即便咱們知道他們已經解決了答案的地方,它不會阻止咱們的工做。事實上,它能夠幫助咱們提升咱們的技能,嘿,你不能學習沒有犯一些錯誤,你能嗎?可是咱們應該學會培訓和浪費時間之間畫一條線。服務器
當你開始一個新項目,你有幾個決策平臺,架構和圖書館。今天你有不少的選擇每個主題。是的,有一些選項是好的,只要他們是有限的,由於咱們的時間不是無限的。這裏是一個Serenity簡短的歷史,旨在處理常見的任務你處理業務應用程序,並讓你抽出你寶貴的時間專一於特定於應用程序域的特性我第一份真正的工做在網絡技術在web代理設計國家網站的一些知名產業,如自動化公司(順便說一句,咱們談論的是10 +年過去,時間流動快)。
我有一個軟件架構師職業在桌面應用程序以前簽署,我被要求設計一個ASP.net WebForms平臺。他們解釋說,他們有不少共享的模塊,好比新聞,畫廊,在每一個站點導航,但隨着需求是不一樣的,他們必須複製/粘貼特定於每一位客戶定製代碼。當他們想要添加一個共同的特色,他們不得不對每一個網站重複它。
當時市場沒有不少CMS系統,我設計了他們之中的一個,甚至都不知道它被稱爲CMS。對我來講,這並不完美,甚至不足夠好,我只是設計了幾個星期。可是他們對結果很滿意,用了新網站的開發時間從月減小到天/周。也比之前生成的代碼更易於管理。
從經驗、錯誤中學習,那是poor-mans CMS變成更好的東西。進化後,該平臺是被應用在不一樣的領域,像一個服務檯系統,CRM,ERP、人事管理、電子文檔管理、大學生信息系統等等。
兼容不一樣類型的應用程序,系統甚至遺留數據庫,必須靈活,經歷了許多架構的變化。
如今須要咱們用Serenity。儘管它是一個開源項目大約2年了,它有一個大得多的背景。但也年輕,精力充沛,不懼怕改變。它能夠適應新技術,由於他們成爲受歡迎的和穩定的。這可能意味着打破不時變化,可是咱們努力讓他們保持最低而不偏執的向後兼容性。