Step 1 : Choose the correct binding for your WCF Service.
Step 2 : Choose the correct Encoding for your WCF Service.
Step 3 : Compress after Encoding
- Right encoder reduces message size by 4-5 times
- Use IIS comression, If the message is shorter and hosted in WAS/IIS else use GZip and Deflate mechanism for all outgoing and Incoming message
- For custom compression,hook the encoder and apply custom compression mechanism
Step 4 : Choose the correct data Caching in your WCF Service.
You can consider caching data:
- In memory cache:
- Ideal for small sized application hosted on a single instance/server
- Use ASP.net caching services or runtime caching for WAS/IIS hosted service:
- Use Enterprise Library for self hosted service
- Ideal for distributed application
- Resolve several problems like sticky sessions, component-dependent caching, Cache synchronization etc
Step 5 : Performance Optimization
- If your WCF service is hosted on IIS you can turn on IIS compression for static and dynamic content to improve performance.
- You can use the Windows Performance Monitor to analyse the performance bottlenecks. You can enable WCF performance counters in config file
- Take advantage of NetTCP binding to boost the throughput of your WCF services.
- Use light-weight data exchange formats, i.e., JSON in your WCF service to minimize the network traffic that your WCF service would otherwise need to consume if SOAP were used as a data exchange format.
- You should always use DataContract Serializer in lieu of XMLSerializer for better performance.
- You can also explore the possibilities of using binary serialization formats like MessagePack to minimize the traffic even further.
- You can also compress the data transferred over the wire to cut down on the network traffic between the service provider and the service consumers.
- Since there is no built in way to cache service responses in WCF, you can write custom code to cache service responses.
- You should set WCF service throttling and service configuration appropriately to improve service performance
You can go through the WCF Best Practices to create responsive WCF Service.
Reference books, you may like:Programming WCF Services: Design and Build Maintainable Service-Oriented Systems
WCF Multi-Layer Services Development with Entity Framework, 4th Edition
Learning WCF: A Hands-on Guide
© 2015, admin. All rights reserved.