В CLR каждый объект в куче имеет указатель на объект-тип. Это нужно для того, чтобы, например, найти значения статических полей и реализацию статических методов для экземпляра типа. Но объект-тип, на который ссылается экземпляр типа так же имеет ссылку на объект-тип и является «экземпляром» для объекта-типа System.Type, объект-тип для которого создается CLR при запуске.
На приведённой схеме объект Manager ссылается на объект-тип Manager, указатель на объект-тип которого ссылается на объект-тип System.Type.
Источник: https://proglib.io/w/932ad628
На приведённой схеме объект Manager ссылается на объект-тип Manager, указатель на объект-тип которого ссылается на объект-тип System.Type.
Источник: https://proglib.io/w/932ad628
Перевод цикла статей, ранее опубликованных на канале, о различиях между VB.NET и C#:
- Часть 1
- Часть 2
- Часть 1
- Часть 2
Хабр
Исчерпывающий список различий между VB.NET и C#. Часть 1
Согласно рейтингу TIOBE в 2018 году VB.NET обогнал по популярности C#. Совпадение или нет, но в феврале Эрик Липперт, один из создателей C#, призвал читателей обратить внимание на блог его...
Описание последних функций производительности .NET, доступных в Visual Studio 2019: https://proglib.io/w/2c51a832
.NET Blog
Learn about the latest .NET Productivity features | .NET Blog
The .NET Productivity team (a.k.a. Roslyn) is constantly thinking of new ways to make .NET developers more productive. We’ve been working hard to take the feedback you’ve sent us and turn it into tools that you want! In this post, I’ll cover some of the latest…
Мечтаешь создавать свои игровые миры и вселенные? Геймдев ждёт тебя! Присоединяйся к бесплатному интенсиву по движку Unity и научись разрабатывать игры с нуля!
Регистрация на интенсив по ссылке: 👉 https://clc.to/JizgCg.
🚀 Тебя ждут три онлайн-эфира и два домашних задания, чтобы закрепить полученные знания.
🚀 В результате под руководством Михаила Овчинникова, методиста Skillbox и программиста с 12-летним опытом, ты сделаешь полноценный проект всего за три вечера.
🎉 Все участники, прошедшие интенсив до конца, получат в подарок электронную книгу Кея Петерсона и Дэвида Колба «Век живи — век учись» от издательства «МИФ», а авторы трёх лучших проектов — сертификаты по 30 000 рублей на любой из курсов Skillbox.
Регистрация на интенсив по ссылке: 👉 https://clc.to/JizgCg.
🚀 Тебя ждут три онлайн-эфира и два домашних задания, чтобы закрепить полученные знания.
🚀 В результате под руководством Михаила Овчинникова, методиста Skillbox и программиста с 12-летним опытом, ты сделаешь полноценный проект всего за три вечера.
🎉 Все участники, прошедшие интенсив до конца, получат в подарок электронную книгу Кея Петерсона и Дэвида Колба «Век живи — век учись» от издательства «МИФ», а авторы трёх лучших проектов — сертификаты по 30 000 рублей на любой из курсов Skillbox.
#вопросы_для_самопроверки
Можно ли объявить делегат не только внутри класса, но и в глобальной области видимости? Если да, то почему?
Можно ли объявить делегат не только внутри класса, но и в глобальной области видимости? Если да, то почему?
Можно, ведь делегат представляет из-себя не просто обертку для метода, а полноценный класс, а класс можно сделать как вложенным в родительский класс, так и просто объявить в глобальной области видимости. То есть делегат можно определить везде, где может быть определен класс.
https://proglib.io/w/932ad628
https://proglib.io/w/932ad628
Вы знаете, что Microsoft Azure предлагает единственную платформу комплексного хостинга для создания приложений .NET и управления ими, что обеспечивает значительную экономию средств, повышение операционной эффективности и гибкости бизнеса. В сегодняшнем материале вы найдете три способа получить выгоду от переноса приложений ASP.NET и данных SQL Server в Azure.
https://proglib.io/w/5c106c4b
https://proglib.io/w/5c106c4b
Azure Blog
Three reasons to migrate your ASP.NET apps and SQL Server data to Azure | Azure Blog | Microsoft Azure
The way we work and live has changed. Over the last several months, enterprises have had to shift their strategy from physical first to digital first and accelerate their digital transformation to enable remote productivity, reduce costs, or rapidly address…
Reactive Extensions (Rx) для .NET представляют из себя набор библиотек для работы с асинхронными и событийными источниками информации. Хотя Rx получил широкое распространение в коде на стороне клиента, его корни лежат в высокомасштабируемой обработке на стороне сервера.
В данном видео вы увидите, почему Rx должен быть важной частью набора инструментов любого разработчика .NET на примере реального приложения, которое показывает, как мощные средства обработки и оркестрации, предоставляемые Rx, могут быть применены для сбора и обработки данных на периферийных устройствах.
https://proglib.io/w/97aaac1f
В данном видео вы увидите, почему Rx должен быть важной частью набора инструментов любого разработчика .NET на примере реального приложения, которое показывает, как мощные средства обработки и оркестрации, предоставляемые Rx, могут быть применены для сбора и обработки данных на периферийных устройствах.
https://proglib.io/w/97aaac1f
YouTube
The Reactive Extensions for .NET
The Reactive Extensions for .NET ("Rx" for short) are a set of libraries for working with asynchronous and event-based information sources. While Rx has become widely adopted in client-side code, its roots are in highly scalable server-side processing. In…
Модификатор
Модификатор
Совместное использование модификаторов
extern
используется для объявления метода с внешней реализацией. При применении служб взаимодействия для вызова неуправляемого кода модификатор extern
обычно используется с атрибутом DllImport
. Метод в данном случае также необходимо объявить как static
: [DllImport("avifil32.dll")]
private static extern void AVIFileInit();
Модификатор
extern
может также определять внешний псевдоним сборки, который позволяет ссылаться на разные версии одного компонента из одной сборки.Совместное использование модификаторов
abstract
и extern
для изменения одного члена недопустимо. Использование модификатора extern
означает, что метод реализуется вне кода C#, а применение модификатора abstract
указывает на то, что в данном классе реализация метода не обеспечивается.Привет! Среди наших подписчиков много деловых, работающих людей, которые часто даже не успевают приготовить себе еду и заказывают доставку, которая уже задолбала.
Вот и хотим вам посоветовать Кухню на районе, способную полностью заменить ежедневную готовку (как мама в детстве).
Кухня на районе — московский сервис доставки готовой домашней еды из под ножа. В чем разница между просто доставкой? Они сами готовят, сами доставляют и всё это максимум за 30 минут. Не все на это способны у себя дома)
Меню имеет огромное разнообразие и меняется каждую неделю. Доставка бесплатна и без минимального заказа. А еще, помимо домашней еды, пицца Zotman и коллаборации с московскими ресторанами.
За 492 рубля вообще можно заказать набор еды на целый день из 5 блюд — это у родителей в столовой на свадьбе дороже было!
А по промокоду PROGLIB вы получите 500 бонусных рублей, которыми можно оплатить до половины заказа. Переходите по ссылке(localkitchen.ru/proglib) заказывайте и приятного аппетита!!!
Вот и хотим вам посоветовать Кухню на районе, способную полностью заменить ежедневную готовку (как мама в детстве).
Кухня на районе — московский сервис доставки готовой домашней еды из под ножа. В чем разница между просто доставкой? Они сами готовят, сами доставляют и всё это максимум за 30 минут. Не все на это способны у себя дома)
Меню имеет огромное разнообразие и меняется каждую неделю. Доставка бесплатна и без минимального заказа. А еще, помимо домашней еды, пицца Zotman и коллаборации с московскими ресторанами.
За 492 рубля вообще можно заказать набор еды на целый день из 5 блюд — это у родителей в столовой на свадьбе дороже было!
А по промокоду PROGLIB вы получите 500 бонусных рублей, которыми можно оплатить до половины заказа. Переходите по ссылке(localkitchen.ru/proglib) заказывайте и приятного аппетита!!!
Кухня на районе
Забирайте 400 бонусов по ссылке! В Кухне можно заказать горячую еду из-под ножа, выгодные холодные блюда, ланчи и наборы на день, а ещё продукты в мини-маркете. У нас больше 55 кухонь, команда райдеров и дружелюбная служба поддержки.
Где и как хранить пользовательские настройки в приложении Blazor WebAssembly: https://proglib.io/w/4d163e3b
Meziantou's blog
Storing user settings in a Blazor WebAssembly application - Gérald Barré
In this post, I describe how to store user settings in an ASP.NET Core Blazor WebAssembly application.
Если в ходе разработки на C# вам понадобилось вернуть пустую коллекцию (массив или список), то рассмотрите данный способ: https://proglib.io/w/ce81711e
Хотите стать универсальным программистом и быть востребованным на рынке?
Научитесь создавать сайты, серверные приложения и десктопные приложения с помощью языка C# от Microsoft на полноценном онлайн-курсе «C# разработчик» в SkillFactory.
Вас ждет практикоориентированное обучение программированию: бэкенд-разработка, фронтенд-разработка и разработка для десктоп приложений на C#, даже если у вас нет технического бэкграунда.
За 12 месяцев обучения вы освоите:
— Программирование на С#: напишите 20+ программ на C#, используя знания алгоритмов и параллельно практикуясь в code review
— SQL и работа с БД: научитесь работать с БД с помощью C# и инструментов .NET
— Backend на C#: запрограммируете серверную часть вашего приложения на C# и создадите и подключите БД к приложению
— Frontend на C#: создадите веб-интерфейс для своего приложения, как с помощью JavaScript, так и с помощью инструментов ASP.NET
— Desktop на C#: создадите десктоп приложения с помощью Windows Presentation Foundation
На протяжении всего обучения у вас будут индивидуальные консультации с ментором, персональный разбор проектов и экспертная поддержка в слаке. А наш карьерный центр поможет с трудоустройством.
🚀Получите курс со скидкой: https://clc.to/iZ33pQ
Научитесь создавать сайты, серверные приложения и десктопные приложения с помощью языка C# от Microsoft на полноценном онлайн-курсе «C# разработчик» в SkillFactory.
Вас ждет практикоориентированное обучение программированию: бэкенд-разработка, фронтенд-разработка и разработка для десктоп приложений на C#, даже если у вас нет технического бэкграунда.
За 12 месяцев обучения вы освоите:
— Программирование на С#: напишите 20+ программ на C#, используя знания алгоритмов и параллельно практикуясь в code review
— SQL и работа с БД: научитесь работать с БД с помощью C# и инструментов .NET
— Backend на C#: запрограммируете серверную часть вашего приложения на C# и создадите и подключите БД к приложению
— Frontend на C#: создадите веб-интерфейс для своего приложения, как с помощью JavaScript, так и с помощью инструментов ASP.NET
— Desktop на C#: создадите десктоп приложения с помощью Windows Presentation Foundation
На протяжении всего обучения у вас будут индивидуальные консультации с ментором, персональный разбор проектов и экспертная поддержка в слаке. А наш карьерный центр поможет с трудоустройством.
🚀Получите курс со скидкой: https://clc.to/iZ33pQ
Библиотека шарписта | C#, F#, .NET, ASP.NET pinned «Хотите стать универсальным программистом и быть востребованным на рынке? Научитесь создавать сайты, серверные приложения и десктопные приложения с помощью языка C# от Microsoft на полноценном онлайн-курсе «C# разработчик» в SkillFactory. Вас ждет пр…»
Что нас ждет в .NET 5 с точки зрения производительности: https://proglib.io/w/cc74ab0c
.NET Blog
Performance Improvements in .NET 5
In previous releases of .NET Core, I’ve blogged about the significant performance improvements that found their way into the release. For each post, from .NET Core 2.0 to .NET Core 2.1 to .NET Core 3.0, I found myself having more and more to talk about.
#вопросы_для_самопроверки
Почему управлять вручную сборкой мусора зачастую нецелесообразно? Приведите пример, когда вызов метода GC.Collect() имеет смысл.
Почему управлять вручную сборкой мусора зачастую нецелесообразно? Приведите пример, когда вызов метода GC.Collect() имеет смысл.
Сборщик мусора сам настраивает пороговые значения для поколений (в зависимости от реального поведения приложения). Как только размер поколения в управляемой куче превышает пороговый, начинается сборка мусора. Поэтому чаще всего следует избегать вызовов GC.Collect().
Но может возникнуть необходимость ручной сборки мусора, если произошло разовое событие, которое привело к уничтожению множества старых объектов. Таким образом, основанные на прошлом поведении приложения прогнозы сборщика мусора окажутся не точными, а сборка мусора окажется весьма кстати.
Источник: https://proglib.io/w/932ad628
Но может возникнуть необходимость ручной сборки мусора, если произошло разовое событие, которое привело к уничтожению множества старых объектов. Таким образом, основанные на прошлом поведении приложения прогнозы сборщика мусора окажутся не точными, а сборка мусора окажется весьма кстати.
Источник: https://proglib.io/w/932ad628
Серия статей о функциональном программировании в C#:
– Основы
– Как избежать использования паттерна Фабрика в C#
– Как избежать изменяемых классов в C#
– Универсальные количественные типы в C#
– Экзистенциально количественные типы в C# (ч. 1, ч. 2 и ч. 3)
– Как избежать использования шаблона Посетитель в C#
– Основы
– Как избежать использования паттерна Фабрика в C#
– Как избежать изменяемых классов в C#
– Универсальные количественные типы в C#
– Экзистенциально количественные типы в C# (ч. 1, ч. 2 и ч. 3)
– Как избежать использования шаблона Посетитель в C#
DEV Community
Functional programming in C#
Functional programming relies on pure functions, which have no side-effects and always return the sam...
ОГО! Спасибо! Очень приятно. Вы так тоже можете сделать: vk.com/proglib