Abstract
Millions of programmers use ECMA CLI-compliant languages like VB.NET and C#. The resulting bytecode can be executed on several CLI implementations, such as those from Microsoft and the open-source Mono organisation. While assemblies are the standard unit of deployment, no standard exists for the process of finding and loading assemblies at run-time. The process is typically complex, and varies between CLI implementations. Unlike other linking stages, such as verification, it is visible to programmers and can be a source of confusion.
We offer a framework that describes how assemblies are resolved, loaded and used in CLI implementations. We strive for implementation-independence and note how implementations from different organisations vary in behaviour. We describe the reflection features available for dynamic loading, and give C# examples that exercise the features modelled in the framework.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Buckley, A., Drossopoulou, S.: Flexible Dynamic Linking. In: ECOOP Workshop on Formal Techniques for Java Programs (FTfJP 2004), Oslo, Norway (June 2004)
Buckley, A., Murray, M., Eisenbach, S., Drossopoulou, S.: Flexible Bytecode for Linking in .NET. In: First Workshop on Bytecode Semantics, Verification, Analysis and Transformation (BYTECODE 2005), Edinburgh, Scotland. ENTCS. Elsevier BV, Amsterdam (2005)
Cook, S.: .NET CLR Loader Notes (2005), http://blogs.msdn.com/suzcook
de Icaza, M.: Mono (2005), http://www.mono-project.com/
Dean, D.: The Security of Static Typing with Dynamic Linking. In: Proceedings of the Fourth ACM Conference on Computer and Communications Security, Zurich, Switzerland (April 1997)
Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible Models for Dynamic Linking. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 38–53. Springer, Heidelberg (2003)
ECMA. Standard ECMA-335: Common Language Infrastructure. ECMA International (December 2002), http://www.ecma-international.org/publications/standards/Ecma-335.htm
Eisenbach, S., Jurisic, V., Sadler, C.: Feeling the way through DLL Hell. In: Proceedings of the First Workshop on Unanticipated Software Evolution (USE 2002), Malaga, Spain (June 2002)
Eisenbach, S., Jurisic, V., Sadler, C.: Managing the Evolution of .NET Programs. In: Najm, E., Nestmann, U., Stevens, P. (eds.) FMOODS 2003. LNCS, vol. 2884, pp. 185–198. Springer, Heidelberg (2003)
Fagorzi, S., Zucca, E., Ancona, D.: Modeling Multiple Class Loaders by a Calculus for Dynamic Linking. In: Proceedings of the ACM Symposium on Applied Computing (SAC 2004), Nicosia, Cyprus (March 2004)
Farkas, S.: .NET Security Blog (2005), http://blogs.msdn.com/shawnfa
Gero, C., Richter, J.: The Future of Assembly Versioning (2004), http://www.theserverside.net/articles/showarticle.tss?id=AssemblyVersioning
Jensen, T., Le Metayer, D., Thorn, T.: Security and Dynamic Class Loading in Java: A Formalisation. In: Proceedings of the IEEE International Conference on Computer Languages, Chicago, IL, USA, pp. 4–15 (1998)
Liang, S., Bracha, G.: Dynamic Class Loading in the Java Virtual Machine. In: Proceedings of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA 1998), Vancouver, BC, Canada (October 1998)
Meijer, E., Gough, J.: Technical Overview of the Common Language Runtime. Microsoft (2000)
Moth, D.: (2004), http://www.danielmoth.com/Blog
Pratschner, S.: .NET CF WebLog (2005), http://blogs.msdn.com/stevenpr
Qian, Z., Goldberg, A., Coglio, A.: A Formal Specification of Java Class Loading. In: Proceedings of the 15th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages & Applications (OOPSLA 2000), Minneapolis, MN, USA, pp. 325–336 (2000)
Shi, A.: The Fusion Weblog (2005), http://blogs.msdn.com/alanshi
Zhang, J.: .NET Framework Notes (2005), http://blogs.msdn.com/junfeng
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Buckley, A. (2005). A Model of Dynamic Binding in .NET. In: Dearle, A., Eisenbach, S. (eds) Component Deployment. CD 2005. Lecture Notes in Computer Science, vol 3798. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11590712_12
Download citation
DOI: https://doi.org/10.1007/11590712_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30517-0
Online ISBN: 978-3-540-32281-8
eBook Packages: Computer ScienceComputer Science (R0)