Your browser does not support JavaScript!
http://iet.metastore.ingenta.com
1887

Aspect-oriented weaving and the .NET common language runtime

Aspect-oriented weaving and the .NET common language runtime

For access to this article, please select a purchase option:

Buy article PDF
£12.50
(plus tax if applicable)
Buy Knowledge Pack
10 articles for £75.00
(plus taxes if applicable)

IET members benefit from discounts to all IET publications and free access to E&T Magazine. If you are an IET member, log in to your account and the discounts will automatically be applied.

Learn more about IET membership 

Recommend Title Publication to library

You must fill out fields marked with: *

Librarian details
Name:*
Email:*
Your details
Name:*
Email:*
Department:*
Why are you recommending this title?
Select reason:
 
 
 
 
 
IET Software — Recommend this title to your library

Thank you

Your recommendation has been sent to your librarian.

Aspect-oriented programming (AOP), now practically a consolidated academic discipline, has yet to build more solid industrial foundations, especially in the realms of the .NET platform. It's believed that this situation is caused by the lack of a robust and user-friendly AOP tool for .NET comparable with the Java-based AspectJ. This work investigates the basic infrastructure required for building such a tool: aspect-oriented weaving with the common language runtime (CLR) environment. In this regard, a classification schema is built, analysing the attributes a hypothetical aspect weaver for .NET might have. It assesses the different classes of weavers that can be built on top of the CLR today and investigates what extensions to the platform would be needed in order to enable more sophisticated weaving technologies. Some typical use cases for the resulting AOP tools, and classify what attributes a corresponding weaver would need to have in order to fulfil these requirements. Finally, two existing aspect weaver implementations in terms of these very same attributes are analysed.

References

    1. 1)
      • Prasad, M.D., Chaudhary, B.D.: `AOP support for C', Second AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software, March 2003, Boston, USA.
    2. 2)
      • Cyment, A., Kicillof, N., Altman, R., Asteasuain, F.: `Improving AOP systems' evolvability by decoupling advices from base code', Proc. 3rd ECOOP Workshop on Reflection, AOP, and Evolvability, RAM-SE'06, 2006.
    3. 3)
      • Evain, J.-B.: `Mono Cecil', May 2007, available at: http://www.mono-project.com/Cecil.
    4. 4)
      • Valle-Rai, R., Co, P., Gagnon, E., Hendren, L., Lam, P., Sundaresan, V.: `Soot – a Java bytecode optimization framework', Proc. Conf. Centre For Advanced Studies on Collaborative Research CASCON ‘99, November 1999, Mississauga, Canada.
    5. 5)
      • Gil, T., Evain, J.-B.: `AspectDNG', 2006, available at: http://aspectdng.tigris.org/.
    6. 6)
      • Fraiteur, G.: `PostSharp – an open-source post-compiler for .NET', 2007, available at: http://www.postsharp.org/.
    7. 7)
      • G. Kiczales , E. Hilsdale , J. Hugunin , M. Kersten , J. Palm , W.G. Griswold . Getting started with aspectJ. Commun. ACM , 10 , 59 - 65
    8. 8)
    9. 9)
      • C. Constantinides , A. Bader , T. Elrad , P. Netinant , M. Fayad . Designing an aspect-oriented framework in an object-oriented environment. ACM Comput. Surv. , 1
    10. 10)
      • D. Ungar , R. Smith . SELF: the power of simplicity. High.-Order Symbol. Comput. , 3 , 187 - 205
    11. 11)
      • Foundation, Apache Software: `iBATIS Project', May 2007, available at: http://ibatis.apache.org/.
    12. 12)
      • Johansson, R.: `NAspect', May 2007, available at: http://www.puzzleframework.com.
    13. 13)
    14. 14)
      • Chitchyan, R., Sommerville, I.: `Comparing dynamic AO systems', Proc. Dynamic Aspects Workshop, 2004, p. 120–134.
    15. 15)
      • (2005) Common language infrastructure (CLI).
    16. 16)
      • Böllert, K.: `On weaving aspects', ECOOP Workshops, 1999, p. 301–302.
    17. 17)
      • Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: `Aspect-oriented programming', Lecture Notes in Computer Science, 1997, 1241, p. 220–242.
    18. 18)
      • A. Mikunov . (2003) Rewrite MSIL code on the fly with the .NET framework profiling API, MSDN Magazine.
    19. 19)
      • Armouti, H.: `Orthogonal weaving model', Microsoft Research AOP goes .NET Workshop, November 2005, Redmond, USA.
    20. 20)
      • ‘NAnt: A .NET Build Tool’ available at: http://nant.sourceforge.net, accessed May 2007.
    21. 21)
      • A. Goldberg , D. Robson . (1983) Smalltalk-80: the language and its implementation.
    22. 22)
      • M. Dahm . (2001) BCEL, Technical Report B-17–98.
    23. 23)
      • Altman, R., Cyment, A., Kicillof, N.: `On the need for SetPoints', Eur. Interactive Workshop on Aspects in Software EIWAS 2005, September 2005, Brussels, Belgium.
    24. 24)
      • Cabral, B., Marques, P., Silva, L.: `RAIL: code instrumentation for .NET', Proc. ACM Symp. on Applied Computing, Santa Fe, March 2005, New Mexico, USA.
    25. 25)
      • Hugunin, J.: `IronPython: a fast python implementation for .NET and Mono', Proc. PyCON 2004 Int. Python Conf., 2004, Washington, DC, USA.
    26. 26)
      • de Icaza, M.: `Mono Rationale–the Mono Project’. Whitpaper', 2001, available at: http://www.mono-project.com/Mono_Rationale.
    27. 27)
      • Noguera García, C.F.: `Compose* – a runtime for the .Net platform', 2003, Master's, Vrije Universiteit Brussel, Belgium.
    28. 28)
      • Zhao, J.: `Slicing aspect-oriented software', Proc. 10th Int. Workshop on Program Comprehension IWPC ‘02, 2002, Washington, DC, USA.
    29. 29)
      • D. Box , T. Pattison . (2002) Essential .Net: the common language runtime.
    30. 30)
      • Verissimo, H.: `Aspect#', May 2007, http://www.castleproject.org/aspectsharp/index.html.
    31. 31)
      • Kühn, E., Schmied, F.: `XL-AOF: lightweight aspects for space-based computing', Proc. 1st Workshop on Aspect-Oriented Middleware Development AOMD '05, 2005, Grenoble, France.
    32. 32)
      • E. Kühn , G. Fessl , F. Schmied . Aspect-oriented programming with runtime-generated subclass proxies and .NET dynamic methods. J. .NET Technol. , 17 - 24
    33. 33)
      • Hirschfeld, R.: `AspectS – aspect-oriented programming with squeak', NODe '02: Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World, 2003, p. 216–232.
    34. 34)
      • Gough, J., Corney, D.: `Reading and Writing PE-files with PERWAPI', 2005, available at: http://www.plas.fit.qut.edu.au/perwapi/files/PERWAPI.pdf.
    35. 35)
    36. 36)
      • Clement, A., Colyer, A., Kersten, M.: `Aspect-oriented programming with AJDT', Workshop for Analysis of Aspect-Oriented Software ECOOP AAOS, 2003.
    37. 37)
      • Filman, R., Friedman, D.: `Aspect-oriented programming is quantification and obliviousness', Workshop on Advanced Separation of Concerns, OOPSLA, Minneapolis, October 2000.
    38. 38)
      • M. Eaddy , A. Cyment , P. van de Laar , F. Schmied , W. Schult . (2007) Whitepaper: the value of improving the separation of concerns, Technical Report CUCS-001–07.
    39. 39)
      • Schordan, M., Quinlan, D.: `A source-to-source architecture for user-defined optimizations', Lecture Notes in Computer Science, 2003, 2789, p. 214–223.
    40. 40)
      • Eddon, G.: `Phoenix rising ', 2005, November Issue.
http://iet.metastore.ingenta.com/content/journals/10.1049/iet-sen_20070013
Loading

Related content

content/journals/10.1049/iet-sen_20070013
pub_keyword,iet_inspecKeyword,pub_concept
6
6
Loading
This is a required field
Please enter a valid email address