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

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

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

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
В связи с тем, что наша аудитория довольно разнообразна по уровню подготовки, стоит периодически вспоминать некоторые основы, которые для новичков станут чем-то новым, а для опытных будут хорошим напоминанием важных моментов. Так вот, сегодня продолжим тему работы с базами данных и остановимся на работе с Sql Server при разработке на C#.

Далее советуем рассмотреть статью, в которой описаны основы SQL Server Connection Pooling в ADO.NET - механизм, при котором в нашем распоряжении имеется некоторый набор («пул») соединений к базе данных. Когда новый пользователь запрашивает доступ к базе данных, ему выдаётся уже открытое соединение из этого пула. Если все открытые соединения уже заняты, создаётся новое. Как только пользователь освобождает одно из уже существующих соединений, оно становится доступно для других пользователей. Если соединение долго не используется, оно закрывается.
В преддверии Нового года хочется подвести некоторые итоги 2019 года, связанные с платформой .Net в целом и с языком C# в частности. В статье описано исследование рынка языков программирования и back-end фреймворков за 2019 год в сравнении с 2018 годом, представлены тренды .Net Core вакансий, и в общем рассказано, что ждет .Net платформу не только в следующем году, а до 2023 года (прогнозные данные). Релиз .Net 5 планируется уже на ноябрь 2020 года, на секундочку.
Вы знакомы с таким понятием, как система управления содержимым (CMS)? CMS представляет из себя ПО, используемое для обеспечения и организации совместного процесса создания, редактирования и управления содержимым (контентом).

Одной из самых популярных CMS является Wordpress, которая написана на языке PHP. Использование CMS в работе обусловлено тем, что вам не требуется писать веб-приложение (в частности, сайт) с нуля, а у вас уже есть какой-то каркас, который вы редактируете или пишите к нему модули. Сегодня мы познакомимся с наиболее популярными ASP.NET Core CMS с открытым исходным кодом.
Очень гибкий и расширяемый API веб-поиска (в качестве движка используется AngleSharp - .NET библиотека, которая парсит HTML, SVG, MathML и XML), с помощью которого вы можете:
- разработать свою собственную специализированную программу или библиотеку;
- разработать новый сервис для сообщества;
- показать результаты, связанные с пользовательским вводом в веб-приложении;
- накопить данные и сохранить их в базе данных для анализа;
- собрать данные и обработать их с помощью такого направления искусственного интеллекта, как обработка естественного языка (Natural Language Processing) или аналогичных технологий.
Судя по реакции на пост с подкастом, то вы одобряете такой формат подачи материала. Сегодня послушаем новогодний подкаст, который затрагивает основополагающие темы, связанные с .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).

Практическую основу работы с данным паттерном вы увидите в статье.