一個挺有意思的項目,跟拼圖同樣的建立網站,先來幾張GIF感覺一下:javascript
官方地址:http://www.zkea.net/zkeacmscss
下載地址:https://github.com/SeriaWei/ASP.NET-MVC-CMS/releaseshtml
GitHub:https://github.com/SeriaWei/ASP.NET-MVC-CMSjava
開源中國社區:http://git.oschina.net/seriawei/ASP.NET-MVC-CMSjquery
演示地址:http://demo.zkea.net/ git
後臺:http://demo.zkea.net/admin github
用戶名,密碼:adminbootstrap
ZKEACMS是基於EasyFrameWork,使用ASP.NET MVC4開發的開源CMS。ide
ZKEACMS一個內容管理軟件(網站)。ZKEACMS不只只是管理內容,更是從新定義了佈局、頁面和組件,讓用戶能夠自由規劃頁面的佈局,頁面和內容。佈局
ZKEACMS使用可視化編輯設計,真正作到所見即所得,可直接在預覽頁面上設計頁面。
ZKEACMS採用插件式設計,支持擴展新插件。
架設環境:
Windows server 2003,IIS 6 或以上
MsSql 2005 或以上
.Net FrameWork 4.0,MVC 4
開發環境
Microsoft VisualStudio 2013
Microsoft Sql Server 2005 以上
script("jQuery").Include("~/Scripts/jquery-1.11.2.min.js", "~/Scripts/jquery-1.11.2.min.js").RequiredAtHead(); script("bootStrap").Include("~/Content/bootstrap/js/bootstrap.js", "~/Content/bootstrap/js/bootstrap.min.js").RequiredAtFoot(); script("jQueryUi").Include("~/Scripts/jquery-ui/jquery-ui.js", "~/Scripts/jquery-ui/jquery-ui.min.js");
style("bootStrap").Include("~/Content/bootstrap/css/bootstrap.css", "~/Content/bootstrap/css/bootstrap.min.css").RequiredAtHead(); style("bootStrapTheme").Include("~/Content/bootstrap/css/bootstrap-theme.css", "~/Content/bootstrap/css/bootstrap-theme.min.css").RequiredAtHead(); style("Site").Include("~/Content/Site.css", "~/Content/Site.min.css").RequiredAtFoot();
這裏是對腳本和樣式文件的定義,顯示調用RequiredAtHead()/RequiredAtFoot(),則無需主動加到頁面中,默認都會使用該資源文件,加到頁面的開頭或者結尾。
Style.Reqiured("Site").AtHead(); Script.Reqiured("jQueryUi").AtFoot();
@using (Script.AtFoot()) { <script type="text/javascript"> function Create(xxx) { } </script> }
爲何須要這樣管理資源?由於ZKEACMS的頁面是由不一樣的組件構成的,徹底由用戶選擇在頁面中顯示什麼組件,而不一樣的組件會須要不一樣的JS或CSS,所以須要動態加載這些資源文件。
[DataConfigure(typeof(CarouselEntityMetaData))] public class CarouselEntity : EditorEntity { public long? ID { get; set; } public int? Height { get; set; } public List<CarouselItemEntity> CarouselItems { get; set; } } class CarouselEntityMetaData : DataViewMetaData<CarouselEntity> { protected override void DataConfigure() { DataTable("Carousel"); DataConfig(m => m.ID).AsIncreasePrimaryKey(); DataConfig(m => m.CarouselItems).Ignore(); } protected override void ViewConfigure() { ViewConfig(m => m.ID).AsHidden(); ViewConfig(m => m.CarouselItems).AsListEditor(); ViewConfig(m => m.Height).AsHidden(); } }
在視圖配置完之後(.AsTextBox(),.AsDropDownList()...) 直接調用EditorForModel便可自動生成表單:
@Html.EditorForModel()
@( Html.Grid<ArticleEntity>().SetColumnTemplate(col => { col.Add(m => m.Title, "<a href='"+Url.Action("Edit")+"?ID={ID}'>{Title}</a>"); }).SetAsToolBar("#toolBar").ShowCheckbox(m=>m.ID).OrderBy(m=>m.PublishDate, OrderType.Descending) )
之前咱們這樣寫:
[ViewDataArticleType] public override ActionResult Edit(ArticleEntity entity)
如今咱們這樣寫:
Registry.Register<ArticleController, ViewDataArticleTypeAttribute>(m => m.Edit(null));
Service.Add(entity); Service.Count(m=>m.Id=1); Service.Delete(primaryKey); Service.Delete(m=>m.Id=1); Service.Get(primaryKey); Service.Get(m=>m.Id=1); ...
public class CarouselService : ServiceBase<CarouselEntity> { }
。。。。。。
寫得很簡單,但是還有不少,有興趣加入的就到GitHub上面Fork,並加入咱們。https://github.com/SeriaWei/ASP.NET-MVC-CMS