MvvmCrud.Maui.Prism
0.0.2
dotnet add package MvvmCrud.Maui.Prism --version 0.0.2
NuGet\Install-Package MvvmCrud.Maui.Prism -Version 0.0.2
<PackageReference Include="MvvmCrud.Maui.Prism" Version="0.0.2" />
paket add MvvmCrud.Maui.Prism --version 0.0.2
#r "nuget: MvvmCrud.Maui.Prism, 0.0.2"
// Install MvvmCrud.Maui.Prism as a Cake Addin #addin nuget:?package=MvvmCrud.Maui.Prism&version=0.0.2 // Install MvvmCrud.Maui.Prism as a Cake Tool #tool nuget:?package=MvvmCrud.Maui.Prism&version=0.0.2
MvvmCrud
MvvmCrud helps your Xamarin.Forms/MAUI app with Prism Library to standardize operations of creating, updating, deletion and display data, from REST API.
How it works
This framework standardize CRUD's operations into ViewModel's file using generic T type, endpoint's requests and fully customizable.
The target is WRITE LESS CODE, STANDARDIZING THE MOST USED UI CRUD OPERATIONS, IMPROVE PRODUCTIVITY SPEED.
Only with these following lines of code your page can:
- Display list of data
- Embedded custom message, if endpoint fails
- Embedded pagination's manager
- Embedded Perform searchs
- Embedded deletion cell's content, with automatic detect endpoint and confirm message
- Embedded update cell's content, with automatic: detect endpoint, open page, save, upload and update list's cell
- Embedded open detail's page
- Embedded empty view UI
- Embedded loadig more view UI
All fully customizable!
namespace MVVMCrud.Example.ViewModels.Post
{
public class PostPageViewModel : BaseListPaginationAdvancedViewModel
<PostCellViewModel, BaseModelItemsRoot<PostItem>, PostItem>
{
public PostPageViewModel(
INavigationService navigationService,
IRequestService requestService) : base(navigationService, requestService)
{
}
public override string SetupEndpoint() => Constants.Constants.METHOD_POST;
public override async void AddNewItem(PostItem item)
{
SetupAddItemMessage();
await SetupGetItems();
}
public override async void UpdateEditItem(NewEditItem<PostItem> newEditItem)
{
SetupEditItemMessage();
await SetupGetItems();
}
public override List<PostCellViewModel> PerformSearchSetup(string newText) => ItemsList.Where(x => x.Item.Title.Contains(newText.ToLower())).ToList();
#region DetailPage
public override string SetupDetailPageName(PostCellViewModel obj) => nameof(CommentPage);
public override bool IsDetailPageWithHeader(PostCellViewModel obj) => true;
#endregion
}
}
Docs
- Clone this repository and check app's example. App's example use the follow endpoint https://jsonplaceholder.typicode.com/ to test functionality.
- Go to Wiki page.
Feedback or Requests
Use GitHub Issues for bug reports and feature requests.
Use GitHub Discussios for questions or opinions.
Disclaimer
This is at the moment an experiment. Use at your own risk.
Copyright and license
Code released under the MIT license.
Did you like ?
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net7.0
- CommunityToolkit.Mvvm (>= 8.0.0)
- Newtonsoft.Json (>= 13.0.2)
- Prism.DryIoc.Maui (>= 8.1.273-pre)
- PropertyChanged.Fody (>= 4.1.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
0.0.2 | 224 | 2/25/2023 |
First release