Welcome to Battle
Press
space to navigate.
Press left arrow to go back.
Press right arrow to go forward.
Online at https://ignatandrei.github.io/Presentations/Battle2025prez.html
For download https://ignatandrei.github.io/Presentations/Battle2025.zip
We will talk about different technologies in .NET to achieve the same purpose.
example :
OOP: Default Interface methods
vs abstract class
Test : XUnit
vs MSTest
vs NUnit
First time ( press down arrow)
DataAccess: EFCore vs Dapper
API: Controllers vs MinimalAPI
CLI : Console App vs ASP.NET Core app
Programming : Records vs Class vs Tuples
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
|
Contra 1
|
Contra 1
|
Contra 1
|
Bun la partea de dto,event, query results
|
Pro 2
|
Pro 2
|
Contra 2
|
Contra 2
|
Contra 2
|
Partea de egalitate
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
Contra 4
|
Default Interface vs Abstract Class
Pro Default Interface methods
|
Pro abstract class
|
Contra Default Interface methods
|
Contra abstract class
|
Interfetele nu ar trebui sa aiba implementari
|
Vrei sa mostenesti implementari
|
Daca adaugi la o interfata, trebuie sa o implementezi in toate clasele
|
Poti sa adaugi fara sa iti dai seama daca tin seama de clasa respectiva
|
Poti sa implementezi mai multe interfete
|
Rapiditate de executie
|
IAsyncDisposable
|
Contra 2
|
Il obligi pe dezvoltator sa implementeze metodele respective
|
Pro 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
Testing frameworks
Pro XUnit
|
Pro MSTest
|
Pro NUnit
|
Contra XUnit
|
Contra MSTest
|
Contra NUnit
|
Personal : mai usor de utilizat .
|
Integrat mai bine cu Visual Studio
|
Pro 1
|
Load de date pe tests
|
Contra 1
|
Contra 1
|
Se face dispose la clasa de test
|
Pro 2
|
Pro 2
|
Assert.Throws generic, nu cu tip de exceptie
|
Contra 2
|
Contra 2
|
Pro 3
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
Contra 4
|
Swagger on Dev vs Postman
Pro Swagger
|
Pro Postman
|
Contra Swagger On Dev
|
Contra Swagger On Prod
|
Usor de vazut ce se intimpla in API
|
Pro 1
|
Contra 1
|
Security by Obscurity
|
Pro 2
|
Pro 2
|
Contra 2
|
Contra 2
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
UnitOfWork vs Repository
Pro Unit Of Work
|
Pro Repository
|
Contra Unit Of Work
|
Contra Repository
|
Pro 1
|
Pro 1
|
Contra 1
|
Contra 1
|
Pro 2
|
Pro 2
|
Contra 2
|
Contra 2
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
WebAPI vs Azure Functions
Pro WebAPI
|
Pro Azure Functions
|
Contra WebAPI
|
Contra Azure Functions
|
Pro 1
|
Pro 1
|
Contra 1
|
Contra 1
|
Pro 2
|
Pro 2
|
Contra 2
|
Contra 2
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|
SqlServer on local vs Azure Sql
Pro SqlServer on local
|
Pro Azure Sql
|
Contra SqlServer on local
|
Contra Azure Sql
|
Pro 1
|
Pro 1
|
Contra 1
|
Contra 1
|
Pro 2
|
Pro 2
|
Contra 2
|
Contra 2
|
Pro 3
|
Pro 3
|
Contra 3
|
Contra 3
|
Pro 4
|
Pro 4
|
Contra 4
|
Contra 4
|