views:

92

answers:

4

Hello there,

Does anyone tell me if it's possible to use WCF without .NET 3.0?

Our company develops a 3-tier client-server end-user solution based on .Remoting. One of the limitation of our project is using .NET 2.0. Unfortunately .NET 3.0 framework is too large to be included in our installation package and I don't know if MS license allows this. But WCF might helps us to drastically reduce our efforts in some tasks.

Does anyone have a chance to use WCF from Mono?

Thanks in advance

-- Murat

+3  A: 

Unfortunately this is not possible. System.ServiceModel and System.Runtime.Serialization assemblies are required and they are part of .NET 3.0.

Another important note is that WCF depends on HTTP.SYS (kernel level HTTP stack) which is available on Win2003, WinXP SP2 or higher, while you can still have .NET 2.0 installed on Win2000.

On the client side you could still have .NET 2.0 consuming the WCF service. You need to expose a basicHttpBinding endpoint for this purpose.

Darin Dimitrov
The reason why I can't use .NET 3.0 its large size and I am not sure about .NET 3.0 distribution license. But WCF is implemented in Mono, so is it possible to add WCF and some linked dll-libraried from Mono package?
Murat
@Murat: .NET 3.0 is - like every other .NET framework - totally free and has no restrictions on its distribution. Just download it like any other patch and don't worry - be happy!
marc_s
@Murat, if you follow @marc_s great suggestion and decide to deploy a new version of the framework, take 3.5, even 4.0. This way you won't need to ask the same question about LINQ, Entity Framework, ASP.NET MVC ... :-)
Darin Dimitrov
A: 

Well, there is WCF on Mono (http://www.mono-project.com/WCF) but I can't tell you how compatible it is. The whole thing would impose other restrictions as well, namely availability of Mono.

Apart from that WCF services can be exposed as web services with which you can talk to with mechanisms available on .NET 2.0

flq
A: 

You can invoke WCF services (if they are configured to use SOAP over HTTP) from any client, using regular SOAP bindings/syntax. The service itself, however, needs to be running on .NET 3.0. If you have the ability to create just the service layer on .NET 3.x and leave the rest of your stack on 2.0, that might be a good way to go.

A lot of the features of WCF were piloted (using ASMX web services) in WSE 3.0, which runs on .NET 2.0, but you will need to look at WSE to figure out if it will actually save you time; it adds a lot of nice features for security/etc., but is not as easy to pick up and use as WCF.

Guy Starbuck
+1  A: 

Could you use WCF and .Net 3.0 just on the servers at least? You could write your clients to consume simple ASMX style web service calls, and keep their install footprint small, while still getting the architectrual benefits of WCF in the server software.

That is part of the point of n-tier software... you can more easily upgrade critical peices of the application because they are on a few servers instead of on thousands of clients. I would re-examine .Net 2.0 requirement at least on your top tiers. You should see an easy cost-benefit improvement using the flexibility of the WCF platform even if you have heavy server install.

DanO