Расширение MS VISUAL STUDIO для бесшовного аспектно-ориентированного программирования
Аннотация
Аспектно-ориентированный подход позволяет отделить бизнес-логику приложения от сквозной функциональности. В данной работе описывается реализация системы Aspect.NET, которая интегрирована в Microsoft Visual Studio 2013 и позволяет созда- вать аспектно-ориентированные программы на платформе Microsoft.NET. Сквозная функциональность представляется в виде статических методов класса аспекта, а их интеграция в целевую сборку производится отдельной консольной программой — компоновщиком на этапе пост-компиляции с помощью библиотеки Mono.Cecil. Дан- ный подход позволяет на этапе компиляции интегрировать новую функциональ- ность в целевой проект без его модификации.
Литература
[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.
Материал публикуется под лицензией: