Got a question?
Got a question or comment? Contact us at
(515) 294-6168 or hridesh@cs.iastate.edu.
|
| The Eos Programming Guide (Under Construction) |
Eos is an aspect-oriented extension to C# programming
language for Microsoft® .NET Framework. Its
programming language model is based on AspectJ-like
languages. It supports modularization of crosscutting
concerns by adding three constructs to C#. A concern
is a dimension in which some design decision is made.
Some examples of concerns are execution trace policy,
use of common thread pool, security policy enforcement, caching etc. A concern is crosscutting if it cannot be
realized in traditional object-oriented designs in a
modular way – that is, if any implementation of the
concern involves scattered and tangled code. Scattered
means not localized in a module but fragmented across
a system. Tangled means mingled with code for other
concerns. For example, the implementation of execution trace policy is scattered across all methods of the
system and tangled with the concerns implemented by the
methods.
The language model of Eos adds three new constructs to
C#: pointcuts, bindings, and inter-type declarations.
The pointcut and inter-type declarations are similar to
their counterpart in AspectJ. The pointcut select points
in the execution of a program. These points are called
join points in aspect-oriented terminology. The binding
construct connects the join points to methods. Whenever
the join point is reached in the program execution, the
bound method is executed. The binding construct uses the
pointcut construct to select a set of join points to connect
a method. The inter-type declaration allows a third party type to add additional members and interfaces to a type
without involvement of the type itself.
|
| Pre-requisite Knowledge |
This document assumes knowledge of aspect-oriented programming and the C# language and it uses the same terminology as the C# specification. Additional terminology is only added to explain new constructs.
|
| What is new in Eos 0.3? |
The current version of Eos, 0.3 beta 1, makes the following changes to the language specification of 0.2:
• Aspects and classes are not two separate constructs. Instead, there is only one construct classpect that is declared using the keyword class. Besides all the class members such as methods, fields, events, indexers, etc, this new construct can declare aspect-oriented constructs as well.
• Unlike Eos-0.2 there is no advice construct in the current model. The traditional advices are represented as a combination of bindings and object-oriented methods.
|
| Table of Contents |
- Downloading Eos.
- Getting Started.
- Supported platforms
- Known limitations
- License
- Pointcuts in Eos
- Reflective Information at the Join Point
|
|
|