C# 1001 notes
Відкрити в Telegram
Регулярные короткие заметки по C# и .NET. Просто о сложном для каждого. admin - @haarrp
Показати більше6 611
Підписники
-724 години
+477 днів
+4730 день
Архів дописів
6 611
⚡️ Погружаемся в замыкания на C#
Данная статья раскроет принципы работы и теорию замыканий в C# на примерах .
📌Статья
@csharp_ci
6 611
Привет! Мы в МТС активно поддерживаем ИТ-сообщество в России и запускаем всероссийскую олимпиаду по программированию с главным призом в 3 млн рублей.
Для кого? Для школьников, студентов и действующих ИТ-специалистов.
Что будет? Блок онлайн-заданий, митапы и мастер-классы, общение в закрытом Telegram-канале и финальный очный тур с программированием на скорость. Когда олимпиада завершится, мы создадим True Tech Community, где будем делиться полезными и эксклюзивными материалами для разработчиков.
А что еще? Финалистов ждет afterparty, фестиваль технологий, интерактив, квесты, карьерные стенды, где лучшие специалисты смогут получить оффер от МТС.
Регистрация уже открыта! Подробности по ссылке. Ждем тебя!
Реклама. ПАО "МТС". ИНН 7740000076. erid: LjN8K7znt
6 611
🖥 Запуск приложений на .NET в качестве службы на Linux-системе с systemd
В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.
Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.
Читать: https://habr.com/ru/companies/timeweb/articles/759966/
6 611
⚡Легкий способ получать свежие обновлении и следить за трендами в разработке на вашем языке. Находите свой стек и подписывайтесь:
Data Science: t.me/data_analysis_ml
Java: t.me/javatg
Базы данных: t.me/sqlhub
Машинное обучение: t.me/ai_machinelearning_big_data
Go: t.me/Golang_google
C/C++/ t.me/cpluspluc
C#: t.me/csharp_ci
Хакинг: t.me/linuxkalii
Мобильная разработка: t.me/mobdevelop
Docker: t.me/+0WdB4uvOwCY0Mjdi
Python: t.me/python_job_interview
Rust: t.me/rust_code
Javascript: t.me/javascriptv
React: t.me/react_tg
PHP: t.me/phpshka
Android: t.me/android_its
Linux: t.me/+A8jY79rcyKJlYWY6
Big Data: t.me/bigdatai
Devops: t.me/devOPSitsec
Тестирование:https://t.me/+F9jPLmMFqq1kNTMy
Собеседования: https://t.me/machinelearning_interview
💼 Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
😆ИТ-Мемы: t.me/memes_prog
🇬🇧Английский: t.me/english_forprogrammers
ИИ: t.me/vistehno
📕Ит-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
6 611
Как добавить тесты для существующего кода с методами, которые не являются публичными
https://dev.to/ant_f_dev/how-to-add-tests-for-existing-code-with-methods-that-arent-public-3e5o
@csharp_ci
6 611
🔎 Полное руководство по созданию приложения-клона Google Translate с нуля на .NET
Добрый день! Я действительно взволнован проектом, который мне удалось создать для вас. Я сделал всё возможное, чтобы представить вам что-то с почти полной функциональностью, что-то, что вы можете продемонстрировать в своём портфолио, если вы новичок, и не волнуйтесь, дальше я начну создавать проекты для разработчиков среднего и продвинутого уровня, просто имейте немного терпения, пока я сосредоточен на новых разработчиках .NET.
Сегодняшний проект является клоном приложения Google Translate с использованием Google translate API v2. Я эстет, поэтому я представлю вам красивое приложение, однако оно будет не только «красивым», но также будет переводить текст, определять язык на основе пользовательского ввода, отображать поддерживаемые языки и менять местами пользовательский ввод с результатом перевода. Так что, если вы так же взволнованы, как и я, давайте сделаем это!
▪Статья
▪Полный код
@csharp_ci
6 611
Включение CORS в ASP.NET Core наиболее простым способом
https://dev.to/bytehide/enable-cors-in-aspnet-core-in-the-easiest-way-3c5i
@csharp_1001_notes
6 611
Repost from Bekhan Code
Мне 27 лет. Вот список интересных вещей, которые я делал:
• Разработал проект, позволяющий звонить и рассылать СМС всем незнакомым людям в радиусе 30-50 метров (демонстрировал на съемках с Моргенштерном; 20 млн просмотров).
• Написал ПО (но воспользовался лишь один раз), которое имитировало 10-бальные пробки на всех дорогах Москвы в Яндекс.Картах ещё до того, как это стало мейнстримом (продемонстрировано на съемках с блогером Литвиным).
• На данную тематику вел Instagram и TikTok, где большинство роликов набирало миллионы просмотров.
• Находил уязвимости в Ленте, ГосУслугах, 1500 московских шлагбаумах (мой хабр-пост) и передавал информацию журналистам.
• Создал OSINT-сервис для поиска профилей в Instagram по номеру телефона. 572k просмотров на Хабре.
• Разработал Telegram-клиент с функцией "Двойное дно". Продвигал идею внедрить такую возможность в оригинальный клиент Telegram.
Все выше перечисленное является правдой (никаких фотошопов и фокусов). Эти задумки были реализованы исключительно с целью развития моего личного бренда и не имели экономической выгоды.
Я уже давно не занимаюсь личным брендом, поэтому новых публикаций нет, а перечисленные проекты были закрыты.
В середине ноября 2022 года я поставил себе новую цель — Разработать игру. Не казуальную, не гиперказуальную, а сложную (в техническом смысле) и насыщенную контентом игру с глубоким геймплеем.
Перед тем как расширять штат своей команды или, тем более, открывать новую игровую компанию, я хочу самостоятельно разобраться во всех аспектах разработки игр.
Возможно, у вас возникнет вопрос: Зачем лезть в техническую часть создания игры, если можно найти на аутсорсе команду и делегировать ей разработку? Примерно так я и попробовал сделать. Моя компания стала искать и нанимать Unity-разработчиков. Я успел поработать с несколькими специалистами. К сожалению, ничего дельного из этого не вышло. Качество выполненных задач от ребят меня не устраивало. Как говорится, хочешь сделать хорошо — делай сам. Ну, или так: Хочешь сделать хорошо, то разберись в теме сам, заложи архитектуру и подход к разработке, а только потом делегируй и в дальнейшем контролируй. Такой подход позволит мне контролировать процесс создания игры и получить в результате именно ту игру, которую я хочу.
Прошло уже 10 месяцев с момента старта, и я все еще в процессе обучения. Да, со временем я все больше и больше времени посвящаю написанию кода, но обучение все равно остается неотъемлемой частью процесса.
У меня большой опыт в OSINT и информационной безопасности, но в области GameDev я новичок. Мне пришлось изучать множество новых тем, и еще предстоит столько же. К счастью, многое из моего предыдущего опыта перекликается с GameDev, что облегчает изучение.
Я стараюсь конспектировать любую изученную тему. Опираясь на свой опыт, я понимаю, что со временем наш мозг "стирает" то, что кажется ему "ненужным". Конечно, "ненужная" информация на самом деле могла бы быть ценной, но мозг не консультируется с нами по данному вопросу.
Если я что-то подзабыл (случается это довольно часто), то я иду в свои заметки и через поиск нахожу нужный конспект. Если я наткнулся на отличную статью по интересующей меня теме, то конспект писать уже смысла нет. Я просто сохраняю ссылку (ну, или архивирую веб-страницу для оффлайн доступа, если есть ощущения, что через год сайт закроется). Тем не менее, действительно хороших сайтов или статей, которые бы покрывали вопрос хотя бы на 80 процентов, очень мало.
Если бы все статьи по GameDev (да и не только) были бы с крайне низким порогом входа и покрывали практически все вопросы, которые возникают у читателя, то процесс разработки продуктов мог бы ускориться на один, а то и два порядка (10-100 раз).
Когда я только начинал обучение, я осознавал, что быстро достичь своей цели не удастся. Обучение — это сложный, многоступенчатый и местами скучный процесс. Тем не менее, сейчас я чувствую, что это обучение начинает мне надоедать.
И на фоне этого "надоедания" мне пришла в голову интересная мысль...
(К сожалению, весь текст не влезает в один пост. Продолжение читайте в следующем посте).
6 611
Создание пользовательского протокола URL в .NET
https://dev.to/jamiemcmanus/creating-a-custom-url-protocol-in-net-322h
@csharp_1001_notes
6 611
Создайте свое web-приложение и научитесь эффективно работать в Scrum-команде на онлайн-курсе «C# ASP.NET Core разработчик» в OTUS.
Пройдите вступительный тест и узнайте, осилите ли вы уровень курса. Результат теста получите сразу.
👉 ПРОЙТИ ХАРДКОРНЫЙ ТЕСТ ПО ASP.NЕT
Сможете успешно пройти тест — получите доступ к курсу по специальной цене! Курс доступен в рассрочку.
Нативная интеграция. Информация о продукте www.otus.ru
6 611
Хотите построить масштабную систему?
Рано или поздно вам понадобится ограничение скорости.
Это метод ограничения количества запросов, поступающих к вашему API:
- Улучшает безопасность
- Предотвращает перегрузку
- Уменьшает использование ресурсов
.NET 7 имеет встроенную поддержку ограничения скорости.
@csharp_1001_notes
6 611
Keyed Services в .NET8 Dependency Injection: краткий обзор новой фичи, которая доступна в предварительный версии платформы.
🔗 Читать
6 611
Компания https://plonq.ru/ ищет Инженера-разработчика
Зона ответственности:
-Разработка встраиваемого ПО для устройств.
-Участие в разработке схемотехники (согласование тех. требований, возможна разработка схемотехники новых устройств).
-Поддержание тех. документации на ПО в confluence.
Что важно нам:
-Опыт работы от 2 лет по специальности.
-Опыт работы с микроконтроллерами Nordic nRF52xxx, 53xxx. -Базовые знания современной аналоговой и цифровой схемотехники, достаточные для чтения схем и отладки устройств.
-Использовании системы контроля версий Git.
Будет плюсом:
-Работе с nRF Connect SDK, включая ОС zephyr.
-Использовании C++ для ПО микроконтроллеров.
-Работе с другими микроконтроллерами на ядре Cortex-M4x. -Реализации проектом с объемом выпуска от 100000 изделий в год.
-Настройке и поддержке CI-систем сборки для проектов на микроконтроллерах.
-Разработке схемотехники устройств на микроконтроллерах, в т.ч. с использованием BLE-решений от Nordic.
-Разработке тестовых стендов и тестовых скриптов на Python.
Что мы предлагаем:
-5/2, гибкий график с фиксированными часами присутствия.
-Гибридная работа офис/дом 3/2 либо 2/3 после 1 месяца работы.
-Потребуется работать в офисе с устройствами, "железом".
По всем вопросам: @san9rar
6 611
🚀 Лучшие практики для OpenTelemetry в .NET
https://dateo-software.de/blog/improve-your-applications-observability-with-custom-health-checks
@csharp_1001_notes
6 611
.NET Core
Unit Testing in .NET Core - Getting Started with xUnit.net
https://www.c-sharpcorner.com/article/unit-testing-in-net-core-getting-started-with-xunit-net/
@csharp_1001_notes
6 611
Repost from C# (C Sharp) programming
📣 Внимание C# разрабочики!
Сохраните этот пост и возвращайтесь к нему в любое время, когда вам понадобится освежить в памяти методы LINQ!
@csharp_ci
6 611
Шаблон ASP.NET Core проекта, построенный в соответствии с принципами чистой архитектуры
Цель шаблона — предоставить простой и эффективный подход к разработке корпоративных приложений, используя возможности чистой архитектуры и ASP.NET Core.
С его помощью вы можете легко создать одностраничное приложение с использованием ASP.NET Core + Angular/React, придерживаясь принципов чистой архитектуры.
6 611
20 C# вопросов для собеседования (для опытных разработчиков) 2023
https://dev.to/bytehide/20-c-interview-questions-for-experienced-2023-1hl6
@csharp_1001_notes
6 611
Grouping a Collection
To group a collection using LINQ, you can use the GroupBy() method:
using System.Linq;
List<string> names = new List<string> { "John", "Jane", "Doe" };
var groups = names.GroupBy(x => x.Length);
foreach (var group in groups)
{
Console.WriteLine($"Names with {group.Key} characters:");
foreach (string name in group)
{
Console.WriteLine(name);
}
}
@csharp_1001_notes