Search This Blog

Thursday, December 14, 2017

XAF Customer Satisfaction and Product Usage Survey - YOUR FEEDBACK IS NEEDED!!!

Your feedback will help us ensure that the tools we deliver to market meet your expectations better. Thanks for your help in advance!

(special thanks to a small group of users who has already helped to test and refine these questions)

Friday, December 8, 2017

What's New in XAF Help 17.2

In this post, I would like to provide an overview of the most important additions to XAF documentation introduced in the 17.2 release.

Wednesday, December 6, 2017

Accessing real persistent objects through the SelectedObjects and CurrentObject properties of View and Action's event arguments when DataAccessMode = DataView or InstantFeedback

The View.CurrentObject and View.SelectedObjects properties return XafDataViewRecord objects instead of original business objects when the View operates in DataView mode (and XafInstantFeedbackRecord - in InstantFeedback mode). To get a real object, you can use the View.ObjectSpace.GetObject(obj) method.

I just wanted to remind you of this specificity and detail currently recommended solution strategies:

According to our current figures for support traffic in this regard (for one year of the InstantFeedback mode existence and more than two years of the DataView mode existence), this is not a big deal for our users - I located less than seven support requests in total. Probably, this is due to the fact that our learning materials already describe this or due to the fact that the DataView and InstantFeedback modes are used rarely, only when ListView contains a lot of records. Here I must also emphasize that this behavior exists in the first place because returning real objects by default may prevent you from getting all the benefits of these data access modes... So, we implemented the current design on purpose.

Should you have difficulties with these features and aforementioned solutions or can foresee better options, my team and I are happy to listen. For instance, one of the alternative solutions I saw in a couple places was the implementation of the auxiliary GetRealSelectedObjects/GetRealCurrentObject methods. Fortune

How to use the ASPxSpreadsheet control as a property editor in an XAF ASP.NET WebForms application

If you want to display a business object that has a byte array property as an Excel document allowing users to modify the content and save it to the database, ASPxSpreadsheet is an appropriate component for this task. Our new example shows how to implement an XAF Web Property Editor based on this control:

If this is something you have already implemented or planned, we would greatly appreciate it if you describe your use-case scenarios or exactly how and for what your end-users are supposed to use spreadsheet control in your app. If possible, attach screenshots, test samples and database to clarify expected results and user steps within the application UI as well as already implemented solutions for this task. With that, we will be able to better understand your requirements and provide more specific solutions or consider improvements to our products for the future. Thanks in advance. Young

Tuesday, December 5, 2017

An overview of approaches to implementing a user-friendly sequential number for use with an XPO business class

Orders, Invoices, Articles or other similar business entities often require an auto-filled Number or Code field that end-users can memorize.

We have prepared a KB article listing possible approaches to implementing an identifier field with sequential values: An overview of approaches to implementing a user-friendly sequential number for use with an XPO business class. In addition to the known E4904 and E2829 approaches, the article suggests a new database-level solution.

Your feedback is needed!
We would greatly appreciate it if you share your feedback here in comments or rather participate in the short survey (~3 min) below (or in a separate window):

Friday, December 1, 2017

Capturing a user's signature in an XAF mobile application - YOUR FEEDBACK IS NEEDED! DwyerWe are in the process of creating learning materials for this task, but polishing and publishing them online for everyone will require additional time. If you are ready to test our solution for your own app, I can provide you with draft instructions and test sample in return. 
It will show how to show a custom control where a user can draw his signature and save the result into an image property within your business class. 

Here is what it looks like in action:

For testing you will need XAF v17.2.3+, because there we supported mobile custom modules: Task-Based Help > How to: Add an XAF Mobile Custom Module

If you are interested in this testing, email me at

Monday, November 27, 2017

Welcome the DataStoreCreated event in the ConnectionDataStoreProvider and ConnectionStringDataStoreProvider classes

This is rather a minor improvement, but I bet it will save code lines for some advanced XAFers who touch the internals of the XPO data layer created by XAF for various low-level database-specific customization like setting connection timeouts, changing default schemas, enabling and customizing caching, service end-points, etc. Check out this updated article for some example code showing the new approach in action.
The DataStoreCreated  event is available in XAF v17.2+. Its event arguments (DataStoreCreatedEventArgs) expose the DataStore and Destination parameters that provide access to the current data store and its type (SchemaChecking,  Updating or Working).

Frankly speaking, this is quite low-level and rarely needed stuff, so we have not yet have it covered in the online docs, only in KBs. So, please refer to my 
How to customize the underlying database provider options and data access behavior in XAF article to learn more about it. Should you have any questions or additional usability suggestions, please let me know.

FreeImages/Chett Cole