Search This Blog

Loading...

Friday, July 31, 2015

Refreshing UI according to the security permission changes done through the application or directly in the database

I want to repost my recent answer from this Support Center thread to collect more feedback from users:
To ensure better performance, security permissions are cached on the first request by default, so that subsequent requests for object access rights are taken from the internal cache. We have received several customer requests to modify this behavior so that the most recent permission info was considered without the cache. In those scenarios, permission data was changed externally by an application administrator who wanted it to be applied immediately without forcing the user to restart his or her app.

To enable the new mode, set the static SecuritySystem.CanRefreshPermissions property to True before a user is logged in, e.g. within the static constructor of your platform-agnostic module (YourSolutionName.Module) or within the Main function of the WinForms app or from the Application_Start method of your ASP.NET app respectively:

Thursday, July 23, 2015

Making the AuditTrail functionality operate correctly with several XPObjectSpaceProviders when storing data in separate databases (15.1.6)

I wanted to inform the community of a solution we have just finished testing for the next XAF version in response to the following customer's business scenario:

"i followed this instruction to work with two databases in one application. so far so good. 
i also managed to include the security module and get it working, but now i don't know how to use the "audit trail" module! it doesn't seem to matter in which project i include it, but it will not save anything to the database."


As you probably know, XAF supports connecting to several databases and even using both Entity Framework (EF) and eXpress Persistent Objects (XPO) at the same time (examples: onetwothree), although it is not the primary scenario, to be honest. 

In short, if you were in need of such a configuration and wanted to have AuditTrail capabilities, it would "just work" starting with v15.1.6. If you feel confident to check technical details on this, see my description in the T263982 - AuditTrail - Ensure support for scenarios with several XPObjectSpaceProviders ticket.
By providing support for this module, we continue working in the direction we took in the past, which I also discussed in the past blog. As always, our team is looking forward to hearing your feedback in this regard.

Usability improvements to the Localization Tool in the Model Editor (v15.1.6)

Take special note of a small improvement we have added into the next minor update (15.1.6) based on the real customer story, which we greatly appreciate. So, if you are developing multilingual apps and have to localize them using the Localization Tool, check out the 
T266560: Localization Tool - Usability improvements thread in the Support Center for details. In short:


We have extended the Export command with a new item allowing you to export all the records. This is now the default choice, in addition to the other option of exporting the currently selected record only. 

We also provided a separate Save button in this dialog to make saving translated items more atomic.



Do not hesitate to address such things to our team, because this will make your everyday work easier. Adding a keyboard shortcut, changing the default item choice and other minor things are often not difficult to implement (e.g., this one took about 2 hours with tests), but they will greatly improve your overall experience with the product, which is also true for other XAF peers.

Happy XAFing and thanks for all your feedback!

Monday, July 20, 2015

What's New in XAF 15.1 Documentation

As you probably know, in addition to the new great features the version 15.1 introduced, there are also various improvements to the learning materials that will allow you get the most of DevExpress products and become a better developer. As always, the full list of What's New In Help for all products is waiting you here.

The XAF documentation changes we are the most interested in are listed HERE (I marked my favorite help topics in bold):

Hopefully, even people familiar with the framework will find something helpful here.

A third-party Twitter Bootstrap Add-on for XAF Web UI

I wanted to share a recent announcement of the open source project from our long-time customers from Kazakhstan:


Talgat Shalabayev, the tech lead of the team providing this custom XAF module said in our LinkedIn group (if you are not yet a member of this forum/group where XAF users share their experience, be sure to join it as interesting things are happening there recently):

"I am glad to inform that we have released XAF Bootstrap addon. It implements Twitter Bootstrap functionality for Web module. You can test and use it now. Project is licensed under open source.
Addon is used in a several our projects in production, but it was tested only with our production needs, not all XAF configuration options, and released "as is". For example, it works for now only with XPO (EF not supports for now), .Net 4.5 and there may be more configuration-specific issues. We plan gradually increase supported features, but we hope that interested community members will join to testing or developing this addon - it will speed up addon's way to production ready state."

You can also see the video guys posted at https://www.youtube.com/watch?v=mIZcLswlswM for more understanding of what this module provides and how to add it into an existing XAF Web project.

My own experience

I decided to test this module with our XCRM demo and first downloaded it from GitHub (they now provide compatible versions for both v14.2 and v15.1 of DevExpress assemblies). 
Since the module currently supports only XPO and .NET 4.5, the demo app required some adjustments to be usable with this module (because it is EF-based). Once I fixed this (by registering several ObjectSpaceProviders for XPO and EF within a single app and modifying the ModuleUpdater class code accordingly), the resultant Web app looked quite well (except for some visual glitches in the menu and other side effects):