IMPLEMENTATION OF THE MS VISUAL STUDIO ADD-IN FOR SEAMLESS ASPECT-ORIENTED PROGRAMMING

  • Дмитрий Алексеевич Григорьев SPbSU, St. Petersburg, Russia
  • Анастасия Викторовна Григорьева SPbSU, St. Petersburg, Russia
  • Михаил Анатольевич Зотов SPbSU, St. Petersburg, Russia
  • Сергей Алексеевич Макаров SPbSU, St. Petersburg, Russia
Keywords: aspect-oriented programming, aspects, Visual Studio add-in, statical weaving

Abstract

Aspect-oriented approach is helpful to simplify the business logic of an application, due to explicit separation of its cross — cutting concerns. The goal of the Aspect.NET project described in this paper is to create an аspect — oriented programming tool for Microsoft .NET which would be integrated to the latest Microsoft software development environment — Visual Studio .NET 2013. Сross — cutting concerns are incapsulated in static methods of aspect class. Applying of aspects into target assembly is made by console tool (named "weaver") on the post — build stage. To handle .NET assemblies, Aspect.NET uses Mono.Cecil library. This approach allows to weave new functionality during the post-build stage without any modifications of target project.

Author Biographies

Дмитрий Алексеевич Григорьев, SPbSU, St. Petersburg, Russia

Dmitriy A. Grigoriev: Department of computer science, Mathematics & Mechanics Faculty, St. Petersburg State University, associate professor.

Анастасия Викторовна Григорьева, SPbSU, St. Petersburg, Russia

Anastasiya V. Grigorieva: Department of computer science, Mathematics & Mechanics Faculty, St. Petersburg State University, post-graduate student.

Михаил Анатольевич Зотов, SPbSU, St. Petersburg, Russia

Mikhail A. Zotov: Department of computer science, Mathematics & Mechanics Faculty, St. Petersburg State University, student

Сергей Алексеевич Макаров, SPbSU, St. Petersburg, Russia

 Sergey A. Makarov: Department of computer science, Mathematics & Mechanics Faculty, St. Petersburg State University.

References

[1] R. Martin and M. Martin, Printsipy, patterny i metodiki gibkoi razrabotki na yazyke C# [Agile Principles, Patterns, and Practices in C#], St. Petersburg, Russia, Simvol, 2011 (in Russian).
[2] R. Miles, AspectJ Cookbook, Cambridge, USA, O’Reilly, 2004.
[3] Sait proekta PostSharp [Online]. Available: http://www.sharpcrafters.com/
[4] M. Fowler, Refaktoring. Uluchshenie sushchestvuyushchego koda [Refactoring: Improving the Design of Existing Code], St. Petersburg, Russia, Simvol, 2004 (in Russian).
[5] D. Esposito, “Aspektno-orientirovannoe programmirovanie, perekhvat i Unity 2.0” [Cutting Edge - Aspect-Oriented Programming, Interception and Unity 2.0], MSDN Magazine, Dec. 2010 [Online]. Available: http://msdn.microsoft.com/ru-ru/magazine/gg490353.aspx (in Russian).
[6] S. Labey, M. Dooren, and E. Steegmans, "ServiceJ A Java Extension for ProgrammingWeb Services Interactions", Web Services 2007. ICWS 2007. IEEE International Conference on, pp. 505-512, 2007; doi:10.1109/ECOWS.2005.13
[7] Sait proekta SheepAspect [Online]. Available: http://sheepaspect.codeplex.com
[8] Sait proekta AOP.NET [Online]. Available: https://sourceforge.net/projects/aopnet/
[9] J. Hannemann, “Aspect-oriented refactoring: Classification and challenges”, in Workshop on Linking Aspect Technology and Evolution (LATE’06). 5th International Conference on Aspect-Oriented Software Development (AOSD’06), Bonn, Germany, 2006.
[10] Sait proekta MS Enterpise Library [Online]. Available: http://msdn.microsoft.com/en-us/library/ff648951.aspx
[11] Sait proekta Aspect.NET [Online]. Available: http://aspectdotnet.org/
[12] Sait proekta Mono.Cecil [Online]. Available: http://www.mono-project.com/docs/tools+libraries/libraries/Mono.Cecil
[13] V. D. Nguyen and V. O. Safonov, “Primenenie aspektno-orientirovannogo podkhoda i sistemy ASPECT.NET k razrabotke web-prilozhenii” [Application of aspect-oriented approach and Aspect.NET system for Web application development], Computer tools in education, no. 5, pp. 3–11, 2010 (in Russian).
[14] A.V. Grigorieva “Aspektno-orientirovannyi refaktoring oblachnykh prilozhenii MS Azure s pomoshch'yu sistemy Aspect.NET” [Aspect-oriented refactoring of MS AZURE CLOUD applications using ASPECT.NET], Computer tools in education, no. 1, pp. 21–30, 2012 (in Russian).
[15] D. A. Grigoriev A. V. Grigorieva, and V. O. Safonov “Besshovnaya integratsiya aspektov v oblachnye prilozheniya na primere biblioteki Enterprise Library Integration Pack for Windows Azure i Aspect.NET” [Seamless integration of aspects into cloud applications with the example of Enterprise Library Integration Pack for Windows Azure and Aspect.NET], Computer tools in education, no. 4, pp. 3–15, 2012 (in Russian).
[16] Spring.NET Reference Documentation, 2011 [Online]. Available: http://www.springframework.net/doc-latest/reference/pdf/spring-net-reference.pdf
[17] A. Rasche, W. Schult, and A. Polze “Self-adaptive multithreaded applications: a case for dynamic aspect weaving,” in Proc. of the 4th workshop on Reflective and adaptive middleware systems, Grenoble, France, 2005; doi:10.1145/1101516.1101526
[18] W. Wen and S. Zhang, “Research And Implementation Of AOP Technology In. NET Framework,” in Enterprise Systems Conference (ES), 2014, Shanghai, China, pp. 97–101; doi:10.1109/ES.2014.49
[19] M. Iwamoto and J. Zhao, "Refactoring Aspect-Oriented Programs," presented at 4th AOSD Modeling with UML Workshop, UML'2003, San Francisco, California, USA, 2003.
[20] Sait proekta FxCop 10.0 [Online]. Available: https://www.microsoft.com/en-us/download/details.aspx?id=6544
[21] V.O. Safonov, “Aspect.NET: concepts and architecture,” .NET Developer’s Journal, no. 10, 2004.
[22] A. Hunt and D. Thomas, Pragmatic Unit Testing in C# with NUnit (The Pragmatic Bookshelf), NC, USA: Raleigh, 2004.
[23] M. Groves, AOP in .NET. Practical Aspect-Oriented Programming, Shelter Island, NY : Manning Publ., 2013
[24] D. A. Grigoriev, “Realizatsiya i prakticheskoe primenenie aspektno-orientirovannoi sredy programmirovaniya dlya Microsoft .NET” [Implementation and practical application of the aspect-oriented programming environment for Microsoft .NET], SPb. Nauchno-tekhnicheskie vedomosti SPbGPU, no. 3, pp. 225–232, 2009 (in Russian)
[25] D. A. Grigoriev, A. V. Grigorieva, and V. O. Safonov, “Realizatsiya mekhanizma dostupa k dinamicheskomu kontekstu v tochkakh primeneniya aspektov dlya sistemy Aspect.NET” in SPISOK-2014, St. Petersburg, Russia, pp. 142–147 (in Russian).
[26] Stranitsa proekta ILRepack [Online]. Available: https://github.com/gluck/il-repack
[27] V. O. Safonov, Using aspect-oriented programming for trustworthy software development. Hoboken, NJ: Wiley, 2008.
Published
2016-12-19
How to Cite
Григорьев, Д. А., Григорьева, А. В., Зотов, М. А., & Макаров, С. А. (2016). IMPLEMENTATION OF THE MS VISUAL STUDIO ADD-IN FOR SEAMLESS ASPECT-ORIENTED PROGRAMMING. Computer Tools in Education, (6), 5-19. Retrieved from http://cte.eltech.ru/ojs/index.php/kio/article/view/1374
Section
Software Engineering