eXpand is the first open source project based on the DevExpress eXpressApp Framework (XAF). The eXpressApp Framework ships with DXperience Universal and can be evaluated free of charge (30 day trial) at: https://www.devexpress.com/ClientCenter/Downloads.
eXpand framework was started and is led by Tolis Bekiaris. Tolis has made a huge contribution to XAF over the years receiving great recognition from DevExpress and the whole XAF community. In April 2011 Tolis was honoured to be hired as Technical Evangelist for DevExpress frameworks!
The eXpand Framework is an extension of XAF and operates within the Microsoft Public License (Ms-PL). Although XAF is not an open source product it can be purchased directly from DevExpress.
The eXpandFramework team have extended the capabilities of the eXpressApp Framework to include 61 cutting-edge assemblies containing tools and modules that target numerous business scenarios
The main idea behind eXpand is to offer as many features as possible to developers/business users through a declarative approach (configuring files rather than writing code). Please go through each of the following brief descriptions and find out how eXpand can help you accomplish your complex development tasks with easy declarative programming. Below you can see some descriptions and screenshots of our basic modules (screenshots taken from eXpand FeatureCenter application that comes along with the download). In the folder Demos you can find a list of demos like XVideoRental, SecurityDemo, MiddleTier, Workflow and installation helper solutions for each module.
Examples of those modules include (in the two right columns you can see the supported platform):
Module Name | Description | ![]() |
![]() |
ModelDifference | Model managment | Y | Y |
Dashboard | Enables native XAF dashboard collaboration and integrates the Dashboard suite | Y | Y |
WorldCreator | Design runtime assemblies | Y | Y |
Send emails using bussiness rules from application model without coding (see http://goo.gl/Hkx6PK) | Y | Y | |
JobSheduler | Acts as a wrapper for the powerfull Quartz.Net, providing a flexible UI for managing Jobs at runtime | Y | Y |
WorkFlow | Contains workflow related features (Scheduled workflows) | Y | Y |
DBMapper | Map 14 different types of databases at runtime into worldcreator persistent objects | Y | Y |
IO | Export & Import object graphs | Y | Y |
ExcelImporter | Imports Excel, csv files. | Y | Y |
MapView | Google Maps integration for XAF web apps. Blog posts. | Y | Y |
FileAttachments | Provides support for file system storage as per E965 | Y | Y |
Scheduler | Please explore the XVideoRental module found in Demos/XVideoRental folder (Blog posts) | Y | Y |
Reports | Please explore the XVideoRental module found in Demos/XVideoRental folder | Y | N |
Chart | Please explore the XVideoRental module found in Demos/XVideoRental folder | Y | N |
PivotGrid | Please explore the XVideoRental module found in Demos/XVideoRental folder | Y | N |
HtmlPropertyEditor | File upload and configuration through Application Model | N | Y |
Import Wizard | Universal module for importing excel files into any XAF application. | Y | N |
Core | Support multiple datastore , calculable properties at runtime ,dynamic model creation,control grid options, datacaching, web master detail, view inheritance etc. | Y | Y |
WorkFlow | Extends XAF's workflow module to support schedule and on object changed workflows | Y | Y |
AuditTrail | Configures XAF Audit Trail module using the Application Modules. (see Declarative data auditing) | Y | Y |
StateMachine | Enhance XAF's statemachine module in order to control transitions using permissions | Y | Y |
ModelAdaptor | Designed to apply component configurations and uses the Logic architecture | Y | Y |
Logic | Define conditional architecture | Y | Y |
ModelArtifact | Parameterize Controllers & Actions | Y | Y |
AdditionalViewControlsProvider | Decorate your views with custom controls | Y | Y |
MasterDetail | XtraGrid support for master-detail data presentation using the model. | Y | N |
PivotChart | Enhance analysis procedures / controls | Y | Y |
Security | Provides extension methods, authentication providers, login remember me, custom security objects | Y | Y |
MemberLevelSecurity | Conditional security for object members. | Y | N |
FilterDatastore | Filter data at low level | Y | Y |
Wizard | Design wizard driven views | Y | N |
ViewVariants | Create views without the use of model editor | Y | Y |
Validation | More rules , permission validation, warning/info support, Action contexts etc | Y | Y |
ConditionalObjectViews | Allows the conditional navigation to your detailviews/listviews-->Merged with ModelArtifact | Y | Y |
EasyTests | Custom command and extensions for EasyTest see http://apobekiaris.blogspot.gr/search/label/EasyTest | Y | Y |
ExceptionHandling | Log exceptions to numerous listeners / datastore | Y | Y |
TreelistView | Enhance hierarchy controls, map XtraTreeList options to model | Y | Y |
NCarousel | Loads images asynchronously and displays them using a configurable carousel listeditor | N | Y |
Thumbnail | Configurable through model module for displaying images | N | Y |
CodeRush Addins | Enhance Model Editor, Explore Xaf Errors, Drop Database at design time, ProjectConverter invocation | - | - |
- Dashboard module
Blogs:
http://apobekiaris.blogspot.gr/search/label/dashboard - Model Difference
Extends XAF by adding great new features for example;
- the ability to generate runtime members for your objects,
- creating Application/Role/User models in the database,
- storing your web cookies in the database,
- handling of external application models,
- combine end user modifications with application model,
- support for multiple models at design time,
http://apobekiaris.blogspot.com/search/label/ModelDifference
- WorldCreator
Creates dynamic persistent assemblies. The XAF user interface allows us to create an assembly without writing a single line of code. Advanced users can even use c# scripting and create new code generation templates.
Blogs:
http://apobekiaris.blogspot.com/search/label/WorldCreator - JobScheduler
For those who are not familiar with the concept of job scheduling, here is some background information. Also, there is great Quartz tutorial, which provides an excellent introduction.
Blogs:
http://apobekiaris.blogspot.com/search/label/JobSceduler - DBMapper
DBMapper has the same functionality as SqlDbMapper however is based on the powerful XPO . Thus DBMapper module is capable of transforming into WorldCreator persistent classes the following list of databases: Access, Advantage, Adaptive Server Anywhere, Ase, DB2, FireBird, FireBirdSql, SqlServerCe, SqlServer, ODP, Oracle, PersasizeSql, PostgreSql, SQLite, VistaDB - SqlDbMapper
Can map any sql database into WorldCreator persistent classes and connect to it on the fly. This allows the user to take advantage of Xaf's strengths when mapping a legacy system with just a few clicks. Also we can use the dynamically generated code for your design time requirements
Blogs:
http://apobekiaris.blogspot.com/search/label/SqlDbMapper - Import Export Module
Provides collaboration between a xaf application and another system by allowing you to create object serialization graphs. The complexity of a graph can be configured using either UI or design time attributes. Changing object keys and choosing serialization strategies are straightforward as seen in this screenshot.
Blogs:
http://apobekiaris.blogspot.com/search/label/IO
- Import Wizzard
Universal module for importing excel files into any XAF application.
Blogs:
http://mdworkstuff.blogspot.gr/search/label/wizard - AdditionalViewControlsProvider
Allows us to place a Win or Web control in any given position in its respective XAF view and control its visibility, text decoration, font, height, width, etc. using conditional model rules.
Blogs:
http://apobekiaris.blogspot.com/search/label/AdditionalViewControlsProvider
- ModelArtifactState
Apply conditional logic to the artifacts of your model (Controllers, Actions). It means that you can enable,disable,hide,execute etc. at many contexts or combination of them
Blogs:
http://apobekiaris.blogspot.com/search/label/ModelArtifactState
- MasterDetail Enables conditional master detail functionality over your list views. It operates at any level!!
Blogs:
http://apobekiaris.blogspot.com/search/label/MasterDetail - StateMachine
Enhance XAF's statemachine module in order to control transitions using permissions
Blogs:
http://apobekiaris.blogspot.com/search/label/Xpandstatemachine - PivotChart Using it you can connect your analysis objects with any object and display/position them at any view. A big number of pivot features are also supported . Controlling Pivotgrid options is also available at runtime
Blogs:
http://apobekiaris.blogspot.com/search/label/PivotChart - Security
Blogs:
http://apobekiaris.blogspot.gr/search/label/Security - MemberLevelSecurity
Extends object type based security system with a conditional member based one
Blogs:
http://apobekiaris.blogspot.com/search/label/MemberlevelSecurity
- Logic
Provides the architecture / engine upon many of eXpand modules have been designed (AdditionalViewControlsProvider, ModeArtifactState, MasterDetail, ConditionalDetailViews) . Very valuable to the developers that want to implement a conditional modules
Blogs:
http://apobekiaris.blogspot.com/search/label/Logic - Core modules
The features here are endless . Some interesting features are multiple datastore support, create calculable properties at runtime, dynamic model creation, GridView,GridColumn options…etc
Blogs:
http://apobekiaris.blogspot.com/search/label/Core.Web
http://apobekiaris.blogspot.com/search/label/Core.Win
DataCaching - ConditionalObjectView Allows the conditional navigation to your detailviews / listviews
- ViewVariants End user can design views at runtime
Blogs:
http://apobekiaris.blogspot.com/search/label/ViewVariants - Validation
Blogs
http://apobekiaris.blogspot.com/search/label/Validation
http://t.co/9q4eMAnO (warning/Info)
- WizardUI
Enables designing of wizard views using the model editor - TreelistView
Enable recursive filtering and viewing for your listviews ,map XtraTreeList options to model, support for conditional appearance module
Blogs:
http://apobekiaris.blogspot.com/search/label/TreeListEditors - ExceptionHandling
Using Microsoft Enterprise Library can really help you see what's going on when an exception is raised, by storing your exception to any of the trace listeners provided with MSEL, or to your data store or to a different datastore taking also a screenshot of the application at the time of the exception
Blogs:
http://apobekiaris.blogspot.com/search/label/Exception%20Handling - FilterDatastore
Extend security strategy to filter data at low levels. System administrators can configure what your users are authorized to view. UserFilter, SkinFilter providers are supplied as examples. The configuration of the providers is done from the model editor
Blogs:
http://apobekiaris.blogspot.com/search/label/FilterDataStore - CodeRush Addins
Model Editor: Overrides any VS crashing problems, support multiple design time models and speed ups navigation through its search facility
DropDatabase: Using a keyboard shortcut allows you to drop the databases your application is connected to at design time
ProjectConverter: Runs project converter for the current open solution
Explore Xaf Errors: Using ReSharper stack trace explorer and a keyboard shortcut you can explorer xaf errors
Blogs:
http://apobekiaris.blogspot.com/search/label/DxCore
http://apobekiaris.blogspot.com/search/label/Visual%20Studio%20plugins
http://apobekiaris.blogspot.com/search/label/CodeRush - NCarousel
Web skinable listeditor based on JCarousel. Image loading is asynchronous , multiple editor with different configurations is allowed
?
Blogs:
http://apobekiaris.blogspot.com/search/label/NCaousel - Thumbnail
Configurable web thumbnail list editor that wraps images into special styling so they can be auto aling in the page with out problems.
Blogs:
http://apobekiaris.blogspot.com/search/label/Thumbnails - Workflow
Blogs
http://apobekiaris.blogspot.com/search/label/XpandWF
- Excelmporter
Blogs
http://apobekiaris.blogspot.gr/search/label/ExcelImporter