Serialization in .NET 4.5 Course

Course Serialization in .NET 4.5 has been released.

This course equips viewers with essential knowledge about serialization in the .NET Framework. No matter what .NET technology developers are using – whether it’s ASP.NET, WCF, Web API, or desktop applications – they will definitely encounter situations where serialization is needed. This course helps them understand the different alternatives and what is the best choice in each scenario.

Watch it here:

Software Engineering Essentials Course Released

My latest Pluralsight course is about software engineering. This course explains the building blocks of software engineering and explains the processes and methods. The requirement modeling and design modules in particular explain in detail topics relevant to software architecture…

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

BizTalk Transactions

Transaction Essentials

In Summary, there are two types of transactions:

Atomic transactions, which take short time to execute (typically seconds). These transactions satisfy all ACID attributes, and thus need to acquire data locks on resource managers such as SQL Server. If all operations within a transaction scope succeed, then the transactions is committed automatically, else if any operation fails the entire transaction is rolled back. This is done via a transaction manager such as DTC.

Continue reading

BizTalk Security Essentials

Essential Guide to Certificates, Encryption, and Signatures

Secure Messaging

Integrated systems have to deal with tough challenges when it comes to secure messaging. If system A is sending a message to system B, this requires the implementation of important security measures. These can be summarized by:

  • Authentication, where System B must authenticate System A before accepting its message
  • Data Privacy, means that an intruder – should ever be able to peek into the message – must not be able to see sensitive data
  • And Data Accuracy – or Integrity – which means that If an intruder intercepts the message and modifies it, this modification must be detected by System B

Secure messaging is achieved using public and private keys. These are numerical values that are mathematically linked. An organization generates these keys, it keeps the private key as its own secret, and distributes the public key to any organization that wants to do exchange secure messages. Because these keys are mathematically linked, data encrypted with the public key can only be decrypted by the private key.

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

    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

    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.