For notes press S
For print ?print-pdf
For all slides press ESC
We will talk about different technologies in .NET to achieve the same purpose.
DataAccess: EFCore vs Dapper
API: Controllers vs MinimalAPI
CLI : Console App vs ASP.NET Core app
Programming : Records vs Class vs Tuples
OOP: Default Interface methods vs abstract class
Test : XUnit vs MSTest vs NUnit
Data Access
Debate: Code to DB sau DB to Code
Pro EFCore : independenta de BD
Pro EFCORE
Pro Dapper
Contra EFCORE
Contra Dapper
Folosesti doar LINQ si nu te gindesti la Proceduri stocate , SQL pur
Ai control asupra Sql-ului si poti sa faci optimizari
Refacerea modelului daca modific BD ....
Trebuie sa te pricepi la SQL
Se optimizeaza cu Split Queries si AsNoTracking
Daca ai mai multa experienta cu SQL, atunci Dapper este mai usor de folosit
merge lazy loading
Nu merge lazy loading
Crapa la build time, in loc de compile time
Mai putin boilerplate code
read heavy : setup mai greu
Contra 3
Scaffolding ( BD => Code )
Cod mai simplu
Contra 4
Contra 4
API
Pro Minimal API
Pro Controller
Contra Minimal API
Contra Controller
Simplitate - pentru programatori incepatori
Are de toate : Autentificare, Autorizare , request , filter
Stufos dupa o buna perioada de timp
Contra 1
Un punct bun de inceput
Pro 2
Contra 2
Contra 2
Rapid de scris
Pro 3
Lipsesc unele functionalitati - validare cu atribute default
Contra 3
memoria mai mica
bun pentru microservicii ( micro !)
Pro 4
Contra 4
Contra 4
CLI
Pro Console App
Pro ASP.NET Core app
Contra Console App
Contra ASP.NET Core app
Simplu - mai putin layere
Dependency Injection by default
Mai greu de facut logging , monitoring si altele
Start time
Pro 2
Logging, monitoring
Contra 2
Resurse
Pro 3
Scalare si concurenta
Contra 3
Contra 3
Pro 4
Pro 4
Contra 4
Contra 4
Programming
Pro Records
Pro Tuples
Pro Class
Contra Records
Contra Tuples
Contra Class
mai usor de utilizat decit tuplu
daca le folosesti o singura data , atunci named tuple
poti sa comentezi mai usor proprietatile unei clase decit ale unui tuplu / record