Search This Blog

Friday, January 25, 2013

Meet the new XPO OData Service project template wizard!

Our XPO guys never stop improving their product according to customers requests (e.g., check out this Support Center thread as it led to this good news).


To help you get started with the XPO OData Service, we have implemented a new wizard that creates a service and does all the plumbing for you.
Here is a short video that demonstrates its capabilities:

View on »

I hope you will like this improvement as this wizard will surely save your time. If you do not yet know what to do with this OData service, check out the links below:-)

See Also:
How to deploy the OData security service in the Cloud for further use by a mobile DXTREME client
How to configure ODataService for a DXTREME HTML5/JS application
Documentation - Describe XPO OData service

Thursday, January 24, 2013

Miscellaneous improvements to our Workflow module

Today's news is also about our Workflow module (be sure to check out this link to get started with this wonderful module).


- Refactored the workflow designer to reduce memory consumption;
- Added an option to do not reuse persisted workflows option (CanCompileForDesigner in IWorkflowDefinition);
- Added the StartWorkflowSuspended/Unsuspend feature (WorkflowHost);
- Added support for WF 4.5 features in the rehosted workflow designer (refer to

Workflow - Ensure compatibility with WF 4.5 features for the details).

We will detail these improvements in our documentation once 13.1 is out. Before that, we will probably create an example to demonstrate the second feature, which is quite important as it allows you to decrease memory usage by avoiding recompiling the dynamic assembly with persistent activities every time the workflow designer is opened. 

 I will keep you posted on this, as always.


Tuesday, January 22, 2013

Update on compatibility of our Workflow module with WF 4.5 features


We recently allocated a part of our resources on testing the Workflow module under .NET 4.5 and it all worked fine. The module itself does not even need to be recompiled under .NET 4.5 explicitly, because the new runtime will be used automatically if your application is targeted to .NET 4.5. As for the new features introduced in WF 4.5, you can see what is available in the rehosted workflow designer from this article: Support for New Workflow Foundation 4.5 Features in the Rehosted Workflow Designer. We regret to inform you that Microsoft made not all the aforementioned features available in the workflow rehosted designer, and I am afraid we cannot do much on our side to overcome this. Feel free to contact Microsoft directly via their support forums if you require availability of the remaining features in the rehosted designer.

Thursday, January 17, 2013

A trick for the XAF application server

As you probably know, the Application Server creates its own GUI-less XafApplication descendant - ServerApplication. When working with Application Server, you should be aware of a very important requirement desribed at

The ServerApplication.Modules collection. It should contain modules that are directly referenced by your client application. To see which client application modules are required, refer to the InitializeComponent method code in your WinApplication/WebApplication descendant. There is no need to add modules that are indirectly added to your client application (i.e., modules that are added to your custom modules).

In this blog post, I would like you to show you how to comply with this requirement without having to add extensive references to all the extra modules used in your client apps, and having to write a great number of lines like: serverApplication.Modules.Add(new DevExpress.ExpressApp.XXX.XXXModule());

My goal is to save you time in adding these references (the "Add Reference | .NET"  dialog has always been and still is one of the weakest places in Visual Studio prior to VS2012) and writing unfamiliar code in Visual Studio. Technically, I want to achieve this by cutting this initialization code to just a few lines in the application server project:

// Add your client application's modules to the ServerApplication.Modules collection here. 
List<ModuleBase> list = new List<ModuleBase>(new Solution2.Win.Solution2WindowsFormsApplication().Modules);
foreach(ModuleBase item in list) {
    if(!serverApplication.Modules.Any<ModuleBase>(m => m.GetType() == item.GetType())) {

The trick is to just reference two client apps assemblies (YourSolutionName.Win and YourSolutionName.Web) and then instantiate these the XafApplication descendants to grab their Modules list.

Of course, it can be achieved more easily, and we have the corresponding request in our TODO list: Feel free to share your ideas and suggestions on how to make this more usable for developers.

Thursday, January 10, 2013

Would you love to type TargetViewId="View1, View2") for a ViewController or Action?

Just trying to re-evaluate the current solution our framework provides for the following task:

Core - Make it possible to activate the same ViewController or Action for multiple Views

and of course think of the developer's usability after a kind ping from the old XAF customer (thanks, Willem!).

Your feedback is highly appreciated!