Posts

WCF tuning tips

To obtain significantly better response time and decreased the load on the service, you apply a set of best practices depending on your needs. 1. If you do not need sessions in your services, you may want to disable them to reduce the memory consumption of the service. 2. If you are transfering large amounts of data between client and server, the minimum is to enable MTOM enconding. MTOM is an optimized encoding for transmitting binary data. And even better than MTOM, you can also use streaming for the data transfers. Streaming avoids loading the complete message in memory which is what happens when you do not use streaming. Performance will be vastly increased when dealing with large amounts of binary data. 3. If you have control over client and server, you may also want to choose a more efficient but less interoperable binding (like NetTcpBinding for example). This will avoid the overhead that comes with all the WS-* protocols. 4. Be carefull when modifying the instance and concurren...

Databinding and XtraReport

I had a problem recently using object data sources in my XtraReports. I was assigning an object hierarchy to the DataSource property and was getting weird exceptions. The problem is XtraReport does not handle well one object as a data source, it prefers to have a collection of objects. The simple fix was to use a BindingSource as the data source and assign my object to the BindingSource's DataSource property. And yes, I should have been using a BindingSource from the start, I know :)

Some news about EF 4.0

The ADO.NET team posted a list of the upcoming features of Entity Framework 4.0. We will get automatic lazy-loading, POCO and much more. This is definitely something you want to read. Click on the title to read the complete article.

400 Bad Request when trying to add a Web Reference

This morning, I had a hard time adding a Web Reference in my CF application pointing to a WCF service. I checked the service several times, re-built it several times as well, but each time I got a HTTP 400 Bad Request when clicking the "Go" button of the Add Web Reference wizard. And then, I copied/pasted the URL one more time deleting the mex part at the end but leaving the ending slash. And it worked. I had removed the ending slash and thus caused this annoying behavior. I lost 5 minutes over such a stupid problem... Hope it will help one of you someday :)

Accessing a WCF service using Compact Framework

A few constraints when connecting to a WCF service from a Compact Framework application : The binding must be set to basicHttpBinding, CF does not know what to do with a wsHttpBinding. The XmlSerializerFormat attribute must be set on the service contract, the default WCF serialization is not suitable for the CF. It would throw an exception when deserializing. Make sure you configure your endpoints correctly, "localhost" is not accessible from the mobile device (emulated or not), you can use ppp_peer as the hostname in the CF WCF proxy (a lot of CFs, I know). Happy CF coding :)

Change the deployment URL of a ClickOnce application

I use ClickOnce everyday for several internal applications. Recently, I had to move the publishing website to a new host. Here is how you can acheive a completely transparent move without annoying your users or forcing them to uninstall and reinstall the application. First, you need to publish the deployment files on the new server. The deployment configuration is as follows : Publishing folder : URL on the new server Installation Folder : URL on the new server Updates Folder : URL on the new server Revision : last revision + 2 (very important) Then you need to deploy a new version on the old server with an updates folder on the new server. This way, next time the application launches, it will get the new version from the new server, and voila. Here is the configuration for the last deployment on the old server : Publishing folder : URL on the old server Installation Folder : URL on the old server Updates Folder : URL on the new server Revision : last revision + 1 (very important) E...

Migrate a SVN repository using VisualSVN Server

Today, I needed to relocate a SVN repository to a fancy new virtual server. I was planning on painful command lines and dumps and all the nerdy stuff. But in fact migrating using VisualSVN Server was surprisingly easy. First I installed VisualSVN Server on the new host, then stopped the service on the old host. I copied the repositories files from the old server to the new one. And started the service after doing a little configuration (svn address, authentication mode, etc.). And then, I relocated my working copies using the svn relocate command (from TortoiseSVN). Could it be easier ? I don't think so. Happy source control :)