Quantcast
Channel: XAF Team Blog
Viewing all 148 articles
Browse latest View live

XAF - 10 New Help Articles on Lightweight Unit Tests and Azure DevOps Integration with EasyTest

$
0
0

I hope you’ll agree with me that this topic is extremely important to XAF's primary target audience - development teams creating complex enterprise apps.

To help reduce the time needed to write unit and functional tests with XAF, we have published 10+ NEW articles

I also want to point you to community content on this subject from Manuel Grundner (DevExpress MVP):

His personal blog contains other posts that address XAF best practices: https://blog.delegate.at/tags/XAF/.

Please Help Us Decide on Future Enhancements

We published these learning materials after comments to the recent roadmap survey and Support Center questions on unit & functional testing - thank you for your help! Additional enhancements are expected and will also be driven by user feedback.  

For unit testing, we are considering to add more learning materials and release all required assemblies with helper/mock classes (like TestDBTestTestDetailViewFactory, etc.). For functional testing, we are considering to improve our cross-platform EasyTest engine with new commands and features. For instance, you will be able to write Blazor functional tests for Chrome or FireFox web browsers in C# or VB.NET (examples).

Please let us know what you think of these new learning materials and planned enhancements in this regard. 


eXpressApp Framework - Early Access Preview (v20.1)

$
0
0

We are two months away from our next major update (v20.1). The purpose of this post is to share our progress and give XAF users the opportunity to test new functionality before we wrap up our current dev cycle.

XAF is part of the Universal Subscription. Active Universal subscribers are entitled to download and install this Early Access Preview. If you currently own an active DXperience Subscription, you can test the features described herein by logging onto the DevExpress Download Manager and installing this build in trial mode. Once you do, please take a moment to tell us whether these new features address your business needs. This will help us fine-tune our code before official launch. 

If you are using a trial version and are considering XAF for your next project, purchase a Universal subscription license for automatic access to this early access preview. If you are ready to upgrade to Universal from another subscription level, email us at clientservices@devexpress.com for preferential upgrade pricing.

WinForms: Asynchronous Data Loading in List Views

GridListEditor can load its data asynchronously in XPO-based apps when DataAccessMode = Client. The UI continues responding to user actions as data is being retrieved - you can cancel the load operation by closing the View or navigate to another View (in MDI mode).  For more information, please refer to this KB article.

WinForms: Enhanced Filter Editor

XAF Grid, Tree and Pivot List Editors, Report and Dashboard designers now use an enhanced Filter Editor with a new display style, functions and skin support by default. For more information, please refer to this KB Article. 

Blazor: XAF's Demo Update & Security System Tutorials

XAF's recent Blazor demo update included new themes, editors and many other enhancements. For those unfamiliar with XAF, but looking for security related functionality, our new Blazor Server demo and tutorial should be of help. This demo is based on XAF's user authentication and group authorization APIs for .NET Core and .NET Framework apps.

This Early Access Preview adds a new Solution Wizard template to help you create and test XAF Blazor projects. For more information on XAF's Blazor UI strategy, please refer to the 2020 roadmap.

Security System for Entity Framework Core (CTP)

Our goal is to help DevExpress and non-DevExpress customers benefit from XAF's Security System and Entity Framework Core. We added a secured Object Space for EF Core 3.1+ and demonstrated its use for basic CRUD operations in a Console Application. For more information on XAF's user authentication and group authorization APIs for .NET Core and .NET Framework apps, please refer to this GitHub repo.

Coming Soon: Model Editor for .NET Core and .NET Standard Projects

We hope to show a preview of the Model Editor for .NET Core 3+ and .NET Standard 2+ in the coming months. Technically, it is a standalone Model Editor tool that runs as a separate process and draws itself inside the Visual Studio frame. We took this approach so we could limit the impact of issues related to Component designer support in .NET Core projects and to have a full control over designer performance, stability, etc.

Breaking Changes

Before you migrate and test existing projects, we ask that you read XAF's breaking changes document.

Your Feedback Matters!

Your thoughts and perspectives are always appreciated. Please use the comments section below, create a new Support Center ticket or email xafteam@devexpress.com to engage us.
NOTE: Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds.

XAF - New Community Modules, Videos, Articles and Welcoming a New DevExpress MVP

$
0
0

Before I discuss community news, I want to send my best wishes to everyone. Here's hoping you are all safe and doing well.

New XAF Community Modules

  1. The eXpand Framework, managed by Apostolis Bekiaris, continues to release new platform-agnostic packages for XAF: http://xaf.expandframework.com/. Unlike the former monolithic version of eXpand, these are low-dependency packages. They also work with previous XAF versions, and include unit tests that run on Azure, wiki and demos. I want to promote the new NuGet package that contains a standalone version of XAF's Model Editor, designed to integrate with Visual Studio, Rider, Explorer - Xpand.XAF.ModelEditor.
  2. A new version of XAFARI that works with v19.2.6 is available. Galaktika Soft has been providing paid reusable XAF modules with documentation and support services for more than 6 years.
  3. In case you missed it, LlamaChant published a new free module: https://www.llamachant.com/single-documents/xaf-sample-security-preview-module/. I also want to remind you that Dave Hesketh and his colleagues have been providing XAF training, consulting and custom development services for a number of years. If you are not familiar with Dave and want to know about the tools he uses, his opinion on Blazor and also his advice for XAF beginners, visit http://xafersweekly.com/issues/17#start - this news feed is run by Jose Columbie, another XAF customer and consultant. To learn more about Dave's For a full list of third-parties providing similar services, visit this page.
  4. Manuel Grundner, a DevExpress MVP, worked on a new project and shared some of his results in his blog: Install a blazor app as globaltool and service. Earlier Manuel also created an XAF chat at https://gitter.im/XAF-Community/community. It's not very active lately, but I wanted to bring attention to it should XAFers want to discuss development questions.
  5. Christian Angermeier published a module on GitHub (MS-PL License): GDS.ExpressApp.UserFilter. This XAF module works for both Windows and Web platforms and helps create user-specific filters for ListViews (using the navigation and main menus).

Have you published XAF modules on GitHub or NuGet.org? Please let the XAF community know by posting a comment below. Thanks!

Welcome Joche Ojeda, a New DevExpress MVP

You might know Joche from his promotion efforts in the Spanish community - his XAF Facebook developer group (https://www.facebook.com/xafes/) has almost 400 members. Joche also does XAF/XPO consulting and custom development for companies in North and Latin America. He also published many free XAF/XPO/Xamarin modules, tutorials and training videos for the community. For instance, if you are new to XAF, you may want to check his webinar video:

My experience with the DevExpress Frameworks has grown as they have developed as products. I have been using XAF and XPO from the day they were released, which means I began with XPO way back in 2005. Before becoming an independent consultant, one of the last tasks I had as a lead developer in the company I was working for, was to evaluate frameworks to create a unified ERP. I was already using the DevExpress products and when XAF was released, I fell in love! I also continue to be a big XPO advocate and use it exclusively in all my projects, from ASP.Net MVC, ASP.Net Core to Xamarin and lately UNO platform.

For the full list of Joche's contributions and also full bio, please visit his web sites: https://www.jocheojeda.com | https://www.bitframeworks.com | https://www.xafers.trainingFor more XAF getting started tutorials and videos, refer to this DevExpress documentation page. 

eXpressApp Framework - Tips & Tricks (March 2020)

$
0
0

It’s a difficult time for many – our hats off to the brave men and women helping heal those affected by the virus. We’ll get through this together.

We are working hard to get our next major release out the door in the next 45 days. We expect to share more information on the release and what we expect to include shortly. In the meantime, here’s this month’s edition of XAF Tips & Tricks. We hope it’s of value…

Interesting Support Tickets

Usability & Performance Enhancements

Documentation Updates

Simplified Permission Checks in Custom Code

We extended the SecurityStrategy class with numerous methods you can use to check if a user can perform CRUD operations: IsGrantedExtensions. For supplementary information, please review the following article: How to: Display a List of Users Allowed to Read an Object.

List View Data Access Modes

We have redesigned online documentation for the following important concepts and added comparison tables. We also fully documented our new ServerView and InstantFeedbackView modes.

Please let us know if this information is of value or if you feel we need to add additional content to help you select the appropriate mode for specific usage scenarios.

Simplified Access to Detail View Editors

You can now avoid ViewItem.ControlCreated and other event handlers for many common usage scenarios - simply use our DetailView.CustomizeViewItemControl method inside the OnActivated method to customize View item controls. You no longer need to unsubscribe from events or check whether controls are created. Please let us know your thoughts.

using DevExpress.ExpressApp;
using DevExpress.ExpressApp.Editors;
using DevExpress.XtraEditors;
// ...
public class SetMinValueController : ObjectViewController<DetailView, DemoTask> {
    protected override void OnActivated() {
        base.OnActivated();
        View.CustomizeViewItemControl(this, SetMinValue);
    }
    private void SetMinValue(ViewItem viewItem) {
        SpinEdit spinEdit = viewItem.Control as SpinEdit;
        if (spinEdit != null) {
            spinEdit.Properties.MinValue = 0;
        }
    }
}​

Security System - New Code Example & KB Article

This GitHub repository demonstrates how to generate database updater code for security roles created via the application UI in a development environment. This KB article explains how to prevent deletion of the last active Administrator and the last administrative role with active users.

XAF - Blazor Demo Update with User Authentication and Permission Management

$
0
0

We updated our Blazor Demo to demonstrate newest enhancements. Please feel free to test the new features online and share your feedback.

Security System

In this iteration, we focused our efforts on user authentication and group authorization features in the UI. It is important for XAF developers and end-users to configure users, roles and data access rights at runtime. Our update includes the following:

  • Users can log in and log off;
  • Records inaccessible by permissions are hidden;
  • Record fields inaccessible by permissions are shown as 'Protected Content';
  • Users can edit permissions using appropriate editors.

Since Blazor Components do not have specialized editors for certain scenarios, we used the following temporary solutions:

  • Criteria properties use a multi-line text editor with syntax validation;
  • A combo box for Navigation Permissions shows a plain list instead of a hierarchy.

Miscellaneous Enhancements

  • Incremental filtering in lookup editors;
  • Clearer expand/collapse icons in the navigation menu;
  • The StaticImage view item;
  • Another dark Bootswatch theme is supported Superhero;
  • The following known issues are resolved:
    • Items are now correctly aligned in popup Detail Views;
    • Date editors with the 1/1/0001 value have empty text and show the current date in a calendar.

What's Next?

We'll polish these features and hope to publish the next update in April. We have not supported data input validation (only error notifications are shown for broken rules) and Compact theme - we will work on this after the final v20.1 release (around May). For more information on our plans for Blazor UI, see eXpressApp Framework - 2020 Roadmap.

XAF - Blazor Demo with Image, Collection, Lookup, Enumeration, Boolean, File Property Editors and More

$
0
0

As you probably know, we are building XAF's next-gen Web and Mobile UI with the DevExpress Blazor components. At this stage, we use the Blazor Server Side hosting model because it is stable and fast (we will look at Blazor WebAssembly again when it is out of preview).

If you are interested in our new Web and Mobile UI, please take a look at our updated web demo: https://www.devexpress.com/go/XAF_Blazor_Demo.aspx. This updated demo shows-off familiar XAF property editors and even additional extra modules: File Attachments, View Variants and Audit Trail.

What's Next?

In the next sprint, we will focus on stability and usability. We also hope to complete basic editor functionality such as nullable type and formatting support, TimeSpan and Object property editors.
In our next Blazor-related post, I will discuss unit and functional tests as it relates to XAF's Blazor UI - this will be very important to teams creating complex enterprise apps. Please stay tuned!

Your Feedback Matters

If you have not yet voted in our roadmap survey, please do so within the next couple of weeks. We hope to publish our official roadmap in January.

XAF - Blazor Demo Update with User Authentication and Permission Management

$
0
0

We hope everyone is safe and in good health. These are certainly challenging times – but we can get through it together.

We updated our Blazor Demo to help demonstrate our newest enhancements. Please feel free to test the new features online and share your feedback in the comments section below. 

Security System

In this iteration, we focused our efforts on user authentication and group authorization features (UI). As we all know, it’s quite important for XAF developers and end-users to configure users, roles and data access rights at runtime. Our update includes the following: 

  • Users can log in and log off;
  • Records inaccessible through permissions are hidden;
  • Record fields inaccessible through permissions are displayed as 'Protected Content'; 
  • Users can edit permissions using appropriate editors.

Since Blazor Components do not have specialized editors for certain scenarios, we used the following temporary solutions: 

  • Criteria properties use a multi-line text editor with syntax validation; 
  • The combo box for Navigation Permissions displays a plain list instead of a hierarchy.

Miscellaneous Enhancements

  • Incremental filtering in lookup editors;
  • Clearer expand/collapse icons in the navigation menu;
  • StaticImage view item;
  • An additional dark Bootswatch theme is now available - Superhero;
  • The following known issues have been resolved:
    • Items are now correctly aligned in popup Detail Views;
    • Date editors with a value of 1/1/0001 have empty text and show the current date in the calendar.

What's Next?

We'll polish these features and hope to publish the next update in April. We have not added data input validation support (only error notifications are shown for broken rules) nor have we added a compact theme - we will work on this after the our v20.1 release (around May). For more information on our plans for Blazor UI, see eXpressApp Framework - 2020 Roadmap.

XAF - Permissions for UI Actions and Security System for non-XAF Apps Powered by Entity Framework Core 3 (v20.1)

$
0
0

Security Permissions for Actions (CTP)

This new XAF security layer allows developers to prohibit execution of both custom and XAF system Actions within WinForms and ASP.NET applications.
First, a word or two about Actions – XAF Actions represent UI commands within an application. These include a broad range of UI commands – from menu items and Ribbon commands, to navigation links. To demonstrate how XAF developers can institute fine-grain control over user roles and hide or deactivate UI Actions as needed, we recently published the following YouTube video:

To enable this feature, set the static EnableSecurityForActions property to True. To add custom Actions or remove system Actions available in the Denied Actions tab, handle the NonSecureActionsInitializing event.

Note that Action permissions will hide Actions unconditionally: we don't expect to interfere with Conditional AppearanceState MachineTargetObjectsCriteriaMode or any custom rules that are driven by criteria or object/UI changes within Controllers. If you require dynamic functionality for Actions, use these specific methods and built-in criteria functions such as IsCurrentUserInRole and CurrentUserId.

Security System for Entity Framework Core (CTP)

Our goal is to help DevExpress and non-DevExpress customers benefit from XAF's Security System and Entity Framework Core. In v20.1, we've added a secured Object Space (a DbContext wrapper) for EF Core 3.1+ and demonstrated its use for basic CRUD operations in Console and WinForms applications. This functionality mirrors our XPO ORM implementation. This feature is currently available as a community tech preview, so we welcome your feedback.

If are not familiar with XAF's security system, the following GitHub repo offers an overview of its architecture and its key features: User Authentication and Group Authorization .NET API.

Three main steps to integrate XAF's User Authentication and Group Authorization API using EF Core data access are shown below:

Similar code will work in any client or server .NET Core app, (including Blazor Server). Note that primary protection takes place at the data store level - secured record fields get 'null' values or whole records are filtered out internally if role permissions deny access. 

You can also use CanRead or other CanXXX methods to mask secured fields or modify the UI further (in the following image departments are masked with 'Protected Content' when title does not contain the word 'Development').

Security System - New Learning Materials


eXpressApp Framework - Tips & Tricks (May 2020)

$
0
0
Here are XAF-related tips & tricks for this month. If you have a support ticket you'd like to share with the XAF developer community, feel free to post a link in the comment section below.

Interesting Support Tickets

New and Updated KB Articles

Documentation Updates

Asynchronous Data Loading (CTP)

GridListEditor in Client DataAccessMode and DetailView can now load data asynchronously in XPO-based apps. The UI continues responding to user actions as data is being retrieved. The following new topics describe how to enable this feature and customize it in your application:

Non-Persistent Object Enhancements

NonPersistentObjectSpace now tracks changes for non-persistent objects and supports filter and sort operations in List Views. Also, a parent NonPersistentObjectSpace reloads and disposes of its inner Object Spaces. You can find more information in this help topic and new GitHub examples:

Action Permissions (CTP)

The Security System allows users to prohibit execution of both custom and XAF system Actions in WinForms and ASP.NET applications. For more information, read our help topic or watch the following video.

XAF - Data Validation, Adaptive Menu and Improved Model Editor for Blazor UI (v20.1)

$
0
0

We updated our Blazor demo and have created an intermediate build to demonstrate recent Blazor UI enhancements. 

New Features

Validation

XAF's Validation Module now displays error messages within the UI as follows: 

  • When an invalid value is entered and focus leaves the editor, XAF highlights the editor. In desktop browsers, a validation message is displayed within a tooltip. In mobile browsers, the validation message is displayed below the editor. 
  • If changes cannot be saved due to validation errors, details are displayed within a validation panel. 

Adaptive Toolbar

  • Menu captions are automatically hidden and displayed based on page width. 
  • Menu items that do not fit within a page are placed onto an overflow menu.

We applied this change recently, and the feature has known issues. Please see below.

Model Editor

  • The DevExpress .NET Framework Unified installer now includes a Model Editor for .NET Standard projects. Previously, this was available only with the .NET Core Components installer.
  • Model Editor uses the current Visual Studio skin.
  • Please review the following article to test our Blazor UI (CTP) with existing projects: How to port an XAF platform-agnostic module to .NET Standard 2.0+.

Known issues

This intermediate build has the following issues:

  • Clicked menu buttons remain in a pressed state;
  • An empty overflow menu is displayed after navigating to Contacts. 

Review other known issues and future plans in the following article: FAQ: XAF ASP.NET Core Blazor Server UI (CTP).

The future of Mobile UI

Things are going according to plan and we are moving towards our Blazor UI release in v20.2: eXpressApp Framework - 2020 Roadmap

Please remember that we are no longer developing XAF’s Mobile UI: Mobile UI (Maintenance Mode). In v19.1, we removed it from our documentation and stopped developing new features. In v20.2, we will remove it from our core installation. Existing Mobile applications will continue to work with previous versions of XAF. 

Your Feedback Matters

As always, we welcome your thoughts. Please comment below and let us know what you think of these new features. Once again, should you have technical questions, feel free to contact us via the DevExpress Support Center.

eXpressApp Framework - Tips & Tricks (June 2020)

$
0
0

Time flies – we are already halfway through 2020. We certainly hope that you and your loved ones are doing well and staying safe.

Here is this month’s edition of XAF Tips & Tricks. Please let us know if you find the information below of value and tell us how we can improve this content going forward. If you have a support ticket you'd like to share with the XAF developer community, feel free to post a link in the comment section below.

Interesting Support Tickets

Resolved Issues

New and Updated KB Articles

Documentation Updates

XPO Query Parameter Validation

We softened default parameter validation in SELECT, UPDATE, and INSERT statements and introduced a new DevExpress.Xpo.DB.QueryParameterMode enumeration. You can set the ConnectionProviderSql.QueryParameterMode field or the ConnectionProviderSql.GlobalQueryParameterMode static field as needed.

using DevExpress.Xpo.DB;  
//...  
ConnectionProviderSql.GlobalQueryParameterMode = QueryParameterMode.Legacy; 

Unit and Functional Testing

We reworked and updated the Functional Tests (EasyTest) help section and added a new help topic to improve navigation between learning materials related to unit and functional testing.

FirstOrDefault Methods

The IObjectSpace interface includes the following new methods:

These methods mirror our FindObject<ObjectType>(CriteriaOperator) and FindObject<ObjectType>(CriteriaOperator, Boolean) methods, but accept a lambda expression as the first parameter.

// v20.1.4:
ObjectSpace.FirstOrDefault<Person>(p => p.FirstName == "Test");
// Older versions:
ObjectSpace.FindObject<Person>(CriteriaOperator.Parse("FirstName=?", "Test"));
ObjectSpace.FindObject<Person>(new BinaryOperator(nameof(Person.FirstName), "Test"));
ObjectSpace.FindObject<Person>(new OperandProperty(nameof(Person.FirstName)) == "Test");
ObjectSpace.GetObjectsQuery<Person>().Where(p => p.FirstName == "Test").FirstOrDefault();

LINQ may be more convenient than CriteriaOperator and more natural for Entity Framework users. XPO users may also like this shortcut.

Non-Persistent Objects

You can mark an Object Space as modified via the NonPersistentObjectSpace.AutoSetModifiedOnObjectChange property and the BaseObjectSpace.ModifiedChanging event. If you want to reset Object Space modified status once you've created a new object, use the NonPersistentObjectSpace.RemoveFromModifiedObjects method. See how to use these new APIs in the following examples:

Non-Persistent Object Enhancements

Our upcoming v20.1.5 release will offer the following enhancements to non-persistent objects.

  • NonPersistentObjectSpace will include a FindObject(Type, CriteriaOperator, Boolean) method overload. This method iterates objects loaded with GetObjects, GetObject, CreateObject (etc) methods, and returns the first object that matches the specified parameters.
  • NonPersistentObjectSpace supports custom fields (both calculated and non-calculated). You can create these in code and via the Model Editor (just as you would for persistent objects).
  • You can inherit the new NonPersistentObjectBase class instead of creating a Non-Persistent Object item from the Template Gallery.

XAF - Non-Persistent Objects, Unsaved Data Confirmations and Other Blazor UI Enhancements (v20.1.6)

$
0
0

XAF v20.1.6 ships with a number of new features and stability fixes for Blazor UI. 

Blazor UI: Non-Persistent Objects

Blazor UI allows you to display and edit business objects that are not connected to a database table: Non-Persistent Objects

Blazor UI: Unsaved Data Confirmations

If unsaved data exists, a confirmation message is displayed before end-users can leave or reload a webpage. 

Blazor UI: Enhanced Validation Messages

Each validation message is now displayed within a floating panel. Its color and associated icon identify the rule: Error, Warning or Information. Warnings can be ignored. 

Action Permissions

Role detail views now include a Denied Actions tab. With it, administrators can hide Action availability for specific users: Security System - Action Permissions.

Model Editor for .NET Standard

The DevExpress .NET Framework Unified installer now includes a Model Editor for .NET Standard projects. In previous versions, this was only available with our .NET Core Components installer (learn more).

Known Issues

To review our list of known/resolved issues, please refer to the following article: FAQ: XAF ASP.NET Core Blazor Server UI (CTP).

Your Feedback Matters

As always, we welcome your thoughts. Please comment below and let us know what you think of these new features. Should you have technical questions, feel free to contact us via the DevExpress Support Center. 

XAF - Zoom StandUps, New Unit Testing Content, Blazor Apps on Linux, Custom Editors and More

$
0
0

XAFers Community StandUp in Zoom and Chats 

Jose Columbie and Joche Ojeda host live webinars on XAF, XPO and related topics from April: https://www.meetup.com/Arizona-XAFers-User-Group/events/past/ (each webinar ~2 hours). Jose and Joche discuss XAF/XPO best practices, their past and recent development experiences, and also demo interesting work projects. Dave Hesketh and Manuel Grundner - both DevExpress MVPs - are often among guests or presenters. 

I attended 2 webinars and especially liked the most recent presentation: July 9th 2020 - Best Practices. I am also going to participate in the next event where I will be answering questions and commenting on discussion topics.

You can also forward general questions to the XAF community via the chat group at https://gitter.im/XAF-Community/community. XAF MPVs, experienced XAF developers and I will share development experiences with you on this chat platform.

Jose Columbie also consolidated XAF community information in one location: https://github.com/jjcolumb/awesome-xaf - feel free to read or contribute.

Active YouTube Channel on XAF, XPO, Xamarin from Joche Ojeda

As you might recall, Joche is a DevExpress MVP who has been using XAF for almost 10 years. His XAF Facebook developer group for the Spanish-speaking community (https://www.facebook.com/xafes/) has nearly 400 members. Joche also does XAF/XPO consulting and custom development for companies in Europe, North and Latin America: https://www.bitframeworks.com/.

Joche published multiple XAF Blazor-related videos recently on his YouTube channel:

He has a hundred+ videos on XAF, XPO, Xamarin and other topics, so feel free to watch.

Of course, you can also find official videos on XAF at https://www.youtube.com/user/DeveloperExpress/videos. Our recent additions are:

New Unit Testing Content

Check out the following new blog post on unit testing from Manuel Grundner (DevExpress MVP): Tasty - Delicious dotnet testing.

Our documentation contains more information on Unit Tests. These articles will be of importance for those creating complex apps with XAF. Please let us know what you think of these learning materials.

XAF Jobs, Contractors, Consulting and Development Services

If you are looking for custom XAF development or training, check out these third-party services. For instance, I heard many positive user comments on Llamachant, BitFrameworks or DevPark.

You may also want to check a third-party web site for XAF experts to find jobs, employment and career opportunities. This may be a good alternative to Upwork, Freelancer and other sites I mentioned in my old blog. From the site's description: "Xafers.Jobs is a job service that provides xafers with pre-screened XAF jobs leads that offer real pay for real work. From web to windows to mobile, from reporting to dashboards, all of the job openings we bring you offer some form of our loved XAF framework".

New XAFARI Version with XAF Modules Is Out

A new version of XAFARI that works with v20.1.4 is available and the v20.1.6 build is on its way too. Galaktika Soft has been providing paid reusable XAF modules with documentation and support services for more than 6 years.

New eXpand Framework Modules

The eXpand Framework, managed by Apostolis Bekiaris, continues to release new platform-agnostic packages for XAF: http://xaf.expandframework.com/.

With the raise of Microsoft Teams (and similar tools) we anticipate that XAF integration with remote communication and collaboration services will be in high demand in the coming months.

Noteworthy Support Center Tickets and Dev Tips & Tricks Every Month

Every month, we publish links to interesting support questions submitted via the DevExpress Support Center (as well as documentation updates and development news) in our Tips & Tricks blog series. In it, you will learn what other users are doing with XAF, XPO and enrich your toolbox with shortcuts like FirstOrDefault<ObjectType>(Expression<Func<ObjectType, Boolean>>) or CustomizeViewItemControl(DetailView, Controller, Action) that save development time.

XAF - Release of Security System API for EF Core, Action Permissions, New Documentation, Videos, Survey (v20.1.6)

$
0
0

Official Release: Security System for Entity Framework Core 

We officially released Security System for EF Core 3.1 in our most recent build (v20.1.6). In addition to basic CRUD Console and WinForms examples, we added the following training videos:

These tutorials include a quick review of the Security System’s API/architecture and also describe integration steps. Remember, XAF’s Security System can be used by DevExpress and non-DevExpress customers – so please do spread the word. 

For more information on XAF’s User Authentication and Group Authorization APIs for .NET Core and .NET Framework, please refer to these Frequently Asked Questions. 


 

Official Release: Security Permissions for Actions 

v20.1.6 also includes the official release of Action Permissions. These permissions offer fine-grain control over execution of both custom and XAF system Actions within an app’s UI. This maintenance update also supports Action permissions for our ASP.NET Core Blazor UI.

Video Overview | Documentation

Survey: Do You Want To Set Permission States Automatically? 

When a user creates new permissions for XAF's Security System role, permission states ('read', 'write'...) are empty by default. Some may find it helpful to set these states based on the role's PermissionPolicy property automatically. For example, if PermissionPolicy='DenyAllByDefault', you may want to set the newly created permissions to 'Allow'. If PermissionPolicy='AllowAllByDefault', you may want to set its state to 'Deny'.

To achieve this, we created a custom Controller that sets states for all newly generated Type and Navigation permissions:

This controller works with ASP.NET and WinForms XAF applications as well. We would appreciate your feedback on this feature.

Documentation and Usability Enhancements

eXpressApp Framework - Tips & Tricks (July 2020)

$
0
0

Here is this month’s edition of XAF Tips & Tricks. As always, we hope the information contained within this post is of value as you explore and leverage the capabilities of the eXpressApp Framework. If you have a support ticket you'd like to share with the XAF developer community, feel free to post a link in the comment section below.

Thank you for your continued commitment to XAF!

Interesting Support Tickets

New and Updated KB Articles

Documentation Updates

XPO Documentation Structure Update

We updated XPO’s documentation structure to improve navigation between learning materials:eXpress Persistent Objects Documentation. Let us know if this change helps and how we can enhance our help file further. 

Non-Persistent Object Validation

We updated the following topic to explain the requirements for the non-persistent objects you can validate via our Validation Module: Declare Validation Rules.

Blazor Basic Tutorial

Create a simple Blazor application, customize its UI, and extend its functionality with our built-in Validation Module: Basic Tutorial (Blazor SimpleProjectManager Application).

If you’d like to learn more about XAF’s Blazor UI, feel free to watch the following introductory video.


eXpressApp Framework — Early Access Preview (v20.2)

$
0
0

As you may already know, we are a couple of months away from our next major update (v20.2). This post details some of the features we expect to ship in November – features you can test today when you download and install our Early Access Preview build.

Active Universal subscribers can download the Early Access Preview (EAP). If you own an active DXperience Subscription and would like to learn more about XAF, you can explore the features described herein by logging onto the DevExpress Download Manager and installing this EAP build in trial mode. Once you do, please take a moment to tell us whether these new features address your business needs. This will help us fine-tune our code before official launch.

Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds.

This EAP may not include all features/products we expect to ship in our v20.2 release cycle. As its name implies, the EAP offers an early preview of what we expect to ship in two months.

Blazor UI: Report Viewer

The Document Viewer is now available in XAF’s Blazor UI. You can display, print and export Reports created at design time.

Note: This feature has not been integrated into the Solution Wizard in this preview build. Feel free to download our Blazor demo to explore its capabilities: Download | Run Online.

Blazor UI: EF Core Support

Blazor UI can now use EF Core data models. The following example demonstrates use of EF Core with XAF’s Security System: XAF Blazor UI with Entity Framework Core Data Model and Security System.

We expect to add the EF Core option to the Blazor Solution Wizard as a CTP (community tech preview) in our v20.2 release cycle.

Blazor UI: Other Enhancements

The following features were completed in our current release cycle. They are available in both v20.1 and v20.2:

Basic Tutorial

.NET App Security API for EF Core

We officially released the Security System API for EF Core. This update allows you to use XAF’s Security System with EF Core classes for non-XAF applications. In addition to basic CRUD Console and WinForms examples, we added the following training videos:

These tutorials include a quick review of our Security System API and also detail necessary app integration steps. Remember, XAF’s Security System can be used by DevExpress and non-DevExpress customers alike – so please do spread the word.

About | FAQ

Security: Action Permissions

Action Permissions offer fine-grain control over execution of both custom and XAF system Actions within the UI. Action Permissions support is now available for XAF’s Blazor UI. To see it in action, point your browser to the following online demo: Blazor Main Demo (Roles -> Users -> Denied Actions). 

Core: Non-Persistent Object Enhancements

We removed most of the differences between persistent and non-persistent/proxy objects for XAF. You can now edit non-persistent data in a nested/lookup ListView, define custom fields at runtime, filter/sort/validate data, and track changes just as you would for persistent objects.

To avoid boilerplate code, we incorporated the following API enhancements:

  • You can inherit from NonPersistentBaseObject with a key property, change tracking support and enforce best practices for non-persistent classes.
  • The new PopulateAdditionalObjectSpaces method automatically initializes the AdditionalObjectSpaces collection based on registered object space providers.

Documentation

Core: Model Editor for .NET Standard

Our Model Editor for .NET Core and .NET Standard now ships as part of the DevExpress .NET Framework Unified installer. It includes the following enhancements:

  • Visual Studio Color Theme mirroring;
  • Visual Studio keyboard shortcut support (F5, Ctrl+S, etc.);
  • Improved error dialog with copy support;
  • Wait cursor is displayed during long operations.

    Core: Feature Toggles

    We added a DevExpress.ExpressApp.FrameworkSettings.DefaultSettingsCompatibilityMode property to enable/disable feature toggles in a single place. You can choose whether to enable all new features after a version update or retain previous behaviors. Refer to the following article for additional information: Core - FrameworkSettings.DefaultSettingsCompatibilityMode sets default XAF configuration options and feature toggles.

    XPO: Database Schema Migrations

    The Generate Migration Script menu command within XPO’s Data Model Designer now supports External Types. If your ORM Data Model uses XAF classes from the DevExpress.Persistent.BaseImpl library (e.g., BaseObject) as External Types, you can now generate a schema migration script to implement incremental schema updates.

    Database Schema Migrations also include the necessary API to generate migration scripts in code: How to Use the Database Schema Migrations API.

    Breaking Changes

    Before you migrate and test existing projects, we ask that review the following breaking change(s) document: XAF's breaking changes.

    Your Feedback Matters!

    We realize beta-testing is a time consuming process and we are grateful to those who invest time with our preview builds. Find the current implementation lacking flexibility? Feel we've overlooked a valuable usage scenario? Does our current implementation fail to address your business requirements? Please post your thoughts in the comment section below or create a Support Center ticket. We will happily follow-up and do what we can to extend the capabilities of our new products/features.

    XAF - Watch the Last Webinar Recording with a QA, Blazor and XPO Teasers, Best Practices and More

    $
    0
    0

    Our MVPs, Jose Columbie of Xari.io, Joche Ojeda of BitFrameworks.com and Manuel Grundner of Delegate.at hosted a monthly webinar on XAF, XPO and related topics (subscribe for free). Jose, Joche and Manuel demoed XAF for 30 minutes, discussed performance-related best practices, XPO and EF Core ORM. They also covered numerous other topics, including UI customization, WebAssembly, unit testing, and time-savings one can achieve with XAF's security system.

    As always, the chat was quite active and I answered XAF/XPO-related audience questions in real-time. I personally liked a comment from a customer who shared that in their company 2 developers worked 5 months to build a security system similar to XAF for their LOB app and with XAF they now get it for free in no time at all (time code: 1:08:05). 

    If you missed this monthly event, check out this recording below: 

    If you’re using XAF or are considering it for an upcoming project, feel free to post general questions to the XAF community via the following chat group: https://gitter.im/XAF-Community/community. XAF MPVs, experienced XAF developers and I will share development experiences and offer our 2cents on this chat platform. If you require consulting and custom development services for XAF, XPO and other DevExpress products, feel free to reach out to our MVPs and third party consultants.

    XAF - External Authentication Providers (Google, GitHub, etc.) for Blazor UI

    $
    0
    0

    DevExpress v20.2 Beta 1 should ship in the next few weeks. Among XAF-related features we expect to ship is support for additional authentication schemes for XAF’s Blazor UI. This capability will allow you to use Windows Active Directory Authentication and popular OAuth providers (such as Google and Facebook) as an alternative to cookie-based forms authentication used by default.

    Try It Now

    We’ve created an intermediate build with a sample project demonstrating this functionality: XAF Blazor UI: External Authentication – Windows Active Directory and OAuth providers (Google, GitHub, Azure AD).

    As always, we welcome your thoughts. Please comment below and let us know what you think of these new features. Should you have technical questions, feel free to contact us via the DevExpress Support Center. 

    Security System for Entity Framework Core and XPO

    Remember, XAF’s User Authentication and Group Authorization APIs can be used in XAF and non-XAF .NET apps – so please do spread the word. For more information, please refer to these Frequently Asked Questions and our landing page.

    XAF - New Monthly Webinar and Welcoming a New DevExpress MVP

    $
    0
    0

    Welcome Jose Javier Columbie, a New DevExpress MVP

    You might know Jose as the organizer of monthly webinars on XAF, XPO and related topics. Please mark your calendar for his next meetup on Thursday, October 8th

    Jose is also the author of training videos for Xamarin, OData, Azure, XAF and Blazor. His unofficial XAF Facebook developer group (https://www.facebook.com/groups/xafxpoxamarin) has almost 700 members and keeps growing.

    If you are new to XAF, you may want to check out Jose's new XAF introduction video and demo. In this video, he explains the core XAF concepts that underly XAF and builds a business app for Windows and Web in less than 20 minutes:

    Jose is a Master of Electrical Engineering turned .NET Developer/Architect. Big DevOps advocate and Xamarin Certified. Jose spends most of his time on training, consulting and development of Azure based solutions for enterprise customers. Passionate about performance, data access, application design and DevExpress products, specially XAF and XPO. There is no project where he does not include XAF in one way or another. From mobile, windows to web applications his goal is to have XPO and XAF security everywhere. He is also a tech speaker, blogger and is always pushing to grow the community. Blazor is his new crush.

    For a complete list of Jose's contributions and his full bio, please visit his web sites: http://www.xari.io/ | YouTube Channel.

    Additional Information on Rapid .NET Development with XAF

    For more XAF getting started tutorials and videos, please refer to this DevExpress documentation page.

    If you’re using XAF or are considering it for an upcoming project, feel free to post general questions to the XAF community via the following chat group: https://gitter.im/XAF-Community/community. XAF MPVs, experienced XAF developers and I will share development experiences and offer our 2cents on this chat platform.

    If you require consulting and custom development services for XAF, XPO and other DevExpress products, feel free to reach out to our MVPs and third party consultants.

    eXpressApp Framework - Tips & Tricks (September 2020)

    $
    0
    0

    Here is this month’s edition of XAF Tips & Tricks. As always, we hope the information contained within this post is of value as you explore and leverage the capabilities of the eXpressApp Framework. If you have a support ticket you'd like to share with the XAF developer community, feel free to post a link in the comment section below.

    Thank you for your continued commitment to XAF!

    Interesting Support Tickets

    New and Updated KB Articles

    Resolved Issues

    Documentation Updates

    Blazor UI

    In the following, we describe how you can create new Property Editors and customize existing Property Editors within XAF’s Blazor UI:

    Feature Toggles

    In the following, we describe how you can use the new FrameworkSettings.DefaultSettingsCompatibilityMode property (and detailed the features it manages): 

    Audit Trail

    The following help topics describe recent Audit Trail Module enhancements: 

    Web API service for XPO

    In the following, we detail how you can implement a Web API controller and connect an XPO client to it: Transfer Data via REST API

    Viewing all 148 articles
    Browse latest View live