WPF Universal Permission Development Framework (ABP)

WPF Universal Permission Development Framework (ABP)

For most .NET backend developers, they are familiar with the currently popular ABP framework. Based on the open-source ABP framework, you can perform secondary development without needing to develop some basic functions again.

Last updated 5/29/2022 10:16 AM
痕迹g
5 min read
Category
Course
Tags
.NET C# WPF Open Source .NET Course

Preface

For most .NET backend developers, the currently popular ABP framework is quite familiar. Based on the open-source ABP framework, developers can perform secondary development without needing to re-implement basic functionalities such as user role management, permissions, organization, multi-tenancy, etc.

However, for the ABP framework, there are very few options available for .NET developers. Currently, it only provides a web-based solution, and its support for desktop and mobile solutions can only be described as "perfunctory." Even the commercial version of ABP offers only a rudimentary skeleton for desktop and mobile solutions. Developers with requirements in these areas have to choose different solutions.

Currently, most .NET developers building mobile projects tend to use popular web-based solutions such as Uniapp, Electron, Flutter, etc. Since these products are inherently incompatible with C#—for example, sharing existing class libraries, entities, services, etc.—this also fails to reflect the modern .NET concept of "all-in-one."

Development Journey

Considering there are many developers in the client-side domain, including Xamarin.Forms developers, I started planning a WPF implementation and Xamarin.Forms implementation based on the ABP framework from the end of 2021.

In this way, by leveraging existing technologies, the concept of full-platform development was realized. The WPF and Xamarin.Forms projects share over 90% of the class library code with the backend project, including model classes, constants, interfaces, services, etc.

As of now, Xamarin.Forms and WPF have restored over 90% of the business functions of the ABP framework, including all UI redesigns, business function implementations, and complete MVVM design.

For the implementation of the Xamarin.Forms framework, refer to the previous article: Xamarin.Forms 5.0 Project Practice

WPF ABP Framework Introduction

This WPF ABP framework is not a technical restoration of the WPF project through ABP's technical means; instead, it is a complete restoration based on the business functions provided by the ABP framework. In the WPF project, ABP's startup configuration, module system, dependency injection, various reflection loading, automatic entity mapping, and other features have been removed.

This project is redeveloped based on the Prism MVVM framework familiar to most WPF developers, and the UI uses the Syncfusion WPF version.

The framework includes the following features:

  • User and Role Management
  • Organization Units
  • Permission Management
  • Multi-tenancy
  • Localization / Multi-language
  • Authentication and Authorization
  • Audit Logging
  • UI Themes
  • Exception Handling
  • Data Dictionary
  • System Settings

Preview

  • Login Page
    • Includes tenant switching, language switching, password modification, email activation

  • Home Page

    • Includes system menu, theme switching (dark/light theme), homepage data statistics panel

  • Organization Units

    • Maintain organization information, add different roles and users

  • Role Management

    • Maintain role information, set role permissions, filter roles by permission

  • User Management

    • Manage user information, modify user permissions, lock/unlock/delete users

  • Audit Logs

    • System request logs, error logs, exception data, change log information records

  • Dynamic Properties

    • Set dynamic data: dropdown lists, single selection, multi-selection, etc.

  • Multi-tenancy

    • Maintain tenant information

  • Edition List

    • Create different editions, set billing rules, expiration rules, etc.

  • Language List

    • Maintain multi-language data, modify/set/maintain related information

  • Settings

    • Includes core system function settings: tenant, user, system security, email, invoice, other settings

  • UI Component Demonstrations

    • Includes demos of some commonly used controls

  • Multi-theme Switching

How to Get the Source Code?

Students who participated in the previous Xamarin.Forms charity event can contact me individually to get the complete source code of the WPF version for free. The ABP framework for Xamarin.Forms and WPF will be continuously optimized in the future, and free technical consulting services will be provided. All proceeds from the previous Xamarin.Forms charity event will be disclosed in a recent donation activity.

For those who did not participate in the previous charity event or those who want to obtain the source code or perform commercial secondary development, the complete source code of the WPF version of the ABP framework is priced at 499 RMB. You can contact the author (QQ: 779149549) individually to obtain it.

If the revenue from this WPF framework exceeds 30,000 RMB, the excess will also be donated in the form of a charity event. The future MAUI framework version will be ported next.

Video Tutorial Explanation

During the continuous optimization of the WPF project, related tutorials will also be produced and published on video platforms. You can follow along.

Keep Exploring

Related Reading

More Articles
Same tag 1/26/2025

Implementing Internationalization in WPF Using Custom XML Files

This article details the method of implementing internationalization in WPF applications using custom XML files, including installing the necessary NuGet packages, dynamically retrieving the language list, dynamically switching languages, using translated strings in code and XAML interfaces, and provides a source code link to help developers easily achieve internationalization in WPF applications.

Continue Reading
Same tag 12/5/2024

The Path to Avalonia Internationalization: Deep Application and Exploration of Resx Resource Files

In the current wave of globalized software development, internationalization (i18n) and localization (L10n) of applications have become particularly important. Avalonia UI, as a powerful cross-platform UI framework, offers developers multiple ways to achieve internationalization. Among them, using traditional Resx resource files for internationalization not only aligns with the usage habits in WinForms, WPF, ASP.NET Core, and other development scenarios, but also, with the help of some practical tools and specific development processes, makes the implementation of internationalization efficient and structured.

Continue Reading