Search This Blog

Thursday, October 31, 2013

XPObjectSpace performance improvements (when processing large amounts of data)

The XPObjectSpace class was improved to speed up CRUD manipulations with large amount of data, e.g. for data import scenarios. In particular, creation and update operations are now ~ 50% faster than before (confirmed by 5 runs on 10K typical records from our FeatureCenter and MainDemo apps).

*Exact percentage in your end application may vary depending on the complexity of a business model, the number of processed records and other factors.

This feature request was suggested by several customers (1, 2) and I hope you will find this helpful as well. For instance, it may be helpful for data import, especially if a lot of records are process.

Tuesday, October 22, 2013

Русскоязычное сообщество DevExpress XAF разработчиков

На днях добрые люди подкинули ссылку на недавно самоорганизовавшееся сообщество, где собираются русскоязычные XAF пользователи и делятся своим опытом. В частности там есть представители наших давних заказчиков и партнеров из DevPark и Galaktika.  Поэтому уверен, что всем, кто использует DevExpress XAF и еще при этом говорит и понимает по-русски, будет интересно вступить в эту группу:!forum/russian-devexpress-xaf

чтобы, так сказать, других посмотреть и себя показать: обсудить что-то, поделиться накопленным опытом, спросить совета и др.

Надеюсь, что достаточно много наших узнает об этой группе и всем будет полезно и интересно:

Пользуясь случаем, хочу напомнить о нашем корпоративном блоге на Хабре, так что там тоже можно общаться, узнавать новости о наших продуктах на русском, а также задавать вопросы и получать ответы от сотрудников DevExpress.

Кстати, получить больше информации о других сообществах вокруг DevExpress XAF можно тут:


Thursday, October 17, 2013

Guess the feature by screenshots;-)

This is something we are currently working on for the next major release (check out this blog to learn more). I hope that this one is quite easy to guess as this feature should address one the popular requests from our customers.

I am looking forward to your answers in comments!;-)

Wednesday, October 16, 2013

A custom PropertyEditor for syntax highlighting

Today I saw a similar request from a customer, so I wanted to take this moment to remind the community about a custom PropertyEditor that resides in our Feature Center demo (there you can find technical how-to examples for countless scenarios):

Technically, this CSCodePropertyEditor is a descendant of the built-in WinPropertyEditor class, which uses our RichEditControl and its services to nicely display a text saved within a System.String property of a persistent class. I hope this small customization example will once again help you see that you can implement any custom UI in your XAF app. Want to learn more on this, check out the eXpressApp Framework > Concepts > UI Construction and related help articles or contact support. Thanks!

Thursday, October 10, 2013

Update to the E2106 example about highlighting the focused editor in DetailView

Today I have refactored and also slightly changed the Web part of the E2106 example + updated the whole description to make it easier for XAF users to understand this solution and implement it in their projects.

Tuesday, October 8, 2013

Managing data from the associated details collection via a checked list box control

Here is one more contribution from the XAF community - a new Property Editor developed by the international company Galaktika as part of their XAFARI business platform (learn more about these guys in my introductory post). This editor can replace the built-in ListPropertyEditor in certain business scenarios, especially if you want to save more space on your data form.

Here are some screenshots for you to better understand the functionality I am talking about:

Configuration in the Model Editor

Result in the WinForms UI

You can download this reusable solution from (13.1.7 build is available!)

Friday, October 4, 2013

Update to a custom lookup editor for working with referenced properties via a simple drop down list

I have just updated one of my Code Examples that shows how to work with referenced properties via a simple drop down list instead of the standard LookupPropertyEditor. Technically, I built a custom WinForms Property Editor that is based on the LookUpEdit control from our XtraEditors library. This is what it looks like:

Today in addition to some minor refactorings and bug fixes, I added a button that enables you to open the associated record directly from the editor + localizable tooltips for other editor buttons.

BTW, I think that a similar feature would be helpful for the built-in LookupPropertyEditor, since it is more visible to end-users than a magic Control+Shift+mouse click shortcut. Plus, a similar feature already exists in the Web version.

Feel free to download this update, report bugs (if any) and let me know your other thoughts on this.

Thursday, October 3, 2013

Incorrect way of instantiating Controllers in your custom code

I am posting this to help you avoid the subject and strange side effects with standard and custom Controllers in your applications while writing custom code. I am inspired by a customer who had a strange issue with non-working validation logic triggered by the the OK Action in a custom dialog window. The funny thing is that it all worked when the same dialog window was invoked via the standard PopupWindowShowAction instead of writing custom and configuring ShowViewParameters manually. Fortunately, I  knew what the problem is even without looking at the dialog window invocation code, which was really incorrect because of the following line:

DialogController dc = new DialogController();

It appears to be fully correct at first glance, but this is wrong, because by instantiating a Controller class this way a user left it unaware of the Application Model and other important XAF environment, which is responsible for many things like localization, validation, etc. As a result, no validation settings for the OK Action were taken into account...

The fix is also very easy: 

DialogController dc = this.Application.CreateController<DialogController>();

Tuesday, October 1, 2013

How to generate a sequential and user-friendly identifier field within a business class

I have just created a new Code Example that demonstrates a very simple solution for the subject:

"Orders, articles or other business entities often require that you have user-friendly Id or Code fields that end-users can memorize and use during phone conversations. They are usually sequential, but some gaps can be allowed as well (e.g., when an order is deleted). Refer to this StackOverFlow thread for more information on this common scenario, and a possible implementation."

Check out for a step-by-step instruction on how to implement this. 

It is based on the DistributedIdGeneratorHelper class from the DevExpress.Persistent.BaseImpl library (I know that many of you have already been using it for years).
I hope you will like this simple, but quite powerful solution, which can be considered as an alternative to the How to generate and assign a sequential number for a business object within a database transaction, while being a part of a successful saving process (XAF) example.