SlideShare a Scribd company logo
Вредные советы .NET
разработчикам
Сергей Калинец
steer73
About Me
16 years in the business
In .NET since 2005
Love to code
Technical Architect @ Steer73
Вредные советы .NET разработчикам, Сергей Калинец
Никогда не мойте руки,
Шею, уши и лицо.
Это глупое занятье
Не приводит ни к чему.
Вновь испачкаются руки
Шея, уши и лицо.
Так зачем же тратить силы
Время попусту терять.
Стричься тоже бесполезно,
Никакого смысла нет.
К старости сама собою
Облысеет голова.
Вредные советы (Г. Остер)
Вредные советы .NET разработчикам, Сергей Калинец
We are different
• Windows
• GUI
• Visual Studio
• Remote Desktop
Console
• Is dark and old (it’s 2k17, c’mon!)
• Long commands for simple tasks
• Yet another language to know
TL;DR;
• .NET developer should use only what is included in Visual Studio, or
has VS extenstion, or has nuget.
• Every developer on the project should use Visual Studio
• And JS guys
• And they should add their files to *.csproj
Вредные советы .NET разработчикам, Сергей Калинец
First steps on new project
• Architecture
• Solution / project structure
• Layers
• Choosing of database / framework
Project structure
• Make many projects (e.g. at least 5 for datalayer)
• Create lot of folders and namespaces (services, services.core,
services.common, services.common.data)
• Always consider extracting a namespace into separate assembly
Layers (ASP.NET)
• Controller
• Service
• Repository
• DbContext
Data layer
• Only MS SQL (no NoSQL or Postgress)
• Only Entity Framework (no Dapper etc, we don’t want to use SQL in
2017)
• Use Repositories over DbContext (we need to abstract our persistence
layer)
• One Repository per entity
Regions
• Define sections for fields / methods / private / public
• Sections in large classes
• Sections in large methods
Inheritance
• Move commonly used methods into parent classes
• Make protected fields
• All ASP.NET controllers should have abstract parent!!!!
Code contracts
• Make your code even more enterprisy
• Combine with partial classes and TFS permissions
Magic: don’t
• Don’t use automapper
• Don’t use convention based code
Вредные советы .NET разработчикам, Сергей Калинец
Magic: ninject conventions
Вредные советы .NET разработчикам, Сергей Калинец
var? of course not
var addressList = new List<Address>(); // what???
List<Address> addressList = new List<Address>(); // OK
Always full names
var myAddress = addresses.Where(_ => _.Street == "...");
Always full names
var myAddress = addresses.Where(_ => _.Street == "...");
Address myAddress =
addresses.Where(address => address.Street == "...");
Working in Visual Studio
• Install packages via GUI, not package manage console
• Work with git via GUI as well – no console
• Try to avoid extensions
Вредные советы .NET разработчикам, Сергей Калинец
How to deploy?
Troubleshoot?
• Remote desktop (Remote Desktop Connection Manager)
• Zip and copy logs (share your disk and use tsclient)
• Remote debugging
Debugging
Comments
• Increase readability of the code
• Allows to hide unused (now) code
Ghostdoc: your friend
Ghostdoc: your friend
Спасибо

More Related Content

PPTX
История одного успешного ".NET" проекта, Александр Сугак
PPTX
Confoo - Javascript Server Side : How to start
PDF
Intro to Node.js
PPTX
Node.Js: Basics Concepts and Introduction
PPTX
Introduction to Node.js
PDF
Webconf nodejs-production-architecture
PDF
Grunt training deck
PDF
Stripe con 2021 UI stack
История одного успешного ".NET" проекта, Александр Сугак
Confoo - Javascript Server Side : How to start
Intro to Node.js
Node.Js: Basics Concepts and Introduction
Introduction to Node.js
Webconf nodejs-production-architecture
Grunt training deck
Stripe con 2021 UI stack

What's hot (20)

PDF
What's New in ASP.NET Core 3
PDF
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
PDF
Why NodeJS
PDF
Horizontally Scaling Node.js and WebSockets
PPT
Testing Storm components with Groovy and Spock
PDF
Build a chatroom!
PDF
Rapidly Building and Deploying Scalable Web Architectures
PDF
Add a backend and deploy!
PDF
When Will Drupal Die? (Keynote talk)
PDF
Node & Express as Workflow Tools
PPTX
Migrating .NET Application to .NET Core
PDF
React native-meetup-talk
PDF
Why you should consider a microframework for your next web project
PDF
Ipython notebook
PDF
First Step Into NodeJS World
PPTX
Angular + asp.net core + docker na nuvem
PDF
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
PDF
AngularJS performance & production tips
PPTX
Modern JavaScript Talk
PDF
Functional javascript
What's New in ASP.NET Core 3
Node.js Native AddOns from zero to hero - Nicola Del Gobbo - Codemotion Rome ...
Why NodeJS
Horizontally Scaling Node.js and WebSockets
Testing Storm components with Groovy and Spock
Build a chatroom!
Rapidly Building and Deploying Scalable Web Architectures
Add a backend and deploy!
When Will Drupal Die? (Keynote talk)
Node & Express as Workflow Tools
Migrating .NET Application to .NET Core
React native-meetup-talk
Why you should consider a microframework for your next web project
Ipython notebook
First Step Into NodeJS World
Angular + asp.net core + docker na nuvem
Brief Intro to Phoenix - Elixir Meetup at BukaLapak
AngularJS performance & production tips
Modern JavaScript Talk
Functional javascript
Ad

Similar to Вредные советы .NET разработчикам, Сергей Калинец (20)

PDF
Clean architecture with asp.net core
PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
PPTX
ASP.NET MVC Best Practices malisa ncube
PPTX
ASP .NET MVC - best practices
PDF
ASP NET 4 0 in Practice Daniele Bochicchio
PDF
ASP NET MVC in Action 1st Edition Jeffrey Palermo
PDF
ASP NET 4 0 in Practice Daniele Bochicchio
PDF
ASP NET 4 0 in Practice Daniele Bochicchio
PPSX
Web development concepts using microsoft technologies
DOCX
ASP.NET MVC3 RAD
PDF
Architecting a Large Software Project - Lessons Learned
PDF
Asp.net Web Development.pdf
PPTX
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
PDF
Aspnet Mvc 2 In Action 1st Edition Jeffery Palermo Ben Scheirman
PPTX
Clean architecture with asp.net core by Ardalis
PPTX
Learn Mastering-the-NET-Interview 2.pptx
PPTX
Hard Coding as a design approach
PPTX
Whats new in visual studio 2017
PPTX
Mvc summary
PDF
ASP.NET Core in Action (2018).pdf
Clean architecture with asp.net core
ASP NET MVC in Action 1st Edition Jeffrey Palermo
ASP.NET MVC Best Practices malisa ncube
ASP .NET MVC - best practices
ASP NET 4 0 in Practice Daniele Bochicchio
ASP NET MVC in Action 1st Edition Jeffrey Palermo
ASP NET 4 0 in Practice Daniele Bochicchio
ASP NET 4 0 in Practice Daniele Bochicchio
Web development concepts using microsoft technologies
ASP.NET MVC3 RAD
Architecting a Large Software Project - Lessons Learned
Asp.net Web Development.pdf
ITARC15 Workshop - Architecting a Large Software Project - Lessons Learned
Aspnet Mvc 2 In Action 1st Edition Jeffery Palermo Ben Scheirman
Clean architecture with asp.net core by Ardalis
Learn Mastering-the-NET-Interview 2.pptx
Hard Coding as a design approach
Whats new in visual studio 2017
Mvc summary
ASP.NET Core in Action (2018).pdf
Ad

More from Sigma Software (20)

PPTX
Fast is Best. Using .NET MinimalAPIs
PPTX
"Are you developing or declining? Don't become an IT-dinosaur"
PPTX
Michael Smolin, "Decrypting customer's cultural code"
PPTX
Max Kunytsia, “Why is continuous product discovery better than continuous del...
PPTX
Marcelino Moreno, "Product Management Mindset"
PDF
Andrii Pastushok, "Product Discovery in Outsourcing - What, When, and How"
PPTX
Elena Turkenych “BA vs PM: Who' the right person, for the right job, with the...
PPTX
Eleonora Budanova “BA+PM+DEV team: how to build the synergy”
PPTX
Stoyan Atanasov “How crucial is the BA role in an IT Project"
PPTX
Olexandra Kovalyova, "Equivalence Partitioning, Boundary Values ​​Analysis, C...
PPTX
Yana Lysa — "Decision Tables, State-Transition testing, Pairwase Testing"
PPTX
VOLVO x HACK SPRINT
PPTX
Business digitalization trends and challenges
PPTX
Дмитро Терещенко, "How to secure your application with Secure SDLC"
PPTX
Яна Лиса, “Ефективні методи написання хороших мануальних тестових сценаріїв”
PDF
Тетяна Осетрова, “Модель зрілості розподіленної проектної команди”
PDF
Training solutions and content creation
PDF
False news - false truth: tips & tricks how to avoid them
PPTX
Анна Бойко, "Хороший контракт vs очікування клієнтів. Що вбереже вас, якщо вд...
PPTX
Дмитрий Лапшин, "The importance of TEX and Internal Quality. How explain and ...
Fast is Best. Using .NET MinimalAPIs
"Are you developing or declining? Don't become an IT-dinosaur"
Michael Smolin, "Decrypting customer's cultural code"
Max Kunytsia, “Why is continuous product discovery better than continuous del...
Marcelino Moreno, "Product Management Mindset"
Andrii Pastushok, "Product Discovery in Outsourcing - What, When, and How"
Elena Turkenych “BA vs PM: Who' the right person, for the right job, with the...
Eleonora Budanova “BA+PM+DEV team: how to build the synergy”
Stoyan Atanasov “How crucial is the BA role in an IT Project"
Olexandra Kovalyova, "Equivalence Partitioning, Boundary Values ​​Analysis, C...
Yana Lysa — "Decision Tables, State-Transition testing, Pairwase Testing"
VOLVO x HACK SPRINT
Business digitalization trends and challenges
Дмитро Терещенко, "How to secure your application with Secure SDLC"
Яна Лиса, “Ефективні методи написання хороших мануальних тестових сценаріїв”
Тетяна Осетрова, “Модель зрілості розподіленної проектної команди”
Training solutions and content creation
False news - false truth: tips & tricks how to avoid them
Анна Бойко, "Хороший контракт vs очікування клієнтів. Що вбереже вас, якщо вд...
Дмитрий Лапшин, "The importance of TEX and Internal Quality. How explain and ...

Recently uploaded (20)

PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Which alternative to Crystal Reports is best for small or large businesses.pdf
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
ISO 45001 Occupational Health and Safety Management System
PDF
top salesforce developer skills in 2025.pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Introduction to Artificial Intelligence
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PPT
Introduction Database Management System for Course Database
PPTX
ManageIQ - Sprint 268 Review - Slide Deck
2025 Textile ERP Trends: SAP, Odoo & Oracle
Which alternative to Crystal Reports is best for small or large businesses.pdf
How to Migrate SBCGlobal Email to Yahoo Easily
ISO 45001 Occupational Health and Safety Management System
top salesforce developer skills in 2025.pdf
Odoo Companies in India – Driving Business Transformation.pdf
Operating system designcfffgfgggggggvggggggggg
Design an Analysis of Algorithms I-SECS-1021-03
Raksha Bandhan Grocery Pricing Trends in India 2025.pdf
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Wondershare Filmora 15 Crack With Activation Key [2025
System and Network Administraation Chapter 3
Design an Analysis of Algorithms II-SECS-1021-03
Introduction to Artificial Intelligence
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Introduction Database Management System for Course Database
ManageIQ - Sprint 268 Review - Slide Deck

Вредные советы .NET разработчикам, Сергей Калинец