Telegram Web
Что такое boxing и unboxing?

Ответ:

Boxing – это процесс преобразования типа значения в тип объекта, а unboxing – извлечение типа значения из объекта. Boxing является неявным, unboxing – явным.

Пример:

int i = 13;
object myObject = i; // boxing
i = (int)myObject; // unboxing


#questions
🛡Хотите строить защищенные и масштабируемые микросервисы с помощью ASP.NET Core?

Присоединяйтесь к открытому уроку 17 апреля в 20:00 МСК и узнайте, как создать безопасные микросервисы с использованием JWT, OpenID Connect, и .NET Aspire. Мы разберем, как защитить API, оптимизировать производительность и внедрить современные подходы к аутентификации и авторизации.

❗️Что разберем:
- Принципы и преимущества архитектуры микросервисов.
- Защиту API с использованием JWT и OpenID Connect.
- Инструменты .NET Aspire для оркестрации сервисов и настройки окружения.
- Реальные шаги по созданию микросервисов, настройке безопасности и работе с Docker.

🚀 Урок пройдет в преддверии старта курса «C# ASP.NET Core разработчик». 🎁 Все участники получат скидку на обучение по промокоду: ASP_NET_04.

Присоединяйтесь

Промокод действителен до 28.04.2025

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
Какая функция корректно сравнивает две подстроки?
Anonymous Quiz
3%
String.Check("hi", "hello");
46%
String.Compare("hi", "hello");
7%
String.Match("hi", "hello");
44%
String.Equal("hi", "hello");
Сталкиваетесь с задачами, когда вам нужно выбрать лучший алгоритм, но не понимаете, как анализировать их сложность? Ваш код может быть медленным или неэффективным, и вы не знаете, как это исправить?

📗На открытом вебинаре 21 апреля в 20:00 мск вы освоите важные инструменты для анализа сложности алгоритмов, улучшите свой навык решения алгоритмических задач и на примере простых алгоритмов сортировки и увидите разницу при применении алгоритмов разной степени сложности.

➡️Регистрируйтесь прямо сейчас и получите скидку на большое обучение «C# Developer» по промокоду SHARP_SPEC_4

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Что означают следующие аббревиатуры в .NET: IL, CIL, MSIL, CLI и JIT?

Ответ:

IL (Intermediate Language)
– это независимый от процессора частично скомпилированный код. Код IL будет скомпилирован в родной машинный код с использованием текущих свойств среды компилятором Just-In-Time (JIT). JIT-компилятор переводит IL-код в код сборки и использует архитектуру процессора целевой машины для выполнения приложения .NET.

В .NET язык IL называется Common Intermediate Language (CIL), а на первых этапах .NET он назывался Microsoft Intermediate Language (MSIL).

CLI (Common Language Infrastructure) – это открытая спецификация, разработанная компанией Microsoft. Это библиотека скомпилированного кода, используемая для развертывания, создания версий и обеспечения безопасности.

В .NET существует два типа CLI: сборки процессов (EXE) и сборки библиотек (DLL). Сборки CLI содержат код на языке CIL, и, как уже упоминалось, при компиляции языков программирования CLI исходный код транслируется в код CIL, а не в объектный код, специфичный для платформы или процессора.

Подведем итоги:

1. При компиляции исходный код сначала транслируется в IL (в .NET это CIL, а ранее назывался MSIL).
2. Затем CIL собирается в байткод и создается сборка CLI.
3. Перед выполнением кода CLI-код проходит через JIT-компилятор среды выполнения для генерации родного машинного кода.
4. Процессор компьютера выполняет родной машинный код.


#questions
Основы мультиплеера в Unity с использованием Photon

Мультиплеер в Unity — это не только про синхронизацию объектов, но и про грамотную архитектуру сетевого взаимодействия. Многие новички сталкиваются с хаосом и багами уже на старте, неправильно понимая, как работает сетевой обмен. На вводном занятии разберёмся, как работает Photon, как быстро собрать простую мультиплеерную сцену и избежать типичных ошибок. Вы получите фундаментальные знания, на которых уже можно строить серьёзные сетевые проекты.

👉 Узнайте на открытом вебинаре:
• основные принципы работы Photon
• создание комнаты и подключение игроков
• синхронизация объектов и RPC
• типичные ошибки новичков и как их избежать

Встречаемся в преддверии старта курса «Unity Game Developer. Basic».

👉Регистрация и подробности о курсе: https://vk.cc/cMcFuw

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Параллельное программирование на C#

Автор:
Танвар Шакти
Год издания:
2021

#csharp #ru

Скачать книгу
🧑🏻‍💻Хотите быть в курсе новейших возможностей C++? Откройте для себя самые актуальные фичи C++20 и C++23, которые сделают вашу работу с кодом проще и эффективнее.

На открытом вебинаре мы подробно разберем ключевые нововведения языка — от концептов и модулей до рендж-адаптеров и улучшений в форматировании. Вы научитесь использовать новейшие инструменты для повышения производительности и улучшения архитектуры ваших проектов.

Применяя концепты, ограничения и модули, вы сможете писать более читаемый и обобщенный код, который соответствует последним стандартам C++. Эти навыки помогут вам работать с современными абстракциями и значительно повысить эффективность кода.

👉Пройдите открытый урок в преддверие старта курса «C++ Developer. Professional» и получите скидку на обучение! Присоединяйтесь 27 мая в 20:00 МСК и откройте для себя мир возможностей C++: https://vk.cc/cMcFRe

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Задачка: Проверка, содержит ли строка только одинаковые символы

Напишите функцию, которая возвращает true, если все символы в строке одинаковы, и false в противном случае.

Примеры:
isIdentical("aaaaaa") ➞ true
isIdentical("aabaaa") ➞ false
isIdentical("ccccca") ➞ false

Пишите ваши варианты в комментариях. Ответ будет в канале вечером.

#задача
Разработчики, девопсы, сисадмины: 📲 внимание, внимание!

Похоже, эпоха открытого исходного кода идёт к концу: одна за одной наши любимые бесплатные C#-библиотеки становятся платными. И что же теперь делать? Давайте соберёмся вместе и подумаем.
Приглашаем вас на открытую онлайн-дискуссию «Библиотеки C# уходят в платную сферу: конец эры опенсорса?»


📌Узнаете, какие библиотеки уже стали платными и что ждёт экосистему дальше
📌Узнаете, чем конкретно можно заменить ту или иную библиотеку
📌Сможете уменьшить лицензионные риски
📌Сможете вовремя изменить карьерный вектор или поменять архитектуру проектов
📌 Получите экспертные рекомендации по архитектуре и устойчивым решениям

Спикеры:
👨‍💻Олег Голенищев – старший разработчик в Directum
👨‍💻Антон Герасименко – ведущий .NET-разработчик.

Всем участникам – скидка 7% на любой курс OTUS и подборка альтернативных библиотек с открытым исходным кодом в подарок.
27 мая, 19:00 МСК
Бесплатно по записи: https://tglink.io/45b32762329b

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963. erid: 2W5zFH2svMe
using System.Linq;

public class Program
{
public static bool isIdentical(string str)
{
return str.Distinct().Count() == 1;
}
}

#задача #ответ@csharpovich
📰 Итоги недели

Краткий взгляд на то, что происходило в мире.

План выпуска Critter Stack

Jeremy Miller анонсировал выпуск обновлений для Critter Stack, включая Marten 8.0, Weasel 8.0 и Wolverine 4.0, запланированный на 1 июня 2025 года.

PowerShell AI Shell Preview

Выпущена версия Preview 4 AI Shell для PowerShell, включающая улучшения для macOS, поддержку аутентификации через Microsoft Entra ID и расширенные возможности командной строки.

AI и Vector Data Extensions для .NET теперь доступны

Microsoft анонсировала общедоступный статус для расширений AI и Vector Data в .NET. Эти библиотеки предоставляют общие абстракции и утилиты для работы с ИИ-моделями и векторными хранилищами.

Microsoft запускает Agent Store

Agent Store — новый централизованный магазин агентов в рамках Microsoft Copilot. Платформа позволяет пользователям просматривать, устанавливать и тестировать агентов, разработанных Microsoft, партнерами и клиентами.

Microsoft обновили .NET Aspire до версии 9.3
Please open Telegram to view this post
VIEW IN TELEGRAM
📎 Берём с собой метаданные

Иногда полезно встраивать версию приложения или метаданные непосредственно в сборку. Это можно сделать с помощью флагов в dotnet build:

dotnet build /p:Version=1.0.0 /p:CommitHash=$(git rev-parse --short HEAD)


/p:Version=1.0.0: встраивает версию в сборку.

/p:CommitHash=$(git rev-parse --short HEAD)
: встраивает хэш текущего коммита в сборку, полученный с помощью Git.

Вы можете использовать эти переменные в коде для отображения версии и метаданных в финальном приложении.
Please open Telegram to view this post
VIEW IN TELEGRAM
🎮Введение в UI на Unity

На этом этапе студенты познакомятся с базовыми понятиями пользовательского интерфейса в Unity. Разберем, как создается UI, что такое Canvas, как работают элементы и как правильно размещать их на экране. Обсудим настройку рендеринга и обработку пользовательских событий, а также:

• Что такое UI в Unity
• Canvas: что это и как он работает
• Основные UI-элементы (Button, Text, Image, Slider и др.)
• RectTransform и отличие от Transform
• Понятие Render Mode и масштабирование UI

Встречаемся в преддверии старта курса «Unity Game Developer. Basic».

👉Регистрация и подробности о курсе: https://vk.cc/cMBZsU

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
Please open Telegram to view this post
VIEW IN TELEGRAM
📋 Чек-лист по написанию LINQ запросов

Независимо от того, работаете ли вы с коллекциями, базами данных или XML, LINQ запросы требуют правильной структуры и оптимизации для достижения наилучших результатов.

В этом чек-листе собраны основные моменты, которые помогут вам писать чистые, читаемые и эффективные LINQ запросы.

Понимание источника данных

Убедитесь, что данные поддерживают LINQ, например, IEnumerable<T> или IQueryable<T>.

Определение цели запроса

Чётко определите входные данные, что с ними будет в процессе и какие ожидаются данные на выходе.

Синтаксис запроса

Перед написанием запросов стоит определить какой синтаксис будет использоваться.

• Синтаксис как метод:
var result = collection.Where(x => x.Age > 30).OrderBy(x => x.Name).ToList();


• Запрос в синтаксисе:
var result = from x in collection
where x.Age > 30
orderby x.Name
select x;


Оптимизация производительности

Используйте IQueryable<T> для внешних источников данных (например, базы данных), чтобы запрос выполнялся на сервере.

Отложенная и немедленная загрузка

Отложенная загрузка полезна, когда вам нужно выполнить запрос, но выполнение следует отложить до тех пор, пока это не потребуется.

Немедленная загрузка используется, когда вы хотите сразу получить результат выполнения запроса или когда данные нужно обработать немедленно.

Агрегация и группировка

Используйте функции агрегации, такие как Sum(), Average(), Max(), и группировку через GroupBy().

Сложные запросы

Работайте с несколькими коллекциями через операторы join, union, intersect и except.
var combined = collection1.Join(collection2, 
c1 => c1.Id,
c2 => c2.Id,
(c1, c2) => new { c1.Name, c2.Price });


Использование let для промежуточных вычислений

Упрощайте запросы с помощью промежуточных переменных:
var result = from x in collection
let temp = x.Age * 2
where temp > 40
select new { x.Name, temp };


Обработка пустых коллекций

Используйте DefaultIfEmpty() для предотвращения ошибок при работе с пустыми коллекциями.

Производительность и асинхронность

Используйте асинхронные методы, такие как ToListAsync(), для работы с асинхронными источниками данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
2025/06/12 20:11:19
Back to Top
HTML Embed Code: