Great news! XAF’s most recent maintenance release (v18.1.5) includes new features and updated learning materials (and of course, a few bug fixes).
New features
WinForms UI: Office Module performance enhancements
In our MainDemo app, detail forms with a RichTextPropertyEditor will now load in 0.6 sec in v18.1.5 as opposed to 2.3 sec in v18.1.4. Kudos to our WinForms team - they optimized the way in which menus are generated based on feedback they received from us. Non-XAF forms and controls with complex menu structures will benefit as well. For the best performance, build your application assemblies under x86 and process them with NGEN as recommended in the following articles: A2670 | T1489 | WinForms Tips & Tricks - Boosting Application Performance.
As you may already know, our WinForms HTML Property Editor Module is now in maintenance mode. We recommend that you use our RichTextPropertyEditor instead of HtmlPropertyEditor for standard usage scenarios (for instance, when you wish to create email templates).
ASP.NET UI: IFRAME support
You can now embed an XAF ASP.NET WebForms app into IFRAME. This new feature will help integrate CRUD and other common XAF functionality within non-XAF Web portals. For more information, review the following support article: Q443184.
ASP.NET UI: ASPxGridLookupPropertyEditor is out of CTP
Main functions are ready and both internal and public preview tests did not reveal any show stoppers. We do not expect breaking changes either. We recommend that you use this new editor for reference properties instead of ASPxLookupPropertyEditor.
Mobile UI: Enhanced masked input
Mobile numeric, text and date editors now support formatting and thus help users avoid input errors. The familiar EditMask and DisplayFormat attributes are now used instead of the deprecated attributes with the "Mobile" suffix. You should not notice any problems, though - thanks to our IModelXmlConverter mechanism. For more information, review the following support article: T459804.
Updated documentation
IObjectSpace.CreateObjectSpace(Type) is better than IObjectSpace.CreateObjectSpace()
A best practice is to use the CreateObjectSpace(Type) method overload when your application registers multiple Object Space Providers (for instance, when it uses non-persistent objects (NonPersistentObjectSpaceProvider) and/or connects to numerous databases). This recommendation helps avoid situations wherein XPObjectSpace unexpectedly appears instead of NonPersistentObjectSpace and vice versa.
Module Designer vs Application Designer
Settings for required modules (e.g., ReportsModuleV2.ReportDataType) are not editable in XAF's Module Designer. The latter simply registers required module types without instantiation. To modify these settings, use the Application Designer.
New Troubleshooting Guide
Recently, several XAFers accidentally disabled a very important Visual Studio extension (DevExpress.ExpressApp.Design.CorePackage). As a result, they lost the Model Editor's functionality - XAFML files opened as plain text.
The new Designers Troubleshooting Guide helps isolate this and other common problems with our designers and Visual Studio itself.
The following highly rated help topics will also be of use when troubleshooting issues:
- Deployment Troubleshooting;
- Debugging, Testing and Error Handling;
- How can I debug DevExpress .NET source code using PDB files;
- How to measure and improve the application's performance;
- Frequently Asked Questions;
- How do I ask a good question? (StackOverflow.com);
- How to create a Minimal, Complete, and Verifiable example (StackOverflow.com);
Interesting Support Center tickets
- Three long-time customers shared their general XAF experience and XPO performance best practices (T653665);
- One of our customers shared his custom Windows PowerShell command (cmdlet) and scripts. His cmdlet uses XAF's Object Space and facilitates long-running administrative tasks (Q476407).
- Bing may unexpectedly translate texts with special characters, e.g. edit masks or display formats. Please be careful when you accept suggested translations in the DevExpress Localization Service (T643572).
- We described how to calculate running totals for ListView columns using a custom criteria function and PersistentAliasAttribute (T658623);
- We demonstrated how to customize Mobile UI appearance using custom CSS and the MobileWindowTemplate’s RegisterClientScriptXXX methods (T657883).
- We discussed how to control the visibility of dynamically generated custom fields in Views (T654705).
Find more interesting customer questions and product enhancements for your favorite products in the DevExpress Support Center (expand the "Frameworks (XAF & XPO)" group on the right) and What's New documentation (see resolved issues).
We need your feedback!
What do you think about these new features and the new "Interesting Support Center tickets" rubric in particular? Drop us a line below, thanks.