💡 摘要
Easy.Platform是一个用于构建企业应用程序的框架,使用.NET 9和Angular 19,专注于清晰架构和CQRS。
🎯 适合人群
🤖 AI 吐槽: “看起来很能打,但别让配置把人劝退。”
风险:Medium。建议检查:是否执行 shell/命令行指令;是否发起外网请求(SSRF/数据外发);文件读写范围与路径穿越风险;依赖锁定与供应链风险。以最小权限运行,并在生产环境启用前审计代码与依赖。
Easy.Platform Framework
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/withdocs/BUSINESS-FEATURES.mdas 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
- Repository Pattern: Use
IPlatformQueryableRootRepository<TEntity, TKey> - Validation: Use
PlatformValidationResultfluent API (never throw) - Side Effects: Use entity event handlers (never in command handlers)
- CQRS: Command + Result + Handler in ONE file
- DTO Mapping: DTOs own mapping via
MapToEntity()
Frontend
- Component Hierarchy:
AppBaseComponent→ Feature Component - State Management:
PlatformVmStorefor complex state - API Services: Extend
PlatformApiService - Subscriptions: Always use
untilDestroyed() - 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
- Study Examples:
src/PlatformExampleAppfor backend,playground-text-snippetfor frontend - Search Codebase: Use grep/glob to find existing patterns
- Check Documentation:
docs/directory for guides,CLAUDE.mdfor patterns - 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.
优点
- 企业应用程序的综合框架
- 支持多种数据库和消息系统
- 遵循最佳实践,如清晰架构和CQRS
缺点
- 新开发人员的学习曲线陡峭
- 对于小型项目来说,复杂性可能过高
- 与更成熟的框架相比,社区支持有限
相关技能
免责声明:本内容来源于 GitHub 开源项目,仅供展示和评分分析使用。
版权归原作者所有 duc01226.
