Skip to main content
Eleflex Logo Elegance in Simplicity
Flexibility in Design

Summary

ELEFLEX® is an open source Microsoft .NET C# platform for building modular, domain-driven, service-oriented applications and services. The platform utilizes several open source libraries in it's foundation to provide a common, integrated design using the best of breed components. It's modular design enables teams of developers to create modules independently while easily integrating and publishing via NuGet to promote community collaboration.

Built with Software Development Best Patterns and Practices

Open Source

We are proud to support the open source community and have released the ELEFLEX® platform under the GNU General Public License v3. This license allows developers to use the platform in open and closed source environments. To learn more, download the complete source code at GitHub!

SOA - Service Oriented Architecture

The platform incorporates SOA design principles and provides standardized service contracts utiizing Windows Communication Foundation (WCF) as the default transport protocol. Service governance has ensured modules are domain centric, while also promoting loose-coupling and composability for the system service inventory.

Domain Driven Design

The platform utilzes bounded contexts to seperate domains and their associated modules, business rules, events and workflows. Along with other object-oriented patterns, the platform incorporates service, factory, repository, entity and event objects to facilitate enterprise software capabilities.

Inversion of Control / Dependency Injection

Inversion of control is used to increase the modularity and extensibility of an application. The platform utilizes factory, service locator, templated methods and dependency injection patterns to achieve reusable, testable components and services.

Security

Security is built into the core framework to provide integrated authentication and authorization of resources for all ELEFLEX modules. The platform utilizes the latest OWIN and Microsoft ASP.NET Identity security mechanisms to secure web pages, service commands, and resources.

Application Logging

Logging is an important component to provide system health, auditing, errors and debugging information with the execution of the website. The platform provides persistent storage of application log messages to view when and where improvements can me made.

Solid Principles

  • Single Responsibility Principle
  • Open Closed Principle
  • Liscov Substitution Principle
  • Interface Segregation Principle
  • Dependency Inversion Principle

Versioning

Versioning is the cornerstone of a modular framework and we provide developers a simple and easy eay to update new and existing ELEFLEX installations. We utilize NuGet packages to allow developers to integrate with the platform as well as a patching tool to allow your application to update when executed.

Bootstrap and 508 Compliance

We utilize bootstrap to provide common html styling conventions with our pages as well as web accessibility compliance techniques that allow accessibility technologies to read and interact with content displayed.

Get Started Now!

Creating a new ELEFLEX® application is easy and only takes a few steps to get started. We have released the platform via NuGet to allow for easy integration and community collaboration. Follow the below steps to create your first Eleflex WebServer application!

Step 1

Open Microsoft Visual Studio 2015 and create a new ASP.NET Web Application (Empty Template)
Create ASP.NET Web Application
Create Empty Template

Step 2

Right click your web application in the solution explorer and select "Manage NuGet Packages For Solution", search for "Eleflex.WebServer" and install the package. Search for Eleflex.WebServer and install the package

Step 3

Right click your web application in the solution explorer, select "Properties" and go to the "Web" tab on the left. Copy the port number of your web application and update the web.config file for the system.servicemodel/client/endpoint address. Change the "localhost:16185" to be your web application's port number.
Right click project, select Properties and then click the Web tab on the left to get your web application port number
Edit the web.config file to change the client address port number

Step 4

Open Microsoft SQL Management Studio and create a new database. Update the web.config file to change the connection string to connect to the database you just created.
Open SQL Server Management Studio and create a new database.
Edit the web.config file to change connection to the database

Complete!

Rebuild your web application and run it. The first user to register with the system receives the Admin role to administer the system.

Features

Common Services Infrastructure

The ELEFLEX® platform comes with several pre-loaded modules and services to help you create your next project quickly using the latest tools and open source projects. Download the complete source code online to begin learning or to modify for your solution's needs. The following modules are included with the default installation to help you begin building new applications quickly.

Storage

The Storage Module provides the foundation for connecting to multiple data sources (databases, file systems, memory, etc) simultaneously with support for customizing new providers.

Services

The Services Module enables service communication for all integrated modules. A single WCF endpoint can expose all domain service commands, messages, customization and integration with referenced ELEFLEX® Modules.

Security

The Security Module provides a complex identity module that allows administration of users, roles, permissions and claims that can be customized with inheritance and effective date assignments for greater administration flexibility.

Logging

The Logging Module stores system information messages about the execution of the website for auditing and debugging purposes for use with all referenced components.

Lookups

The Lookups Module exposes a generic lookup table provider for grouping metadata items into categories for use with all system modules and cross integration.

Versioning

The Versioning Module provides developers creating modules a mechanism for auto-patching and upgrading exising ELEFLEX® installations.

Module Integration

ELEFLEX® Modules are intended to be packaged and deployed via NuGet to allow integration with existing installations easily. Utilizing the platform's modular capabilities, developers can deploy service, storage, client, web components and perform other installation tasks with NuGet for the greatest customization and flexibility.

Storage Providers

The platform provides generic interfaces that can be customized for your application needs. We have implemented Entity Framework as the default persistence layer and we support Microsoft SQL Server (version 2005 or greater) and Microsoft Azure storage providers for all included modules. We plan to implement other persistence layers and storage providers to future releases depending on customer demand.

Deployment Flexibility and Scalability

You can deploy a complete application in one web application or you can partition your application and services across multiple servers while mixing and matching different service clients, persistence layers and storage providers on each. Additionally, client applications can communicate with the deployed application service infrastructure completely using service-based interaction without the need for configuring and communicating directly with a managed, protected resource.

Screen Shots

The default ELEFLEX® installation comes with several pre-installed modules and screens to jump start your next development project.

Licensing

We are proud to support the open source software development community and we have released the complete source code of the PRODUCTION READY® ELEFLEX® platform under the GNU General Public License v3. This license aligns with company principles and goals while ensuring that everyone who contributes and uses the platform is free to receive the complete source code.