什么是Serenity平台
Serenity是一個 ASP.NET MVC / Javascript 的已經建立在開源技術上的平台
它的目標是讓開發變得更容易,同時降低維護成本,避免樣板式代碼,減少重復性的任務所花費的時間和應用最好的軟件設計實踐。
它是用來做什么/給誰用的
Serenity 是最適合業務應用程序,有許多數據輸入表單或公共網站面臨的管理界面。它的功能可以用於其他類型的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 字典里意味着和平、舒適 、平靜。
這是我們正在用Serenity努力實現的。我們希望在安裝和使用它時你也會有這樣的感覺……
它提供了什么特性
- 一個模塊化、基於服務的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年了,它有一個大得多的背景。但也年輕,精力充沛,不害怕改變。它可以適應新技術,因為他們成為受歡迎的和穩定的。這可能意味着打破不時變化,但是我們努力讓他們保持最低而不偏執的向后兼容性。
