C# 1001 notes
Kanalga Telegram’da o‘tish
Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp
Ko'proq ko'rsatish6 539
Obunachilar
-324 soatlar
-17 kunlar
-230 kunlar
Postlar arxiv
6 538
🖥 FluentMigrator — фреймворк для миграции БД, написанный на C#
—
dotnet add package FluentMigrator --version 5.2.0
FluentMigrator позволяет создавать миграции как классы, производные от базового класса Migration и имеющие атрибут Migration с уникальным номером версии.
При запуске FluentMigrator достаточно указать, на какую версию нужно мигрировать, и он запускает все необходимые миграции, чтобы привести вашу базу данных к этой версии.
Помимо поддержки прямой миграции, FluentMigrator также поддерживает различные способы выполнения миграций, включая выборочные миграции, и выполнение произвольного SQL.
🖥 GitHub
@csharp_ci6 538
Хотите освоить исключения в С# и нюансы работы с ними?
Хорошие новости — всего за пару часов вы сможете:
◽провести обзор по тому, что такое исключения и как можно отлавливать и обрабатывать их;
◽рассмотреть общие и некоторые частные случаи по работе с исключительными ситуациями в .NET;
◽получить ответы на все свои вопросы.
Ждём вас на открытом практическом уроке от OTUS!
Спикер Павел Нилов — опытный Fullstack-разработчик на стеке C#(.NET) и Javascript (React).
Встречаемся в преддверии старта курса «C# Developer. Professional». Все участники вебинара получат специальную цену на обучение!
➡️ Пройдите короткий тест прямо сейчас, чтобы не пропустить бесплатный урок
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 538
+2
🖥 xUnit — фреймворк и CLI для юнит-тестирования .NET-приложений
—
dotnet add package xunit --version 2.9.0
Если кто вдруг не использовал xUnit для тестирования своих приложений, то самое время это сделать — это неплохой и проверенный временем инструмент.
Особенности xUnit:
— проверка исключений делается ассертами, а не атрибутами, что больше соответствует стилю AAA (Assert.Throws, Record.Exception). Внутри исключения ловятся try-catch блоком.
— вместо специальных атрибутов xUnit использует естественные возможности C# (IDisposable, IClassFixture, ICollectionFixture)
🖥 GitHub
🟡 Быстрый старт
@csharp_ci6 538
☝Для программистов важно понимать устройство и организацию оперативной памяти — от этого зависит надёжность и производительность кода. Особенно критично это для тех, кто пишет на C, где есть уйма возможностей для ручного управления памятью: malloc, jemalloc, tcmalloc, mimalloc...
👉Узнайте больше на бесплатном авторском вебинаре Дмитрия Кириллова «Написание расширения PostgreSQL на языке С»: регистрация
На уроке узнаете:
- как устроена оперативная память на уровне операционной системы
- что происходит при динамическом распределении памяти (и зачем нужны специализированные аллокаторы)
- как грамотно управлять памятью, чтобы повысить качество своего кода
🤝Понравится вебинар — продолжите обучение на онлайн-курсе «Программист С» по специальной цене!
erid: LjN8JuFoY
6 538
+2
🖥 DynamicData — фреймворк C#, позволяющий работать с изменяющимися коллекциями в реактивном стиле
—
dotnet add package DynamicData --version 8.4.1
DynamicData — это фреймворк, который позволяет использовать всю мощь реактивных расширений при работе с коллекциями. Реактивные расширения из коробки не предоставляют оптимальных способов для работы с изменяющимися наборами данных, и задача DynamicData — исправить это.
Современные приложения довольно сложны, и зачастую возникает необходимость создавать проекции коллекций — фильтровать, трансформировать или сортировать элементы. DynamicData был разработан как раз чтобы избавиться от того невероятно сложного кода, который потребовался бы нам для управления динамически меняющимися наборами данных.
DynamicData активно развивается и дорабатывается, и уже сейчас поддерживается более 60 операторов для работы с коллекциями.
🖥 GitHub
🟡 Доки
@csharp_ci6 538
🖥 FluentMigrator — фреймворк для миграции БД, написанный на C#
—
dotnet add package FluentMigrator --version 5.2.0
FluentMigrator позволяет создавать миграции как классы, производные от базового класса Migration и имеющие атрибут Migration с уникальным номером версии.
При запуске FluentMigrator достаточно указать, на какую версию нужно мигрировать, и он запускает все необходимые миграции, чтобы привести вашу базу данных к этой версии.
Помимо поддержки прямой миграции, FluentMigrator также поддерживает различные способы выполнения миграций, включая выборочные миграции, и выполнение произвольного SQL.
🖥 GitHub
@csharp_ci6 538
⚡️Лучший способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
C++ t.me/cpluspluc
Devops: t.me/devOPSitsec
Машинное обучение: t.me/ai_machinelearning_big_data
АНАЛИЗ Данных: t.me/data_analysis_ml
Хакинг: t.me/linuxkalii
Linux: t.me/linuxacademiya
Базы данных: t.me/sqlhub
C#: t.me/csharp_ci
Golang: t.me/Golang_google
Java: t.me/javatg
React: t.me/react_tg
Javascript: t.me/javascriptv
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
PHP: t.me/phpshka
Android: t.me/android_its
Big Data: t.me/bigdatai
Собеседования МЛ: t.me/machinelearning_interview
Python подготовка с собесу: t.me/python_job_interview
МАТЕМАТИКА: t.me/data_math
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
C++ папка: https://t.me/addlist/CdBs5DLepLJmZjY6
C# папка: https://t.me/addlist/u15AMycxRMowZmRi
Java папка: https://t.me/addlist/ZM3J6oFNAnRlNWU6
FRONTEND папка: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Linux папка: https://t.me/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
6 538
Краткий совет по C# за 5 секунд 🚀
Существует простой способ инициализации словаря!
В предыдущих версиях C# для инициализации словаря, мы применяли громоздкий подход.
Однако в C# 12 используется более лаконичный синтаксис инициализации.
Вместо использования нового оператора вы можете использовать только скобки [].
Я привык к новой практике. Что насчет вас?
@csharp_1001_notes
6 538
+2
💻EdgeDB — open-source БД с декларативной схемой, встроенной системой миграции и языком запросов нового поколения
—
curl https://sh.edgedb.com --proto '=https' -sSf1 | sh
EdgeDB — это БД, поддерживающая сложные иерархические запросы; EdgeDB собрала в себе лучшее реляционных БД, графовых БД и ORM.
🖥 GitHub
🟡 Доки
@csharp_1001_notes6 538
👩💻 Устали от постоянных ошибок в своем C#-коде? Часто замечаете проблемы с тестированием и не знаете, как правильно эмулировать классы?
Представьте себе мир, где ваш код становится надежным и тесты проходят безупречно. Вы уверены в ПО, оно прошло тщательное тестирование с использованием библиотек xUnit и NSubstitute. Ваши классы эмулируются без проблем, и все работает как часы.
📆 Хотите это реализовать? Приглашаем на открытый вебинар «Тестируем код при помощи xUnit и NSubstitute» 4 июля в 20:00 мск.
Вы узнаете, как эффективно проводить тестирование C#-кода с использованием библиотеки xUnit и освоите эмуляцию классов при помощи NSubstitute.
Не упустите возможность сделать ваш код надежным и продуктивным. Встречаемся в преддверии старта курса C# Developer. Professional. Все участники вебинара получат специальную цену на обучение!
➡️Регистрируйтесь прямо сейчас, чтобы посетить бесплатный урок
Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
6 538
+1
🖥 Kiota — позволяет создавать клиенты для вызова любого API, описанного в OpenAPI
—
dotnet tool install --global Microsoft.OpenApi.Kiota
Kiota — это CLI на C# для генерации API-клиента для вызова любого интересующего API, описанного в OpenAPI.
Kiota построена на базе библиотеки Microsoft.OpenAPI.NET, чтобы обеспечить всестороннюю поддержку API, использующих описания OpenAPI. Одна из целей проекта — обеспечить наилучшую поддержку генератора кода для функций OpenAPI и JSON Schema.
Быстрый старт с Docker:
docker run -v ${PWD}:/app/output mcr.microsoft.com/openapi/kiota \
generate --language typescript -n gfx -d \
https://raw.githubusercontent.com/microsoftgraph/msgraph-sdk-powershell/dev/openApiDocs/v1.0/Mail.yml
🖥 GitHub
🟡 Доки
@csharp_1001_notes6 538
Хотите создавать архитектуры, которые выдерживают огромные нагрузки, как в крупнейших российских и международных компаниях?
Присоединяйтесь к курсу «Highload Architect»! Вы научитесь использовать в своих проектах решения, которые выдерживают сотни тысяч и даже миллионы запросов в секунду, сможете правильно оптимизировать работоспособность серверов и станете востребованным специалистом для развивающихся компаний.
👨💻 Программа подходит для веб-разработчиков, тимлидов, архитекторов, технических руководителей и SRE-специалистов. Готовы к вызовам высоких нагрузок?
Успейте начать обучение со скидкой 5%🤑 (акция до 30.06)🤑
Пройдите вступительный тест, чтобы занять место в группе по спеццене: https://otus.pw/cxDU/?erid=LjN8Jt2RL
6 538
+1
🖥 ApiEndpoints — проект для поддержки эндпойнтов API в веб-приложениях ASP.NET Core
—
dotnet add package Ardalis.ApiEndpoints --version 4.1.0
ASP.NET Core эндпойнты API — это, по сути, Razor Pages для API. Они позволяют иметь 1 файл для логики и связанные с ним файлы для разных моделей.
При работе с ApiEndpoints можно организовать эндпойнты как угодно: сгруппировать по функциям, держать в огромной папке Endpoints — это не имеет значения, они всё равно будут работать
🖥 GitHub
@csharp_ci6 538
🖥 GrandNode — платформа e-Commerce с открытым исходным кодом на .NET Core
GrandNode — это интуитивно понятная платформа, позволяющая гибко разрабатывать интернет-магазины.
Основана на MongoDB, полностью бесплатная, позволяет поддерживать различные бизнес-модели: B2B, B2C, Multi-Store, Multi-Vendor, Multi-Tenant, Multi-Language, Multi-Currency.
Быстрый старт с Docker:
docker run -d -p 127.0.0.1:27017:27017 --name mongodb mongo
docker run -d -p 80:8080 --name grandnode2 --link mongodb:mongo grandnode/grandnode2
🖥 GitHub
🟡 Доки
🟡 Как может выглядеть магазин с GrandNode
@csharp_ci6 538
⚡️Лучший способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
C#: t.me/csharp_ci
Машинное обучение: t.me/ai_machinelearning_big_data
АНАЛИЗ Данных: t.me/data_analysis_ml
Хакинг: t.me/linuxkalii
Linux: t.me/linuxacademiya
Базы данных: t.me/sqlhub
C++ t.me/cpluspluc
Golang: t.me/Golang_google
Java: t.me/javatg
React: t.me/react_tg
Javascript: t.me/javascriptv
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/pythonl
Rust: t.me/rust_code
PHP: t.me/phpshka
Android: t.me/android_its
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Собеседования МЛ: t.me/machinelearning_interview
Python подготовка с собесу: t.me/python_job_interview
МАТЕМАТИКА: t.me/data_math
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
C++ папка: https://t.me/addlist/CdBs5DLepLJmZjY6
C# папка: https://t.me/addlist/u15AMycxRMowZmRi
Java папка: https://t.me/addlist/ZM3J6oFNAnRlNWU6
FRONTEND папка: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Linux папка: https://t.me/addlist/w4Doot-XBG4xNzYy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
🧠ИИ: t.me/vistehno
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
6 538
🖥 Sep — самый быстрый .NET csv-парсер
—
dotnet add package Sep --version 0.5.2
Sep — современный, минималистичный, быстрый парсер форматов csv, tsv и т.д.
Кроссплатформенный и совместимый с AOT/NativeAOT.
Имеет продуманный дизайн API и удобную реализацию, заточенную под применение в ML.
🖥 GitHub
@csharp_ci6 538
Ozon Tech ищет C#-разработчиков в департамент Логистики
Это работа с высоконагруженными системами, актуальным стеком и интересными задачами — вся рутина в Ozon автоматизирована.
Что требуется от кандидата:
– уровень middle или senior,
– опыт в коммерческой разработке от 3 лет,
– навыки работы с .NET 8, SQL, брокерами сообщений.
Узнать больше о командах, стеке и задачах и оставить заявку можно тут: https://s.ozon.ru/pezWpZl?erid=LjN8KJVqN
6 538
🖥 ILSpy — декомпилятор сборок .NET
ILSpy — это кроссплатформенный декомпилятор .NET с поддержкой генерации PDB, ReadyToRun, метаданных и не только
А вот
ICSharpCode.Decompiler — движок декомпилятора, используемый в ILSpy:
— dotnet add package ICSharpCode.Decompiler --version 8.2.0.7535
🖥 GitHub
🟡 Расширение для Visual Studio
@csharp_ci6 538
Много вакансий для C#-разработчиков в Ozon Tech
Ведущий e-com страны расширяет департамент Логистики. Набор ведётся в команды, которые отвечают за платформу логистики, интеграции, ПВЗ, возвраты и международное перемещение заказов. Выбор, мягко говоря, есть.
Кого ждут: middle и senior C#-разработчиков.
Коммерческий опыт: от 3 лет.
По хардам: .NET 8, SQL, брокеры сообщений.
Что нужно знать: устройство микросервисной архитектуры.
Откликнуться можно здесь
6 538
+1
🖥 Kiota — генератор кода HTTP-клиента на основе OpenAPI
—
dotnet tool install --global Microsoft.OpenApi.Kiota
Kiota — это CLI на C# для генерации API-клиента для вызова любого интересующего API, описанного в OpenAPI.
API-клиенты Kiota обеспечивают работу с сильной типизацией со всеми функциями, которые ожидаются от высококачественного API SDK, но без необходимости изучать новую библиотеку для каждого HTTP API.
Kiota построена на базе библиотеки Microsoft.OpenAPI.NET, чтобы обеспечить всестороннюю поддержку API, использующих описания OpenAPI. Одна из целей проекта — обеспечить наилучшую поддержку генератора кода для функций OpenAPI и JSON Schema.
Быстрый старт с Docker:
docker run -v ${PWD}:/app/output mcr.microsoft.com/openapi/kiota \
generate --language typescript -n gfx -d \
https://raw.githubusercontent.com/microsoftgraph/msgraph-sdk-powershell/dev/openApiDocs/v1.0/Mail.yml
🖥 GitHub
🟡 Доки
@csharp_1001_notes
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
