Skip to content

JamesnetGroup/jamesnet.wpf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published

Languages