A. 如何使用WCF調試器WcfTestClient.exe
在VS Studio Command命令行 窗口裡 直接輸入 WCFTestClient 即可啟動
但是 VS2008要求 提供 元數據地址
VS2010不需要,直接可以啟動後在輸入服務 元數據地址
B. 如何配置net.tcp 的WCF服務
1部署IIS1.1安裝WASIIS原本是不支持非HTTP協議的服務,為了讓IIS支持net.tcp,必須先安裝WAS(),即windows進程激活服務。打開控制面板--程序和功能--打開或關閉windows功能,安裝WAS,安裝完畢後在Services窗口中可以到到如下服務:;Net.MsmqListenerAdapter;Net.PipeListenerAdapter;Net.TcpListenerAdapter;Net.TcpPortSharingService.這幾個服務。確定Net.TcpListenerAdapter與Net.TcpPortSharingService是否已經啟動。1.2確定WCF是否啟用Non-Http支持同樣是在控制項面板中打開這個功能1.3給站點添加net.tcp綁定在IIS中,選中網站,然後在右邊的操作菜單欄中單擊綁定,會彈出一個「網站綁定」窗口,點擊添加,類型選擇net.tcp1.4啟用net.tcp協議選擇網站,點擊「高級設置」,彈出的的窗體中,在「已啟用的協議」一欄中手動添加:net.tcp2測試服務2.1新建服務用VS2010新建一個WCF服務,為了簡單,我就直接用VS默認生成的作測試了。只有一個GetData方法下面是配置的Config:ViewCode2.2發布服務將服務發布到IIS,在瀏覽器中訪問服務,如果訪問正常就說明服務部署成功,2.3測試服務新建一個控制台項目,測試服務。添加服務測試服務正常。3遇到的問題問題1:找不到具有綁定NetTcpBinding的終結點的與方案net.tcp匹配的基址。注冊的基址方案是[http]。這可能是網站中沒有啟用net.tcp協議所到致,也就是少了上面的1.4.問題2:未找到URI「net.tcp://gyoung/Service1.svc/mex」的兼容TransportManager。這可能是因為使用了指向虛擬應用程序外部的絕對地址,或終結點的綁定設置與其他服務或終結點所設置的綁定設置不匹配。請注意,同一協議的所有綁定在同一應用程序中應具有相同的設置。這個問題並沒有找到真正的原因,應該是binding設置的原因,原先的binding配置是:這樣的話會出現上面的錯誤,但當我將後面四個節點去掉後,即變成:就沒有報這個錯誤了。問題3:有沒有必要綁定host地址:之前我在service節點下有增加host地址但發現這根本不起作用,因不不管我怎麼設置,最後我的net.tcp地址都是上面那個,是我設置有錯誤?補充一點:如果你的Silverlight程序無法調用net.tcp服務,可能是你少了跨域文件:clientaccesspolicy.xml將clientaccesspolicy.xml放到IIS的根目錄:C:\inetpub\wwwroot中,因為SL默認只訪問80埠,所以要增加這個文件。
C. VS2005和VS2008做的項目有什麼區別
測試環境windows xp sp2 :界面比VS2005更加美觀大方。載入速度比較快,運行速度與耗占資源基本和VS2005持平。JavaScript 可以智能感應。自帶AJAX 不需要單獨安裝。出現新的技術 LINQ 多了ListView 和 DataPager 控制項。安裝使用 Silverlight 技術 比 vs2005方便
VS 終於可以支援巢狀 Master Page 的 WYSIWYG 設計了!我不知道有多少人曾經為了這個原因而減少或避免巢狀 Master Page 的使用(我是其中之一)。VS2008 終於支援這個本來就應該有的功能,相信能在某一程度上改變大家的設計習慣.
其次,VS2008提供了 CSS 的即時編輯和套用的功能。用過 DreamWeaver 的人或許了解那是什麼意思。不過實際上我覺得 VS2008對 CSS 的支援感覺起來比 DreamWeaver 強大一點。
此外,VS2008 還提供了和 FrontPage/DreamWeaver 一樣的 Split View,也就是可以開一個分割視窗,同時看到設計畫面和原始碼。我想這個功能在拉畫面和設計前端頁面時非常有幫助。
2. 支援對 JavaScript 的除錯與 Intelisence
隨著 Ajax 的風行,客戶端程式設計也逐漸受到重視。我還記得多年前在 VS2005 上市前的一場 MVP 線上會議中,我向美國微軟的開發經理問到會不會支援 JavaScript 的 Intelisense,答案是不會時,心裡有多麼的失望。但晚到總比不到好,我認為這個功能的加入,一定能讓所有網站開發者同感高興。
3. Multi-targeting 功能
第一次看到這個新名詞可能會另人有點摸不著頭緒,像我還以為是一個 HyperLink 控制項可以一次把網頁開到 _blank 和 _top。其實跟那個一點關系都沒有,而是讓你可以選擇新的專案到底是要支援 .Net 2.0 / 3.0 還是 3.5。不管你選擇哪一種,VS2008 會根據你的選擇提供對應的 Intelisense、控制項和其它功能。但不管你指定哪一個版本,並不會讓 VS2008 的基本功能回到 VS2005。換句話說,上面提到的像 JavaScript 除錯等新功能都仍然可用。
4. 內建 Ajax,不需另外安裝
5. 加入兩個新的資料控制項:ListView 和 DataPager
6. 內含 LINQ
VS 2008將支持嵌套母版頁面
ASP.NET 2.0種最引人稱道的一項新特性就是母版頁面(Master Page)。母版頁面將作為網站的風格模板,允許我們很容易地統一整站的樣式。不過VS 2005在對其支持方面做得卻並不算好——它無法支持嵌套的母版頁面。
對於那些擁有超過一種布局的大型網站來說,嵌套母版頁面非常有用。否則開發者就必須手工協調每個母版頁面,以便讓其中的公共內容保持(例如橫幅廣告和版權信息等)一致。
而事實上,ASP.NET 2.0早就內建了對嵌套母版頁面的支持。不過在Visual Studio 2005集成開發環境中,這個特性卻一直無法使用。好在Visual Studio 2008終於對其添加了支持,開發者很容易即可切換到這種編程模型中,同時也不必擔心失去任何IDE內建的輔助支持。
需要注意的還有,因為嵌套母版頁面的功能內建在ASP.NET 2.0中,所以開發者無須在產品伺服器上部署.NET 3.5,只要確保項目在.NET 2.0中編譯即可。
Visual Studio 2008 十大新功能
No.1 代碼中插入圖片,而且它可以被Notepad進行編輯?
是神話么,不是。它實際上是在注釋中加入了另一個標簽,其標簽指向當前解決方案的的一個圖片鏈接正如下面的樣子
/// <img> ref = /img/img01.gif </img>
很好,它的確可以被NotePad進行編輯。為什麼要供這個功能? 呵呵,當你維護一段代碼時,你首先是想是了解它是如何來組織程序的,當然你可以通過文字描述,類視圖等等來了解,或者也是我們常用的寫一個說明文檔,然後放入另一個DOC的目錄,然後過了一兩年,你,噢不是你,是你現在的手下發現找不到那個文檔了!文檔中插入圖片,一目瞭然。 其實類似的功能還有幾個,象/// <docfile> </docfile>
No.2 完美的代碼段編輯器
我已經很煩寫#region之類的東東了,在VS2008中如果你想要對一個函數進行具體編碼你只需要按快捷鍵就可以進入代碼段編輯器,其實早在古老的VB6.0中就有的,只是它還是在同一個窗口裡,但是這次有點不一樣,它是另個一個窗口。現在有兩個窗口了,一個全部代碼的窗口,還有一個是本函數的窗口,而且它是浮動的,下面的窗口也可以進行滾動。
所謂完美,當然不只是這個功能,它還包括相當好的注釋編輯,以及代碼自動生成,呵呵還有微軟內部的類似源代碼,居然還是中文的,呵呵。
No.3 兼容linux平台檢查
這個特性並不是微軟主動想要來做的,沒辦法,市場逼得他這樣做。一幫高手在linux下推出了linux平台下的.net環境,呵呵,而且居然形成了標准,MS坐不住了。比爾在一個星期一的早晨把VS2008的項目經理NB007叫去要他想點辦法,於是NB007又把他手下這幫人叫來開了個會,據說那天是2007-4-1日,因此這項檢查在微軟內部的名稱叫"愚人節標准",在MS對外的名稱叫做 CLX兼容性檢查,對了在這里你不能使用System.windows.forms這個命名空間,你必須使用System.Xnix.Forms,它可以在多種Unix/Linux下使用。
而且基於這個特點,你可以在Windows平台下編輯你的代碼,然後可以模擬Unix/Linux平台運行,不過好象還有點小bug,總是在最後彈出一個對話框:
「Warn: M$建議你在Windows下運行此應用程序!"
No.4 即時交流功能
其實這個功能是在企業版才有的,而且只局限於區域網內,它需要一個Server中心。企業版在其他國家都比較貴,而且這個功能需要另外付費1000$。在中國,企業版只要五元,這個功能是免費贈送的,而且可以在Internet上使用。據說是一個0day組織用ILDASM改動了一些代碼。
它的作用其實就是當你在寫代碼時可以和朋友討論問題,當然你也可以選擇隱身!
No.5 更漂亮的界面,透明,真正的3D
如果你要發揮VS2008的界面效果,一定要安裝Window Vista,並且需要Patch3,在VS2005及以前的版本中,界面只是好看而已,這個版本體現了Window 界面項目組的專業水平,以前可以叫浮動 的窗口,現在叫懸空,效果你安裝後就知道了。對了,還有一點點小要求,MS推薦配置
CPU :PⅦ 4.0T(群核處理器)
內存:64 T
硬碟:128T
No.6 大幅提升的Visio功能
現在你不需要完全用手寫代碼,只需要在Visio中畫一個一個的類,對象,關系圖等等。然後選一定一個生成模板,就可以基本生成一個應用程序(因為這個原因,眾多的軟體學院添加了計算機制圖這門課程,還不是選修)。其實我是比較喜歡這個功能的,不過有一點點小問題,生成的代碼性能不是很好,需要手工進行優化,MS在它的網站上宣告在下一個版本中它會提供更多的應用模板,分類更加細致等等。
No.7 超多的專業控制項
以前VS跟Delphi(現在它叫 Siphi,由Sun,IBM聯合開發)比,總是它的控制項不夠,這次MS花了血本製作了上千個控制項,象ComboBox就有多達三十多種的變種控制項,並且你可以上MS的網站檢索 更多的控制項,你也可以向MS提交你自已寫的控制項,並且向世界共享。
N0.8 內嵌匯編
其實這算不上一個很好的功能,不過有人需要,也就提供了。你可以嵌入IL代碼或者本地匯編代碼,不過如果嵌入了本地匯編代碼,C#4.2會提出一個編譯警告。
asm:IL{ .... } asm:Native{ ... }
No.9 強大的配套工具
多種功能強大的工具,包括內存圖形器,壓力測試工具,性能分析器,還有一個Java2CSharp的工具,能夠轉換95%以上的代碼。 對了,終於MS推出了自已的混淆器,功能強大,但是MS說明在某些場合可能出錯。
No.10 命令行愛好者的福音
如果你實在喜歡命令行,喜歡寫批處理,這個也會令你激動不已。因為微軟裡面也有一幫古怪的老傢伙,不喜歡集成環境,而一定要用DOS下的Edit來編寫一個Make文件,然後寫一個批處理,我是不喜歡DOS的,因此沒用過。不過可信的是在VS2008測試版發 行的頭個晚上一個叫 EditCrazy.Dos的傢伙把他用匯編寫的一個可以方便選擇編譯的選項的工具MakeTemplate.com放入了光碟的母版中。
VS2008 Web開發使用的新特性
.NET Framwork 3.5與Visual Studio 2008 包含很多新特性。AJAX的Web開發人員支持與綜合查詢語言(LINQ)是其中最重要的更新。此外還包含一些新的伺服器端控制項以及客戶端對象庫。Visual Studio對JavaScript也有了完整的只能感知。
下面主要是描述ASP.NET與Web開發Visual Studio的新特性。
1、 ASP.NET的新特性
· 新伺服器控制項、類型與客戶端腳本庫的推出方便開發人員開發AJAX類型的的Web應用程序。
· 擴展的伺服器安全認證,角色管理,以及可被銷毀的profile services。(不知道這句翻譯的對不對)
· 推出新的ListView數據控制項以支持更好的界面自定義。
· 提供LinqDataSource控制項作為Linq與伺服器控制項的數據介面。
· 新的merge工具(Aspnet_merge.exe)使我們更好的發布應用程序。
· 新提供的Framwork3.5與IIS7.0集成。
AJAX支持.現在你可以根據你的需要方便的創建伺服器或客戶端或者兩者結合的Web頁面。
· 擴展AJAX的伺服器控制項,包含ScriptManager、 UpdatePanel,、UpdateProgress, 和 Timer controls。這些控制項幫助我們使用少量的JavaScript創建類似與富客戶端應用的頁面非同步刷新。
· 不受瀏覽器限制的支持客戶端對象應用的AJAX庫。除此之外這個庫支持你開發自定義的客戶端組件。
· 伺服器控制項可以訪問公開的自定義客戶端組件的事件和屬性通過實現IExtenderControl 或IScriptControl 介面。
· 支持客戶端腳本的全球化和本地化。
現在.NET支持我們簡單的實現界面的局部刷新,以避免高價的全頁面刷新。我們只需要將現有的控制項用UpdatePanel控制項包裹起來。頁面回調可以在UpdatePanel內變為非同步的並且刷新這部分被包裹的頁面,以此提供流暢的用戶體驗。同時我們還可以使用UpdateProgress來顯示局部頁面的更新進程。
Web 服務和 Application 服務.NET Framwork 3.5 允許我們創建基於ASP.NET的WEB服務(.asmx)和基於WCF的Web服務供使用了AJAX庫的Web頁面的客戶端腳本調用我們還可以調用包含在Web服務內部的的伺服器Window服務。
You can also call server-based application services that are exposed as Web services, which includes forms authentication, roles management, and profiles. These application services can be consumed in WCF-compatible applications, which includes AJAX-enabled Web pages and Window Forms clients. As a result, applications that are built with these ASP.NET or WCF technologies can share information that is made available by application services. For more information
ListView 數據控制項 Control這個控制項集成了很多現在控制項的特性,類似與DataList 和 Repeater 控制項。不同的是ListView支持編輯,插入,刪除操作。翻頁功能則通過新的DataPager控制項來提供。
ListView控制項通過模板與樣式提供很好的自定義特性來顯示控制項界面。跟Repeater, DataList, 和 FormView 控制項一樣,模板都不是預定義好的界面外觀。
DataPager控制項DataPager控制項用來為實現了IPageableItemContainer介面的控制項提供分頁(像ListView控制項)。我們可以來指定NumericPagerField對象,NextPreviousPagerField對象,來實現翻頁方式。同樣的我們使用TemplatePagerField對象來自定義分頁界面。
LinqDataSource控制項LinqDataSource控制項用來暴露Linq的數據結構體系給數據控制項。當我們使用LINQ來建立數據對象模型的時候可以使用該控制項。使用該控制項我們可以簡單的來執行數據操作。使用LinqDataSource控制項比我們使用SqlDataSource與ObjectDataSource操作數據需要編寫更少的代碼。使用LinqDataSource我們可以方便的創建一個與資料庫或數據集合的數據連接。通過LINQ模型我們可以詳細指定顯示、篩選、排序和分組的數據的方式當。當使用一個SQL數據源的時候我們不需要去寫SQL腳本來執行獲取、插入、刪除、更新操作。LinqDataSource類提供一個事件模型支持我們自定義顯示更新事件。
ASP.NET Merge 工具ASP.NET merge tool (Aspnet_merge.exe)幫助我們管理程序集。這個工具發布時間跟Visual Studio 2005一樣早。我們可以使用它為這個站點、每一個Web站點或站點的一部分創建程序集。
LINQ在開發中的地位?
DLINQ *.dbml文件該屬於哪一層,的確Linq to Sql存在問題,DLINQ中,雖然可以在語言層級定義查詢邏輯。但是依然沒有將資料庫持久化數據映射為領域對象,所以還是一種針對資料庫的編程模型。
LINQ是微軟將在C# 3.0中將推出的語言集成查詢技術,許多人也將LINQ叫做微軟的ORM。LINQ不僅僅針對關系資料庫,它只是解決一個問題Data!=Object,也就是說他解決的就是Data=Object.。作為底層框架,可以為ORM實現提供更強大的基礎平台。在Linq之前在.net領域最流行的框架就是Nhibernate。是不是在LINQ之後Nhibernate就要消失呢?答案自然是否定的。
有個帖子Microsoft LINQ + NHibernate:
在那篇帖子中,作者列舉了三大原因:
在DLINQ中,雖然可以在語言層級定義查詢邏輯。但是依然沒有將資料庫持久化數據映射為領域對象,所以還是一種針對資料庫的編程模型。而Nhibernate則可以直接將關系數據映射為領域模型,這是DLINQ的主要問題。
DLINQ不支持繼承類的映射。
Nhibernate已經提供了許多幫助進行領域面向對象建模的特徵。而DLINQ目前還無法擁有。
而LINQ + NHibernate的好處則是:
類型安全的查詢,並且能使用智能提示功能!這樣可以不用學習HQL了。
能獲得所有NHibernate所擁有的能力。
假如你已經從資料庫中查詢出了一個數據集,那麼可以使用LINQ來進行過濾,排序和分頁操作。
從原理上來說,DLINQ是將Lambda查詢表達式解析為SQL語句:DLINQ => SQL,而NHLINQ則是將Lambda查詢表達式解析為HQL語句:NHLINQ => HQL。
開源社區的智慧是無窮的,並且和微軟也不是你死我活的關系。反倒應該是一種互相補充的關系。開源社區可以做一個.net framework這樣大的東西Mono,開源社區的這些閃爍的創造性思維火花也為沉悶的軟體開發帶來了很多靈氣。也保持了我們這些沒有多少機會能做創造性工作的普通程序員的一些創作熱情!
LINQ沒有提供在多層應用程序中應用的功能,這一個功能可以通過序列化Expression Tree 來解決,Expression Tree 就可以通過Remoting或者WCF發布出去,正好有一個開源項目解決這個問題:http://www.codeplex.com/interlinq。這個項目也包含著上面所說的NHibernate.Linq. net framework 2.0,3.0與3.5三個版本之間關系如下:
.net framework 2.0 = CLR 2.0 + FCL(framework class library)
.net framework 3.0 = .net framework 2.0 + SP1 + WPF + WCF + WF + CardSpace
.net framework 3.5 = ..net framework 3.0 + SP2 + new compiler
這三個版本framework的CLR都是2.0,因此,asp.net的runtime還是只有1.1和2.0,像Linq這些新功能其實只是用新的編譯器加上一些新的類庫來實現的,3.5版本並沒有對CLR做大的升級。
VS2008支持在2.0,3.0和3.5三種版本下開發項目,VS2005的項目可以平穩的升到VS2008上,在VS2008下做VS2005的項目,用的編譯器和類庫同VS2005都是一樣的,但是提供了更好的開發環境。
D. WCF 在配置文件中設置 maxReceivedMessageSize 不起作用
<apping></apping>什麼的
中間
from = 'true'
E. VS 2008調試時 無法按F11進入方法內
F10 本來就是無法進入方法體內的。 F10是指向下一行的。F11才是進入方法內。 F12也是。不過F11就帶調試點進入方法,而F12是直接進入方法內不帶調試。 還有就是確保您打斷點的方法,在編譯運行的時候經過。