This is a nuget-package for modular monolith application on WPF platform with plugins as modules. Engine and contracts library for Calabonga.Commandex. Contracts are using for developing a modules for Commandex Shell.
The Calabonga.Commandex
- This is an application on WPF-platform built with CommunityToolkit.MVVM for modules (plugins) using: launch and execute.
What is the Calabonga.Commandex
can:
- Find a modules
.dll
(plugins) in the folder you set up. - Launch or execute modules
.dll
(plughis) from GUI. - Get the results of the module's (plugis) work after they completed.
It's a complex solution with a few repositories:
- Calabonga.Commandex.Shell → Command Executer or Command Launcher. To run commands of any type for any purpose. For example, to execute a stored procedure or just to copy some files to some destination.
- Calabonga.Commandex.Commands → Commands for Calabonga.Commandex.Shell that can execute them from unified shell.
- Calabonga.Commandex.Shell.Develop.Template → This is a Developer version of the Command Executer (
Calabonga.Commandex
). Which is created to runs commands of any type for any purposes. For example, to execute a stored procedure or just to co… - Calabonga.Commandex.Engine → Engine and contracts library for Calabonga.Commandex. Contracts are using for developing a modules for Commandex Shell.
- Calabonga.Commandex.Engine.Processors → Results Processors for Calabonga.Commandex.Shell commands execution results. This is an extended version of the just show string in the notification dialog.
- Open dialog in the window maximized now available. See the override for DialogResult
IsMaximized
- Some summaries updated/added/improved.
- Some refactoring made, syntax error fixed.
ICommandexIdentity
abstraction added for user managing. This abstraction help to create an application user and store it on theShell
. Please see Wiki samples.ISecureData
abstraction added for availability to store on the Shell side data about tokens (access_token
,refresh_token
).IIdentityManager
abstraction for dependency injection container. This can help to make availdable a logged user on the Shell for commands (plugins/modules).- Some summaries updated/added/improved.
- Some refactoring made, syntax error fixed.
- Migration to NET9.0
- Some summaries were updated (added)
The result for ConfirmationDialog
as Func result added (delegate). Now you can use async/await for confirmation.
New feature implemented ConfirmationDialog
. Now you can ask your user some confirmations:
[RelayCommand]
private void OpenLogsFolder()
=> _dialogService.ShowConfirmation("Open logs folder?", result =>
{
if (result.ConfirmResult != ConfirmationType.Ok)
{
return;
}
var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "logs");
if (!Path.Exists(path))
{
_dialogService.ShowNotification($"Folder not found: {path}");
return;
}
Process.Start(new ProcessStartInfo
{
FileName = path,
UseShellExecute = true,
Verb = "open"
});
}, ConfirmationTypes.OkCancel);
- The
SettingsPath
parameter was created to allow you to store the command's settings env-files in a separate folder - Summaries for some members were updated
- Nugets dependencies versions updated
ServiceCollection
extension created for DefaultResultProcessor registration in container- Base commands processing implementation updated for new type of the result creation available
IResultProcessor
interface created as abstraction for pipeline processing- Some classes and interface was renamed
- Some base commands property Result is marked as virtual
- Dialog window size management improved for ObservableValidator too. Now, you can set up a size of the dialog window.
- Dialog window size management improved
- First Release
ParameterCommandexCommand
getting parameter and setting parameter refactored. PropertyParameter
removed. For read data you can useReadParameter()
method. And for write -WriteParameter()
.- Some summaries added/updated
- UX refactored
- Menu added
- Shortcuts added
- Three type of the command list view added
IDialogResult
renamed toIViewModel
- New property
Tags
added toICommandexCommand
for future commands groups management
- Restart Wizard command crash fixed.
- NotificationDialog windows size fixed.
- Main window MinHeight and MinWitdth are set
- Wizard window MinHeight and MinWidth are set
- Wizard window UX management properties make as virtual
- Some controls sizing improved
- Nugets dependencies updated
- Windows accent color is set for
ActiveStep
on Wizard dialog.
- Nugets versions updated
OnSetParameter()
method created forIDialogResult
DialogService
implementation moved into engine nugetNotificationDialog
implementation moved into engine nugetWizard
component moved into engine nugetAppSettings
moved into engine nuget
ShoeDialog()
added override with special parameter forViewModel
- Nuget feed URL moved into configuration parameters
-
Реализован новый тип команды Wizard для Commandex. Теперь можно формировать набор шагов, которые проходит команда при в выполнении.
-
Обновлен также Shell для Developer, чтобы иметь возможность запускать новый тип команд.
- Добавлена возможность управлять типом
Window
при отображении модального окна.
- Первая публичная сборка в nuget
В основном репозитории Calabonga.Commandex.Shell есть несколько видео с инструкциями и разъяснениями, как использовать Commandex. А также видео о том, какие типы команд существуют и как для Commandex создавать команды разных типов.