XAF - Enhancements to Core and other modules (Coming soon in v15.2)

XAF Team Blog
27 November 2015
Over the last few days, I've described some of the new features we've introduced into the eXpressApp Framework v15.2. In this post, I'll describe enhancements we've made to XAF's core and other modules.
Reset View Settings
The Reset View Settings Action re-opens the current View and resets all user customizations made to the View's model. This Action is disabled (grayed out) if there are unsaved changes.



Detail Form Layout Customization in Code

With this release, you can customize the Detail View's default layout in your Data Model code using the DetailViewLayout attribute. Please refer to the following example code/screenshot below:

public class Contact {
    [Browsable(false)]
    public int ID { get; private set; }
    [DetailViewLayoutAttribute(LayoutColumnPosition.Left)]
    public string FirstName { get; set; }
    [DetailViewLayoutAttribute(LayoutColumnPosition.Right)]
    public string LastName { get; set; }
    [DetailViewLayoutAttribute("FullName", 0)]
    public string FullName {
        get { return FirstName + " " + LastName; }
    }
    [DetailViewLayoutAttribute(LayoutColumnPosition.Left)]
    public string Email { get; set; }
    [DetailViewLayoutAttribute(LayoutColumnPosition.Right)]
    public virtual Contact Manager { get; set; }
    [DetailViewLayoutAttribute(LayoutColumnPosition.Left)]
    public DateTime? Birthday { get; set; }
    [FieldSize(FieldSizeAttribute.Unlimited)]
    [DetailViewLayoutAttribute("NotesAndRemarks", LayoutGroupType.TabbedGroup, 100)]
    public string Notes { get; set; }
    [FieldSize(FieldSizeAttribute.Unlimited)]
    [DetailViewLayoutAttribute("NotesAndRemarks", LayoutGroupType.TabbedGroup, 100)]
    public string Remarks { get; set; }
}



Non-Persistent Objects Enhancements

In this release we have extended support for usage scenarios when using non-persistent objects first introduced in v15.1:

  • The New, Delete and Save Actions are available for non-persistent objects. Modified objects are accessible using the NonPersistentObjectSpace.ModifiedObjects property.
  • The INotifyPropertyChanged.PropertyChanged event is now triggered for non-persistent objects.
  • The non-persistent Object Space is now accessible for objects that support IObjectSpaceLink.

Security System Enhancements

We continue making the new security system more capable with the following updates:

  • Security permissions are immediately refreshed once the administrator applies changes. You are no longer required to log off all affected users to refresh permissions (learn more...).
  • If the administrator grants certain permissions to a reference or collection property that participates in an association (one-to-many or many-to-many), the same permissions are automatically granted for a property at the other end of this association (learn more...).
  • The Data View mode in now supported.
  • Upcasting is now supported in List View columns.
You should expect more news in this regard after the official release.



General usability and API improvements:

The following is a list of minor features that should make using XAF a little easier. While you can see the full list of these smaller enhancements in our What's New docs, I would like to highlight the following items:

  • S38140 - Core - Introduce IObjectSpace.Evaluate method that will evaluate a criteria expression against both EF and XPO objects (including Domain Components)
  • Q483608 - Core - Make it easier to obtain IQueryable<T> collection through IObjectSpace for LINQ
  • S171061 - Core - Provide an option to avoid saving a master record immediately when a new non-aggregated child object is created in a nested List View
  • S170756 - Core - Provide Refresh method overloads allowing the refresh of the underlying data source
  • T204296 - EF.Usability - Support complex types that are not registered in DbContext and have no key property
  • T177760 - EFDataView - Support common criteria function operators
  • S172038 - Core - Provide a simplified database compatibility check mode; one that relies on the database schema and ignores module assembly versions
  • T312781 - ImagePropertyEditor - Support images declared as reference properties instead of byte array
  • T303205 - Workflow - Add an option to repeat the workflow multiple times while the target object fits criteria

=====================================

I will post additional content on some of these items (like S172038) separatly, once we release v15.2. Please stay tuned and let us know what you think of these new features.

5 comment(s)
Chris Royle (LOB)
Chris Royle (LOB)

The "Detail Form Layout Customization in Code" looks like a good addition - is the form displayed fully generated from the code attributes ?

29 November, 2015
Dennis (DevExpress)
Dennis (DevExpress)

@Chris: Thanks for your interest. Yes, it is.

29 November, 2015
M. V.
M. V.

Thanks Dennis and Devex team, all of these enhancements looks promising. Specifically the layout design in code. Once the model file is generated (or updated) what about the modifications made on the model file ?

Kind regards,

Marcelo.

1 December, 2015
Dennis (DevExpress)
Dennis (DevExpress)

@M.V.:
Thanks for your comments!

>>Once the model file is generated (or updated) what about the modifications made on the model file ?
<<

Would you please clarify exactly which "model" file you meant? If possible, please submit a ticket in the Support Center and describe your scenario in detail. Thanks.

2 December, 2015
Krzysztof Krzysztof (LOB)
Krzysztof Krzysztof (LOB)

A really nice-to-have would be a Text Position (Left, Right, Top, Bottom) setting entry in DetailViewLayoutAttribute.

26 February, 2016

Please login or register to post comments.