Co-Pilot / 辅助式
更新于 24 days ago

easyplatform

Dduc01226
0.0k
duc01226/easyplatform
78
Agent 评分

💡 摘要

Easy.Platform是一个用于构建企业应用程序的框架,使用.NET 9和Angular 19,专注于清晰架构和CQRS。

🎯 适合人群

企业应用程序开发人员熟悉.NET的后端开发人员使用Angular的前端开发人员监督软件开发的项目经理参与企业应用程序测试的QA工程师

🤖 AI 吐槽:看起来很能打,但别让配置把人劝退。

安全分析中风险

风险:Medium。建议检查:是否执行 shell/命令行指令;是否发起外网请求(SSRF/数据外发);文件读写范围与路径穿越风险;依赖锁定与供应链风险。以最小权限运行,并在生产环境启用前审计代码与依赖。

Easy.Platform Framework

.NET 9 Angular 19 Clean Architecture CQRS

Easy.Platform is a comprehensive framework for building enterprise applications with .NET 9 backend and Angular 19 frontend, featuring Clean Architecture, CQRS, Domain-Driven Design, and event-driven patterns.

Quick Navigation

| I am a... | Start Here | Learn More | | ----------------- | ---------------------------------------------- | ------------------------------------------------- | | New Developer | Getting Started | Learning Paths | | Backend Dev | Backend Quickref | CLAUDE.md Patterns | | Frontend Dev | Frontend Quickref | CLAUDE.md Patterns | | AI Agent | CLAUDE.md | docs/claude/ |


What is Easy.Platform?

Easy.Platform provides a complete foundation for enterprise application development:

  • Clean Architecture: Four-layer architecture (Domain, Application, Infrastructure, Presentation) ensuring separation of concerns and testability
  • CQRS Pattern: Command Query Responsibility Segregation with fluent validation and event-driven side effects
  • Event-Driven Architecture: Domain events and RabbitMQ message bus for cross-service communication
  • Multi-Database Support: MongoDB, SQL Server, PostgreSQL with unified repository patterns
  • Angular Integration: PlatformVmStore state management, base components, and reactive forms

The framework is battle-tested in production enterprise applications and provides patterns for common challenges like background jobs, data migrations, authorization, and multi-tenancy.


Quick Start (30 seconds)

# Backend dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api # Frontend cd src/Frontend && npm install && nx serve playground-text-snippet # Infrastructure docker-compose -f src/platform-example-app.docker-compose.yml up -d

Detailed setup: Getting Started Guide


Documentation

| Doc | Purpose | | ------------------------------------------------------ | ----------------------------------------------- | | Getting Started | Prerequisites, setup, commands, troubleshooting | | Architecture Overview | System design, project structure, diagrams | | Backend Quickref | Backend decision tree and key patterns | | Frontend Quickref | Frontend decision tree and key patterns | | Learning Paths | Developer onboarding by role | | CLAUDE.md | Complete code patterns, AI agent instructions | | Business Features | Module documentation, features, APIs |

Business Documentation: For detailed business module documentation (requirements, workflows, APIs, test specs), see docs/business-features/ with docs/BUSINESS-FEATURES.md as the master index.


AI-Assisted Team Collaboration

This project includes a complete team collaboration system for AI agents, supporting agile workflows from idea capture to release.

Team Roles & Commands

| Role | Commands | Purpose | | -------------------- | -------------------------------------- | -------------------------------------------- | | Product Owner | /team-idea, /team-prioritize | Capture ideas, backlog prioritization | | Business Analyst | /team-refine, /team-story | PBI refinement, user story creation | | QA Engineer | /team-test-spec, /team-test-cases | Test specification, test case generation | | UX Designer | /team-design-spec, /team-figma-extract | UI specs, Figma design extraction | | QC Specialist | /team-quality-gate | Pre-dev/QA/release quality gates | | Project Manager | /team-status, /team-dependency, /team-team-sync | Status reports, dependency mapping, meetings |

Artifact Management

team-artifacts/
├── ideas/           # Raw ideas (IDEA-YYMMDD-NNN)
├── pbis/            # Product Backlog Items (PBI-YYMMDD-NNN)
├── test-specs/      # Test specifications (TS-MOD-NNN)
├── design-specs/    # UI/UX specifications
├── qc-reports/      # Quality gate reports
└── templates/       # Artifact templates

Full guide: Team Collaboration Guide


Architecture Overview

graph TB subgraph "Frontend - Nx Workspace" subgraph "Apps" PLAYGROUND["playground-text-snippet"] end subgraph "Libraries" PLATFORM_CORE["platform-core"] PLATFORM_COMP["platform-components"] APPS_DOMAINS["apps-domains"] end PLAYGROUND --> PLATFORM_CORE PLAYGROUND --> APPS_DOMAINS end subgraph "Backend - .NET 9" API["TextSnippet.Api"] APP["TextSnippet.Application"] DOMAIN["TextSnippet.Domain"] PERSIST["TextSnippet.Persistence"] end subgraph "Infrastructure" RABBIT["RabbitMQ"] REDIS["Redis"] DB["MongoDB/SQL/Postgres"] end PLAYGROUND --> API API --> APP APP --> DOMAIN APP --> PERSIST PERSIST --> DB APP --> RABBIT APP --> REDIS

Technology Stack

| Layer | Technologies | | ------------- | --------------------------------------------- | | Backend | .NET 9, ASP.NET Core, CQRS | | Frontend | Angular 19, TypeScript, RxJS, PlatformVmStore | | Data | MongoDB, SQL Server, PostgreSQL | | Messaging | RabbitMQ | | Caching | Redis | | Jobs | Hangfire |

Full architecture details: Architecture Overview


Project Structure

Backend

src/Platform/                    # Easy.Platform framework
├── Easy.Platform/               # Core (CQRS, validation, repositories)
├── Easy.Platform.AspNetCore/    # ASP.NET Core integration
├── Easy.Platform.MongoDB/       # MongoDB patterns
├── Easy.Platform.RabbitMQ/      # Message bus
└── Easy.Platform.*/             # Other modules

src/Backend/          # Example microservice
├── *.Api/                       # Web API layer
├── *.Application/               # CQRS handlers, jobs, events
├── *.Domain/                    # Entities, domain events
├── *.Infrastructure/            # External concerns (storage, external APIs)
└── *.Persistence*/              # Database implementations

Frontend

src/Frontend/       # Angular 19 Nx workspace
├── apps/
│   └── playground-text-snippet/ # Example app
└── libs/
    ├── platform-core/           # Base classes, utilities
    ├── platform-components/     # Reusable UI components
    ├── apps-domains/            # Business domain code
    ├── apps-domains-components/ # Domain-specific components
    └── apps-shared-components/  # Shared app components

Key Principles

Backend

  1. Repository Pattern: Use IPlatformQueryableRootRepository<TEntity, TKey>
  2. Validation: Use PlatformValidationResult fluent API (never throw)
  3. Side Effects: Use entity event handlers (never in command handlers)
  4. CQRS: Command + Result + Handler in ONE file
  5. DTO Mapping: DTOs own mapping via MapToEntity()

Frontend

  1. Component Hierarchy: AppBaseComponent → Feature Component
  2. State Management: PlatformVmStore for complex state
  3. API Services: Extend PlatformApiService
  4. Subscriptions: Always use untilDestroyed()
  5. CSS Naming: BEM convention (block__element --modifier)

Complete patterns: CLAUDE.md


Development Commands

# Backend dotnet build EasyPlatform.sln dotnet run --project src/Backend/PlatformExampleApp.TextSnippet.Api dotnet test [Project].csproj # Frontend cd src/Frontend npm install nx serve playground-text-snippet nx build playground-text-snippet nx test platform-core

Getting Help

  1. Study Examples: src/PlatformExampleApp for backend, playground-text-snippet for frontend
  2. Search Codebase: Use grep/glob to find existing patterns
  3. Check Documentation: docs/ directory for guides, CLAUDE.md for patterns
  4. Read Base Classes: Check platform-core source for available APIs

Version Information

  • Platform Version: Easy.Platform 1.0
  • Backend Framework: .NET 9
  • Frontend Framework: Angular 19
  • Last Updated: January 2025

For detailed code patterns and complete examples, see CLAUDE.md and the working examples in src/PlatformExampleApp.

五维分析
清晰度8/10
创新性7/10
实用性9/10
完整性8/10
可维护性7/10
优缺点分析

优点

  • 企业应用程序的综合框架
  • 支持多种数据库和消息系统
  • 遵循最佳实践,如清晰架构和CQRS

缺点

  • 新开发人员的学习曲线陡峭
  • 对于小型项目来说,复杂性可能过高
  • 与更成熟的框架相比,社区支持有限

相关技能

java-architect

A
toolCo-Pilot / 辅助式
86/ 100

“看起来很能打,但别让配置把人劝退。”

spring-boot-engineer

A
toolCo-Pilot / 辅助式
84/ 100

“看起来很能打,但别让配置把人劝退。”

dotnet-core-expert

A
toolCo-Pilot / 辅助式
82/ 100

“看起来很能打,但别让配置把人劝退。”

免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。

版权归原作者所有 duc01226.