Skip to content

rlasker-trimble/XamVersioning

Repository files navigation

Xamarin Dynamic App Versioining

GOAL: Allow a Xamarin App work against different server versions.

The purpose of this Proof of Concept is to demonstrate how we can accomplish the stated goal. In this particular concept the Xamarin application may be communicating with different servers that may be different release versions. These different server versions may have different features and code that needs to be run on the device and we will not know what version that is until after the device user has logged into the server.

Key Components:

VersionSelector In this class we had to specifically add references to our "Version" projects otherwise the compiler does not include the apps in the application packages. This class holds key details of the currently selected application version project.

AuthenticationService This class will alert the App that a new version needs to be loaded using the MessagingCenter.

App The application responds to the Login message by dynamically loading the AppShell and registering the specific version project startup services using the Microsoft DI Extensions.

App StartUp This class is responsible for the IServiceProvider creation and for loading the specific versions StartUp class.

Version StartUp Each version project of the app registers the MVVM components as well as the services that are subject to code versioning.

Versioned Service This class shows how a service can inherit and extend previous service versions.

Versioned ViewModel This class shows how a ViewModel can inherit and extend previous version ViewModels including by overriding code for new "functionality".

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages