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
You are new to EL4NET?
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.