2010-12-13 3 views
0

는 좀 확장 파일을 여기 http://arunatennakoon.blogspot.com/2010/11/things-i-learn-new-this-week.html현실 세계에서 WCF를 사용할 준비가 되었습니까?

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에서 큰 가치를 얻고 있습니다. 제대로 평가하지 않고 자신을 부인하고 싶다면 계속하십시오. –

+0

성능이 실제로 추상화를 희생해야하는 핵심 인 경우 프로젝트에 따라 다릅니다. 이러한 모든 추상화의 문제점은 실제로 작동하여 어떻게 균형을 이룰 수 있는지 알려주지 않는다는 것입니다. 따라서이 기사 http://www.bluebytesoftware.com/blog/2010/09/06/ThePrematureOptimizationIsEvilMyth에 동의합니다.aspx하지만 MS 내부자가 아니거나 모순 된 의견을 가진 프로젝트 관리자 인 경우 덜 위험한 의견을 선택하십시오. – user310291

답변

1

나는 wcf를 건너 뛰었습니다.

주된 이유는 많은 추가 코드/작업이 발생하고 기존 메커니즘보다 약간의 이점이 있기 때문입니다.

저는 asmx 라우트를 사용 했었지만 일반적으로 필요로하는 것들은 너무 무거웠습니다. 또한 적어도 몇 년 전에는 "웹 서비스"를 다루는 많은 Java 프레임 워크가 우리가 필요로하는 고급 기능 중 일부와 잘 맞지 않는다는 것을 알았습니다.

정식으로 httpwbrequests를 쓰거나/ashx 파일로 가져 오는 것은 간단하고 강력하며 동적입니다. 반면에 wcf 작업에 많은 시간을 할애해야합니다.

물론 비주얼 스튜디오에서 "디자이너"탭을 클릭하는 것은 우연입니다. 어쩌면 나는 쾌락주의 자일 것입니다 ... 아니면 모든 마케팅에서 지칠대로 지친 것이이 기술로 인해 우리의 앱을 어떻게 상호 운용 가능하게 만드는지 말합니다.

+2

거의 이점이 없습니까? 나는 TransactionScope에 서비스를 참여시키는 것이 모두가 필요로하는 것이 아니라고 생각하지만, 필요할 때 큰 가치가있다. 그리고 그것은 단지 하나의 기능입니다. –

+0

적어도 성능에 대한 훌륭한 아이디어는이 오래된 학교 물건을 시도 할 것입니다. – user310291

+1

웹 서비스에 비해 웹 서비스와 비교할 때 많은 장점이 없다는 것에 동의합니다. 다른 전송 (TCP, 명명 된 파이프 등)이있을 때 더 유용합니다. 모든 전송에 대해 동일한 프로그래밍 모델을 제공하므로 구현에 중점을 둡니다. – TarasB

1

나는 HPC의 세계에 대한 WCF를 사용하는 방법에 대한 많은 기사를 보았다, 그래서 우리가

1

내가 고함을 많이했을하지만 기다려 내가 ASMX와 괜찮아 :)

을 찾아야 할 것 같아요 요즘 WCF 반대. 그것은 clunky, 무겁고 너무 과장되어 있지만 그것은 매우 풍부하고 융통성이 잘못 오지 마세요.

예, 실제로는 이미 준비가되었으며 수천 개의 대규모 프로젝트에서 이미 사용되고 있습니다.

두 프로젝트에서 이미 사용했습니다.

가볍고 설치가 거의 필요없는 HTTP 호출은 ASP.NET MVC 또는 새로운 WCF's separate HTTP stack에있는 JSON + HTTP를 사용해야합니다.

+0

현실 세계는 성능과 확장 성, 손쉬운 프로젝트 라이프 사이클 관리 (일명 번거로운 배포라고도 함) 때문에 풍부하고 유연한 것이 현실 세계를위한 준비를 의미하지는 않습니다. 대규모에 관해서 당신은 무엇을 의미합니까? 저에게 그것은 적어도 수억 수십 억 ~ 수십억의 히트를 의미합니다 (이것은 내 프로젝트의 현재 규모입니다). – user310291

+0

** 대부분의 ** 확장 성은 기술 수준이 아닌 아키텍처 및 디자인 수준에서 달성됩니다. 나는 어느 정도 당신과 동의하지만 곧바로 그것을 두드리지 않을 것입니다. 내 호언 장담을 읽으십시오. http://stackoverflow.com/questions/3710635/succinct-and-light-weight-api-restjson-in-net – Aliostad

+0

확장 성은 성능이 다른 것 중 하나입니다. 모든 것이 아키텍처에만 달려 있다고 말하는 것은 overexagerated websocket은 일종의 실시간 어플리케이션을위한 http보다 더 나은 성능을 허용합니다. – user310291

5

현실 세계에 대한 준비가되었습니다. Microsoft에서도 제품에 사용합니다. 예를 들어 MS Dynamics CRM 서비스는 이제 WCF에서 수행됩니다.

+0

Microsoft에서 사용하는 것은 실제 문제가 아니므로 쉽게 해킹 할 수있는 반면 문제가 발생하면 상자 안으로 들어갈 수 없습니다. :) – user310291

+2

@ user310291 WCF는 관리 코드이므로 실제로 필요할 때마다 ILDASM 또는 Reflector를 사용하여 상자 안을 들여다 볼 수 있습니다. WCF는 또한 매우 확장 성이 뛰어나므로 필요한 경우 모든 작업을 제어 할 수 있습니다. –

+0

ILDASM으로 박스 내부에 들어가면 해커가되는 것입니다. 엔터프라이즈 세계에서는 기술 수준이 비즈니스 수준에서 할 일이 많으므로 일반 개발자가 해커가 될 필요가 없어야하므로 좋은 품질 보증이 아닙니다. – user310291

0

지금까지 WCF 프로젝트를 배포하는 데 문제가 없었습니다.저는 매우 간단한 응용 프로그램을 구축하고 있습니다. (실제로 응용 프로그램은 간단하지 않지만 서비스 계층은 있습니다.) 번거 로움없이 세 가지 환경 (개발, 통합 테스트 및 사용자 테스트)에 WCF를 배포했습니다.

WCF와 달리 asmx는 순환 오브젝트 그래프를 처리 할 수 ​​없으므로 WCF와 함께갔습니다.

+0

앱이 단순하다면 현실 세계라고 부르는 것이 아닙니다 :) – user310291

3

예, 확실히 인 WCF는 실제 사용이 가능하며 전 세계의 많은 대기업 및 중소기업에서 사용되고 있습니다.

그렇습니다. IIS에서 호스팅하는 것은 괴롭 힙니다.하지만 WCF의 잘못이 아닙니다. IIS가 응용 프로그램 호스트가 아닌 웹 서버 일뿐입니다.

따라서 심각한 생산 수준의 WCF 서비스의 경우 항상 자체 호스트를 권하고 싶습니다. 모든 IIS 관련 성가신 성격을 건너 뛰고 서비스와 엔드 포인트를 완벽하게 제어 할 수 있습니다.

+0

... 또는 호스트 *에게 당신을 지불 할 사람이 있습니까? (당신이 아닌 상자에 20k 다른 사용자 : p) –

5

WCF는 현실 세계에서 확실히 준비되었습니다. 그렇습니다 때때로 그것은 과잉 살상입니다. 그래서 당신이 정말로 그것이 필요한지 먼저 알아야합니다. WS- * 프로토콜 스택이 필요하거나 비 MS 플랫폼과의 웹 서비스 상호 운용성이 필요한 경우 WCF가 필요합니다. 저는 WCF 규칙을 사용하고 있으며 저는 그것에 매우 만족합니다.

IMO WCF는 세 번째로 우수한 API MS입니다 (.NET Core가 가장 먼저, ASP.NET MVC가 두 번째 임). 그것은 거의 모든 것을 할 수있는 많은 확장 성을 가지고 있습니다. 그러나 쉽지 않습니다. WCF는 성숙한 숙련 된 개발자를위한 것입니다. 이는 WCF의 주요 단점입니다.

기사에 언급 된 이유가 어리 석다. 그것은 aspnet_regiis.exe를 IIS에서 .NET 4.0 런타임을 등록하기 위해 실행해야하거나 람다 표현이 실제 세계에서 준비가되어 있지 않다는 것을 말하는 것처럼 ASP.NET 4.0이 현실 세계에서 준비되지 않았다는 것을 말하는 것과 같습니다. 그들을 사용하는 방법을 배우십시오.

+0

모든 이유가 어리석은 것은 아닙니다. 어리석지 않음 : IIS에 WCF를 설치 한 후 temp 디렉토리를 참조하는 예외가 발생하는 경우가 있습니다. 이 문제를 해결하려면 응용 프로그램을 다시 컴파일하고 – user310291

1

전 세계의 대기업에서 업무 핵심 기능을 위해 WCF를 사용하는 실제 솔루션이 많이 있습니다. 개인적으로 내가 아는 한 가지 예가 있습니다. 영국 최대의 컴퓨터 게임 소매업 체인 전자 상거래 사이트에서 WCF 서비스를 광범위하게 사용하여 사이트를 운영하고 주문 이행을 구현합니다. 수백만 명의 고객이 조회수를 늘릴 수 있습니다.

WCF가 주류입니다. 숨겨진 위험은 없습니다 (모든 프레임 워크와 마찬가지로) 좋은 QA 프로세스를 갖춘 SDLC 내에서 올바르게 이해하고 사용하는 데 어려움을 겪습니다.

+0

을 다시 배포해야합니다.이 예제를 이용해 주셔서 감사합니다. "다수"에 관해서 나는 많이 광고되는 것을 볼 수 없다. Mission-Critical은 기술적으로 어려운 것을 의미하지 않습니다. 내가 현실 세계라고 할 때, 나는 고 부하 사용자와 복잡한 워크 플로우를 의미합니다. – user310291

0

우리 프로젝트에서 WCF를 다루고 있으며, 대부분 서비스를 시작하고 실행하는 데 훨씬 간편합니다. WCF는 REST 스타일의 서비스를 매우 간단하게 처리하고 스택에 연결하여 웹 요청 처리 방법을 사용자 정의 할 수있는 메커니즘을 제공하며 웹 관련 항목과 비즈니스 계층을 분리 할 수 ​​있습니다.

1

WCF는 웹 서비스보다 유연합니다. 우리는 요구 사항에 따라 다른 유형의 전송 프로토콜을 사용할 수 있습니다. 또한 현대적인 보안 모델로 구성됩니다.

관련 문제