Thursday, May 29, 2008

WCF work environment

I wanted to share the work environment in which I debug Mono's WCF.

The idea is to run on .NET using the .NET tools and runtime, but taking specific libraries from Mono. The main advantage of this environment is the usage of the visual studio debugger greatly increasing productivity.

Step 1: Skip public key validation of (some) .NET assemblies
> sn -Vr System.ServiceModel,B77A5C561934E089
> sn -Vr System.Runtime.Serialization,B77A5C561934E089

Step 2: Place Mono assemblies in the GAC
The visual studio project files of System.ServiceModel and System.Runtime.Serialization have post build steps that do this. The comitted versions are remarked, so you want to remove the remark.

At this point you want to build the assemblies in VS2008 in order to place them in the GAC.

Step 3: Run your app
You can place breakpoints in Visual Studio. Very productive environment.

Step 4: Revert back to .NET
> "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /i "c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.ServiceModel.dll"
> "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\gacutil.exe" /i "c:\Program Files\Reference Assemblies\Microsoft\Framework\v3.0\System.Runtime.Serialization.dll"

Good luck,

Noam

Dual contracts works

I just fixed a bug or two in Mono's WCF with regard to services that implement more than one contract. A simple test now works.

Enjoy.

Sunday, May 25, 2008

Mono's WCF

Welcome to my blog.

Since I have recently spent quite some time working on Mono's WCF implementation, I thought it might be a good idea to open a blog and share the experience during this development.

I will tag all the WCF related posts with WCF tag. I think that this group of posts will be useful for people who are using, considering using, or contributing to Mono's WCF implementation.

I work at Mainsoft, managing the development team of Grasshopper. We are interested in supporting WCF in our Grasshopper at some time in the future, and thus my personal interest in WCF at Mono.

Anyway, what I wanted to mention is that recently over the past couple of weeks, I have seen some usage of WCF on the olive dev list. For instance:
http://groups.google.com/group/mono-olive/browse_thread/thread/1e68bc3aa7bca05c
http://groups.google.com/group/mono-olive/browse_thread/thread/7519b0f91a47cc11

My point is that although the status of WCF is still initial, bugs in WCF - especially within the constraints of basicHttpBinding - are treated at a fairly high priority. If you can explain the bug you are having, it is likely we will fix it fairly quickly.

Noam