EL4NET Project Overview
What Is EL4NET?
EL4NET is an extension library for the .NET framework that helps to implement and operate agile enterprise-class applications.
- Open and extensible component model
- Leverages architectural patterns and best practices such as separation of concerns, separation of interface and implementation, inversion of control, component locator, and layered architecture.
- Singleton, stateless, and stateful component activation.
- Configuration injection and component injection.
- Open and powerful interception layer for components.
- New component types can be added by plug-in.
- Retains full compatibility with the .NET framework.
- Production-grade configuration system
- Provides a clean separation between development and operations responsibilities by disconnecting component wiring from application parameterization.
- Built-in validators detect configuration errors at start-up time and they perform structural and logical checks as well as checks on assemblies.
- A powerful system manages configuration by assembling configuration fragments.
- Support for validation attributes eases defining validity-ranges for configuration settings
- Extended remoting
- Allows a component to be published using any given technology such as .NET Remoting, ASP.NET Webservices, or Indigo Communication. Publication technologies can be added by plug-in.
- Per-channel publication support has been added to the standard .NET Remoting.
- Alias mechanisms to avoid hardcoded location URLs in component definitions.
- Communication over IIOP is provided thanks to the IIOP.NET integration
- No-code-change deployment
- When developing, you use predefined code compartiments to organize your code. For deployment you can flexibly define in what process each compartiment should run. For example, you can run your 2-compartiment-application in 2 AppDomains in 1 process (e.g., fat client) or run the same application in 2 separate processes and run it as a thin client and as an application server.
EL4NET is already in use in several projects within our company
(http://www.elca.ch).
You are new to EL4NET?
EL4NET Vision
As the architects and implementers of several large-scale systems, we wanted a development framework that would do at the code component level what SOA does for IT architecture in the large: allow components to be published, discovered, invoked, and easily assembled into rich, useful applications. These are the goals we set for EL4NET:
- The framework must provide means to define exactly what a component is and how it behaves. In other words, we must have a clearly articulated component model, and this model must be open and adaptable. For example, it must be possible to easily define entirely new types of components.
- We must be able to build an application simply by assembling it from components, without having to hardcode this.
- We must be able to modify the application simply by replacing a component, or to extend it by adding a new component, in a plug-and-play fashion.
- We want to be able to deploy our application on many different hardware topologies, from laptops to workgroup LANs to fully distributed multi-tiered systems, without code changes.
- We want our components to be able to communicate transparently using multiple communication technologies and chose the appropriate channel when we deploy the application, not when we build it.
- In modern applications, configuration data makes up a non-negligible part of the total lines we have to write, so we need this configuration data to be just as modular, manageable and easy to understand as traditional application code.
- And, finally, our .NET framework extension library must as much as possible be based on standards and open-source software.