Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
Судя по реакции на пост с подкастом, то вы одобряете такой формат подачи материала. Сегодня послушаем новогодний подкаст, который затрагивает основополагающие темы, связанные с .Net и языком C#, например: рейтинги ЯП, зарплаты .Net разработчиков, сложность и будущее C#8 и многое другое.
На основе материалов статьи мы сегодня разберемся с популярным паттерном «Спецификация» в .Net, который предоставляет возможность описывать требования к бизнес-объектам, и затем использовать их (и их композиции) для фильтрации, не дублируя запросы.
Несмотря на то, что мы уже рассматривали этапы создания .Net Core приложения с использование Docker, стоит вспомнить некоторые моменты (создание проекта с помощью CLI, конфигурация приложения, оборачивание в Docker) со стороны другого автора.

Затем давайте углубимся в практику и разберем основы работы с MongoDB в .NET Core приложении с использованием Docker.
Кроссплатформенная библиотека WebWindow - пример применения web-технологий для создания кроссплатформенных десктопных приложений на .NET Core

- Статья с описанием в блоге
- WebWindow на nuget.org
Предположим, что у нас множество потоков пытаются выполнить запись в переменную, а поток отчета должен читать ее значение в синхронизированном режиме. В таком случае на помощь приходит метод Interlocked.CompareExchange, позволяющий сравнить два значения и если они равны - заменить на требуемое, при этом, он делает это атомарно и возвращает значение, которое было сохранено ранее в этом месте.

Официальная документация
Уязвимости в процессе десериализации в последнее время не теряют свою актуальность, в том числе в .Net приложениях. Важно знать всем, поэтому сегодня знакомимся с настоящим и будущим данной уязвимости с помощью доклада Михаила Щербакова и в конце видео разбираемся с best practices в разработке приложений для избежания ошибок использования сериализаторов, а также рассматриваем подходы снижения рисков эксплуатации таких уязвимостей.

https://youtu.be/xOuaGzFGPG8
👍1
В эпоху микросервисов в любой момент может понадобиться создание собственных шаблонов приложений, служб, средств, библиотек классов, или использование уже доступных шаблонов. И .Net нам может в этом помочь: «dotnet new» и погнали 😎

- Список доступных шаблонов
- Мануал по созданию пользовательского шаблона
- Wiki по шаблонам
Что будет выведено на экран?

List<Action> actions = new List<Action>(); for(var count=0; count<10; count++) { actions.Add(() => Console.WriteLine(count)); } foreach(var action in actions) { action(); }
Anonymous Poll
34%
1) 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
43%
2) 10, 10, 10, 10, 10, 10, 10, 10, 10, 10
19%
3) Сгенерируется исключение
4%
4) 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
Правильный ответ 2. Связано это с тем, что в цикле for в переменную actions будет записано 10 действий WriteLine(count). После 10 итерации цикла for переменная count примет значение 10, а когда будем пробегаться по циклу foreach, мы будем вызывать подряд 10 методов Console.WriteLine(count) из списка actions, где count = 10.
Unity — это хороший выбор для новичков в геймдеве. Сделай шаг к карьере мечты! Участвуй в бесплатном онлайн-интенсиве от Skillbox.

Подробности по ссылке: 👉 https://clc.to/Bx4YOw

🚀 За три вечера ты создашь свою первую игру, даже если никогда не программировал.

⭐️ Сможешь обсудить ошибки с другими участниками интенсива и задать спикеру любые вопросы.

🎉 Авторы трёх лучших проектов выиграют грант на обучение в Skillbox.
Вы уже знакомы с GraphQL? Упрошаем себе жизнь в плане работы с GraphQL с помощью «Hot Chocolate» – GraphQL-сервер, включающий готовый набор компонентов для реализации GraphQL API, написанный на C# для .Net Core и .Net Framework.

Всю информацию вы найдете:
- на главном сайте: https://hotchocolate.io;
- в репозитории: https://github.com/ChilliCream/hotchocolate.
Пусть вас не пугает объем, но здесь для вас чуть больше 200 слайдов про тестирование в общем и про мутационное тестирования в частности, а также как его применить в .NET Core.
Рекомендуемым паттерном для асинхронного программирование в .NET Framework является асинхронное программирование на основе задач (task-based asynchronous programming, TAP).

Практическую основу работы с данным паттерном вы увидите в статье.
Все используют исключения в своих проектах, но не все задумываются об эффективности их использования. В статье собраны некоторые лучшие практики по работе с исключениями в C#: https://blog.elmah.io/csharp-exception-handling-best-practices/
Как вам такое?

Постоянно обновляемая карта знаний для .NET-разработчиков (от Trainee до Senior) с уклоном в веб-разработку, т.к. именно она не перестаёт набирать обороты.

Пользуйтесь данными материалами для самообучения, поиска пробелов в знаниях, подготовки к собеседованиям и ещё многого другого: https://youit.pro/map/dotnetweb
«.NET сексуален и вам следует знать об этом!» – именно так называется краткая статья об основах разработки приложений и веб-сайтов с помощью платформы .NET Core и о том, что данная платформа ничем не уступает всяким там NodeJS И RubyRails. 😎

https://medium.com/clean-code-channel/net-is-sexy-1b4e40f9014
Что же все-таки отличает ASP.NET Core от классического .NET? Конечно это такие основные вещи, как Inversion of Control (IoC), Dependency Injection (DI), Dependency Inversion Principle (DIP), Interseptors, Middleware, Filters. Собственно про них и пойдет речь в статье: https://medium.com/webbdev/asp-509ac1eb793
#MoscowTravelHack

Такого ещё не было! Первый в России хакатон по созданию цифровых решений для туризма Moscow Travel Hack. Придумай новые продукты для путешественников и жителей города. Задачи на хакатон предложили 10 партнёров: «МегаФон», Facebook, PANORAMA 360, MTS Startup Hub, «Аэроэкспресс», Пушкинский музей, «Царицыно», Discover Moscow, «Город открытий» и Russpass.

В каждый трек пройдет по 5 команд. Среди призов — не только 100 000 рублей, но и возможность реализовать проект с партнёрами после хакатона. Придумывать решение заранее не обязательно! Подать заявку можно индивидуально или командой.

Успей до 28 января!
Подробности на сайте travelhack.moscow