uz
Feedback

Firibgarlarga uchmang! Telemetrio bunday kanallarni topadi va belgilaydi 👉 Belgini ko‘rmoqchi bo‘lsangiz, obuna bo‘ling

C# (C Sharp) programming

C# (C Sharp) programming

Kanalga Telegram’da o‘tish

По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ

Ko'proq ko'rsatish

📈 Telegram kanali C# (C Sharp) programming analitikasi

C# (C Sharp) programming (@csharp_ci) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 18 066 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 7 202-o'rinni va Rossiya mintaqasida 36 422-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 18 066 obunachiga ega bo‘ldi.

25 Oktabr, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -28 ga, so‘nggi 24 soatda esa -4 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 19.39% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 8.27% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 3 504 marta ko‘riladi; birinchi sutkada odatda 1 494 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 0 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent .net, api, логика, архитектура, string kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“По всем вопросам- @notxxx1 Реестр РКН: https://clck.ru/3Fk3kb #VRHSZ”

Yuqori yangilanish chastotasi (oxirgi ma’lumot 26 Oktabr, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

18 066
Obunachilar
-424 soatlar
-97 kun
-2830 kun
Obunachilarni jalb qilish
Okt '26
Oktabr '26
+124
37 kanalda
Sentabr '26
+117
31 kanalda
Get PRO
Avgust '26
+112
4 kanalda
Get PRO
Iyul '26
+85
3 kanalda
Get PRO
Iyun '26
+147
3 kanalda
Get PRO
May '26
+131
2 kanalda
Get PRO
Aprel '26
+76
1 kanalda
Get PRO
Mart '26
+96
23 kanalda
Get PRO
Fevral '26
+112
45 kanalda
Get PRO
Yanvar '26
+398
132 kanalda
Get PRO
Dekabr '25
+117
5 kanalda
Get PRO
Noyabr '25
+318
44 kanalda
Get PRO
Oktabr '25
+84
14 kanalda
Get PRO
Sentabr '25
+162
37 kanalda
Get PRO
Avgust '25
+223
9 kanalda
Get PRO
Iyul '25
+418
77 kanalda
Get PRO
Iyun '25
+293
71 kanalda
Get PRO
May '25
+238
1 kanalda
Get PRO
Aprel '25
+191
28 kanalda
Get PRO
Mart '25
+185
2 kanalda
Get PRO
Fevral '25
+210
42 kanalda
Get PRO
Yanvar '25
+200
46 kanalda
Get PRO
Dekabr '24
+416
56 kanalda
Get PRO
Noyabr '24
+1 096
187 kanalda
Get PRO
Oktabr '24
+1 800
73 kanalda
Get PRO
Sentabr '24
+635
199 kanalda
Get PRO
Avgust '24
+662
44 kanalda
Get PRO
Iyul '24
+665
53 kanalda
Get PRO
Iyun '24
+1 168
60 kanalda
Get PRO
May '24
+565
39 kanalda
Get PRO
Aprel '24
+569
45 kanalda
Get PRO
Mart '24
+709
21 kanalda
Get PRO
Fevral '24
+1 055
2 kanalda
Get PRO
Yanvar '24
+1 376
46 kanalda
Get PRO
Dekabr '23
+608
44 kanalda
Get PRO
Noyabr '23
+1 091
30 kanalda
Get PRO
Oktabr '23
+332
19 kanalda
Get PRO
Sentabr '23
+352
0 kanalda
Get PRO
Avgust '23
+1 949
0 kanalda
Get PRO
Iyul '23
+507
0 kanalda
Get PRO
Iyun '23
+1 238
0 kanalda
Get PRO
May '23
+1 891
0 kanalda
Get PRO
Aprel '23
+3 025
0 kanalda
Get PRO
Mart '23
+1 858
0 kanalda
Get PRO
Fevral '23
+85
0 kanalda
Get PRO
Yanvar '23
+113
0 kanalda
Get PRO
Dekabr '22
+171
0 kanalda
Get PRO
Noyabr '22
+226
0 kanalda
Get PRO
Oktabr '22
+197
0 kanalda
Get PRO
Sentabr '22
+170
0 kanalda
Get PRO
Avgust '22
+756
0 kanalda
Get PRO
Iyul '22
+82
0 kanalda
Get PRO
Iyun '22
+152
0 kanalda
Get PRO
May '22
+344
0 kanalda
Get PRO
Aprel '22
+256
0 kanalda
Get PRO
Mart '22
+53
0 kanalda
Get PRO
Fevral '22
+45
0 kanalda
Get PRO
Yanvar '22
+97
0 kanalda
Get PRO
Dekabr '21
+45
0 kanalda
Get PRO
Noyabr '21
+1 110
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
26 Oktabr+1
25 Oktabr+2
24 Oktabr+6
23 Oktabr+3
22 Oktabr+1
21 Oktabr+1
20 Oktabr+4
19 Oktabr+4
18 Oktabr+9
17 Oktabr+7
16 Oktabr+7
15 Oktabr+5
14 Oktabr+3
13 Oktabr+9
12 Oktabr+4
11 Oktabr+8
10 Oktabr+2
09 Oktabr+5
08 Oktabr+5
07 Oktabr+7
06 Oktabr+11
05 Oktabr+9
04 Oktabr+8
03 Oktabr+2
02 Oktabr+1
01 Oktabr0
Kanal postlari
«Ускорь этот C#-код» — полезнее просить ИИ вместе с инструкцией, как измерять результат. BlazingFastDotnet — сборник приёмов
«Ускорь этот C#-код» — полезнее просить ИИ вместе с инструкцией, как измерять результат. BlazingFastDotnet — сборник приёмов оптимизации .NET 10 и 11, упакованный в SKILL.md для ИИ-агентов. Его можно читать и как обычный технический справочник. Внутри: - Поиск узких мест: dotnet-counters, dotnet-trace, Linux perf и анализ машинного кода JIT. - Память и многопоточность: аллокации, GC, конкуренция за блокировки и false sharing. - Настройка выполнения: ThreadPool, сокеты, JIT и параметры NativeAOT. - Оптимизация C#: SIMD, работа со строками и ASP.NET Core. Автор предлагает подключать документ по необходимости, когда появилась конкретная задача ускорения. Порядок работы простой: замерить исходную производительность → найти причину → менять по одному параметру → сохранять только измеримый выигрыш. Часть рекомендаций рассчитана прежде всего на бенчмарки. Настройки могут обменивать память на скорость или увеличивать нагрузку на CPU, поэтому переносить их в продакшен стоит после проверки на своей нагрузке. https://github.com/EgorBo/BlazingFastDotnet

2
🔐 «Не одобряй собственные расходы» — такое правило нужно проверять на сервере Тайсир Джуде показывает, как защитить MCP-серв
🔐 «Не одобряй собственные расходы» — такое правило нужно проверять на сервере Тайсир Джуде показывает, как защитить MCP-сервер на ASP.NET Core через Microsoft Entra ID. На примере приложения для учёта расходов автор разбирает: • Регистрацию сервера и клиента в Entra ID. • Вход пользователя и проверку JWT-токенов. • Разницу между scope - разрешением приложению действовать от имени пользователя — и ролью, позволяющей одобрять расходы. • Ограничение доступа к отдельным MCP-инструментам и фильтрацию списка доступных tools. Самый показательный момент: пользователь с ролью согласующего может одобрить чужой отчёт, но свой сервер отклонит. Личность определяется по токену, а бизнес-правило проверяется в коде. Модель выбирает, какой инструмент вызвать. Сервер решает, разрешено ли выполнить действие. 📖 https://bitoftech.net/2026/10/13/securing-mcp-server-microsoft-entra-id/ #aspnetcore #dotnet #mcp
2 639
3
⌨️ Магические слова async/await Приглашаем на открытый урок. 🗓 29 ноября в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курс
⌨️ Магические слова async/await Приглашаем на открытый урок. 🗓 29 ноября в 20:00 МСК 🆓 Бесплатно. Урок в рамках старта курса «C#-разработчик. Продвинутый уровень». Разберем, как браузер общается с сервером, и создадим работающий HTTP-сервис без Spring и сторонних библиотек. О чем поговорим: ✔️ Как связаны понятия асинхронности и многопоточности ✔️ Синтаксис async/await-конструкций ✔️ Во что компилируется конструкция async/await ✔️ Работа с исключениями при ожидании 🔗 Ссылка на регистрацию: https://otus.pw/DCX1/?erid=2W5zFJeppAM Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
1 431
4
🧩 C# с подвохом: одна переменная — сколько запросов к БД? В базе есть просроченные заказы. db.Orders — это DbSet в EF
🧩 C# с подвохом: одна переменная — сколько запросов к БД? В базе есть просроченные заказы. db.Orders — это DbSet<Order> в EF Core, а NotifyAsync к базе не обращается. IEnumerable<Order> late = db.Orders .Where(o => o.DueDate < today); if (late.Any()) { logger.LogWarning( "{Count} late orders", late.Count() ); foreach (var order in late) { await notifier.NotifyAsync(order); } } Сколько раз код обратится к базе и где будет выполняться подсчёт — в SQL или в памяти приложения? Обратите внимание на тип late в первой строке. И изменится ли поведение, если заменить IEnumerable<Order> на var? 👇 Пишите ответ с объяснением.
2 600
5
⚡ Где тормозит .NET-приложение? SharpLsp покажет прямо в VS Code В SharpLsp есть встроенный профилировщик CPU и памяти для C#
⚡ Где тормозит .NET-приложение? SharpLsp покажет прямо в VS Code В SharpLsp есть встроенный профилировщик CPU и памяти для C# и F#. Подключаешься к уже работающему процессу и смотришь, на что приложение тратит ресурсы. Перезапускать и пересобирать его не нужно. После сбора CPU-профиля расширение подсвечивает горячие строки кода, строит flame graph и показывает функции, которые занимают больше всего процессорного времени. Для памяти доступны отслеживание кучи, сравнение снимков и граф ссылок, помогающий понять, что удерживает объекты в памяти. Подозреваемые на утечки отображаются по мере работы приложения. Отдельно устанавливать `dotnet-trace` не требуется. Движку профилировщика нужен runtime .NET 8 или новее, а у целевого процесса должна быть включена диагностика. Проект открытый, под лицензией MIT, работает на Windows, macOS и Linux. https://sharplsp.dev/blog/dotnet-profiler-vs-code-csharp-fsharp/
2 764
6
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можн
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажется. Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре. AI: t.me/ai_machinelearning_big_data Python: t.me/pythonl Linux: t.me/linuxacademiya Хакинг: t.me/linuxkalii DevOps: t.me/DevOPSitsec Docker: https://t.me/+90Z5TAyfuNU5YmRi Golang: t.me/Golang_google Rust: t.me/rust_code C++: t.me/cpluspluc C#: t.me/csharp_1001_notes Java: t.me/javatg JavaScript: t.me/javascriptv React: t.me/react_tg Frontend: t.me/front PHP: t.me/phpshka Android: t.me/android_its Мобильная разработка: t.me/mobdevelop Базы данных: t.me/sqlhub Data Science: t.me/data_analysis_ml Big Data: t.me/bigdatai Математика: t.me/data_math Физика: t.me/fizmat Kubernetes: t.me/kubernetc GameDev: https://t.me/gamedev Haskell: t.me/haskell_tg Собеседования и карьера: DS собеседования: t.me/machinelearning_interview Python собеседования: t.me/python_job_interview Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy Полезное сверху: ИТ-мемы: t.me/memes_prog Английский для программистов: t.me/english_forprogrammers ИИ и технологии: t.me/vistehno 954 ГБ open-source курсов: https://t.me/+rKBQEMccAA01MTcy ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy Max Ai: https://max.ru/ai_machinelearning_big_data Max python: https://max.ru/pythonl ТЕХНО: https://max.ru/vistehno Max Go: https://max.ru/Golang_google Max Linux: https://max.ru/linuxkalii Devops: https://max.ru/DevOPSitsec C#: https://max.ru/csharp_ci C++: https://max.ru/cpluspluc SQL: https://max.ru/sqlhub Java: https://max.ru/javatg Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
1 910
7
🌐 Новый `HttpClient` на каждый запрос? Под нагрузкой это может закончиться исчерпанием портов. IHttpClientFactory создаёт но
🌐 Новый `HttpClient` на каждый запрос? Под нагрузкой это может закончиться исчерпанием портов. IHttpClientFactory создаёт новые экземпляры клиента, но переиспользует обработчики `HttpMessageHandler` и их пулы соединений. Поэтому освобождение клиента, полученного от фабрики, не уничтожает пул после каждого запроса. Три способа использования: • Обычный клиент: CreateClient() для простых сценариев. Общие настройки тоже можно задать при регистрации. • Именованный: CreateClient("github") возвращает клиент с настройками конкретного API. • Типизированный: GitHubClient получает настроенный HttpClient через DI и скрывает детали HTTP за методами сервиса. Например, именованный клиент: services.AddHttpClient("github", client => { client.BaseAddress = new Uri("https://api.github.com/"); client.DefaultRequestHeaders.UserAgent.ParseAdd("MyApp/1.0"); }); // При использовании: using var client = factory.CreateClient("github"); Нюанс: типизированный клиент не стоит надолго удерживать в singleton без настройки обновления соединений. Фабрика также не единственный правильный вариант: Microsoft рекомендует и долгоживущий HttpClient с настроенным PooledConnectionLifetime. Главное: управлять временем жизни соединений.
2 046
8
🛠 У .NET появился свой аналог rustup и nvm Microsoft представила dotnetup: менеджер для установки и обновления .NET SDK и ра
🛠 У .NET появился свой аналог rustup и nvm Microsoft представила dotnetup: менеджер для установки и обновления .NET SDK и рантаймов. Пока в публичном превью. Всё устанавливается в папку пользователя, без sudo и прав администратора. Можно держать стабильные версии, превью и ежедневные сборки рядом, а закрепление SDK через global.json сохраняется. Несколько полезных команд: dotnetup init # Настроить окружение dotnetup list # Показать установленные версии dotnetup update # Обновить отслеживаемые версии dotnetup sdk install preview # Установить превью SDK Можно отслеживать обновления внутри конкретной ветки или закрепить точную версию. При обновлении ненужные компоненты очищаются автоматически. https://devblogs.microsoft.com/dotnet/introducing-dotnetup/
2 312
9
Запрос проходит через несколько сервисов, обращается к базе данных и внешним API. Пользователь видит задержку или ошибку, а п
Запрос проходит через несколько сервисов, обращается к базе данных и внешним API. Пользователь видит задержку или ошибку, а по отдельным записям в журналах трудно понять, на каком участке возникла проблема. 20 октября в 20:00 на открытом уроке курса «C# разработчик. Экспертный уровень» разберёте, как OpenTelemetry помогает превратить .NET-приложение из чёрного ящика в наблюдаемую систему. Рассмотрите наблюдаемость и роль трассировок, метрик и журналов событий в исследовании работы приложения. Узнаете, как эти данные помогают получить целостное представление о пути запроса и искать причины ошибок и задержек. На практике добавите средства сбора телеметрии в ASP.NET Core-приложение. Создадите собственные трассировки через ActivitySource и метрики через Meter, подключите автоматический сбор телеметрии для ASP.NET Core и HttpClient. Урок проведёт Михаил Дмитриев. Зарегистрироваться: https://otus.pw/f8Z4/?erid=2W5zFHPwe5P Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ". ИНН 9705100963.
2 274
10
#ПятничныйКвиз
2 326
11
Что на самом деле происходит с вашим async-методом: компилятор C# переписывает его в конечный автомат Meziantou разобрал, во что превращается async-метод после компиляции. Сам метод становится заглушкой: она создаёт структуру-автомат, заводит билдер вроде AsyncTaskMethodBuilder, копирует параметры в поля, ставит состояние -1, вызывает Start и возвращает Task. Вся логика переезжает в MoveNext. В Release автомат это struct, в Debug это class. Пока метод не засыпает, автомат живёт на стеке. Как только он приостанавливается, билдер упаковывает его в кучу. Поле state хранит точку возобновления: -1 значит выполняется, -2 завершён, 0 и выше номер await. В поля уходят только параметры и локальные переменные, которые нужны после await, остальные остаются локальными. Слоты под awaiter выделяются на тип, а не на каждый await, поэтому несколько await на одном типе делят одно поле. Сам await превращается в switch по полю плюс регистрацию продолжения. Если awaiter уже завершён, код идёт дальше без остановки. Если нет, сохраняется состояние и awaiter, вызывается AwaitUnsafeOnCompleted, и MoveNext возвращается. Исключения ловятся сгенерированным try/catch и уходят в SetException, поэтому всплывают на await, а не в месте вызова. До первого незавершённого await метод выполняется синхронно. Бенчмарки автора показывают цену этого механизма: синхронный цикл 2,7 нс, async без реального ожидания 47,9 нс, async с приостановкой на каждой итерации 8820 нс. Разница в сотни раз в горячих циклах заметна, так что await на каждом элементе лучше пересобирать. Мерить стоит только в Release, иначе картина искажается. Источник: https://www.meziantou.net/how-the-csharp-compiler-rewrites-an-async-method.htm
2 427
12
Helm-чарты прямо из C#, без запуска `helm` 🛠 HelmSharp позволяет рендерить шаблоны и управлять релизами Kubernetes внутри .N
Helm-чарты прямо из C#, без запуска `helm` 🛠 HelmSharp позволяет рендерить шаблоны и управлять релизами Kubernetes внутри .NET-приложения. Что умеет: • Загружать чарты из папки и .tgz. • Объединять values.yaml с пользовательскими параметрами. • Упаковывать чарты и работать с HTTP-репозиториями. • Устанавливать, обновлять, откатывать и удалять релизы. • Хранить историю релизов в Kubernetes Secrets, совместимых с Helm v3. Для начала: dotnet add package HelmSharp.Action Поддерживает .NET 8, 9 и 10, лицензия MIT. Пригодится для собственных панелей управления и сервисов деплоя на C#. Совместимость с Helm пока частичная: свои чарты стоит проверить, особенно если они используют сложные шаблонные функции или расширения. https://github.com/GaTTGeng/HelmSharp
3 248
13
Альфа-Банк ищет скиллового коллегу QA Fullstack на C# Предлагаем полную удалёнку или гибридный график – у нас классные ИТ-офисы в Москве, Питере и Екатеринбурге. Что нужно делать – Разрабатывать автотесты на C#. – Запускать функциональные, регрессионные и интеграционные тесты, включая API. – Снижать количество дефектов в диалоге с разработкой и бизнесом. Какие навыки важны – Опыт автоматизации на C# и ручного тестирования от года. – Знание API (SOAP, REST), SQL, основ клиент-серверной архитектуры и тест-дизайна. Условия и развитие – Сильное сообщество QA и C#-разработчиков: можно получить совет и поделиться опытом на митапе и в блоге на Хабре. – Реальная перспектива роста: технический трек развития, в том числе до C#-лида Оставляйте отклик по ссылке.
2 441
14
🧱 Модульный монолит легко потерять одним удобным JOIN. Допустим, модуль заказов напрямую читает таблицы доставки. Теперь изм
🧱 Модульный монолит легко потерять одним удобным JOIN. Допустим, модуль заказов напрямую читает таблицы доставки. Теперь изменение схемы доставки может сломать заказы, хотя в коде всё красиво разложено по модулям. Границы стоит закреплять и в базе: • Отдельная схема и роль PostgreSQL для каждого модуля. • Роль получает права только на свои данные. • В EF Core каждому модулю выделяется собственный DbContext и подключение с его учётными данными. • Чужие данные доступны через API, события или специально опубликованные представления с правами только на чтение. Так случайный запрос к чужой таблице остановит сама база. А выделять модуль в отдельный сервис впоследствии будет проще. Нюанс: отдельная схема и search_path сами по себе доступа не ограничивают. Границу обеспечивают права ролей на схемы и объекты. https://milanjovanovic.tech/blog/how-to-keep-your-data-boundaries-intact-in-a-modular-monolith
3 058
15
Задачка по C# 14: обновили проект на .NET 10, и код молча начал работать иначе Что выведет этот код? var c = new Counter(); c.Value = 5; Console.WriteLine($"{c.Value} {c.Raw} {c.GetRaw()}"); class Counter { private int field = 100; public int Value { get => field; set => field = value; } public int Raw => field; public int GetRaw() => field; } Варианты: A) 5 5 5 😎 5 100 100 C) 5 0 100 D) Код не скомпилируется Ответ: **C) 5 0 100** В C# 14 слово `field` внутри аксессоров свойства стало ключевым. Теперь оно означает **скрытое поле, которое компилятор создаёт для этого свойства**, даже если в классе уже есть член с таким именем. Поэтому в этом коде три разных `field`: ``` Value → своё скрытое поле: записали 5, прочитали 5 Raw → тоже аксессор, но со своим скрытым полем: в него никто не писал, значит 0 GetRaw() → обычный метод, ключевое слово тут не действует, это поле класса: 100 ``` Главная ловушка в строке `public int Raw => field;`. Выглядит как обычный метод-однострочник, но это свойство, а значит get-аксессор. Поле класса со значением 100 здесь вообще не видно. До C# 14 этот же код выводил `5 5 5`: все три обращения шли к одному полю класса. После обновления он компилируется и тихо меняет поведение. Чтобы обратиться к старому полю, внутри аксессоров нужно писать `this.field` или `@field`.
3 303
16
#ПятничныйКвиз
3 344
17
⚡️ Microsoft переработала C# Dev Kit: меньше памяти, быстрее запуск В версии 11.0 шесть процессов объединили в один сервер на
⚡️ Microsoft переработала C# Dev Kit: меньше памяти, быстрее запуск В версии 11.0 шесть процессов объединили в один сервер на Native AOT, добавили кэш проектов и приоритетную загрузку открытого файла. На решении Aspire из 407 проектов Microsoft получила: • готовность открытого файла: 0,47 секунды, ускорение до 180×; • загрузка всего решения: 84,1 → 3 секунды; • сборка после изменения одного C#-файла: 36,1 → 2,1 секунды; • память сервера Dev Kit: 2072 → 316 МБ. Последняя цифра относится только к серверу расширения: память VS Code и языкового сервиса Roslyn в сравнение не входит. Быстрая повторная загрузка использует предварительно созданный кэш. Также появились подсказки и диагностика для .csproj, .props, .targets и C# Doctor для поиска проблем с SDK, восстановлением пакетов и окружением. Версия доступна в Pre-Release. В VS Code откройте страницу C# Dev Kit и выберите Switch to Pre-Release Version. https://devblogs.microsoft.com/dotnet/faster-lighter-csharp-dev-kit/
3 788
18
🛠 Вышел Microsoft.Data.SqlClient 7.1.1 Обновление .NET-драйвера для SQL Server исправляет три неприятных сценария: • Нулевые
🛠 Вышел Microsoft.Data.SqlClient 7.1.1 Обновление .NET-драйвера для SQL Server исправляет три неприятных сценария: • Нулевые decimal-параметры могли вызывать ArgumentException, если Precision совпадала со Scale. • Пул соединений V2 мог выдавать соединения с истёкшими или почти истёкшими токенами доступа. Теперь срок проверяется перед повторным использованием. Исправление касается приложений, явно включивших V2. • ClearPool и ClearAllPools могли приводить к ошибке при одновременном открытии соединения. Теперь уже начатые запросы могут завершиться, а соединения из очищенного пула больше не используются повторно. https://github.com/dotnet/SqlClient/releases/tag/v7.1.1
3 695
19
Одна задача, три языка: Rust, C# или C++? В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектор+2
Одна задача, три языка: Rust, C# или C++? В курсе Google *Comprehensive Rust* есть упражнение: найти длину трёхмерного вектора, а затем нормализовать его. Формула одна: √(x² + y² + z²). После этого каждую координату делим на полученную длину. На скриншотах хорошо видна разница в стиле: - Rust: iter().fold() собирает сумму квадратов, iter_mut() меняет координаты. - C#: ReadOnlySpan для чтения, Span для изменения и обычный foreach. - C++: std::vector, цикл по значениям для расчёта и по ссылкам для изменения. Для тех, кто пишет на C#: Rust fold(0.0, ...) по смыслу близок к LINQ Aggregate(0.0, ...): оба сворачивают последовательность в одно значение через аккумулятор. Чей вариант вам понятнее с первого взгляда?
7 761
20
🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собеседование: Senior C# разработчик про
🦈 Открытое собеседование на Middle C# | 6 октября, 19:00 МСК Приглашаем на открытое собеседование: Senior C# разработчик проведёт его в прямом эфире. Можно посмотреть, как всё устроено изнутри, и понять, насколько ты готов к такому интервью. Как это будет: 📂 Собеседует Александр Моргунов — Senior C# разработчик, 7+ лет в европейских высоконагруженных сервисах. Отвечает разработчик-доброволец; 📂 Всё как на настоящем собесе: Александр задаёт те вопросы и задачи, которые даёт кандидатам на своих интервью. Заранее их никто не знает; 📂 После каждого ответа Александр даст обратную связь: что прозвучало сильно, а что стоило раскрыть иначе. Так станет понятнее, на что обращают внимание на собесе; 📂 В конце можно задать любой вопрос. Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир -> @shortcut_csharp_bot Реклама. О рекламодателе.
2 483