出差導致很長時間沒有更新,看到很多朋友都要求提供實例下載,在這篇中我們將從新建項目開始,一步一步操作,本篇適合新手,大牛請繞道。文末提供所有相關的下載。
首先說明一下環境與工具
1.VS2010 SP1 (+ MVC 3)
3.PowerDesigner 16
特別說明一下Kalman Studio, 這是一個很方便的t4工具,博客園上的一哥們寫的,挺長時間沒有更新了,個人覺得跟博客園有些S13的回復有關系,挺為作者感到不平的,也替有些所謂的牛人蒙羞。
1.准備數據庫
若對使用Powerdesigner建立數據庫不感興趣可以直接下載文章末尾的文件,附加到sqlserver上即可。
打開PowerDesigner,新建物理邏輯圖( physical data diagram),新建表,名稱為User,沒有問題的話應該是這個樣子的,記得將I與Commet列顯示出來,I代表自動增長,Commet是注釋(很重要,下面會用到)
按我的上一篇文章操作方法修改一下Powerdesigner的生成配置(重要),單擊數據庫->生成數據庫(Ctrl+G),選擇生成腳本。
不出問題的話,生成后的sql里面應該會包含類似於下面的語句,如果有的話說明可以成功生成中文注釋:
if exists (select 1 from sysproperties where TableID = object_id('"User"') and ColName = 'UserName' AND PropName='MS_Description') begin declare @CurrentUser sysname select @CurrentUser = user_name() execute sp_dropextendedproperty 'MS_Description', 'user', @CurrentUser, 'table', 'User', 'column', 'UserName' end select @CurrentUser = user_name() execute sp_addextendedproperty 'MS_Description', '名稱', 'user', @CurrentUser, 'table', 'User', 'column', 'UserName' go
請注意,如果生成后的sql在Sql管理器中運行還是出錯的話,那你一定是忘了添加視圖 'sysproperties',按上一篇文章一步步照做吧,絕對不會有問題。
2.項目准備
新建MVC3工程,名字為RapidWebDevSample。
右鍵->新建項 如下圖添加數據模型
在彈出框選擇從數據庫生成,點擊下一步。如下圖,建立數據庫連接
完成后,編譯一下(重要)。至此項目准備完成。
3.添加easyui支持
下載easyui,將對應的js拷入Scripts,themes拷入Content(覆蓋),並在Views/Shared/_Layout.cshtml添加這幾行:
<link href="@Url.Content("~/Content/themes/default/easyui.css")" rel="stylesheet" type="text/css"/> <link href="@Url.Content("~/Content/themes/icon.css")" rel="stylesheet" type="text/css" /> <script src="@Url.Content("~/Scripts/jquery.easyui.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.form.js")" type="text/javascript"></script>
這樣,就可以在項目中使用easyui了。
4.添加控制器與視圖
注:將MVC快速搭建(一)中的模版放入指定地方后你才可以進行下面的步驟(注:有少許更新,請下載此文末尾模版,使用方法參考第一篇文章)。
在Controllers上右鍵添加控制器,按下圖進行選擇配置,如果Model class與Data context下拉不出來東西,是因為你沒有編譯項目,重新編譯一下就好了。
打開Global.asax.cs修改一下路由,讓它默認從此控制器啟動:
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute("Default", // Route name "{controller}/{action}/{id}", // URL with parameters new {controller = "User", action = "Index", id = UrlParameter.Optional} // Parameter defaults ); }
現在運行一下程序看看效果:
現在你的程序不但已經包含增刪改,甚至連日期都自動識別為選取框了。是不是非常迅速?同樣你可以修改t4模版,讓它支持搜索,支持多表聯合...
5.最后一步
到目前為止,我們的Kalman Studio一直沒有使用到,我們將用他來生成中文標簽。
下載文尾的Kalman t4 模版,放入程序目錄下的T4Template/Entity中
配置程序根目錄下的config,添加連接串
<connectionStrings> <clear/> <add name="Server" connectionString="data source=192.168.0.4;initial catalog=RapidWebDevSample;persist security info=True;user id=sa;password=123;" /> </connectionStrings>
打開主程序,在左邊的下拉列表中選擇該連接,雙擊展開,在表上右鍵,選擇代碼生成器
依次 雙擊Entity,Create,點擊代碼生成,生成后如下:
<table class="editForm"> <tr> <td> @Html.LabelFor(model => model.UserName,"名稱:") </td> <td> @Html.TextBoxFor(model => model.UserName,new{@id="c_UserName"}) </td> </tr> <tr> <td> @Html.LabelFor(model => model.Password,"密碼:") </td> <td> @Html.TextBoxFor(model => model.Password,new{@id="c_Password"}) </td> </tr> <tr> <td> @Html.LabelFor(model => model.Age,"年齡:") </td> <td> @Html.TextBoxFor(model => model.Age,new{@id="c_Age"}) </td> </tr> <tr> <td> @Html.LabelFor(model => model.Enable,"是否啟用:") </td> <td> @Html.TextBoxFor(model => model.Enable,new{@id="c_Enable"}) </td> </tr> <tr> <td> @Html.LabelFor(model => model.Birth,"生日:") </td> <td> <input id="c_Birth" name="Birth" required="true"/> </td> </tr> </table>
覆蓋Views/Create中的對應表格,完成。其他Edit,Index同樣生成,覆蓋。
整個過程,我們不需要敲入一行代碼。
尾注:此框架中還有非常多的特性等着你去發現,例如客戶端的校驗,遠程校驗(重名檢測)都能非常容易地實現。歡迎留言討論。轉載請注明來自極客獅子。