日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight WCF 初尝小结

發布時間:2025/4/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight WCF 初尝小结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一年多的時間一直在等待Silverlight的穩定版本,但是從1.0 2.0 到現在的3.0BETA 一直吸引著我,于是終于按奈不住,一窺了Silverlight的魅力。

?

Silverlight是什么?怎么說呢?也許開發過WPF的人會有比較透徹的理解。Silverlight就像WPF提煉出來運用到WEB上的插件。界面的開發,程序部分的開發都集成了WPF的那一套,不過,既然是應用到WEB上的,自然遵循了很多WEB的規則,因此也有些許區別于WPF,至少他們概念上就完全是兩個東西,這樣的比較就類似于WINFORM和 ACTIVEX。

?

Silverlight可以像FLASH一樣做出炫目的客戶端效果,同時擁有完善的開發構架,程序員可以非常方便的處理Silverlight中的事件、調用系統庫,這是FLASH無法比擬的,當然FLASH相對Silverlight來說,動畫和矢量的設計也許會更加得心應手。

?

對于客戶端而言,Silverlight與FLASH基本上一樣,用戶都需要在瀏覽器上安裝相應插件(Silverlight的插件小很多),展現出來同樣的有視覺沖擊力。所以對用戶而言,處了安裝的插件不同以外,其他似乎不存在什么太大的差異,這也是MS目的,只要用戶不認為兩者有什么區別甚至Silverlight更好,那么,對開發人員的方便就是對MS的方便。

?

廢話多了。

?

如何搭建Silverlight的開發環境呢 ?

網上很多相關文章,給人的第一影響就是“麻煩”。沒錯,很麻煩,不像FLASH,安裝一個FLASH軟件就可以進行開發。

Silverlight,需要很多部件支持。

? 首先以目前的正式版本2.0來說,就需要VS2008 + SP1 ,VS的作用當然是做程序部分的開發,毋庸置疑,而且WEB的開發也用到它,所以先安裝個VS2008+SP1沒什么意見吧。

? 之后,你會發現你的VS2008并不能創建 Silverlight應用程序項目,為什么,因為你缺少 Silverlight Tool FOR VS2008 SP1 ,所以還要安裝一個 Silverlight Tool for VS2008 SP1。

? 好了,可以在VS里創建Silverlight項目了,可以進行開發了,VS支持界面預覽,但是不可編輯。而且用VS開發界面似乎不太現實,不用擔心,MS當然也有它自己的界面開發工具? BLEND2 +SP1 ,BLEND里的示例是WPF的,所以可以知道,BLEND是開發WPF界面的,當然用來開發Silverlight的界面也是小菜一碟。 VS08可以和BLEND2相互切換來完成界面和程序的開發。

??? 至此,就可以完成Silverlight的開發環境配置,配置好以后,.NET3.0 3.5會被默認的安裝,這是需要注意的,因為開發過程中可能會用到3.0? 3.5的庫,因此如果將項目發布到服務器后,也應當相應的將.NET的這些版本安裝到服務器上。

?

?

好了,創建個Silverlight來玩玩吧。

?

創建Silverlight應用程序項目的時候,VS會問你 是調試的時候生成測試頁來承載Silverlight還是自動創建個ASP.NET項目來承載Silverlight, 有什么區別呢 ?如果你只是做Silverlight的界面和客戶端的交互效果,用單獨的測試頁來承載就可以了,這樣方便調試,按個CTRL+F5就OK,但是如果你要用到WCF,或者通過ASP.NET做些動態的事情,那么就用ASP.NET項目來承載吧,這樣可以盡可能的模擬出將Silverlight承載到網站后的效果。

?

?

創建Silverlight后,你可以看到項目里有兩個XAML文件并相應的對應了.CS文件, 一個是APP.XAML另一個是Page.XAML,APP.XAML.CS的構造函數是初始化Silverlight項目的,接下來?

private void Application_Startup(object sender, StartupEventArgs e)
??????? {
??????????? this.RootVisual = new page();
??????? }

可以看到 new 后面的就是Page.xaml.cs所在的類。他的意思當然就是創建Page示例,這樣你的Page就被實例化出來了,很像WINFORM吧。

?

?

之后的事情,個人認為開發過.NET的人應該都駕輕就熟了。需要注意的是,跟開發ASP.NET不同,? Silverlight的所有代碼是在客戶端運行的,對于很多開發慣了ASP.NET的人來說可能一下子不習慣,不過如果你是做WINFORM的,那就當我沒說。

?

試著寫一個小程序來玩玩吧。

?

東西做好了,當然那就需要編譯。Silverlight在生成后會在BIN下生成一個APPMAINFEST.XAML,這是一些配置比如DLL的路徑,一個DLL,不用說了,邏輯代碼都在這。另外會有一個XAP,這是什么,其實就是剛才說的那兩個文件的一個壓縮包,可以ZIP RAR工具打開,他只是將后綴作為XAP,這樣在頁面上<object>調用的時候SOURCE就會指向XAP這個包。

?

就這么簡單,在WEB上用<object>承載這個生成出來的XAP包就可以顯示Silverlight了。

?

似乎太沒什么含量,感覺不出Silverlight的魅力。

那么就嘗試做個應用了WCF的Silverlight吧。

?

WCF是什么?根據我了解的資料,WCF是一個統一的類似WEBSERVICE的解決方案,WEBSERVICE是WCF的一個子集。

他提供了更多更強的服務方案。

?

具體資料可以在MSDN上找到,廢話不多說了。

?

引用WCF等過程與以前引用WEBSERIVCE差不多,摸索下很快就了解了。

這里提一下需要注意的地方。

?

在引用 WCF后,Silverlight項目里會生成一個ClientConfig文件,如果WCF項目是單獨的,這個ClientConfig文件里不會寫入任何東西,你只會看見一個配置跟節點。

但是如果你的WCF是創建在某個ASP.NET項目里,這時候生成出來的ClientConfig文件里會有很多配置,例如綁定方式和服務ENDPOINT(服務提供的地址)。

?

?

以上綠色文字的地方是我之前的理解錯誤,ServiceReferences.ClientConfig內是否自動生成配置信息是要看Silverlight引用的WCF是否啟用了Silverlight功能,而不是看WCF是單獨的項目還是在Web項目中的其中一項。所以在當我們在在項目中創建一個“啟用Silverlight功能的WCF”后,在Silverlight項目中引用它時,ServiceReferences.ClientConfig文件就會自動配置出該引用的終節點和綁定。

?

?

實際上引用WCF之后,項目里只是創建了一個WCF所提供服務的類的結構,至于如何去綁定,去哪里請求服務,都是由配置的Binding方式和ENDPOINTADDRESS來決定。

?

為什么引用一個單獨的WCF項目時不生成配置呢?因為在編碼過程中,程序員可以制定BIND和ENDPOINT,所以,個人認為MS是為了讓你的應用程序更加靈活,所以直接引用獨立的WCF項目是不會生成CLIENTCONFIG的配置的,然而,如果你的WCF服務是來自一個ASP.NET項目的話,那么Silverlight項目會認為你將會把Silverlight承載到這個ASP.NET中的某頁去,因此就將BIND和ENDPOINT直接配置到了CLIENTCONFIG中。當然,及時配置到了CLIENTCONFIG,在編碼中仍然可以指定BIND和ENDPOINT來覆蓋CLIENTCONFIG中的配置。

?

Silverlight在調用WCF服務是通過異步調用,因此代碼類似這樣:

?

private void UserControl_Loaded(object sender, RoutedEventArgs e)
??? {
??????? Binding binding = new BasicHttpBinding();
??????? EndpointAddress endPoint = new EndpointAddress(
??????????????? "http://localhost:52424/Blog.svc");

??????? BlogClient client = new BlogClient(binding, endPoint);
??????? client.GetPostsCompleted += new EventHandler<GetPostsCompletedEventArgs>(client_GetPostsCompleted);
??????? client.GetPostsAsync();
??? }

??? void client_GetPostsCompleted(object sender, GetPostsCompletedEventArgs e)
??? {
??????? if (e.Error == null)
??????? {
??????????? Posts.ItemsSource = e.Result;
??????? }
??? }

?

可以看到,當你在WCF創建了一個類,調用的時候,該類會被命名成[類名]+Client,所以,看到別人調用的時候有個XXCLIENT,不要奇怪為什么上下文找不到其定義。

?

之后,類中的方法也會成為 方法+ASYNC? 這是異步方法,在Silverlight中引用WCF就會出現,而在ASP.NET項目中引用則沒有。

?

?WCF被Silverlight引用后,會生成一個事件,對應方法? 方法名+Compeleted,在事件上綁定好處理函數,就完成了異步調用并異步返回了。

?

很簡單吧,比起AJAX來說,實在是方便很多。

?

注意看的朋友會發現 這里定義了個 Binding 類型的binding實例,和一個EndpointAddress 類型的endPoint,這就是之前我提到可以在編碼中手工指定 bind方法和Endpoint的地方,如果 ClientConfig里配置好了這兩個參數,你也可以這樣寫

?

private void UserControl_Loaded(object sender, RoutedEventArgs e)
??? {

??????? BlogClient client = new BlogClient();
??????? client.GetPostsCompleted += new EventHandler<GetPostsCompletedEventArgs>(client_GetPostsCompleted);
??????? client.GetPostsAsync();
??? }

?

?

當然,及時ClientConfig里配置好了,也可以通過編碼的時候指定來更改這兩個參數。

?

?

如果完全理解了Silverlight+WCF怎么做,我想你可以輕松的完成一個小示例來享受下Silverlight的魅力。

?

但是可能大多數人在做Silverlight+WCF的時候會遇到一些郁悶的問題,典型的就是跨域訪問的問題。

?

WCF比 WS考慮得要周全些了,為了禁止外部的非法調用,WCF默認只能是同域才可訪問,我們在開發的時候,如果WCF是單獨的項目,那么調試時,WCF的路徑可能是 http://localhost:1234/test.svc。而用來承載Silverlight的ASP.NET路徑則可能是 http://localhost:4321/xx.aspx?,這樣是會被認為是兩個不同的域,因此你的Silverlight將會出現跨域訪問的報錯,如果解決呢?沒什么特的,部署好,或是將兩個項目都生成好之后部署到IIS里,或是將 WCF項目移植到 ASP.NET項目中。?

?

OK!

基本上來說,Silverlight以及 Silverlight+WCF的開發解決方案就如此了。

?

有什么新的信息下次補充。

轉載于:https://www.cnblogs.com/ZetaChow/archive/2009/04/24/2237354.html

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的Silverlight WCF 初尝小结的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品视频一区二区三区 | 亚洲精品欧美 | 国产色a| 日韩久久一级片 | 午夜精品久久久久久久久久久久久蜜桃 | 麻豆视频网页 | 99久久人妻无码精品系列 | 欧美熟妇7777一区二区 | 中文在线字幕免费观看 | 182tv福利视频 | 精品无码国产一区二区三区av | 午夜影院入口 | 性久久久久久久久 | 中国免费观看的视频 | www.av.cn| 久久激情婷婷 | 精产国产伦理一二三区 | 国产亚洲在线 | 一级黄色性视频 | av日韩在线免费观看 | 中文字幕无码人妻少妇免费 | 射美女 | 好吊色在线视频 | 香蕉视频亚洲 | 久草小说 | 狠狠伊人 | 人人爽人人爽人人爽 | 欧美日韩精品一区二区三区视频播放 | 麻豆国产精品一区 | a国产精品 | 美女诱惑一区 | 亚洲毛片在线看 | 色呦呦网站在线观看 | 中文字幕在线观看网 | 粉嫩av一区二区三区 | 国产日韩欧美精品一区 | 欧美精品一二 | 不卡的av在线播放 | 日韩av一卡二卡 | 国产精品视频1区 | 亚洲国产精华液网站w | 伊人精品在线视频 | 玖玖在线资源 | 日韩福利视频在线观看 | 美女视频一区 | 精品久久久av | 一级a毛片免费观看久久精品 | 97播播| 国产午夜亚洲精品午夜鲁丝片 | 黄色成人av在线 | 久久久老司机 | 欧美 日韩 国产 一区二区三区 | 国产浮力第一页 | 国产肥白大熟妇bbbb视频 | 中国女人一级一次看片 | 欧美色图亚洲天堂 | 国产成人精品视频在线观看 | 香蕉91视频| 人妻 校园 激情 另类 | 久热中文 | 欧美精品色呦呦 | 国产在线精品一区 | 网址av | 中文字幕一区二区三区人妻在线视频 | 男女视频在线观看免费 | 91丨porny丨在线 | 午夜精品一区二区三 | www.白浆| 亚洲av永久无码精品三区在线 | 久久久久久久穴 | 亚洲专区一 | 国产精品夜色一区二区三区 | 美女看片 | 女人张开双腿让男人捅 | 国产乡下妇女三片 | www黄色片 | 男女做爰真人视频直播 | 69xav| 午夜黄色录像 | 另类捆绑调教少妇 | 欧美精品一二三 | 色欲久久久天天天精品综合网 | 国产精品电影一区二区三区 | 福利一二三区 | 人妻熟女一区二区三区app下载 | 国产91在线免费观看 | 特黄级 | 国产精品成av人在线视午夜片 | 人妻精品无码一区二区 | 国产草草浮力影院 | 四虎影库永久在线 | 黄色片网站免费在线观看 | 在线精品一区二区三区 | 亚洲国产aⅴ精品一区二区的游戏 | 原神女裸体看个够无遮挡 | 69色| 不卡日本 | 欧洲精品在线观看 | 富二代成人短视频 |