XAFers Community Standup. XAF Modularity, Plugins and Application Domains

Thursday, March 7th, 2024 at 10:00 AM GMT -7

https://www.meetup.com/arizona-xafers-user-group/events/299557268/

Tentative Agenda: 

  • Introductions
  • Announcements
  • Presentation
  • Questions

Recording:

Relevant Links:

How to persist metadata using XPO, to crate persistent classes dynamically  

https://github.com/DevExpress-Examples/XPO_how-to-persist-metadata-e269

Xaf types info 

https://docs.devexpress.com/eXpressAppFramework/113669/business-model-design-orm/types-info-subsystem

XAF dynamically extend your ORM in runtime. 

https://docs.devexpress.com/eXpressAppFramework/113583/business-model-design-orm/types-info-subsystem/use-metadata-to-customize-business-classes-dynamically

Allow admin to extend persistent classes.  

https://docs.devexpress.com/eXpressAppFramework/113649/business-model-design-orm/types-info-subsystem/allow-an-administrator-to-create-custom-persistent-fields-in-an-xpo-based-application

XPO class info( the metadata of the class) 

https://docs.devexpress.com/XPO/DevExpress.Xpo.Metadata.XPClassInfo

Create persistent metadata on the fly 

https://supportcenter.devexpress.com/ticket/details/k18482/how-to-create-persistent-metadata-on-the-fly-and-load-data-from-an-arbitrary-table

How to generate persistent classes at runtime 

https://supportcenter.devexpress.com/ticket/details/e1198/how-to-generate-persistent-classes-at-runtime-based-on-a-dataset

Tips for a modular architecture 

  1.  Create an ORM project that you will share across all your modules, this makes it easier to write code on each specific module that interact with domain objects from other modules, otherwise you will  have to interact with shadow properties (properties that only exist at metadata level) 

The concept of shadow properties in EF core, there is no name for that in XPO 

Shadow properties are a feature in Entity Framework (EF) Core that allows you to define properties on your entities that do not exist in your entity class. Essentially, these are properties that EF Core knows about and can use in its model, but they are not explicitly declared in your C# entity classes. This feature can be particularly useful for tracking information such as when an entity was created or modified, without having to clutter your entity classes with properties that are only used for database concerns. 

Shadow properties are typically used for audit fields like CreatedDate, LastModifiedDate, or ForeignKey properties that you do not want to expose on your entity model directly. EF Core will manage these properties in the background, and you can interact with them through the EF Core API, such as when you’re saving changes to the database or querying data. 

  1.  Understand the application life cycle, there are different paths for each platform. https://docs.devexpress.com/eXpressAppFramework/113127/app-shell-and-base-infrastructure/application-life-cycle?ssp=1&darkschemeovr=1&setlang=en&cc=US&safesearch=moderate 
  1. Understand how modules works. https://docs.devexpress.com/eXpressAppFramework/118046/app-shell-and-base-infrastructure/application-solution-components/modules?ssp=1&darkschemeovr=1&setlang=en&cc=US&safesearch=moderate 
  1. Ways to register modules. 

https://docs.devexpress.com/eXpressAppFramework/118047/app-shell-and-base-infrastructure/application-solution-components/ways-to-register-a-module?ssp=1&darkschemeovr=1&setlang=en&cc=US&safesearch=moderate

  1. Understanding application domains and Assembly contexts  
  1. Model generator updaters. 

https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Model.ModelNodesGeneratorUpdater-1

  1. Solid design pattern 

https://en.wikipedia.org/wiki/SOLID

Examples 

https://github.com/egarim/XafWindowsPluginsDemo

Posted in XAF

2 thoughts on “XAFers Community Standup. XAF Modularity, Plugins and Application Domains

Leave a Reply

Your email address will not be published.