In this chapter you learned about the details of .NET Remoting–based application. You now know how lifetime is managed and how you can dynamically configure an object's time to live. If this doesn't suffice, implementing client-or server-side sponsors gives you the opportunity to manage an object's lifetime independently of any TTLs.
You also read about versioning, and you can now look at the whole application's lifecycle over various versions and know what to watch out for in regard to SAOs and CAOs and know how the ISerializable interface can help you when using [Serializable] objects.
On the last pages of this chapter, you read about the various internals of asynchronous calls, how to use delegates and events, and what to take care of when designing an application that relies on these features. In particular, you learned that using [OneWay] event handlers the intuitive way certainly isn't the best practice.
This chapter is the last one of the first part of the book. You should now be able to solve most challenges that might confront you during design and development of a .NET Remoting application. The second part of this book first shows you the inner workings of the architecture. In Chapter 7, you will read about how the various layers can be extended to match the framework's features with your applications' demands, and I provide a lot of source code to demonstrate these concepts in the following chapters.