Title :
Aspect-oriented programming with C# and .NET
Author :
Schult, Wolfgang ; Polze, Andreas
Author_Institution :
Hasso-Plattner-Inst., Univ. Potsdam, Germany
fDate :
6/24/1905 12:00:00 AM
Abstract :
Microsoft has introduced the .NET architecture as a new component-based programming environment, which allows for easy integration of classical distributed programming techniques with Web computing. NET defines a type system and introduces notions such as component, object, and interface, which are building blocks for distributed multi-language component-based applications. As many other component frameworks, .NET mainly focuses on functional interfaces of components. Non-functional aspects of components, such as resource usage (CPU, memory), timing behavior, fault-tolerance, or security requirements are currently not expressed in .NET\´s component interfaces. We discuss the usage of aspect-oriented programming techniques in context of the .NET framework. We focus on the fault-tolerance aspect and discuss the expression of non-functional component properties (aspects) as C# custom attributes. Our approach uses reflection to generate replicated objects based on settings of a special "fault-tolerance" attribute for C# components. We have implemented an aspect-weaver for integration of aspect-code and component-code, which uses the mechanisms of the language-neutral .NET type system. Therefore, our approach is not restricted to the C# language but works for any of the .NET programming languages
Keywords :
distributed object management; distributed programming; information resources; object-oriented languages; object-oriented programming; programming environments; software fault tolerance; software reusability; .NET architecture; C# language; Microsoft; Web computing; aspect-oriented programming; aspect-weaver; component-based programming environment; distributed applications; distributed programming; fault-tolerance; multi-language component-based applications; object oriented language; replicated objects; resource usage; security requirements; timing behavior; type system; Computer architecture; Computer languages; Distributed computing; Fault tolerance; Object oriented modeling; Programming environments; Reflection; Security; Service oriented architecture; Timing;
Conference_Titel :
Object-Oriented Real-Time Distributed Computing, 2002. (ISORC 2002). Proceedings. Fifth IEEE International Symposium on
Conference_Location :
Washington, DC
Print_ISBN :
0-7695-1558-4
DOI :
10.1109/ISORC.2002.1003711