Skip to content

About

Material suport pentru Laboratorul PSSC

Resources

Stars

2 stars

Watchers

2 watching

Forks

Repository files navigation

Laborator PSSC — Proiectarea Sistemelor Software Complexe

Materialele de laborator pentru cursul de Proiectarea Sistemelor Software Complexe (PSSC). Exemplele urmăresc publicarea notelor unui examen; temele de laborator urmăresc coșul de cumpărături al unui magazin virtual. Ambele domenii sunt modelate în stil Domain-Driven Design funcțional, după cartea lui Scott Wlaschin, Domain Modeling Made Functional.

Cerințe preliminare

  • .NET 10 SDK — versiunea exactă e fixată în global.json; verificați cu dotnet --version.
  • Un IDE: Visual Studio 2026, JetBrains Rider 2025.3+ sau VS Code + C# Dev Kit.
  • Docker Desktop (opțional) — necesar pentru rularea locală a Lucrărilor 4-8 (SQL Server și emulatorul Azure Service Bus); vedeți compose.yaml.
  • GitHub Copilot sau un asistent AI echivalent (ChatGPT, Claude) — pentru Lucrarea 9.

De ce .NET 10?

Exemplele folosesc C# 14 (membri de extensie extension(...), cuvântul cheie field) și nu compilează cu SDK-uri mai vechi. Fișierul global.json fixează SDK-ul folosit de dotnet la rădăcina depozitului. Dacă build-ul raportează o versiune de limbaj nesuportată (de exemplu CS9260, CS8652) sau NETSDK1045, instalați .NET 10 de la dotnet.microsoft.com.

Lucrări

# Lucrare Concepte Cod
1 Mediul de lucru și aplicații consolă record, switch expressions, with —
2 Sistem de tipuri DDD obiecte-valoare, stări închise, Result Lucrarea-02/Exemple/Examples.slnx
3 Workflow DDD operații pure, compunere, evenimente și erori, teste Lucrarea-03/Exemple/Examples.slnx
4 Introducere în EF Core DbContext, DbSet, mapare SQL-first Lucrarea-04/Exemple/Examples.slnx · SQL/create-db.sql
5 Persistență cu EF Core repository-uri, I/O la marginile workflow-ului Lucrarea-05/Exemple/Examples.slnx · SQL/create-db.sql
6 API Web ASP.NET Core, API minimal, OpenAPI Lucrarea-06/Exemple/Examples.slnx
7 Comunicare sincronă HttpClient tipizat, reziliență, contracte partajate Lucrarea-07/Exemple/Examples.slnx
8 Comunicare asincronă evenimente, Azure Service Bus, worker Lucrarea-08/Exemple/Examples.slnx
9 Proiectare asistată de AI Event Storming, GitHub Copilot referință: Lucrarea 3
— Proiect proiectul de semestru —

Structura unui laborator

Fiecare Lucrarea-NN/README.md descrie tema și cerințele, iar Lucrarea-NN/Exemple/ conține o soluție exemplu (Examples.slnx) care ilustrează conceptele. Proiectele Examples.Functional, Examples.Domain, Examples.Domain.Tests, Examples.Data și SQL/create-db.sql sunt identice în Lucrările 3-8, iar SQL/create-db.sql și fișierele Exemple/Directory.* sunt partajate și cu Lucrarea 4 (verificat automat de tools/Check-LabConsistency.ps1); o corecție într-unul dintre ele se propagă cu pwsh tools/Sync-Labs.ps1 -Source 08 -Target "07","06","05","04","03". Dacă lucrați dintr-o copie a unui singur laborator, copiați și fișierele din rădăcina depozitului (global.json, .editorconfig, NuGet.config) — fără ele, dotnet build nu găsește versiunile pachetelor NuGet.

Fiecare laborator cu cod are în Lucrarea-NN/docs/adr/ un Architecture Decision Record (ADR) cu decizia pe care o adaugă față de laboratorul anterior, alternativele respinse și consecințele lor. Excepție face Lucrarea 4, o introducere în EF Core fără model de domeniu; deciziile de persistență sunt documentate în ADR-0003 (Lucrarea 5). Lanțul se citește ca istoricul arhitecturii exemplului: ADR-0001 sistemul de tipuri → ADR-0002 operații și workflow → ADR-0003 persistență → ADR-0004 API Web → ADR-0005 comunicare sincronă / ADR-0006 comunicare asincronă.

Referințe

[1] Scott Wlaschin, Domain Modeling Made Functional, Pragmatic Bookshelf, 2018

About

Material suport pentru Laboratorul PSSC

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages