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/Battleprez.html
For download https://ignatandrei.github.io/Presentations/Battle.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.

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 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

OOP

Pro Default Interface methods Pro abstract class Contra Default Interface methods Contra abstract class
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

Test

Pro XUnit Pro MSTest Pro NUnit Contra XUnit Contra MSTest Contra NUnit
Pro 1 Pro 1 Pro 1 Contra 1 Contra 1 Contra 1
Pro 2 Pro 2 Pro 2 Contra 2 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

Thank you for your time