WCF Duplex Reentrant Services


This article illustrates working with Duplex mode in WCF with concurrency set to Reentrant. In general, Duplex is one of the three message exchange patterns (MEPs) which are:

  • One-way
  • Request-Response (synchronous and asynchronous)
  • Duplex

On the other hand, concurrency in WCF services deals with how many concurrent threads can access these services at one time.

A full discussion of MEPs and Concurrency in WCF is not the intent of this article; as a matter of fact, that would be the job of a full book. As such, this article assumes familiarity (but necessarily experience) of the following:

  • WCF programming
  • MEPs in WCF
  • Concurrency modes in WCF
  • Basic concepts of threads

Continue reading

Thread Throttling in IIS-hosted WCF (sync vs. async)

I’m in the midst of a BizTalk project where we’re load testing our solution. Our receive adapters are WCF-based and therefore tuning WCF is a critical aspect of the overall solution performance. I have gone through the same tuning times before in every WCF project. But I always was lazy documenting the information and ended up looking up the bits and pieces time and time again to refresh my memory. Now I decided to document this information in a post for myself and others.

However, I will not simply write the keys to adjust and leave it there. I will explain the reason we adjust these keys and what they really mean. So bear with me and follow along.

Continue reading

Understanding OData v3 and WCF Data Services 5.x

Table of Contents

  • What is this Article About?
  • What are OData, Atom, and AtomPub?
  • REST vs. SOAP: The Design Decisions
  • First look at OData Queries
    • Keywords
    • Formatting
    • OData Clients
  • Working with OData via WCF Data Services
  • Creating a WCF Data Service with POCOs
  • Behind the Scenes
  • Enabling JSON Format through WCF Message Inspector
  • What about JSON light?
  • JSON Light in WCF Data Services 5.2.0
  • Extending Data Service with Service Operations and Interceptors
  • Metadata, EDM, and CSDL
  • Concurrency Updates with ETAG
  •  Resources
  • Continue reading

    Developing with the Microsoft Business Rule Engine

    This post is for two sets of readers: those who are new to Microsoft Business Rule Engine and are looking for a direct hands-on approach rather than going though the theory and architecture behind BRE (links for that at the Additional Resources section), and those who are familiar (but not experts) with the topic in general, and are looking to understand, in a practical manner, how to program with BRE and leverage some of its powerful offerings. Continue reading

    BizTalk – WCF Exception Handling Scenarios

    When designing a BizTalk solution that involves WCF (which is most of the times), you need to carefully consider the exception handling mechanism. This requires understanding for both BizTalk Exception handling as well as WCF (and SOAF) faults.

    This post explains the mechanisms to implement exception handling when you have a BizTalk process that both calls WCF services and when the process itself is exposed as a WCF service. Continue reading

    Microsoft Integration MVP Renewed

    A couple of days late, but I have been renewed as a Microsoft Integration MVP for April 2014 cycle. This is the second time I have been awarded as an Integration MVP, having previously been awarded the ASP.NET/IIS MVP for 3 times.

    Thanks to Microsoft and I hope this will be a great year with lots of valuable contributions.

    By mohamadhalabi Posted in MVP Tagged

    BizTalk 2013 Streaming Support


    Stream processing saves programs from having to load data entirely into memory.
    Instead, a program gets a hold on a stream instead of the actual data. The program then starts asking the stream to send a chunk of the data. The program does the required processing on this chunk, and then asks for another chunk…this goes on until the entire stream is read and processed.
    This has the very important advantage of not having to load the entire message at once into the program’s memory space. By reading data in chunk, only the size of the chunk that is being processes is loaded into memory.
    In systems under load and where scalability is a concern, this can have a huge influence on the success these systems.
    This post, explains how stream processing is implemented in BizTalk Server, and how to take advantage of streaming to build better BizTalk applications.

    Continue reading

    Hybridizing BizTalk Projects with Azure BizTalk Services – Part1

    Azure BizTalk Services

    Windows Azure BizTalk Services provides integration capabilities for the Windows Azure Platform, to extend on-premises applications to the cloud.
    It provides common integration capabilities such as bridges, transforms, and B2B messaging on windows azure.
    So this means, that now we can build our business process using a hybrid model, where part of this process continues to be running on the on-premise BizTalk Server, while the other part can be running on Azure.
    Of course – at least at this stage – do not think of BizTalk Services as BizTalk Server on the cloud.
    While BizTalk Services provide certain integration services, its still in its early stages. BizTalk Server on the other hand is a complete integration platform.

    Continue reading