小專案開始未分層,但後來業務複雜,如何改進?

sclsch發表於2010-01-29
以前寫java,一直是資料層,業務層,表現層,這麼寫。最近用到.net,開始很生疏,感覺.net的框架發展還不是很成熟,orm框架也不敢用,不熟悉。
想自己寫實體,但是又麻煩,每個資料表一個類,類的封裝也很麻煩,比如表30個欄位,頁面來的資料我要set30次,構造成物件,然後傳給業務方法,然後再get30次,構造sql語句插入到資料庫中,實在恐怖。
有因為公司小,業務簡單,就沒有用三層寫。於是我就分出2層來,一個資料庫的訪問類,算是一層吧。至於業務,就是簡單的增刪改查,sql語句搞定吧。
後來根據需求要做許可權管理。設定每個使用者操作每張表的增刪改查許可權,都搞定了。不過,我要在所有的增刪改查操作中侵入一段程式碼:
UserInfo ui = (UserInfo)Session["user"];//取當前使用者
RightOper ro = new RightOper();
ro.Oper = ro.INS;//當前操作為增加操作
if (!RightManager.isRight("t_travel", ro, ui))//如果沒有對錶t_travel增加許可權的操作
{
Response.Write("<script>alert('您沒有操作許可權');window.location='travel_list.aspx'</script>");
}
else { //反之有許可權
...//原始碼
}

雖然能實現,帶感覺對原來的程式碼侵入太多,邏輯不高畫質晰,而且很繁瑣,所有的增刪改查,都有套上這麼一層套,實在很蹩腳。如何在不用框架的情況下實現類似java的面向切片的功能,或者有什麼更好的解決方案。

相關文章