Skip to content

Latest commit

 

History

History
133 lines (103 loc) · 5.54 KB

README.md

File metadata and controls

133 lines (103 loc) · 5.54 KB

Jamesnet.Wpf 英文 中文 韩文

A comprehensive WPF framework library for .NET Core-based applications, extending Prism and CommunityToolkit.Mvvm

License: MIT NuGet Downloads Stars

Project Overview

Jamesnet.Wpf is a powerful WPF framework library designed for modern .NET Core-based applications. It builds upon and extends the capabilities of key libraries to provide a comprehensive solution for building robust, maintainable, and scalable WPF applications in the .NET Core ecosystem.

Key Features and Implementations

1. .NET Core Optimized

  • Fully compatible with .NET Core's dependency management system
  • Leverages .NET Core's enhanced performance and cross-platform capabilities

2. Advanced Dependency Injection

  • Builds upon Prism.Unity for a streamlined dependency injection system
  • Efficient management of singleton instances and types

3. Enhanced MVVM Architecture

  • Extends CommunityToolkit.Mvvm with additional MVVM utilities
  • Simplified view registration and view/viewmodel connections
  • Region management for view injection

4. Resource Management

  • Dynamic resource binding capabilities
  • Integrated theming and localization structures

5. UI Components and Utilities

  • Geometry Path icons for vector graphics
  • Enhanced Grid functionalities leveraging WpfAutoGrid.Core
  • Custom controls like JamesPanel, JamesContent, JamesWindow

6. Application Framework

  • Extended Application class (JamesApplication) based on PrismApplication
  • Comprehensive WPF framework architecture design for .NET Core

Technology Stack

  • .NET 8.0+ (Core-based)
  • WPF (Windows Presentation Foundation)

Core Dependencies

Jamesnet.Wpf leverages the following key libraries:

1. Prism.Unity

  • Provides a powerful MVVM framework and modular architecture
  • Enables loosely coupled, testable, and maintainable applications
  • Offers advanced features like dependency injection and event aggregation

2. CommunityToolkit.Mvvm

  • Simplifies MVVM pattern implementation
  • Provides source generators for boilerplate reduction
  • Offers a rich set of helpers and base classes for viewmodels

3. WpfAutoGrid.Core

  • Enhances WPF's Grid control with auto-layout capabilities
  • Simplifies complex grid definitions
  • Improves readability and maintainability of XAML layouts

Getting Started

Prerequisites

  • Visual Studio 2022 or later
  • Jetbrains Rider
  • .NET 8.0 SDK or later
  • Windows 11 recommended

Installation

Install the Jamesnet.Wpf NuGet package in your .NET Core WPF project:

dotnet add package Jamesnet.Wpf

Or via the NuGet Package Manager:

Install-Package Jamesnet.Wpf

Usage in .NET Core Projects

Jamesnet.Wpf is specifically designed for .NET Core-based WPF applications. It takes full advantage of .NET Core's dependency management system, allowing for more flexible and efficient application architecture.

Key benefits in .NET Core:

  • Simplified dependency management
  • Enhanced performance
  • Better compatibility with modern .NET ecosystems

Jamesnet.Wpf is used in numerous GitHub projects, including:

Key Components

  • JamesPanel
  • JamesGrid : AutoGrid
  • JamesContent : ContentControl
  • JamesWindow : Window
  • JamesApplication : PrismApplication
  • JamesDataGrid : DataGrid
  • ViewModelLocationScenario
  • WireDataContext
  • ObservableBase : ObservableObject
  • IViewable, IViewLoadable, IViewCreatable
  • SmartField, TextField, ComboField, DateField, CheckField

Contributing

Contributions to Jamesnet.Wpf are welcome! Please feel free to submit issues, create pull requests, or suggest improvements.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contact

Enhance your .NET Core WPF development experience with Jamesnet.Wpf!