Некоторые соображения о том, как C# 8 помогает с качеством программного обеспечения: https://proglib.io/w/4b9a55e0
Medium
How C# 8 Helps Software Quality
Take a look at how new C# 8.0 language features available now in .NET Core 3 can help improve the quality of released software.
Восьмичасовой видеокурс по созданию полноценного веб-приложения с помощью Blazor: https://proglib.io/w/c500ab91
YouTube
Blazor Course - Use ASP.NET Core to Build Full-Stack C# Web Apps (8 Hours Full Course)
🎁ALL-ACCESS Subscription: Unlock access to all of my courses, both now and in the future at a low $19.99 / month.
https://frankliucs.com/all-access
💎Learn .NET MAUI while creating a Contacts App in .NET 7:
https://frankliucs.com/maui
🔥Learn Blazor while…
https://frankliucs.com/all-access
💎Learn .NET MAUI while creating a Contacts App in .NET 7:
https://frankliucs.com/maui
🔥Learn Blazor while…
Что выведет программа?
Anonymous Quiz
8%
TestValue : 0
40%
TestValue : 10
7%
TestValue : 5
31%
TestValue : 6
14%
Посмотреть результаты
До C# 8 было невозможно комбинировать await и yield return в одном методе, что затрудняло использование асинхронности внутри корутин. Теперь, когда компилятор поддерживает IAsyncEnumerable, это можно сделать естественным образом. В статье описан процесс реализации асинхронных корутин с помощью C# 8 и IAsyncEnumerable.
https://proglib.io/w/a7289f6a
https://proglib.io/w/a7289f6a
DEV Community
Asynchronous coroutines with C# 8.0 and IAsyncEnumerable
Asynchronous coroutines with C# 8.0 and IAsyncEnumerable This article is based on the talk...
Программисты говорят: «Этот язык помогает думать как программируешь и программировать — как думаешь».
Хотите изучить универсальный язык программирования, но не знаете какой выбрать?
Тогда вам в SkillFactory на курс "C++ разработчик"!
За 8,5 месяцев вы научитесь:
— Всем современным стандартам языка С++
— Писать надёжный код и покрывать его тестами
— Работать с SQL и NoSQL базами данных
— Находить узкие места в своей программе и ускорять их в несколько раз.
По окончанию обучения вы сможете стать Junior разработчиком и зарабатывать от 90 тысяч рублей в месяц.
🚀Запишитесь на курс со скидкой 40%: https://clc.am/eZDgWQ
Хотите изучить универсальный язык программирования, но не знаете какой выбрать?
Тогда вам в SkillFactory на курс "C++ разработчик"!
За 8,5 месяцев вы научитесь:
— Всем современным стандартам языка С++
— Писать надёжный код и покрывать его тестами
— Работать с SQL и NoSQL базами данных
— Находить узкие места в своей программе и ускорять их в несколько раз.
По окончанию обучения вы сможете стать Junior разработчиком и зарабатывать от 90 тысяч рублей в месяц.
🚀Запишитесь на курс со скидкой 40%: https://clc.am/eZDgWQ
Учимся использовать инициализаторы модулей .NET на реальных примерах: https://proglib.io/w/3d9606a2
https://www.cazzulino.com
How to use .NET module initializers in a concrete real use case
A blog about .NET, C#, Visual Studio, Mobile, Xamarin and technology
Операция упаковки (boxing) представляет собой процесс преобразования
Операция распаковки (unboxing) извлекает тип значения из объекта.
Понятия упаковки и распаковки лежат в основе единой системы типов C#, в которой значение любого типа можно рассматривать как объект.
Более подробно об этом написано в статье и подкреплено примерами: https://proglib.io/w/e9019ec5
типа значения
в тип object
или в любой другой тип интерфейса, реализуемый этим типом значения. Когда тип значения упаковывается CLR, он инкапсулирует значение внутри экземпляра System.Object и сохраняет его в управляемой куче. Операция распаковки (unboxing) извлекает тип значения из объекта.
Понятия упаковки и распаковки лежат в основе единой системы типов C#, в которой значение любого типа можно рассматривать как объект.
Более подробно об этом написано в статье и подкреплено примерами: https://proglib.io/w/e9019ec5
Курс математики для анализа данных от Proglib и МГУ
Мы предлагаем без отрыва от работы освоить математику для анализа данных.
✅ онлайн-встречи с преподавателями из МГУ в Zoom
✅ подойдет всем, кто хочет вспомнить высшую математику или подготовиться к школе анализа данных Яндекса
🕗 длительность 5 месяцев, по 2 раза в неделю
💸 от 5 350 руб. в месяц.
Мы дарим промокод на скидку 10% до 6 октября — CSHARPPROGLIB
Подробнее о курсе — тут
Программа курса — тут
Мы предлагаем без отрыва от работы освоить математику для анализа данных.
✅ онлайн-встречи с преподавателями из МГУ в Zoom
✅ подойдет всем, кто хочет вспомнить высшую математику или подготовиться к школе анализа данных Яндекса
🕗 длительность 5 месяцев, по 2 раза в неделю
💸 от 5 350 руб. в месяц.
Мы дарим промокод на скидку 10% до 6 октября — CSHARPPROGLIB
Подробнее о курсе — тут
Программа курса — тут
Пошаговое руководство по созданию чистых и поддерживаемых RESTful API с помощью ASP.NET Core.
https://proglib.io/w/491c7052
https://proglib.io/w/491c7052
Medium
An awesome guide on how to build RESTful APIs with ASP.NET Core
A step by step guide on how to implement clean, maintainable RESTful APIs
Библиотека шарписта | C#, F#, .NET, ASP.NET pinned «Курс математики для анализа данных от Proglib и МГУ Мы предлагаем без отрыва от работы освоить математику для анализа данных. ✅ онлайн-встречи с преподавателями из МГУ в Zoom ✅ подойдет всем, кто хочет вспомнить высшую математику или подготовиться к школе…»
Ни для кого не секрет, что со временем приложение может сильно замедлять свою работу из-за роста обрабатываемых данных. Большинство этих проблем с производительностью возникает при объединении двух списков с целью манипулирования данными. В статье описано, как бороться с этой проблемой и сделать приложения на C# быстрее с помощью соединений LINQ.
https://proglib.io/w/b974f23d
https://proglib.io/w/b974f23d
timdeschryver.dev
Make your C# applications faster with LINQ joins
If you don't watch out your C# application might suddenly perform badly. As a solution, we can limit the number of operations with a LINQ Join.
Интересные размышления относительно архитектуры приложений на языке C#:
- Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить
- Архитектура интерпрайз-приложений может быть другой
- Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить
- Архитектура интерпрайз-приложений может быть другой
Хабр
Я десять лет страдал от ужасных архитектур в C# приложениях — и вот нашел, как их исправить
Я второй десяток лет участвую в разработке приложений для бизнеса на .NET и каждый раз вижу одни и те же проблемы — быдлокод и беспорядок. Месиво из сервисов, U...
GeekBrains проводит набор на курсы руководителей команды разработки
Программа обучения онлайн-университета GeekBrains рассчитана на middle- и senior-разработчиков. В течение 6 месяцев слушатели освоят технологии автоматизации разработки, а также методы управления командами, проектами и высоконагруженными системами. Курс разбит на четверти, каждая из которых посвящена одной из ключевых для будущего руководителя компетенций. Практикующие тимлиды с опытом в крупных проектах будут проводить занятия в формате видеолекций с выполнением заданий и разбором персональных кейсов.
Получить дополнительную информацию и записаться можно на сайте: https://proglib.io/w/69ad0053
Программа обучения онлайн-университета GeekBrains рассчитана на middle- и senior-разработчиков. В течение 6 месяцев слушатели освоят технологии автоматизации разработки, а также методы управления командами, проектами и высоконагруженными системами. Курс разбит на четверти, каждая из которых посвящена одной из ключевых для будущего руководителя компетенций. Практикующие тимлиды с опытом в крупных проектах будут проводить занятия в формате видеолекций с выполнением заданий и разбором персональных кейсов.
Получить дополнительную информацию и записаться можно на сайте: https://proglib.io/w/69ad0053
Событие — это сообщение, посланное объектом, чтобы сообщить о совершении действия. Это действие может быть вызвано взаимодействием с пользователем, например при нажатии кнопки, или другой логикой программы, например изменением значения свойства. Объект, вызывающий событие, называется отправителем событий. Отправителю событий не известен объект или метод, который будет получать (обрабатывать) созданные им события.
События являются членами класса и объявляются с помощью ключевого слова
где делегат_события обозначает имя делегата, используемого для поддержки события, а имя_события — конкретный объект объявляемого события.
Как и делегаты, события поддерживают групповую адресацию. Это дает возможность нескольким объектам реагировать на уведомление о событии.
Паттерн Наблюдатель тестно связан с событиями, т. к. его можно часто встретить там, где применяется событийная модель отношений между компонентами. Наблюдатель позволяет отдельным компонентам реагировать на события, происходящие в других компонентах.
Признаки применения паттерна: Наблюдатель можно определить по механизму подписки и методам оповещения, которые вызывают компоненты программы.
Применение данного паттерна описано здесь.
События являются членами класса и объявляются с помощью ключевого слова
event
. Чаще всего для этой цели используется следующая форма: event делегат_события имя_события;где делегат_события обозначает имя делегата, используемого для поддержки события, а имя_события — конкретный объект объявляемого события.
Как и делегаты, события поддерживают групповую адресацию. Это дает возможность нескольким объектам реагировать на уведомление о событии.
Паттерн Наблюдатель тестно связан с событиями, т. к. его можно часто встретить там, где применяется событийная модель отношений между компонентами. Наблюдатель позволяет отдельным компонентам реагировать на события, происходящие в других компонентах.
Признаки применения паттерна: Наблюдатель можно определить по механизму подписки и методам оповещения, которые вызывают компоненты программы.
Применение данного паттерна описано здесь.
Docs
Шаблон разработки Observer
Сведения о конструктивном шаблоне Observer в .NET. Этот шаблон позволяет подписчику регистрироваться у поставщика и получать от него уведомления.
Выпущена третья версия ConsoleAppFramework — инструментария командной строки для .NET Core. В статье описаны новые функции и приведены примеры.
https://proglib.io/w/2ec9e12d
https://proglib.io/w/2ec9e12d
GitHub
GitHub - Cysharp/ConsoleAppFramework: Zero Dependency, Zero Overhead, Zero Reflection, Zero Allocation, AOT Safe CLI Framework…
Zero Dependency, Zero Overhead, Zero Reflection, Zero Allocation, AOT Safe CLI Framework powered by C# Source Generator. - Cysharp/ConsoleAppFramework
Учимся работать с данными в C#
Цикл материалов, в рамках которых рассматриваются следующие темы:
✔️выбор правильного типа данных;
✔️приведение типов и преобразование данных из одного типа в другой;
✔️изменение строковых данных, форматирование строковых данных для отображения и изменение содержимого строки;
✔️обработка массивов, добавление, удаление и сортировка данных.
https://proglib.io/w/1d56ac62
Цикл материалов, в рамках которых рассматриваются следующие темы:
✔️выбор правильного типа данных;
✔️приведение типов и преобразование данных из одного типа в другой;
✔️изменение строковых данных, форматирование строковых данных для отображения и изменение содержимого строки;
✔️обработка массивов, добавление, удаление и сортировка данных.
https://proglib.io/w/1d56ac62
Docs
Работа с переменными данными в консольных приложениях C# (начало работы с C#, часть 4) - Training