2010-12-13 20 views
0

當我讀到這裏http://arunatennakoon.blogspot.com/2010/11/things-i-learn-new-this-week.htmlWCF是否準備好了現實世界?

Friday, November 12, 2010 
Things I learn new this week 
1. Never ever use WCF. 
--------------------- 

here is why 
1. IIS 7 doesn't support .svc file format by default. So you need to 

安裝一些擴展名的文件。所以它是 大量的新產品的工作。

2. I found it very hard to configure security settings. when i 

試圖配置第一次 它拋出所有類型的錯誤。

3. After installing WCF in IIS, sometimes it's trowing an exception 

引用臨時目錄。爲了 解決這個問題,你必須重新 編譯應用程序和 重新分配

and a lot more... 

所以你會採取使用WCF的風險?

我想知道每年有幾百億到幾十億的真實世界的例子。

+5

我看到你接受了一個答案,這個答案與你引用的博客上陳述的不明智偏見和淺薄偏見吻合,以及哪一個人懷疑你分享。你的選擇,你的損失。事實是,全世界很多人都從WCF中獲得了巨大的價值。如果你想否認自己,甚至沒有正確評估它,繼續前進。 – 2010-12-18 15:08:42

+0

這取決於你工作的項目,如果性能真的是你必須犧牲抽象的關鍵。所有這些抽象的問題是,他們不告訴你它是如何工作的,以便你可以平衡。所以我同意這篇文章http://www.bluebytesoftware.com/blog/2010/09/06/ThePrematureOptimizationIsEvilMyth。aspx,但是當你不是MS Insider或者你是項目經理時,你會選擇風險較低的意見。 – user310291 2011-04-10 09:36:58

回答

1

我跳過了wcf。

主要原因是它會導致大量額外的代碼/工作,而且與現有機制相比收益甚微。

我曾經去過asmx路線,但我發現那些對我們平常需要的東西來說太重了。另外我發現,至少在幾年前,處理「Web服務」的很多java框架對我們所需的一些高級事物沒有太大的幫助。

很坦率地說,通過posts/gets到一個ashx文件來做常規的httpwebrequests是非常簡單,健壯和動態的。而你會花很多時間讓工作。

當然,我唯一一次點擊visual studio中的「designer」選項卡是偶然的。也許我是一個享樂主義者......或者只是從所有的市場營銷中走出來談論這些技術如何讓我們的應用程序更「互操作」。

+2

幾乎沒有什麼好處?我猜服務參與TransactionScope並不是每個人都需要的,但是當你需要它的時候它有很大的價值。這只是一個功能。 – 2010-12-14 00:00:29

+0

至少對於性能的好主意會嘗試這個老學校的東西:) – user310291 2010-12-14 00:02:32

+1

我同意,對於網絡的東西沒有太多的好處,使用它比較Web服務。當你有其他傳輸(TCP,命名管道等)時它更有用。它爲所有傳輸提供相同的編程模型,因此您專注於實現。 – TarasB 2010-12-14 00:02:34

1

我看到了有關使用WCF將在HPC世界上許多文章,所以我想我們必須等待,看看:)

我很冷靜與ASMX雖然

1

我已經做了很多咆哮最近針對WCF。這是笨重,沉重和過度,但不要誤會我的意思,它非常豐富和靈活。

是的,這是現實世界的準備,已經在成千上萬的大型項目中使用。

我已經在兩個項目中使用過它。

現在,如果您只需要輕量級的,設置較少的HTTP調用,請使用ASP.NET MVC中的JSON + HTTP或新的WCF's separate HTTP stack

+0

豐富而靈活並不意味着對現實世界的準備,因爲現實世界意味着性能和可擴展性,輕鬆實現項目生命週期管理(又稱部署,看起來很麻煩)。至於大規模你是什麼意思?對我而言,這意味着每年至少有數億到數十億的點擊量(這是我目前的規模)。 – user310291 2010-12-13 23:58:18

+0

**大多數**的可擴展性是在體系結構和設計級別而不是在技術級別上實現的。我或多或少同意你的意見,但不會馬上敲門。有一個閱讀在我的咆哮在這裏:http://stackoverflow.com/questions/3710635/succinct-and-light-weight-api-restjson-in-net – Aliostad 2010-12-14 00:06:17

+0

可伸縮性是一個性能是另一回事。說所有隻依賴於架構是過度的websocket將允許更好的表現,而不僅僅是http對於某種實時應用程序 – user310291 2010-12-14 22:16:10

5

它絕對準備好現實世界。即使微軟在其產品中使用它,例如MS Dynamics CRM服務現在在WCF中完成。

+0

微軟使用它並不是一個真正的證據,因爲當他們遇到問題時他們可以很容易地破解它,而當你或我有問題時,你不能進入盒子裏面...... :) – user310291 2010-12-14 00:05:04

+2

@ user310291由於WCF是託管代碼,實際上我們可以在我們需要的時候使用ILDASM或反射器進入盒子。 WCF也是非常可擴展的,所以我們可以在需要的時候控制它的每一個方面。 – 2010-12-17 16:19:17

+0

與ILDASM一起進入盒子的目的是成爲黑客。對於企業界來說,這不是一個好的質量保證,因爲技術不能要求普通的開發人員成爲黑客,尤其是因爲他在商業層面上有很多事情要做。 – user310291 2010-12-18 13:18:42

0

到目前爲止,部署WCF項目沒有任何問題。我正在構建一個非常簡單的應用程序(實際上,應用程序不是那麼簡單,但是服務層),並且已經將WCF部署到三個環境(開發,集成測試和用戶測試),沒有任何麻煩。

我和WCF一起去了,因爲asmx不能處理循環對象圖,而WCF可以。

+0

如果你的應用程序很簡單,這不是我所說的真實世界:) – user310291 2010-12-14 22:18:45

3

是的,絕對是,WCF已準備好真實世界的使用,並正在被世界各地的許多大小公司使用。

是的,IIS託管 - 但這不是WCF的錯,它是IIS,它實際上只是一個Web服務器 - 不是應用程序主機。

因此,對於任何嚴重的生產級WCF服務,我都會推薦總是自主主機。跳過所有IIS相關的混亂,讓您完全控制您的服務和端點 - 所有這些對我來說聽起來都不錯!

+0

...或支付某人來主辦*你*(而不是你+ 20k其他用戶在一個盒子上:p) – 2010-12-19 04:02:59

5

WCF絕對準備好了現實世界。是的,有時候這是過度殺傷,所以首先你必須知道你是否真的需要它。如果您需要WS- *協議棧,或者您需要Web服務與非MS平臺的互操作性,則需要WCF。我正在使用WCF,我對此很滿意。

IMO WCF是第三好的API MS提供(.NET Core是第一個,ASP.NET MVC第二個)。它具有很多可擴展性,幾乎可以做任何事情。但這並不容易。 WCF適合成熟的熟練開發人員 - 這是WCF的主要缺點。

在文章中提到的理由是愚蠢的。這就好像是說ASP.NET 4.0還沒有準備好現實世界,因爲有時你必須運行aspnet_regiis.exe來在IIS中註冊.NET 4.0運行時,或者說Lambda表達式還沒有準備好用於真實世界,因爲你必須學習如何使用它們。

+0

並非所有的原因都是愚蠢的這一個是不愚蠢:在IIS中安裝WCF後,有時會拋出一個引用臨時目錄的異常 。要解決此問題,您必須重新編譯應用程序並重新分發 – user310291 2010-12-14 22:18:16

1

在世界各地的大型企業中,有許多使用WCF實現關鍵任務功能的實際解決方案。我個人所知道的一個例子是:英國最大的電腦遊戲零售商之一的電子商務網站廣泛使用WCF服務來推動網站並實施訂單履行。它有數以百萬計的客戶產生gazillions命中。

WCF是主流。沒有任何隱藏的風險,提供(像任何框架一樣),您可以在具有良好質量保證流程的SDLC內正確理解和使用它。

+0

感謝此示例。至於「衆多」我看不到這麼多廣告。關鍵任務並不意味着它在技術上具有挑戰性。當我說真實世界時,我寧願意指高負載用戶和複雜的工作流程。 – user310291 2010-12-18 13:16:31

0

我們在我們的項目中處理WCF,並且在大部分情況下它使得生活在獲取和運行服務方面變得更加簡單。 WCF使軟件REST風格的服務變得非常簡單,提供了一種掛鉤到堆棧的機制來定製如何處理Web請求,並允許分離Web特定的內容和業務層。

1

WCF比webservice更加靈活。我們可以根據我們的要求使用不同類型的傳輸協議。它也由現代安全模型組成。