閑談Silverlight精簡框架應用方式
Silverlight的應用在一定程度上解決了開發人員對于多媒體處理方面的難題。并且根據實際的使用最大限度的提高了開發效率。我們在這里將會為大家介紹有關Silverlight精簡框架的一些應用方法。#t#
Silverlight的數據請求需要架設wcf、webservice或者webclient,而且中間數據需要序列化和反序列化,或者自己用linq解析,易用性不是很強,且比較麻煩,基于目前還沒有統一和規范的silverlight開發模式,所以從五六個自己做過的基于Silverlight的中型項目,抽出核型代碼形成一套精簡框架,方便調用,擴充和分布式部署。
Silverlight精簡框架項目文件說明:
- EasySL.Controls 封裝了一些基于Silverlight的
自定義控件,目前還沒加進來 - EasySL.Core 請求數據,返回數據的json序
列化和反序列化機制,較之webservice xml性能好些 - EasySL.Core.SL 和上面一樣,Silverlight項目用
- EasySL.Data 數據訪問層實現
- EasySL.Data.Interface 數據訪問層接口
- EasySL.Entity 實體層
- EasySL.Service 業務邏輯,數據加工,緩存處理
- EasySL.Share 一些常用helper
- EasySL.Server Remoting server
- EasySL.UI Silverlight主控件
- EasySL.Web asp.net主頁面
Silverlight精簡框架部署方式:
1.web.config里設置ServerEnable為false,將不需要開啟remoting server,由web層直接請求業務邏輯層(EasySL.Service)
2.web.config里設置ServerEnable為true,然后啟動remoting server(EasySL.Server),
將由remoting server代理訪問業務邏輯層,易于分布式部署
Silverlight精簡框架簡單使用:
- //UI層page.xmal.cs
- //初始化一個task
- this.getProductListTask = new Task();
- //初始化請求數據
- getProductListTask.BeforeStart += new
EventHandler<EventArgs>(getProductList
Task_BeforeStart);- //回調時更新界面
- getProductListTask.Callback += new
GetDataAsyncCompleted(GetProductLis
tCallBack);- void getProductListTask_BeforeStart
(object sender, EventArgs e)- {
- Task task = sender as Task;
- task.MethodName = "GetProductList";
//對應于數據層的方法名- task.ReturnType = typeof(List<Product>);
//對應于數據層的返回類型- task.SetParameter("count", int.Parse
(this.count.Text)); //對應于數據層的方法的參數- }
- public void GetProductListCallBack
(Response response)- {
- List<Product> product = reponse.
data as List<Product>;- //update UI.
- }
- //所以你需要在數據訪問層增加對應的方法:
- public List<Product> Get
ProductList(int count)- {
- //get data from xml or database
- }
Silverlight精簡框架的相關應用放就為大家介紹到這里。