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

About me

ignat Andrei Ignat http://msprogrammer.serviciipeweb.ro/

						System.Console.WriteLine("Ignat Andrei");
						System.Console.WriteLine("Battle");							
						  

YouTube 5 minutes .NET and tools : http://bit.ly/5MinTools

Book Making Open Source Component : http://bit.ly/NetOpenSourceComponent

Book Copy Paste from StackOverflow : https://amzn.to/2PQ8EDc

Roslyn Source Code Generators with examples : https://ignatandrei.github.io/RSCG_Examples/

Monthly meetings: https://www.meetup.com/Bucharest-A-D-C-E-S-Meetup/

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.


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

Thank you for your time