silverlight學習日記 第乙個試水架構

2021-08-26 00:25:12 字數 1902 閱讀 4695

採用微軟提供的silverlight+wcf ria service+ado.net entity或者是linqtosql對於開發小的,且業務邏輯不太複雜的系統來說確實很簡單,也很快,在這兩天的學習中,有些小體會,

但採用已有的框架(比如,nhibernate,sprint.net等)一向來都不是我的風格,因為我比較喜歡可控性,雖然說這些框架都是非常好的東西,但畢竟:一、它們都是為全世界服務的,想得太全就必然「不精」,而我的選擇只需要對我自己的系統負責,那裡面太多的東西對我來說要麼沒有用,要麼就太累贅;二、東西是好,但畢竟被封起來了,要增加一些適合自己系統的快速開發功能,就不太容易了。

通過這幾天的學習,我為我自己的系統構架了乙個簡單的框架,因為初入銀光,能力有限,還望大家賜教。

總的架構就是:資料庫+模型層+ui層(檢視+檢視模型層)(這個就是silverlight的mvvm模式).

我主要集中在模型層,將其分為資料庫訪問層,資料訪問層,業務邏輯層和對外服務層,外加乙個公用的實體層。

資料庫訪問層:主要是與資料庫打交道,之所以單獨作為一層,主要是為了實現多種資料庫訪問的支援,當然,在這一層我會提供乙個統一的訪問介面給資料訪問層。

資料訪問層:主要實現具體的業務資料訪問,比如獲取實體等,這一層封裝具體業務sql的訪問,為了避免資料庫sql語句的差異性,這一層,同樣通過統一的介面提供給業務邏輯層來訪問。

業務邏輯層:業務邏輯的控制主要都在這裡,這一層是資料庫型別無關的,一般情況下只對實體或者datatable進行操作。

前面的幾層採用傳統的程式設計方式形成類庫,供其它層呼叫即可。

對外服務層:採用wfc ria service提供服務給silverlight客戶端呼叫。除了一些許可權控制之外,這層基本都是呼叫業務邏輯層。

實體層:就是資料庫表的實體化一層,實現資料庫表與實體類的對映。

上面的層次可能比較多,之所以不用對外服務層做業務邏輯層,主要原因是對外服務層是專門針對silverlight客戶端,其它的應用都沒法訪問。而目前的這種方式的好處就是業務邏輯層以下,winform,web,webservice,wcf等都可以用,有很大的靈活性。

下面是具體的**(類可以分庫存放,有些層太大還可以分工程):

public class dbhelper

catch}}

public class employee_d

}return thelists;}}

public class employee_b

}public listgetentitys()

[invoke]

public string updateemployee(employee_e model)

[invoke]

public int gettemp(employee_e model, string aaa)

}public inte***ce ientitibase

[datamember]

[key]

string keyvalue

}[datacontractattribute(isreference = true)]

public class employee_e : ientitibase

[datamember]

public string employeedesc

[datamember]

[key]

public int employeeid

[datamember]

public string employeename

[datamember]

public int sss

}[datamember]

private dictionary_dicts = new dictionary();

public dictionarydicts

}public string keyvalue}}

Silverlight學習之布局

silverlight布局主要有三種布局方式 grid stackpanel和canvas canvas canvas 採用的是相對定位布局,通過canvas.left和canvas.top兩個屬性來控制元素在canvas中的位置。效果 其中從上往下第乙個按鈕距左50,距上50。第二個距左50,距上...

Silverlight學習之 Canvas物件

首先canvas為silverlight提供的乙個布局元素之一。每個子物件都呈現在canvas區域中。通過指定x和y座標,可以控制物件在canvas中的定位。這些座標以為象素為單位。x和y座標通常使用canvas.left和canvas.top的附加屬性來指定。canvas.left 指定物件與包含...

學習Silverlight最佳部落格

中文blog terrylee 我和未來有個約會 笑看風雲淡 webabcd 英文blog official silverlight website brad adams 首席產品部門經理 s blog nikhil kothari 微軟principal architect s blog jess...