eXpand icon indicating copy to clipboard operation
eXpand copied to clipboard

New StoreToDisk package

Open apobekiaris opened this issue 3 years ago • 2 comments

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.

apobekiaris avatar Aug 01 '22 08:08 apobekiaris

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.3

Please 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.

apobekiaris avatar Aug 02 '22 14:08 apobekiaris

In the screencast:

  1. We create an Account that derives from BaseObject and already has a Guid Oid key. Additionaly we add a Name and a Secret property.
  2. We decorate with the StoreToDiskAttirbute to serialize the Secret
  3. We run the Windows app (Blazor is exactly the same), create a new Account and set its Name and Secret.
  4. We modify the app.config to use a new database and start the app again.
  5. We examine the json folder and we see that the data are protected for our Machine.
  6. We create a new Account and set only its Name.
  7. The StoreDisk detects the existing record from the name and assigns the Secret property

StoreToDisk

apobekiaris avatar Aug 02 '22 18:08 apobekiaris

Closing issue for age. Feel free to reopen it at any time.

.Thank you for your contribution.

expand avatar Jan 16 '24 21:01 expand