eXpand
eXpand copied to clipboard
New StoreToDisk package
A working implementation existis in Reactive module, create a standalone package from it.
it is common practice when developing with Xaf to drop the database on each major change and let Xaf recreate from scratch. What if you want to add initial secured data?
You could use the updater and somehome code it there e.g. Azure Vaults or Enviromental Variables that point to a file exist only locally etc. But there are many problems with this approach. Think for example that your objects maybe created later and not in the Updater by parsing the results of a web service.
To save your self from such headaches and have your objects initialized correctly you can use the StoreToDisk package.
The pre-release 4.221.3.0 in the Reactive.XAF lab branch includes commits that relate to this task:
To minimize version conflicts we recommend that you use the Xpand.XAF.Core.All, Xpand.XAF.Win.All, Xpand.XAF.Web.All packages. Doing so, all packages will be at your disposal and .NET will add a dependecy only to those packages that you actually use and not to all (see the Modules installation-registrations youtube video).
Released packages:
Xpand.Extensions v.4.221.3 Xpand.Extensions.Blazor v.4.221.3 Xpand.Extensions.Mono.Cecil v.4.221.3 Xpand.Extensions.Office.Cloud v.4.221.3 Xpand.Extensions.Office.Cloud.Google.Blazor v.4.221.3 Xpand.Extensions.Reactive v.4.221.3 Xpand.Extensions.XAF v.4.221.3 Xpand.Extensions.XAF.Xpo v.4.221.3 Xpand.TestsLib v.4.221.3 Xpand.TestsLib.Blazor v.4.221.3 Xpand.TestsLib.Common v.4.221.3 Xpand.TestsLib.EasyTest v.4.221.3 Xpand.VersionConverter v.4.221.3 Xpand.XAF.Core.All v.4.221.3 Xpand.XAF.Modules.AutoCommit v.4.221.3 Xpand.XAF.Modules.Blazor v.4.221.3 Xpand.XAF.Modules.BulkObjectUpdate v.4.221.3 Xpand.XAF.Modules.CloneMemberValue v.4.221.3 Xpand.XAF.Modules.CloneModelView v.4.221.3 Xpand.XAF.Modules.Email v.4.221.3 Xpand.XAF.Modules.GridListEditor v.4.221.3 Xpand.XAF.Modules.HideToolBar v.4.221.3 Xpand.XAF.Modules.JobScheduler.Hangfire v.4.221.3 Xpand.XAF.Modules.JobScheduler.Notification v.4.221.3 Xpand.XAF.Modules.MasterDetail v.4.221.3 Xpand.XAF.Modules.ModelMapper v.4.221.3 Xpand.XAF.Modules.ModelViewInheritance v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Google v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Google.Calendar v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Google.Tasks v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Microsoft v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Microsoft.Calendar v.4.221.3 Xpand.XAF.Modules.Office.Cloud.Microsoft.Todo v.4.221.3 Xpand.XAF.Modules.Office.DocumentStyleManager v.4.221.3 Xpand.XAF.Modules.OneView v.4.221.3 Xpand.XAF.Modules.PositionInListView v.4.221.3 Xpand.XAF.Modules.ProgressBarViewItem v.4.221.3 Xpand.XAF.Modules.RazorView v.4.221.3 Xpand.XAF.Modules.Reactive v.4.221.3 Xpand.XAF.Modules.Reactive.Logger v.4.221.3 Xpand.XAF.Modules.Reactive.Logger.Client.Win v.4.221.3 Xpand.XAF.Modules.Reactive.Logger.Hub v.4.221.3 Xpand.XAF.Modules.Reactive.Rest v.4.221.3 Xpand.XAF.Modules.RefreshView v.4.221.3 Xpand.XAF.Modules.SequenceGenerator v.4.221.3 Xpand.XAF.Modules.SuppressConfirmation v.4.221.3 Xpand.XAF.Modules.TenantManager v.4.221.3 Xpand.XAF.Modules.ViewEditMode v.4.221.3 Xpand.XAF.Modules.ViewItemValue v.4.221.3 Xpand.XAF.Modules.ViewWizard v.4.221.3 Xpand.XAF.Modules.Windows v.4.221.3 Xpand.XAF.Web.All v.4.221.3 Xpand.XAF.Win.All v.4.221.3Please update the related Nuget packages and test if issues is addressed. These are nightly nuget packages available only from our NugetServer.
If you do not use these packages directly but through a module of the main eXpandFramework project, please wait for the bot to notify you again when integration is finished or update the related packages manually.
Thanks a lot for your contribution.
In the screencast:
- We create an
Accountthat derives fromBaseObjectand already has a GuidOid key. Additionaly we add aNameand aSecretproperty. - We decorate with the
StoreToDiskAttirbuteto serialize the Secret - We run the Windows app (Blazor is exactly the same), create a new Account and set its Name and Secret.
- We modify the app.config to use a new database and start the app again.
- We examine the json folder and we see that the data are protected for our Machine.
- We create a
new Accountand setonly its Name. - The StoreDisk detects the existing record from the name and assigns the Secret property

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.