Search This Blog

Monday, January 29, 2018

XAF Security System enhancements in v17.2.5

After updating your XAF project to 17.2.5, you may notice a new option in the Application Designer:

The new SecurityStrategy.RolesMergingMode property specifies how the Security System determines if a user can perform a specific operation in case this user has multiple roles with different permission sets. The available modes are listed in the RolesMergingMode enumeration.

Friday, December 29, 2017

How to drag & drop file attachments from Outlook messages into ListView or DetailView with FileData objects

I would like to promote a KB article, which may be interesting for users of our File Attachments module and Microsoft Outlook, because we introduced a few changes to XAF codebase (v17.2.5+) to make their integration simpler for the following customer's scenario (attaching files directly from Outlook messages):

>>I am using the FileAttachmentBase to add files to a class in my project. Drag/Drop works great if I want to add a file from Windows Explorer. I want to be able to drag an attachment from Outlook and drop it into my application in the same way.



SQL Server-related methods of ModuleUpdater and pooled database connections


Before the end of this year, I wanted to inform you of some "home work" done by us to improve your XAF development experience with the ModuleUpdater API:


Friday, December 22, 2017

How to diagnose effective access rights for a specific user or get full information about inner security permissions calculations


Security permissions calculation is quite a complex process, and sometimes it is difficult to diagnose why access to a certain object and its members is allowed or denied. It is more common for application administrators or regular XAF developers who may not want to study documentation guides or be able to debug the XAF source code as per How can I debug DevExpress .NET source code using PDB files or using other approaches. So, in addition to documenting security rules, we are researching the usefulness of a tool that would show how effective permissions are calculated for each user in the UI, very similar to our Diagnostic Action. This may be helpful even to us, to reduce support time spent on diagnosing related client problems.

Learn more about a possible solution (a diagnostic tool) from the KB article below and let us know what you think:






As for other wish list and scenarios, you can help us by filling out the following survey, if you haven’t done so already:

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.

FreeImages.com/Gordon Fortune