This tutorial is for advanced simulation developers engaged in the use of object-oriented programming languages and libraries that support object-oriented, discrete-event simulation. The tutorial is based on generic structure of the OpenSML simulation libraries in the Net languages VB.Net, C# and J# and the Silk libraries in Java. The focus of the tutorial is on the use of consistent design patterns that encourage usability, reusability and cross-language compatibility. Particular emphasis is placed on designing and coding object-oriented simulation models to properly transfer simulation control between entities, resources and system controllers, and on techniques for obtaining a one-to-one correspondence between simulation code and system behavior.