Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

WCF Client Performance Using ObjectDataSource

0.00/5 (No votes)
7 Jun 2012Ms-PL1 min read 8.1K  
Improving WCF client performance using ObjectDataSource.

WCF Client Performance

So everyone knows that WCF clients incur more overhead than their predecessor proxy clients. The penalty comes from establishing a connection to the WCF service and somewhat depends on the binding you have configured. Some bindings are more expensive than others, but there is more overhead regardless. Also, you know that now you have to be responsible for closing your proxy client. Previously you could just instantiate a proxy instance, call method(s) and let the garbage collector do the rest. A logical and easy way to provide a speedup is to instantiate a client object and save it as a private member variable of your page, usercontrol, etc. This prevents you from having to create/close more than one client.

ObjectDataSource

If you use an ObjectDataSource with a TypeName of a WCF proxy client, then it will be instantiating a WCF client and incurring the same overhead. It is pretty common to find more than one ODS on a page, in fact I have seen pages with a dozen or more. Also, it is common to find multiple ObjectDataSources referencing the same service. So it is quite easy to see a performance gain from making your ODSources use one client instance. How? The ObjectDataSource exposes two critical events that make this speedup possible, and even easy:

License

This article, along with any associated source code and files, is licensed under The Microsoft Public License (Ms-PL)