Skip to main content

A Model of Dynamic Binding in .NET

  • Conference paper
Component Deployment (CD 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3798))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Buckley, A., Drossopoulou, S.: Flexible Dynamic Linking. In: ECOOP Workshop on Formal Techniques for Java Programs (FTfJP 2004), Oslo, Norway (June 2004)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. Cook, S.: .NET CLR Loader Notes (2005), http://blogs.msdn.com/suzcook

  4. de Icaza, M.: Mono (2005), http://www.mono-project.com/

  5. 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)

    Google Scholar 

  6. 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)

    Chapter  Google Scholar 

  7. ECMA. Standard ECMA-335: Common Language Infrastructure. ECMA International (December 2002), http://www.ecma-international.org/publications/standards/Ecma-335.htm

  8. 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)

    Google Scholar 

  9. 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)

    Google Scholar 

  10. 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)

    Google Scholar 

  11. Farkas, S.: .NET Security Blog (2005), http://blogs.msdn.com/shawnfa

  12. Gero, C., Richter, J.: The Future of Assembly Versioning (2004), http://www.theserverside.net/articles/showarticle.tss?id=AssemblyVersioning

  13. 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)

    Google Scholar 

  14. 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)

    Google Scholar 

  15. Meijer, E., Gough, J.: Technical Overview of the Common Language Runtime. Microsoft (2000)

    Google Scholar 

  16. Moth, D.: (2004), http://www.danielmoth.com/Blog

  17. Pratschner, S.: .NET CF WebLog (2005), http://blogs.msdn.com/stevenpr

  18. 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)

    Google Scholar 

  19. Shi, A.: The Fusion Weblog (2005), http://blogs.msdn.com/alanshi

  20. Zhang, J.: .NET Framework Notes (2005), http://blogs.msdn.com/junfeng

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics