Refactoring was too time consuming cause I had to work with all modules together and they are almost 40 of them.
Because I want to focus only at the modules that we are going to release at first alpha version I am going to talk only about those.
eXpand as I already said has almost the same architecture as Xaf .The number of project we are going to released are 11.
That project is holding reusable classes that can be used through other modules. Also dynamic Linq library is hosted here
CustomCollections, ConnectionProviders, ValueConverter, FunctionOperators, CustomXPObjects, TypeConverters, Attributes that are specific to Xpo are hosted here.
Is the same as ExpressApp.BaseImpl and is holding base implementations of Persistent Objects that are used from other modules. Generic ValidationRules belong also here
All objects that they are not xaf oriented but they have some kind of dependency with any Persistent object are using should go here
This one is the first generic module that will hold controllers that can run in both win,web environments. Also will host classes that derived from classes of DevExpress.ExpressApp module. Like custom CollectionSources,ViewExtensions,DictionaryHelpers,DataStoreProvider,XafApplicationExtensions,ObjectSpaceProviders
This is the second generic module that will hold controllers that are specific to win enviroment. WinListEditors, WinPropertyEdtiors, WinTemplates, WinApplication derived classes and anything is windows targeting belongs here.
This is the third generic module that will hold controllers that are specific to web enviroment. WebListEditors, WebPropertyEdtiors, WebApplication derived classes and anything is web targeting belongs here.
BasePermissions and Security engines for different artifacts should go here
Using this module you can save your model at your database instead of disk. Also it generates the UI required so you can modify your Model.xafml,User.xafml, or assign User.xafml to any user, or combine models with each other. Its a very flexible module that provides a distinguish between Model.xafml and User.xafml. If you change the model using the current model editor at runtime, only your user model is going to be modified now you can change your model.xafml for all users since its store at the database with ease making your product support less painful cause the model “work” is now centralized.
Only a Model editor propertyEditor is defined here for the momemt
Only XpoWebModelDictionaryDifferenceStore class that is responsible for enable any further element / debugging of the of the DictionaryDifferenceStore for web
Important: This is the 1st alpha version so code will be subject to many changes. Wiki’s are going to be written in the next few weeks and many blog post by me demonstrating the use of controllers and modules released
bellow you can see a code analysis using NDepend (read more )
An open source project hosting the above modules can be found at