Search This Blog

Friday, July 21, 2017

Tracing - How to exclude loaded assemblies from the eXpressAppFramework.log file

Just a small tip for XAF developers who have never needed or liked this large "Loaded assemblies" section written into the eXpressAppFramework.log file at startup or every time an exception is thrown:



Friday, July 14, 2017

Controller creation performance optimization v17.2 Preview - YOUR FEEDBACK IS NEEDED!

Starting with version 17.2, we've further optimized the process of creating Controllers that should positively affect forms loading performance and thus overall end user experience, especially in very complex detail forms.  In addition to List Property Editors (learn more about v17.1 improvements in this regard), Detail, Object and Lookup Property Editors, DashboardViewItem and popup windows created in a special way were supported. We are publishing this KB article prior to the 17.2 release to collect early user feedback and improve the overall stability:





If you are an active v17.1 subscriber and want to test this feature with your real world applications on a virtual machine (or another suitable test environment) prior to the official release, please leave a comment to this KB article or rather create a separate private ticket, so that we can verify your account and provide you with a v17.2 preview installation privately.

We would appreciate your thoughts and feedback once you've had the opportunity to try this new feature in your upgraded v17.2 project. Please report any issues and suggestions in our Support Center. Thanks for your help in advance!






How To: Use Google, Facebook and Microsoft accounts in ASP.NET XAF applications (OAuth2 authentication)


XAF security team has prepared a small demo illustrating the use of  OWIN OAuth 2.0 Authorization Server. Users can log in with their Google, Facebook or Microsoft accounts.


You can download the demo source code from DevExpress Support Center:
https://www.devexpress.com/Support/Center/Example/Details/T535280/

Technical details and instructions on how to use this approach in your existing applications are available in the example description in Support Center.


Your feedback is welcome!
We would greatly appreciate it if you try this example and share your feedback here in comments.

Wednesday, July 12, 2017

What happens when the current user is deleted (by himself/herself or another user) while still using the application?

Deletion of the user who is actively using the app is NOT handled by our security module at the moment (e.g., NullReferenceException and other errors may occur). That is mainly because this operation is very rare, and so far we have not received real-life scenarios from our users where this could be useful. Moreover, deleting by accident is already prevented by showing a confirmation message by the standard DeleteObjectsViewController > DeleteAction.

Refer to this Support Center ticket for more considerations and possible custom solutions.


Your feedback is needed!
Even though we do not provide ready solutions for this specific scenario, we will be more than happy to learn more about your experience in this regard to consider improvements to our product for the future. If you needed to handle such scenarios on your own, please elaborate more on your real-life requirements and implemented solutions. Thanks in advance.


FreeImages.Com/Kirill Levin

Thursday, July 6, 2017

What's New in XAF Help 17.1.3 and 17.1.4

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


Monday, June 26, 2017

AuditTrail - How to show the change history for the current object in a separate form instead of a nested ListView

I wanted to draw your attention to the scenario and solution in our Support Center, which were found helpful by at least 4 other XAF customers using XPO for data access. As you know, by default, we offer our users a solution based on the nested ListView, which is automatically generated when you declare a collection property like this one:

    public XPCollection<AuditDataItemPersistent> AuditTrail {
        get {
            if(auditTrail == null) {
               auditTrail = AuditedObjectWeakReference.GetAuditTrail(Session, this);
            }
            return auditTrail;
        }
    }


The solution I am promoting allows you to keep the layout less complex and invoke this rarely used or quite advanced feature from a small PopupWindowShowAction showing a ListView:


It will be interesting to hear about your preferences in this regard. Please let me know in comments. Thanks!


Thursday, June 22, 2017

How to display another web site or custom HTML inside IFRAME embedded into an XAF View

I would like to share links to the solutions for ASP.NET WebForms apps allowing you to display arbitrary HTML content in XAF Views. For instance, one may want to use it to display HTML emails in a DetailView or load a complete third-party web site. Take special note that these custom solutions are NOT based on the built-in HTML Property Editor Module and its ASPxHtmlPropertyEditor that uses the DevExpress ASPxHtmlEditor control.

The T178588 ticket describes a very basic solution for displaying a static URL within a DetailView.
The T180499  ticket provides a more complex solution where HTML content is loaded dynamically from a business class property.



Both solutions are based on a very popular way to integrate custom controls in XAF - custom View Items. A custom ViewItem is often preferred over a custom PropertyEditor when you just need to display data without editing and other capabilities. Of course, you can choose from more integration options based on your exact business requirements: Concepts > UI Construction > Using a Custom Control that is not Integrated by Default.

It would be great to hear about whether you experienced similar scenarios and which solutions you are using for them in your Web app. Please let me know in comments to this post. Thanks.

P.S.
While we are at it, it is worth noting that we do not support displaying an XAF Web app inside an IFRAME element by default.