In this course, we look at serialization from the viewpoints of the two most common scenarios: persisting an application state and exchanging data between entities. First we look at some essential prerequisite concepts. Then we start the serialization learning journey by examining binary serialization, a very important technique to master when writing applications that need to persist their state. We look at the basic concepts of binary serialization and then how to step in and take more control. We then enter the world of XML serialization, which is used heavily in integration scenarios. We look at the different available serializers, and then again we examine how to take fine-grained control over the XML structure. JSON serialization is another important topic, especially in the Web API space, and we examine and compare between the available options. Finally, we'll look at a summarization flowchart that will help you decide which option to use based on each scenario.