不知不覺(jué)已經(jīng)過(guò)了13講,(本來(lái)還要講多一講是,數(shù)據(jù)驗(yàn)證之自定義驗(yàn)證,基于園友還是對(duì)權(quán)限這塊比較敢興趣,講不講驗(yàn)證還是看大家的反映),我們應(yīng)該對(duì)系統(tǒng)有一個(gè)小結(jié)。
首先這是一個(gè)團(tuán)隊(duì)開(kāi)發(fā)項(xiàng)目,基于接口編程,我們從EasyUI搭建系統(tǒng)的框架開(kāi)始,開(kāi)始了一個(gè)樣例程序?qū)asyUI的DataGrid進(jìn)行了操作,并實(shí)現(xiàn)Unity的注入到容器,使程序
的性能大大提升,代碼質(zhì)量上升,更佳利于單元測(cè)試,使用日志和異常堅(jiān)固系統(tǒng)穩(wěn)定性等等。。。。
當(dāng)然你應(yīng)該覺(jué)得系統(tǒng)還有存在很多不足,我們應(yīng)該動(dòng)手來(lái)優(yōu)化一下。
下面我羅列了需要優(yōu)化的項(xiàng)目,如果你覺(jué)得還有優(yōu)化的,請(qǐng)?zhí)峤唬覍⒓尤胍院蟮奈恼轮腥?
- UI方面,我們的easyui window彈出窗體,是不是沒(méi)有居中,好丑啊;
- DataGrid雖然我在綁定時(shí)候?qū)懭肓烁鶕?jù)第一次窗體的變化去適應(yīng)框架,這時(shí)你點(diǎn)擊游覽器的縮小或者擴(kuò)大按鈕,那么你的DataGrid變形了;
- JS我們?cè)贒etails頁(yè)面引入了JS,我們是否應(yīng)該把他嵌入到_Layout_----里面去?并進(jìn)行捆綁?
- 我們DataGrid返回的日期格式是/Date(20130450000365)你看得懂嗎?
- 我們的BLL每次都要去實(shí)例化 DBContainer db = new DBContainer();重復(fù)操作,我們是不是應(yīng)該寫(xiě)一個(gè)BaseBLL基類(lèi)類(lèi)繼承
- 我們前端很多提示信息都一樣,是不是應(yīng)該封裝起來(lái),比如點(diǎn)擊:Details時(shí)沒(méi)有選擇提示的“請(qǐng)選擇要操作的記錄”
- 工具欄的增、刪、改按鈕一樣每次粘貼的代碼也不少,我們應(yīng)該擴(kuò)展Mvc的HtmlHelper的封裝,之后我們@html.就出來(lái)了多方便,以后還用于權(quán)限控制
優(yōu)化后的系統(tǒng)將可能做為最后一個(gè)發(fā)布源碼的版本,
如無(wú)必要以后不再提供源碼下載
,但所講的內(nèi)容中,將全部包含完整源碼,請(qǐng)你將完成的系統(tǒng)“珍藏”起來(lái),因
為這是你的勞動(dòng)成果
最后我們將接受一個(gè)更大的目標(biāo)挑戰(zhàn),權(quán)限管理系統(tǒng)。我覺(jué)得這個(gè)是大家最關(guān)心的事情了,但是在此之前,我們將要補(bǔ)充一些知識(shí)。
- MVC自帶的過(guò)濾器用法
- MVC路由Rotun概念
權(quán)限系統(tǒng)講完了,我們講T4模板,導(dǎo)出報(bào)表和圖表,
文件上傳
,系統(tǒng)設(shè)置等等補(bǔ)充..讓我們的系統(tǒng)拿出來(lái)就能當(dāng)項(xiàng)目來(lái)用。
由于接下來(lái)的東西邏輯性和編碼都要比之前的復(fù)雜很多,所以更新可能會(huì)比以前慢。請(qǐng)大家耐心等待,謝謝園友的支持,無(wú)論多忙我都會(huì)不斷的更新
現(xiàn)在我們先來(lái)解決以上7個(gè)問(wèn)題吧!
1.UI方面,我們的easyui window彈出窗體,是不是沒(méi)有居中,好丑啊;
Easyui 讓W(xué)indow彈出居中
2.DataGrid雖然我在綁定時(shí)候?qū)懭肓烁鶕?jù)第一次窗體的變化去適應(yīng)框架,這時(shí)你點(diǎn)擊游覽器的縮小或者擴(kuò)大按鈕,那么你的DataGrid變形了;
Easyui 讓DataGrid適應(yīng)瀏覽器寬度
3.JS我們?cè)贒etails頁(yè)面引入了JS,我們是否應(yīng)該把他嵌入到_Layout_----里面去?并進(jìn)行捆綁?
我已經(jīng)進(jìn)行壓縮了.源碼帶出.
4.我們DataGrid返回的日期格式是/Date(20130450000365)你看得懂嗎?
MVC解決Json DataGrid返回的日期格式是/Date(20130450000365)
5.我們的BLL每次都要去實(shí)例化 DBContainer db = new DBContainer();重復(fù)操作,我們是不是應(yīng)該寫(xiě)一個(gè)BaseBLL基類(lèi)類(lèi)繼承
我已經(jīng)進(jìn)行分離,源碼帶出.
6.我們前端很多提示信息都一樣,是不是應(yīng)該封裝起來(lái),比如點(diǎn)擊:Details時(shí)沒(méi)有選擇提示的“請(qǐng)選擇要操作的記錄”
在App.Common加入以下類(lèi)Suggestion
在視圖中的使用
$(
"
#btnDelete
"
).click(function () {
var
row = $(
'
#List
'
).datagrid(
'
getSelected
'
);
if
(row !=
null
) {
$.messager.confirm(
'
提示
'
,
'
@Suggestion.YouWantToDeleteTheSelectedRecords
'
, function (r) {
if
(r) {
$.post(
"
/SysSample/Delete?id=
"
+
row.Id, function (data) {
if
(data.type ==
1
)
$(
"
#List
"
).datagrid(
'
load
'
);
$.messageBox5s(
'
提示
'
, data.message);
},
"
json
"
);
}
});
}
else
{ $.messageBox5s(
'
提示
'
,
'
@Suggestion.PlaseChooseToOperatingRecords
'
); }
});
@Suggestion.PlaseChooseToOperatingRecords '
7.工具欄的增、刪、改按鈕一樣每次粘貼的代碼也不少,我們應(yīng)該擴(kuò)展Mvc的HtmlHelper的封裝,之后我們@html.就出來(lái)了多方便,以后還用于權(quán)限控制
這個(gè)必須返回MvcHtmlString和在視圖中引入命名空間。在App.Admin的Core文件夾中新建類(lèi)ExtendMvcHtml
并加入以下代碼
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Web;
using
System.Web.Mvc;
using
App.Models.Sys;
namespace
App.Admin
{
public
static
class
ExtendMvcHtml
{
///
<summary>
///
普通按鈕
///
</summary>
///
<param name="helper">
htmlhelper
</param>
///
<param name="id">
控件Id
</param>
///
<param name="icon">
控件icon圖標(biāo)class
</param>
///
<param name="text">
控件的名稱(chēng)
</param>
///
<param name="hr">
分割線
</param>
///
<returns>
html
</returns>
public
static
MvcHtmlString ToolButton(
this
HtmlHelper helper,
string
id,
string
icon,
string
text,
bool
hr)
{
StringBuilder sb
=
new
StringBuilder();
sb.AppendFormat(
"
<a id=\"{0}\" style=\"float: left;\" class=\"l-btn l-btn-plain\">
"
, id);
sb.AppendFormat(
"
<span class=\"l-btn-left\"><span class=\"l-btn-text {0}\" style=\"padding-left: 20px;\">
"
, icon);
sb.AppendFormat(
"
{0}</span></span></a>
"
, text);
if
(hr)
{
sb.Append(
"
<div class=\"datagrid-btn-separator\"></div>
"
);
}
return
new
MvcHtmlString(sb.ToString());
}
}
}
并在視圖中使用它,使用例子!
@Html.ToolButton(
"
btnQuery
"
,
"
icon-search
"
,
"
查詢(xún)
"
,
true
)
@Html.ToolButton(
"
btnCreate
"
,
"
icon-add
"
,
"
新增
"
,
true
)
@Html.ToolButton(
"
btnEdit
"
,
"
icon-edit
"
,
"
編輯
"
,
true
)
@Html.ToolButton(
"
btnDetails
"
,
"
icon-details
"
,
"
詳細(xì)
"
,
true
)
@Html.ToolButton(
"
btnDelete
"
,
"
icon-remove
"
,
"
刪除
"
,
true
)
@Html.ToolButton(
"
btnExport
"
,
"
icon-export
"
,
"
導(dǎo)出
"
,
true
)
迄今為止,我們7個(gè)問(wèn)題已經(jīng)陸續(xù)改完了,由于可能是最后一次發(fā)布【源碼含數(shù)據(jù)庫(kù),完整的增刪改查例子】,我想做一個(gè)不是很“人道”的事情
源碼我將發(fā)布到共享37509873
如果你想獲得一份源碼,希望大家來(lái)加入Asp.net高級(jí)討論群
出處: http://ymnets.cnblogs.com/
本文版權(quán)歸作者和博客園共有,歡迎轉(zhuǎn)載,但未經(jīng)作者同意必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接,否則保留追究法律責(zé)任的權(quán)利。
構(gòu)建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后臺(tái)管理系統(tǒng)(14)-系統(tǒng)小結(jié)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

