fa
Feedback
Библиотека шарписта | C#, F#, .NET, ASP.NET

Библиотека шарписта | C#, F#, .NET, ASP.NET

رفتن به کانال در Telegram

Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

نمایش بیشتر

📈 تحلیل کانال تلگرام Библиотека шарписта | C#, F#, .NET, ASP.NET

کانال Библиотека шарписта | C#, F#, .NET, ASP.NET (@csharpproglib) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 21 698 مشترک است و جایگاه 5 932 را در دسته فناوری و برنامه‌ها و رتبه 30 116 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 21 698 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 14 سپتامبر, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر -21 و در ۲۴ ساعت گذشته برابر 3 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 18.75% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 8.20% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 4 069 بازدید دریافت می‌کند. در اولین روز معمولاً 1 779 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 16 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند .net, шарписта, навигация, await, string تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Все самое полезное для C#-разработчика в одном канале. Наши курсы: https://clc.to/y3LDtw По рекламе: @tproger_sales_bot Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 15 سپتامبر, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

21 698
مشترکین
+324 ساعت
+107 روز
-2130 روز
جذب مشترکین
سپتامبر '26
سپتامبر '26
+74
در 0 کانال‌ها
اوت '26
+94
در 1 کانال‌ها
Get PRO
ژوئیه '26
+110
در 1 کانال‌ها
Get PRO
ژوئن '26
+122
در 1 کانال‌ها
Get PRO
مه '26
+181
در 1 کانال‌ها
Get PRO
آوریل '26
+150
در 0 کانال‌ها
Get PRO
مارس '26
+120
در 0 کانال‌ها
Get PRO
فوریه '26
+169
در 1 کانال‌ها
Get PRO
ژانویه '26
+184
در 2 کانال‌ها
Get PRO
دسامبر '25
+126
در 1 کانال‌ها
Get PRO
نوامبر '25
+166
در 1 کانال‌ها
Get PRO
اکتبر '25
+163
در 1 کانال‌ها
Get PRO
سپتامبر '25
+140
در 1 کانال‌ها
Get PRO
اوت '25
+137
در 4 کانال‌ها
Get PRO
ژوئیه '25
+144
در 1 کانال‌ها
Get PRO
ژوئن '25
+179
در 0 کانال‌ها
Get PRO
مه '25
+171
در 3 کانال‌ها
Get PRO
آوریل '25
+244
در 15 کانال‌ها
Get PRO
مارس '25
+360
در 52 کانال‌ها
Get PRO
فوریه '25
+325
در 48 کانال‌ها
Get PRO
ژانویه '25
+264
در 35 کانال‌ها
Get PRO
دسامبر '24
+348
در 35 کانال‌ها
Get PRO
نوامبر '24
+325
در 37 کانال‌ها
Get PRO
اکتبر '24
+338
در 35 کانال‌ها
Get PRO
سپتامبر '24
+324
در 36 کانال‌ها
Get PRO
اوت '24
+317
در 35 کانال‌ها
Get PRO
ژوئیه '24
+335
در 36 کانال‌ها
Get PRO
ژوئن '24
+298
در 31 کانال‌ها
Get PRO
مه '24
+466
در 36 کانال‌ها
Get PRO
آوریل '24
+519
در 38 کانال‌ها
Get PRO
مارس '24
+542
در 31 کانال‌ها
Get PRO
فوریه '24
+587
در 30 کانال‌ها
Get PRO
ژانویه '24
+674
در 25 کانال‌ها
Get PRO
دسامبر '23
+785
در 34 کانال‌ها
Get PRO
نوامبر '23
+439
در 4 کانال‌ها
Get PRO
اکتبر '23
+606
در 24 کانال‌ها
Get PRO
سپتامبر '23
+812
در 0 کانال‌ها
Get PRO
اوت '23
+639
در 0 کانال‌ها
Get PRO
ژوئیه '23
+573
در 0 کانال‌ها
Get PRO
ژوئن '23
+410
در 0 کانال‌ها
Get PRO
مه '23
+572
در 0 کانال‌ها
Get PRO
آوریل '23
+405
در 0 کانال‌ها
Get PRO
مارس '23
+892
در 0 کانال‌ها
Get PRO
فوریه '23
+365
در 0 کانال‌ها
Get PRO
ژانویه '23
+407
در 0 کانال‌ها
Get PRO
دسامبر '22
+409
در 0 کانال‌ها
Get PRO
نوامبر '22
+571
در 0 کانال‌ها
Get PRO
اکتبر '22
+356
در 0 کانال‌ها
Get PRO
سپتامبر '22
+398
در 0 کانال‌ها
Get PRO
اوت '22
+503
در 0 کانال‌ها
Get PRO
ژوئیه '22
+541
در 0 کانال‌ها
Get PRO
ژوئن '22
+584
در 0 کانال‌ها
Get PRO
مه '22
+290
در 0 کانال‌ها
Get PRO
آوریل '22
+339
در 0 کانال‌ها
Get PRO
مارس '22
+451
در 0 کانال‌ها
Get PRO
فوریه '22
+233
در 0 کانال‌ها
Get PRO
ژانویه '22
+308
در 0 کانال‌ها
Get PRO
دسامبر '21
+356
در 0 کانال‌ها
Get PRO
نوامبر '21
+359
در 0 کانال‌ها
Get PRO
اکتبر '21
+405
در 0 کانال‌ها
Get PRO
سپتامبر '21
+398
در 0 کانال‌ها
Get PRO
اوت '21
+400
در 0 کانال‌ها
Get PRO
ژوئیه '21
+397
در 0 کانال‌ها
Get PRO
ژوئن '21
+311
در 0 کانال‌ها
Get PRO
مه '21
+479
در 0 کانال‌ها
Get PRO
آوریل '21
+480
در 0 کانال‌ها
Get PRO
مارس '21
+487
در 0 کانال‌ها
Get PRO
فوریه '21
+521
در 0 کانال‌ها
Get PRO
ژانویه '21
+374
در 0 کانال‌ها
Get PRO
دسامبر '20
+11 455
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
15 سپتامبر+6
14 سپتامبر+6
13 سپتامبر+5
12 سپتامبر0
11 سپتامبر+5
10 سپتامبر+10
09 سپتامبر+8
08 سپتامبر+8
07 سپتامبر+4
06 سپتامبر+4
05 سپتامبر+1
04 سپتامبر+3
03 سپتامبر+2
02 سپتامبر+7
01 سپتامبر+5
پست‌های کانال
🧑‍💻 Забытый await: от race condition до DoS-атаки В C# ключевое слово async — это инструкция компилятору превратить метод в state machine. await отмечает точку логической приостановки. Всё просто: выполнение не должно продолжаться, пока результат не существует. При await весь код выполняется синхронно, пока не достигнет I/O или функции, возвращающей Task. Если Task не завершён, происходит раскрутка кадра стека, и поскольку обрамляющие методы приостановлены до самого верха, поток может быть освобождён в пул потоков. Позже задача завершается, продолжение планируется и выполнение возобновляется там, где остановилось. Это не параллельное выполнение, это приостановка и возобновление. Если забыли await:

var task = GetDataAsync();
// забыли await
Use(task);
Это режим «запустил и забыл» (fire-and-forget). Последствия: • выполнение продолжается немедленно • зависимость не обеспечивается • исключения выходят за пределы логического стека вызовов Что может произойти с приложением ⚠️ Забытый await может привести к классическому состоянию гонки: код продолжает выполнение до завершения критической операции, например, проверки прав доступа, открывая окно для эксплуатации. Атакующий может успеть получить доступ к данным между моментом начала проверки и её завершением. ⚠️ Когда исключения выходят за пределы логического стека вызовов, они могут быть проглочены без логирования. Это маскирует неудачные попытки аутентификации, SQL-инъекции или другие атаки. ⚠️ Истощение пула потоков как вектор DoS-атаки. При высокой нагрузке неправильное использование async/await приводит к истощению пула потоков. Злоумышленник может намеренно генерировать запросы, эксплуатирующие блокирующие операции. 📍 Навигация: ВакансииЗадачиСобесы 🐸Библиотека шарписта #il_люминатор

2
😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как тратить меньше на AI-агентов — без потер
😭 Как не потратить недельный лимит AI-кодинга за три дня? Разберём на вебинаре, как тратить меньше на AI-агентов — без потери качества кода. 🔘 Поговорим о том: — когда дорогая модель действительно нужна, а когда хватит дешёвой; — сколько стоит один прогон и куда уходят токены; — какие задачи можно отдавать субагентам; — как настроить маршрутизацию моделей; — что проверять в AI-коде перед merge. ✏️ Покажем всё на конкретных цифрах и вживую: сравним расходы до и после. ⬇️ 18 сентября, 19:00 МСК ⬇️ 1,5 часа · бесплатно ⬇️ Арсений Харланов и Олег Лайок 💬 Пишите в комментариях, где упираетесь в лимиты и на что уходят деньги. Самые залайканные вопросы разберём на вебинаре. 🔗 Зарегистрироваться на вебинар⁠
1 664
3
🧩 Union types появились в ASP.NET Core на .NET 11 В C# 15 можно описать тип с несколькими допустимыми вариантами: public union IntOrString(int, string); Такой endpoint может вернуть либо число, либо строку: app.MapGet("/max-unavailable", () => new IntOrString(2)); JSON останется обычным: 2 или: "25%" Без $type и дополнительных обёрток. Главный плюс — компилятор проверяет, что switch обработал все варианты union. Поддерживается в Minimal APIs, MVC, SignalR, Blazor и OpenAPI. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #async_news
2 058
4
🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября (уже завтра!) в 19:00 по МСК приходи онлайн на откр
🔍Тестовое собеседование с Senior C# разработчиком уже завтра 15 сентября (уже завтра!) в 19:00 по МСК приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle C# разработчика. Как это будет: 📂 Александр Моргунов, старший C# разработчик с опытом 7+ лет в Европейских высоконагруженных сервисах, будет задавать реальные вопросы и задачи разработчику-добровольцу; 📂 Александр будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью; 📂 В конце можно будет задать любой вопрос Александру. Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для C# разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_csharp_bot Реклама. О рекламодателе.
2 096
5
С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять ми
С днем программиста, коллеги! Желаем, чтобы код компилировался с первого раза, баги находились до релиза, а таски «на пять минут» действительно занимали пять минут.  И конечно, пусть в жизни будет больше приятных сюрпризов — один из них мы уже подготовили. Скорее переходите по ссылке, трясите коробку и забирайте свой подарок ко Дню программиста: https://tprg.ru/YtJ2
2 297
6
🧠 When и Unless для умных проверок В FluentValidation условная валидация запускает правила только при нужных условиях. When и Unless экономят циклы и делают валидаторы читаемыми. • When = «проверить, если условие верно» • Unless = «проверить, если условие НЕ верно» Пример: RuleFor(x => x.ShippingAddress) .NotEmpty() .When(x => x.DeliveryMethod == "Express"); RuleFor(x => x.CreditCard) .NotEmpty() .Unless(x => x.PaymentMethod == "PayPal"); When проверяет условие перед правилом. Express доставка требует адрес, PayPal не требует карту. Логика в одном месте без if-else в контроллере. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
2 332
7
🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy вырастут на 20% 👀 Так что если курс да
🌸 Вселенная намекает: пора уже начать этот курс С 14 сентября цены в Proglib Academy вырастут на 20% 👀 Так что если курс давно ждёт своего часа — лучше не откладывать ещё на месяц 😏 📍 Выбрать курс
2 172
8
📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #garbage_collector
2 241
9
🌞 Готовим вебинар про AI в разработке и хотим сделать его максимально полезным Что реально хочется разобрать? Где чаще всего застреваете? Что пробовали, но так и не получилось нормально внедрить? 🤩 Пишите вопросы в комментариях — самые залайканные разберём на вебинаре в первую очередь. Задавайте всё, что давно хотелось спросить 📍 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта
2 181
10
Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026 — всероссийском чемпионате по программировани
Команды ждут тебя на треке программирование роботов на МТС True Tech Champ 2026  — всероссийском чемпионате по программированию с двумя треками и призовым фондом 10 250 000 рублей. Успей зарегистрироваться до 13 сентября. В треке программирования роботов тебе предстоит запрограммировать робособаку для доставки груза через полосу препятствий сначала в онлайн-симуляторе, а затем на офлайн-полигоне в финале 22 октября. Рекомендуемые стеки: Go, Java, Python, C#, C++, JS. Участие в командах 2-5 человек. Если у тебя нет своей команды, кураторы помогут объединиться с другими участниками на платформе. Масштабный финал объединит борьбу за призовой фонд 10 250 000 рублей, выступления хедлайнеров, доклады спикеров и активности для всех гостей мероприятия. Успей зарегистрироваться и пройти квалификацию до 13 сентября. erid:2VSb5xEgRdt
2 482
11
✏️ Async/Await в C# — шпаргалка ➡️ Что такое Task Task — это обещание, что какое-то событие произойдёт в будущем. Не результат, а именно обещание. Task<T> — то же самое, но с результатом типа T. Когда задача завершится, значение станет доступно. Задача считается завершённой, когда событие произошло или значение получено. Проверить это можно через IsCompleted или Status. ➡️ Как дождаться результата Правильно — асинхронно: • await task — отпускает поток, пока задача не завершится. Поток свободен, приложение не зависает. • ContinueWith(action) — задача сама вызовет ваш колбэк, когда завершится. Полезно, если нужно выстроить цепочку без await. Неправильно — синхронно: • task.Wait() и task.Result блокируют текущий поток до завершения задачи. Это неэффективно, ведь поток простаивает и опасно: риск дедлока в UI и ASP.NET-контекстах. Единственное исключение: вызывать Wait или Result на уже завершённой задаче безопасно и дёшево — результат уже есть, блокировки не будет. ➡️ Что делает async async — это флаг для компилятора: «в этом методе может встретиться await, подготовь конечный автомат». Не более того. async без await внутри — бессмысленный метод. Он выполнится полностью синхронно, а компилятор при этом сгенерирует тяжёлый шаблонный код конечного автомата впустую. async не запускает код в фоновом потоке. Если нужен фоновый поток — используйте Task.Run. ➡️ Что делает await await — точка, в которой метод «разрезается» на до и после. Если задача ещё не завершена, управление возвращается вызывающему коду. Когда задача завершится — выполнение продолжится с того же места. Без await ключевое слово async ничего не делает. ➡️ Частые ошибки Вызов .Result или .Wait() в UI-потоке — дедлок. UI-поток заблокирован ожиданием, а задача не может завершиться, потому что ей нужен тот же UI-поток. async void — допустим только для обработчиков событий. В остальных случаях используйте async Task. Исключения из async void невозможно поймать извне. Забыли await — задача запустится, но никто не дождётся её завершения. Ошибки внутри неё потеряются молча. async без await — компилятор предупредит, и правильно сделает. Метод синхронный, а обёртка в Task создаёт ложные ожидания у вызывающего кода. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
2 695
12
🚀 .NET 11 вышел в Release Candidate 1 8 сентября Microsoft выпустила первый RC .NET 11. У него уже есть Go-Live Support, поэ
🚀 .NET 11 вышел в Release Candidate 1 8 сентября Microsoft выпустила первый RC .NET 11. У него уже есть Go-Live Support, поэтому сборку можно использовать в production — хотя для критичных систем разумнее дождаться финального релиза. Что главное: → C# 15 стал default для .NET 11 — union types и closed hierarchies больше не preview; → runtime получил новые возможности для диагностики и оптимизации, включая crash reporting на Unix и аппаратное ускорение System.Half; → обновились SDK, MSBuild, NuGet, ASP.NET Core, MAUI и WinForms. 🌞 Финальный .NET 11 запланирован на 10 ноября и будет STS-релизом. А 10 ноября заканчивается поддержка .NET 8 и .NET 9. Для них уже вышли сентябрьские security updates: 8.0.31, 9.0.20 и 10.0.12. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #async_news
3 028
13
💥 Куда исчезает метод после JIT-компиляции? В C# мы пишем: int Double(int x) => x * 2; var result = Double(21); Но JIT может решить, что отдельный вызов здесь вообще не нужен. При inlining тело метода встраивается непосредственно в вызывающий код: 🔴 До: call Double ↓ x * 2 🔴 После: 21 * 2 Зачем? Меньше накладных расходов на вызов метода, а главное — JIT получает больше кода для последующих оптимизаций. Но inline не означает «метод маленький → обязательно встроить». JIT учитывает размер метода, частоту вызовов, доступность кода для анализа и другие эвристики. Поэтому даже небольшой метод может не попасть в inline. 📍 А атрибут: [MethodImpl(MethodImplOptions.AggressiveInlining)] — это подсказка JIT, а не приказ. И наоборот, иногда большой метод всё-таки может быть встроен, если JIT считает это выгодным. Вот почему производительность C# нельзя оценивать только по исходному коду: между C# и CPU есть ещё один слой — JIT и его оптимизатор. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #il_люминатор
2 938
14
🧪 MSTest 4.4 теперь поддерживает Native AOT Тесты тоже должны проверять то, что мы отправляем в production. Native AOT означает trimming, ограничения reflection и отсутствие runtime code generation. Обычный managed-тест может этого не показать. В MSTest 4.4 появился source generation для тестов — test discovery и запуск можно выполнять без зависимости от runtime reflection. <PublishAot>true</PublishAot> В итоге можно прогнать тесты в тех же AOT-условиях, в которых будет работать приложение. Особенно полезно для проектов, где Native AOT — часть production-сборки. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #async_news
3 354
15
💡 FrozenDictionary. Когда словарь больше не должен меняться Если коллекция после создания больше не изменяется, обычный Dictionary<TKey, TValue> не всегда лучший вариант. В .NET 8 появились FrozenDictionary и FrozenSet — специализированные неизменяемые коллекции для сценариев, где данные сначала собираются, а потом много раз читаются. var users = new Dictionary<int, string> { [1] = "Ada", [2] = "Linus", [3] = "Grace" }; var frozenUsers = users.ToFrozenDictionary(); После создания frozenUsers нельзя изменить. Зато структура оптимизируется именно под быстрый поиск. 🟡 Хороший сценарий — конфигурация, справочники, таблицы маршрутизации или наборы разрешений, которые загружаются один раз и затем используются тысячи раз. FrozenDictionary не означает «быстрее любого Dictionary». Создание такой коллекции дороже, поэтому выигрыш появляется именно там, где чтений много, а изменений нет. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
3 420
16
👨‍💻 string в C# — не просто текст string — это ссылочный тип с особой поддержкой рантайма. Внутри он хранит непрерывный бло
👨‍💻 string в C# — не просто текст string — это ссылочный тип с особой поддержкой рантайма. Внутри он хранит непрерывный блок UTF-16 кодовых единиц. Отсюда первый сюрприз: string s = "😊"; Console.WriteLine(s.Length); // 2, не 1 Length считает не символы, а UTF-16 кодовые единицы. Эмодзи и многие Unicode-символы занимают две единицы — суррогатную пару. 📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека шарписта #sharp_view
4 142
17
⚙️ nameof теперь понимает несвязанные обобщения Удобство и гибкость метапрограммирования — теперь nameof работает для обобщений без аргументов. Благодаря новой поддержке можно получить имена обобщенных типов без указания параметров: Console.WriteLine(nameof(List<>)); // Выведет "List" 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
4 144
18
🗂 Работа и пет-проекты с одного ПК Работаете днём в корпоративном репо, вечером в личном на GitHub. Один ПК, но email и ключи подписи разные. Ручная смена настроек Git каждый раз бесит и приводит к косякам с коммитами. Условные includeIf решают всё Добавьте в ~/.gitconfig пару строк. Git сам подхватит нужный конфиг по пути к папке или remote URL. Для рабочих папок загрузит корпоративный email: [includeIf "gitdir:~/work/"] path = .gitconfig-corp Личные репозитории получат ваш домашний email автоматически: [includeIf "hasconfig:remote.*.url:https://github.com/вашеимя/**"] path = .gitconfig-personal Забудьте про git config --global user.email каждый раз. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
4 150
19
💥 Azure Functions: Linux Consumption уходит, на смену приходит Flex Microsoft постепенно закрывает старый Linux Consumption
💥 Azure Functions: Linux Consumption уходит, на смену приходит Flex Microsoft постепенно закрывает старый Linux Consumption Plan для Azure Functions. Его поддержка завершится 30 сентября 2028 года, а новые функции и версии языков для него уже не развиваются. Для новых serverless-приложений Microsoft рекомендует Flex Consumption. 🔘 Что меняется для .NET-разработчиков: — Flex работает с .NET 8, 9 и 10 в isolated-модели; — функции масштабируются независимо друг от друга; — можно настраивать память инстанса; — появилась интеграция с VNet; — есть Always Ready-инстансы для снижения cold start; — деплой идёт через blob storage, а не старый zip-deploy. 📍 Переключить существующий Linux Consumption App на Flex «на месте» нельзя. Нужно создать новое Function App в Flex, перенести конфигурацию и задеплоить код. Для миграции Microsoft уже предлагает отдельный CLI: az functionapp flex-migration start Он создаёт Flex-приложение на основе существующего Linux Consumption App. 🔗 Источник 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #async_news
4 138
20
⚡️ C# 15 убирает флаг из вложенных циклов Раньше для выхода сразу из нескольких foreach часто приходилось заводить переменную: bool found = false; foreach (var warehouse in warehouses) { foreach (var bin in warehouse.Bins) { if (bin.Sku == requestedSku) { found = true; break; } } if (found) break; } 🤩 В C# 15 можно обозначить внешний цикл и выйти из него напрямую: scan: foreach (var warehouse in warehouses) { foreach (var bin in warehouse.Bins) { if (bin.Sku == requestedSku) break scan; } } Никаких found, дополнительного if и лишнего состояния. C# 15 сейчас доступен в .NET 11 Preview 7. 📍 Навигация: Вакансии • Задачи • Собесы 🐸Библиотека шарписта #sharp_view
4 451