老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

如何分析Web應用架構中的查詢傳遞

本篇文章為大家展示了如何分析Web應用架構中的查詢傳遞,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

在江源等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供成都網站制作、成都網站設計、外貿營銷網站建設 網站設計制作定制網站,公司網站建設,企業網站建設,高端網站設計,全網營銷推廣,外貿營銷網站建設,江源網站建設費用合理。

在Web應用開發中,最常見也容易變化的一種需求是根據不同的查詢條件獲取數據列表。如何傳遞查詢條件將影響程序應對需求變化的能力,一定要在架構中重點考慮。

開始時我們使用一堆參數傳遞查詢條件,比如:

List GetMsgList(int pageIndex, int pageSize, int RecipientId);

結果,每個不同的查詢都要寫一個接口,產生了一堆接口;查詢條件改變,接口也隨之要改。寫程序最痛苦的事莫過于接口的頻繁變化。

后來使用查詢對像,比如:

List GetMsgList(SiteMsgQuery msgQuery);

這樣,查詢條件改變時,只需修改SiteMsgQuery的定義,接口保持不變。采用這個方法后,寫代碼比之前少了很多痛苦。

但使用這個方法有個地方不爽,完成一次查詢需要進行兩次實例化,一次是查詢對象SiteMsgQuery的實例化,一次是領域對象SiteMsgManager(負責業務邏輯)的實例化。在博客園程序架構中,查詢對象的實例化是在表現層完成的,如果是ajax調用,json會自動反序列為查詢對象;領域對象的實例化在服務層完成。

為了讓代碼寫的更爽一些,我們又進行了嘗試,取消查詢對象SiteMsgQuery,將它的屬性放到領域對象中。這樣減少了一次實例化,只需一次,如果是ajax調用,可以實現服務器端“零實例化”。

下面看一下代碼示例:

領域模型的定義:

[DataContract]  public class SiteMsgManager  {  public SiteMsgManager()  {  }   #region Properies   [DataMember]  public int PageIndex { get; set; }   [DataMember]  public int PageSize { get; set; }   [DataMember]  public int RecipientId { get; set; }   public List List { get; set; }   #endregion   public void GetList()  {      using (SpaceObjectContext context = new SpaceObjectContext())      {          this.List = context.SiteMsgs              .Where(msg => msg.RecipientSpaceUserId == this.RecipientId)              .OrderByDescending(msg => msg.id)              .Skip((PageIndex - 1) * PageSize)              .Take(this.PageSize)              .ToList();      }             }

服務實現類(也是WCF的服務實現):

public class MsgService : IMsgService  {      public List GetMsgList(SiteMsgManager siteMsgManager)      {          siteMsgManager.GetList();          return siteMsgManager.List;      }  }

UI層調用代碼(WCF調用,ASP.NET MVC控制器):

  1. public class MsgController : Controller  

  2. {  

  3.     //ajax調用  

  4.     [HttpPost]      

  5.     public ActionResult List(SiteMsgManager msgManager)  

  6.     {  

  7.         return View("MsgList", GetInboxMsgList(msgManager));  

  8.     }  

  9.  

  10.     public ActionResult Inbox()  

  11.     {  

  12.         SiteMsgManager msgManager = new SiteMsgManager()  

  13.         {  

  14.             PageIndex = 1,  

  15.             PageSize = 30 

  16.         };          

  17.         return View("Inbox", GetInboxMsgList(msgManager));  

  18.     }  

  19.  

  20.     private List GetInboxMsgList(SiteMsgManager msgManager)  

  21.     {  

  22.         int spaceUserId = Util.GetCurrentUser
    (System.Web.HttpContext.Current).SpaceUserID;  

  23.         msgManager.RecipientId = spaceUserId;  

  24.         MsgServiceClient client = new MsgServiceClient();  

  25.         List siteMsgList = client.GetMsgList(msgManager).ToList();  

  26.         try { client.Close(); }  

  27.         catch { client.Abort(); }  

  28.         return siteMsgList;  

  29.     }  

看看上面供ajax調用的List方法,不需要進行SiteMsgManager的實例化,系統根據ajax客戶端傳遞過來的json參數自動反序列化生成SiteMsgManager對象。

再來看看ajax客戶端代碼:

function GetMsgList(pageIndex, pageSize) {      var msgManager = {}      msgManager.PageIndex = pageIndex;      msgManager.PageSize = pageSize;       $.ajaxSettings.dataType = 'plain/text';         $.ajaxSettings.url = '/msg/list';      $.ajaxSettings.data = '{"msgManager":' + JSON.stringify(msgManager) + '}';      $.ajaxSettings.success = function (data) {          $("#msg_list").html(data);      };      $.ajax();  }

js傳遞的也是一個對像。

整個ajax調用的流程是這樣的:js對象(msgManager)->json->MsgController(MVC控制器)->代理領域對象SiteMsgManager(WCF客戶端代理類的實例)->WCF服務接口->WCF服務實現(自動通過反序列化生成領域對象SiteMsgManager,并調用GetList()方法)->領域對象完成業務邏輯操作返回數據。

采用這種方法,感覺寫代碼比以前更享受了。我們在實際開發中也開始使用這種架構,并根據實際使用情況進一步改進。

上述內容就是如何分析Web應用架構中的查詢傳遞,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。


分享題目:如何分析Web應用架構中的查詢傳遞
分享路徑:http://www.xueling.net.cn/article/pccesi.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 少妇高潮灌满白浆毛片免费看 | 成年人黄色一级片 | 91久久国产综合久久 | 2020国产精品香蕉在线观看 | 夜夜爱夜夜做夜夜爽 | 日韩人妻中文无码一区二区三区 | 69视频播放| 亚洲爆乳精品无码一区二区 | 中国特级黄色大片 | 国产精品主播一区二区三区 | 成人一区二区三区视频在线观看 | 国产视频中文字幕在线观看 | 欧美日韩一区二区在线视频播放 | www.日韩在线视频 | 一级黄色片中文字幕 | av熟女人妻一级毛片 | 222aaa精品影院| 国产一级特a一级码 | 精品中文字幕一区二区 | 国产精品女丝袜白丝袜 | 国产在线高清精品 | 亚洲人网 | 欧美不卡在线观看一区 | 环太平洋免费看 | 在线观看免费人成视频播放 | 国产性色 | 久久网中文字幕 | 性xxxxfree盗摄国产 | 嫩草研究院一二三四 | av中文字幕在线观看 | 国产区图片区小说区亚洲区 | 国产精品麻豆一区二区三区 | 深夜看国产毛片在线视频香蕉 | 国产精品看片 | 亚洲AV成人无码一区在线观看 | 亚洲国产综合在线观看 | 麻豆视频免费看了 | 一道久在线无码加勒比 | 99日精品视频| 四虎精品久久 | 亚洲日韩欧美一区 |