Friday, October 30, 2009

In this post I am going to provide some why’s on DevExpress.ExpressApp.BaseImpl assembly.

Why it is not signed?

It is not strongly typed signed cause no module is referencing it. By doing so DevExpress encourages users to modify that assembly up to their needs. BaseImpl is only referenced at your front end. Most of Xafers i know have their own version of baseImpl .

If you have your own version of baseimpl development of your domain classes would be much easier eg.instead of writing code to add a new property to a user though a controller , you could just describe/add that property to user class.

Why persistent classes are there

Xaf has been design to provide a an IOC approach to us. By that I mean that Xaf modules not use or know anything about persistent classes but only for interfaces that are hosted at DevExpress.ExpressApp.Base assembly which is signed and Dv discourages us from modifying.

So when you design a reusable module you should work with interfaces not with real objects

Drawbacks

The only drawback i found is that you cannot use linq to xpo cause you do not know the types only interfaces , maybe dx will provide a smarter way in doing so when they release their DC components

The following should also be true your BaseImpl assembly can reference your modules but your modules as I said cannot reference the Baseimpl.

After realizing what I said above the most obvious question came into my mind

WHY OTHER ORM NOT SUPPORTED?

modules know only interfaces and core can also be configured to use your own datalayer, objectspaceprovider so maybe some people out there have already manage to do so. Sounds achievable!!!

Thursday, October 22, 2009

Tired of making all DetailView Layout and ListView Layout in the ModelEditor instead at Runtime where you immediatly see the results?

The Solution is eXpands ModelDiffs Module.

Setup:

Create a new User and give it a name like “ModelAdmin”. Next Create a new Role “ModelAdmin Role” – and create a new Model Combine Permission. Set the Modifier to “Allow”, and set the Difference Name to the Name of your Application Model:

Now assign the created User to this new Role. Last step is to open the User Difference Model, and set the Model to “Non Persistent” since we dont want to save User changes here. Thats it.

Now you can start your Application, make changes in Detail- and ListViews, and when you exit the Application all changes are merged to the Model which you have defined in your Model Combine Permission!

Thursday, October 15, 2009

Dynamic Types is one of the most wanted feature in any framework. Luckily me I met Emilio DabDoub of Signia software and one of the Coordinators of XERP project and he hire me to port an old code that he had that could provide that feature and much more into xaf. Also he agreed to publish that module into eXpand.

Wednesday, October 14, 2009

Xaf provides peristent of your web listview setting to cookies using Options | SaveListViewStateInCookies attribute in the Application Model. But due to the limit in request buffer size of IIS your web browser will receive a HTTP 400 Bad Request (The data is invalid) when you overcome it.

DevExrpess suggest you either persist individual listviews in order you never overcome that limit or as Microsoft also suggested here to add a registry value to raize that limit.

SOLUTION

ModelDifference module provides the Options | SaveListViewStateInDataStore that can persist your listview settings to your user model and thus to the database and since your model is persistent also at database

Monday, October 12, 2009

When using ORM tools like XPO and even more when using application frameworks like Xaf since they create the database for you you often change your objects so much that you have to drop the database in order your ORM to create it again, in order to avoid any kind of conflict.

Tired of doing that I wrote a small DxCore addin and added to expand addins. To use it you have to configure it by telling which connection string will use from your application configuration file

in the above code i have decorated EmplyoeeContract with ProvidedAssociation and that is the only needed to create an collection of Employess at EmplyoeeContract class for use in both runtime and designtime.

Monday, October 5, 2009

The bad first, until we manage to have full continuous integration in order eXpand new features to be immediately available (nightly builds) we are not going to make any more releases. eXpand release policy will be the same as DevExpress that is we make a release exactly after DevExpress

And now for the good. eXpand will provide build scripts that you can use them to compile the source code. The trunk of source code will contain the most current work.

Welcome to my Blog

My name is Apostolis Bekiaris and I am working for DevExpress as a technical evangelist for the frameworks team, .Net is my passion and at this blog you will find a lot of my work using DevExpress Xaf framework and many others. If you want to contact me you can use the link bellow