Solution structure
A quick guide to how the current structure of Drop solution file looks like
Dependencies(folder)
Common dependency: CORE.Library, CORE.Library.UI, and the CORE.MVVM.Template.ViewModels for MVVM reference.
CORE.Drop.Application:
Include the resources to initialize at the beginning of the Application.
IoC
Icon images
Service (Repository-Service Pattern with DI)
Application xaml
CORE.Drop.Interfaces:
Include Interface classes, Enum, Application constants for Model (MVVM) -> at the business logic level. These interfaces are to be injected into Model classes.
Authentication
Components -> Info of Package and Package Version
Container -> generic IoC container wrapper
Enums
EventArguments -> login & logout user information
PackageRepository
Serialization -> methods to serialize and de-serialize JSONs
Services -> Logging User actions in Drop
Settings -> User settings of Drop
Utilities
CORE.Drop.Libraries:
In addition to the Classes that implement the CORE.Drop.Interfaces:
DTOs -> Data Transfer Object
Exception
Installer -> probably more appropriate name is WindsorInstaller, which registers Classes into
"Singleton"
or"Factory"
automatically.DropClient.cs -> Communicate with the Drop backend API
DropSetting.json -> contains repository information, and record Drop user settings.
RouteControllerSingleton.cs -> Singleton router class to parse the correct backend API endpoint url that responds with the desired data.
CORE.Drop.UI:
In short, this is View (MVVM). This contains the xaml files that altogether compose the Application user interface(UIUX).
Controls -> the designs of control components such as Package Card, News Card, Package Grid, and more.
Pages -> the designs of how Drop main tabs look and interact with users. Currently, up to the date this documentation is written, there are five tabs: Installed, Update, Explore, Settings, News.
ResourceDictionary -> a place where those reusable design templates live.
CORE.Drop.ViewModels:
This is ViewModel (MVVM). VM acts as a bridge to connect both Model and View worlds, transfer data in-between.
Enums -> Constant values used in the ViewModels
Helpers -> Methods to Convert IPackage, IVersion, IDependencyPackage respectively to packageCardViewModel, VersionViewModel, and PackageDependencyViewModel. A Factory static class.
Installer -> WindowInstaller, to register
Singleton
andFactory
classes.Interfaces
Resources
Services -> Automatic Background Updater lives in this one.
TypedFactory -> Create ViewModels
ViewModels
CORE.Drop.Installer:
Note: Install the version of Microsoft Visual Studio Installer Projects nuget package that matches with your working Visual Studio version. E.g.(Visual Studio 2019, I installed the Microsoft Visual Studio Installer Projects 1.0.2)
This is to create Drop .msi installer file.
Last updated