九九热最新网址,777奇米四色米奇影院在线播放,国产精品18久久久久久久久久,中文有码视频,亚洲一区在线免费观看,国产91精品在线,婷婷丁香六月天

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

wcf全面解析proj1企業(yè)內(nèi)部交流平臺.ppt

  • 資源ID:2721104       資源大?。?span id="24d9guoke414" class="font-tahoma">2.74MB        全文頁數(shù):38頁
  • 資源格式: PPT        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機:
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機號,方便查詢和重復下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗證碼:   換一換

 
賬號:
密碼:
驗證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認打開,此種情況可以點擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標題沒有明確說明有答案則都視為沒有答案,請知曉。

wcf全面解析proj1企業(yè)內(nèi)部交流平臺.ppt

BF-TECH 4.0 DNET 軟件開發(fā)工程師高薪就業(yè)品牌課程 版權所有:北風網(wǎng),使用WCF搭建企業(yè)通用架構 講師:石曼迪,項目案例1:企業(yè)內(nèi)部交流平臺,目錄,內(nèi)部交流平臺需求 內(nèi)部交流平臺技術選型 內(nèi)部交流平臺設計 內(nèi)部交流平臺實現(xiàn) 內(nèi)部交流平臺演示 內(nèi)部交流平臺項目總結,目標,熟悉WCF開發(fā) 了解WPF開發(fā) 了解通信原理,項目成果展示,項目成果展示,內(nèi)部交流平臺背景,衡量溝通效果的四個指標:方便性、及時性、有效性、可追溯性。先看一下我們對各種溝通方式的對比分析: 面對面溝通; 電話溝通; Email電子郵件; IM即時通訊;,內(nèi)部交流平臺背景,我們需要溝通 我們能實現(xiàn)及時溝通,內(nèi)部交流平臺技術選型,內(nèi)部交流平臺技術選型,套接字編程? 不要 復雜的配置? 不要 開發(fā)成本高? 不要 維護性能差? 不要 平臺兼容性不好? 不要 擴展性差? 不要 協(xié)議單一? 不要 那我們要啥? WCF能夠滿足這些要求!,內(nèi)部交流平臺設計,采用WCF服務端+客戶端方式; 通過TCP/IP通信協(xié)議; 采用WPF界面開發(fā)(設備無關性); 采用ServiceThrottlingBehavior高性能配置建議;,內(nèi)部交流平臺實現(xiàn):服務端,采用HTTP和TCP/IP兩種協(xié)議進行通訊 采用WPF應用程序作為宿主 端口IP自配置,內(nèi)部交流平臺實現(xiàn):服務端,類圖,內(nèi)部交流平臺實現(xiàn):服務端,類圖,內(nèi)部交流平臺實現(xiàn):服務端,界面實現(xiàn),Local IP: Listen Port: Stop Start Status Chat Service,內(nèi)部交流平臺實現(xiàn):服務端,引用程序集,內(nèi)部交流平臺實現(xiàn):服務端,定義一個服務: 設置文件傳輸參數(shù),Uri httpAdrs = new Uri(“http:/“ + textBoxIP.Text.ToString() + “:“ + (int.Parse(textBoxPort.Text.ToString() + 1).ToString() + “/WPFHost/“); Uri baseAdresses = tcpAdrs, httpAdrs ; host = new ServiceHost(typeof(ServiceAssembly.ChatService), baseAdresses);,NetTcpBinding tcpBinding = new NetTcpBinding(SecurityMode.None, true); /設置文件傳輸最大為 64 MB tcpBinding.MaxBufferPoolSize = (int)67108864; tcpBinding.MaxBufferSize = 67108864; tcpBinding.MaxReceivedMessageSize = (int)67108864; tcpBinding.TransferMode = TransferMode.Buffered; tcpBinding.ReaderQuotas.MaxArrayLength = 67108864; tcpBinding.ReaderQuotas.MaxBytesPerRead = 67108864; tcpBinding.ReaderQuotas.MaxStringContentLength = 67108864;,內(nèi)部交流平臺實現(xiàn):服務端,打開優(yōu)化配置: 設置保持連接,ServiceThrottlingBehavior throttle; throttle = host.Description.Behaviors.Find(); if (throttle = null) throttle = new ServiceThrottlingBehavior(); throttle.MaxConcurrentCalls = 100; throttle.MaxConcurrentSessions = 100; host.Description.Behaviors.Add(throttle); ,/保持連接 20 hours. tcpBinding.ReceiveTimeout = new TimeSpan(20, 0, 0); tcpBinding.ReliableSession.Enabled = true; tcpBinding.ReliableSession.InactivityTimeout = new TimeSpan(20, 0, 10); host.AddServiceEndpoint(typeof(ServiceAssembly.IChat), tcpBinding, “tcp“);,內(nèi)部交流平臺實現(xiàn):服務端,開啟服務:,try host.Open(); catch (Exception ex) labelStatus.Content = ex.Message.ToString(); finally if (host.State = CommunicationState.Opened) labelStatus.Content = “Opened“; buttonStop.IsEnabled = true;,內(nèi)部交流平臺實現(xiàn):服務端,測試服務:,http:/localhost:7998/WPFHost/,內(nèi)部交流平臺實現(xiàn):服務端,配置文件:,內(nèi)部交流平臺實現(xiàn):客戶端,采用WPF應用程序作為客戶端表現(xiàn): 增加頭像和文件傳輸,內(nèi)部交流平臺實現(xiàn):客戶端,增加服務引用 net.tcp:/localhost:7996/WPFHost/mex,內(nèi)部交流平臺實現(xiàn):客戶端,界面實現(xiàn):,內(nèi)部交流平臺實現(xiàn):客戶端,定義事件: 定義客戶端集合,this.Loaded += new RoutedEventHandler(Window1_Loaded); chatListBoxNames.SelectionChanged += new SelectionChangedEventHandler(chatListBoxNames_SelectionChanged); chatTxtBoxType.KeyDown += new KeyEventHandler(chatTxtBoxType_KeyDown); chatTxtBoxType.KeyUp += new KeyEventHandler(chatTxtBoxType_KeyUp);,Dictionary OnlineClients = new Dictionary();,內(nèi)部交流平臺實現(xiàn):客戶端,定義狀態(tài)判斷:,if (proxy != null) switch (this.proxy.State) case CommunicationState.Closed: proxy = null; loginButtonConnect.IsEnabled = true; break; case CommunicationState.Closing: break; case CommunicationState.Created: break; case CommunicationState.Faulted: proxy.Abort(); break; case CommunicationState.Opened: ShowLogin(false); break; case CommunicationState.Opening: break;,內(nèi)部交流平臺實現(xiàn):客戶端,建立客戶端連接:,string servicePath = . proxy.Endpoint.Address = . proxy.Open(); proxy.InnerDuplexChannel.Faulted += new EventHandler(InnerDuplexChannel_Faulted); proxy.InnerDuplexChannel.Opened += new EventHandler(InnerDuplexChannel_Opened); proxy.InnerDuplexChannel.Closed += new EventHandler(InnerDuplexChannel_Closed); proxy.ConnectAsync(this.localClient); proxy.ConnectCompleted += new EventHandler(proxy_ConnectCompleted);,內(nèi)部交流平臺實現(xiàn):客戶端,消息發(fā)送:,if (bool)chatCheckBoxWhisper.IsChecked) if (this.receiver != null) proxy.WhisperAsync(msg, this.receiver); chatTxtBoxType.Text = “; chatTxtBoxType.Focus(); else proxy.SayAsync(msg); chatTxtBoxType.Text = “; ,內(nèi)部交流平臺實現(xiàn):客戶端,添加頭像:,Dictionary images = new Dictionary(); int i = 0; foreach (Stream strm in picsStrm) PngBitmapDecoder decoder = new PngBitmapDecoder(strm, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); BitmapSource bitmap = decoder.Frames0 as BitmapSource; Image img = new Image(); img.Source = bitmap; img.Stretch = Stretch.UniformToFill; images.Add(i, img); i+; strm.Close(); return images;,內(nèi)部交流平臺實現(xiàn):客戶端,文件發(fā)送:,OpenFileDialog fileDialog = new OpenFileDialog(); fileDialog.Multiselect = false; strm = fileDialog.OpenFile(); if (strm != null) byte buffer = new byte(int)strm.Length; int i = strm.Read(buffer, 0, buffer.Length); if (i 0) SVC.FileMessage fMsg = new FileMessage(); fMsg.FileName = fileDialog.SafeFileName; fMsg.Sender = this.localClient.Name; fMsg.Data = buffer; proxy.SendFileAsync(fMsg, this.receiver); proxy.SendFileCompleted += new EventHandler(proxy_SendFileCompleted); chatLabelSendFileStatus.Content = “Sending.“; ,內(nèi)部交流平臺實現(xiàn):客戶端,文件接收:,try FileStream fileStrm = new FileStream(rcvFilesPath + fileMsg.FileName, FileMode.Create, FileAccess.ReadWrite); fileStrm.Write(fileMsg.Data, 0, fileMsg.Data.Length); chatLabelSendFileStatus.Content = “Received file, “ + fileMsg.FileName; catch (Exception ex) chatLabelSendFileStatus.Content = ex.Message.ToString(); ,內(nèi)部交流平臺實現(xiàn):客戶端,用戶登錄和注銷:,public void UserJoin(WPFClient.SVC.Client client) ListBoxItem item = MakeItem(client.AvatarID, “- “ + client.Name + “ joined chat -“); chatListBoxMsgs.Items.Add(item); ScrollViewer sv = FindVisualChild(chatListBoxMsgs); sv.LineDown(); ,public void UserLeave(WPFClient.SVC.Client client) ListBoxItem item = MakeItem(client.AvatarID, “- “ + client.Name + “ left chat -“); chatListBoxMsgs.Items.Add(item); ScrollViewer sv = FindVisualChild(chatListBoxMsgs); sv.LineDown(); ,內(nèi)部交流平臺實現(xiàn):客戶端,配置文件:,內(nèi)部交流平臺演示,內(nèi)部交流平臺項目總結,為什么要使用 net.tcp 綁定 為了更好地實現(xiàn)雙向通信,.NET Framework在 3.0的時候引入了一個全新 的通信協(xié)議Net.TCP并作為WCF的一部分。它極大地改進了吞吐量 和連接的數(shù)量。 WCF服務寄宿方式 WCF服務寄宿方式:通過自我寄宿的方式寄宿服務和通過IIS寄宿服務服務寄宿的目的就是開啟一個進程,為WCF服務提供一個運行的環(huán)境。通過為服務添加一個或多個終結點,使之暴露給潛給的服務消費者。服務消費者最終通過相匹配的終結點對該服務進行調(diào)用。,總結,WCF通信技術 WPF開發(fā)技術 WCF通信優(yōu)化技術,WCF視頻教程:使用WCF搭建企業(yè)通用架構 學習地址:,歡迎訪問我們的官方網(wǎng)站 ,

注意事項

本文(wcf全面解析proj1企業(yè)內(nèi)部交流平臺.ppt)為本站會員(tia****nde)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng)(點擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因為網(wǎng)速或其他原因下載失敗請重新下載,重復下載不扣分。




關于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!