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

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

@csharpproglib

Все самое полезное для C#-разработчика в одном канале.

Наши курсы: https://clc.to/y3LDtw

По рекламе: @tproger_sales_bot

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Subscribers
21.6K
Photos
2.9K
Videos
46
Links
5.4K

Showing posts older than #5404 · Back to latest

Older Posts 20 shown
Post #5403 5.84K
🚀 Что такое AOT и почему это важно?

Ahead-of-Time (AOT) компиляция в .NET — это способ превращения приложения в нативный исполняемый файл, который не зависит от JIT (Just-In-Time) компиляции во время выполнения. Это улучшает производительность, уменьшает время запуска и делает приложения более компактными. Однако работа с AOT накладывает ограничения: многие библиотеки используют рефлексию, которая в AOT не работает без дополнительных настроек.

📘 YAML.Net и Native AOT

YAML.Net — популярная библиотека для работы с YAML в .NET, но её стандартный подход к сериализации полагается на рефлексию. В статье Эндрю Лока описывается использование генератора исходного кода YAML.Net, который создаёт оптимизированный код, совместимый с AOT. Это упрощает настройку библиотек и помогает избежать проблем с рефлексией.

Подробнее в статье
  • 👍 6
Post #5401 6.38K
⚡️Самые полезные каналы по C# в одной папке

В ней:
➖канал для подготовки к собеседованиям
➖интересные задачи
➖основной канал (этот)
➖книги по C#
➖лучшие вакансии из сферы
➖и наш чат, в котором можно общаться и задавать вопросы

Добавляйте 👉 тык сюда
  • ❤ 5
  • 🌚 3
Post #5400 5.89K

Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

Delta Time — незаменимый инструмент в разработке игр на Unity. Он позволяет сделать игру независимой от частоты кадров, но его неправильное использование может сломать весь геймплей. Разберем, когда и как его применять.

👉 Статья
  • 👍 6
  • 💯 1
Post #5398 6.35K
🛠 Централизованное управление пакетами в .NET

В .NET есть возможность упростить управление зависимостями NuGet с помощью Central Package Management (CPM). Этот подход позволяет задавать версии пакетов в едином файле Directory.Packages.props, вместо того чтобы дублировать их в каждом проекте.

Основные преимущества CPM:
✅ Централизованное управление версиями пакетов;
✅ Удобство обновления зависимостей;
✅ Снижение вероятности конфликтов.

Эта тема раскрывается в одной из статей, где подробно рассказывается о внедрении CPM и его преимуществах. Особую ценность этот метод представляет для крупных решений с множеством проектов.

Для использования CPM достаточно создать файл Directory.Packages.props в корне решения и указать в нем версии необходимых пакетов. Это заметно упрощает поддержку кода и ускоряет процессы разработки.

📎 Подробности можно найти в статье
  • 🔥 21
  • 👍 4
  • ❤ 1
Post #5397 5.81K
Подготовься к собеседованию на позицию Data Scientist!

Профессия Data Scientist становится все более востребованной, и компании ищут специалистов, способных превращать данные в ценные инсайты. Но как успешно пройти техническое собеседование?

Мы собрали 10 типичных задач, которые могут встретиться на собеседовании, и эффективные подходы к их решению:

1. Внешнее и тензорное произведение

2. One-hot кодировка

3. Мониторинг осадков

4. Симуляция бросков кубиков в «Монополии»

5. Бурение скважин для добычи золота

6. Вычисление свертки

7. Бэктестинг торговой стратегии

8. Прогноз оттока клиентов с помощью логистической регрессии

9. Обнаружение спама с использованием дерева решений

10. Предсказание цен на квартиры с помощью линейной регрессии

Чтобы начать решать задачи, достаточно ответить на три простых вопроса по этой ссылке и получить доступ к вводным занятиям курса Алгоритмы и структуры данных и 10 задача
  • ❤ 1
Post #5396 4.99K

Forwarded from Библиотека программиста

🐛🔍 Как найти баг в 2088 коммитах с помощью git bisect

Метод git bisect — мощный инструмент для поиска изменения, вызвавшего баг в коде: с его помощью разработчику удалось быстро локализовать проблему, просмотрев всего 11 коммитов вместо изначальных 2088.

Задача: найти конкретный коммит, который вызвал регрессионную ошибку в проекте.

Исходные данные:
✔️ Ошибка была зарегистрирована 21 октября. Она находится в текущей версии на ветке main.
✔️ Ошибка отсутствует в более ранней версии, которая была выделена в отдельную ветку release-5.7.0.
✔️ Ветку release-5.7.0 создали 2 месяца назад, а с тех пор в ветке main было сделано много изменений — баг может находиться в любом из нескольких тысяч коммитов, которые невозможно быстро просмотреть.

🔗 Читать статью
🔗 Зеркало
  • ❤ 9
  • 👍 3
Post #5395 5.87K
🔍 Глубокое погружение в Transactional Outbox. Используем Wolverine

При создании отказоустойчивых backend-систем часто используется паттерн Transactional Outbox, который гарантирует надежную отправку сообщений после успешной транзакции с базой данных.

🛠️ В .NET паттерн Transactional Outbox можно легко реализовать с помощью фреймворков, таких как Wolverine, который предоставляет интеграцию с популярными ORM, автоматическую обработку очередей сообщений и возможность настройки политик доставки.

🎯 В статье Джереми Д. Миллера рассматривается, как интегрировать паттерн Transactional Outbox с помощью Wolverine. Автор делится примерами использования в банковских транзакциях, контроллерах MVC и HTTP-эндпоинтах, объясняя, как избежать потерь сообщений и повысить надежность системы.

📎 Читать статью
  • 👍 7
  • ❤ 2
  • ⚡ 1
  • 😁 1
  • 🥱 1
Post #5394 4.79K

Forwarded from Библиотека C/C++ разработчика | cpp, boost, qt

Вторая часть рассказа про получение высшего образования в сфере разработки видеоигр. Еще больше подробностей о процессе обучения, разработке студенческих проектов, защите дипломных работ и ответе на главный вопрос: «А стоило ли оно того?»

👉 Статья
  • 🤔 4
Post #5393 5.98K
🚀 Понимание паттерна Transactional Outbox

Что такое Transactional Outbox?
Transactional Outbox — это архитектурный паттерн, который гарантирует надежную доставку сообщений в системах, где нужно сохранить данные в базе и отправить асинхронные уведомления. 

❓Что делает паттерн?

✅ Гарантирует отправку сообщений только после успешной транзакции в базе данных
✅ Предотвращает потерю сообщений при неожиданных остановках системы
✅ Обрабатывает сетевые проблемы и недоступность брокеров сообщений
✅ Предотвращает состояния гонки в распределенных системах

Пример:
c#
// Сохранение заказа
var order = new Order { Id = orderId, Amount = amount, Status = «Placed» };
_context.Orders.Add(order);

// Сохранение сообщения в Outbox
var message = new OutboxMessage
{
Id = Guid.NewGuid(),
Type = nameof(OrderPlaced),
Payload = JsonSerializer.Serialize(new { OrderId = orderId, Amount = amount }),
CreatedAt = DateTime.UtcNow,
Processed = false
};
_context.OutboxMessages.Add(message);

await _context.SaveChangesAsync();

// Завершение транзакции
await transaction.CommitAsync();
  • 👍 22
  • ❤ 2
  • 👏 1
  • 😁 1
  • 👾 1
Post #5392 5.82K
Тест: 🐍 Насколько ты продвинутый питонист?

Устали от многословных конструкций .NET? Проверьте, насколько быстро вы сможете адаптироваться к питоновской магии кода. Тест — ваш шанс блеснуть универсальностью и гибкостью мышления.

📎 Пройти тест
  • 🥱 6
  • 🥰 5
  • 😁 2
  • 🌚 2
Post #5391 6.15K
🧩 Может ли строка в C# изменяться?

В статье предлагается решить задачу, в которой нужно изменить строку «Merry Christmas» на «Advent of C#». Это исследование неизменяемости строк в .NET с использованием небезопасного кода и манипуляций с памятью. Также рассматривается элегантное решение через MemoryMarshal. Задача демонстрирует, как работать с внутренними аспектами строк в C#.

📎 Читайте подробности
  • 👍 15
Post #5390 6.54K
🔧 .NET MAUI — будущее кроссплатформенной разработки!

.NET MAUI
(Multi-platform App UI) — это мощный фреймворк для кроссплатформенной разработки, представленный Microsoft как преемник Xamarin.Forms. Он позволяет создавать приложения для Android, iOS, macOS и Windows из единой кодовой базы, предлагая улучшенную производительность, оптимизированный рабочий процесс и расширенные возможности для работы с UI.

Основные преимущества использования .NET MAUI включают:
✅ Единая кодовая база: все приложение пишется один раз и работает на разных платформах, что экономит время и ресурсы по сравнению с созданием отдельных кодов для каждой платформы​
✅ Нативная производительность: .NET MAUI использует нативные элементы управления, что обеспечивает эффективность работы и бесшовный пользовательский опыт с уникальным интерфейсом для каждой платформы​
✅ Повышенная производительность: такие функции, как Hot Reload, позволяют разработчикам видеть изменения в реальном времени, ускоряя процесс прототипирования и итераций​
✅ Богатые UI-элементы: фреймворк предоставляет множество элементов управления, что упрощает создание сложных и визуально привлекательных интерфейсов​
✅ Кроссплатформенная совместимость: благодаря интеграции с Blazor разработчики могут повторно использовать код и библиотеки для нативных и веб-приложений​

Кроме того, .NET MAUI прекрасно интегрируется с экосистемой .NET, что позволяет разработчикам использовать уже знакомые инструменты и библиотеки. Это делает его привлекательным выбором для компаний, стремящихся оптимизировать разработку приложений для разных платформ
  • 😁 31
  • 👍 13
  • 🌚 2
  • 😢 1
  • 👾 1
Post #5389 6.88K
🚀 .NET 9 отказывается от встроенного Swagger

С выходом .NET 9 Microsoft отказалась от интеграции Swagger в шаблоны Web API, что повлекло за собой значительные изменения в создании документации.
Вместо Swagger теперь используется библиотека Microsoft.AspNetCore.OpenApi, которая поддерживает OpenAPI-спецификацию, но без встроенного визуального интерфейса.
Это открывает новые возможности для кастомизации и гибкости, позволяя адаптировать решение под специфические нужды.

Что делать, если нужен UI:
1️⃣ Добавить Swagger вручную;
2️⃣ Использовать NSwag или другие инструменты;
3️⃣ Создать кастомное решение для документации.
  • 😢 53
  • 👍 8
  • 🎉 1
Post #5388 5.81K
🔄 Как не превратить кодовую базу в легаси?

Чтобы ваш проект оставался актуальным, нужно подходить к его развитию системно. В статье и видео Грега Янковича подчеркиваются три ключевых подхода:

1️⃣ Выбор технологий. Используйте стабильные и проверенные библиотеки, фреймворки и платформы. Это снижает вероятность больших изменений в будущем.

2️⃣ Работа с зависимостями. Локализуйте их влияние на проект через абстракции и тщательно управляйте их обновлениями.

3️⃣ Постепенные улучшения. Регулярно обновляйте код, делая небольшие улучшения — это легче, чем глобальная переработка.

📺 Видео
📄 Статья
  • 👍 6
  • 😁 5
Post #5387 6.05K
💡 Автоматизируем обновление .NET SDK с Dependabot

Теперь обновлять .NET SDK стало проще: Microsoft объясняет, как настроить Dependabot для работы с файлом global.json. Эта интеграция помогает поддерживать проекты актуальными, повышает их безопасность и снижает технический долг.

Вы сами определяете частоту проверок, выбираете, какие версии обновлять (включая preview), и автоматизируете управление зависимостями NuGet. Это удобный инструмент для разработчиков, которым важна стабильность и простота.

📎 Читайте подробности в блоге .Net
  • 🔥 16
  • 👍 1
  • 🌚 1
Post #5386 6.07K
Форматирование строк в C#: как сделать красиво

Работаете с выводом данных в C#? Хотите, чтобы ваши строки и логи выглядели аккуратно и профессионально? Тогда вам сто́ит изучить возможности форматирования!

Зачем это нужно:
✅ Вывод чисел с нужной точностью;
✅ Форматирование дат;
✅ Локализация валют и чисел для разных стран;
✅ Более удобный способ работы со строками благодаря интерполяции.

📎 Если вам это интересно, загляните в полезный гайд.
Там подробно рассказывается, как использовать string.Format, интерполяцию и даже управлять региональными настройками.
  • 👍 7
  • 🥰 6
  • 👏 3
Post #5385 5.65K
Привет, друзья! 👋

2024-й год подходит к концу, и мы хотим узнать, какие технологии или инструменты в C# помогли вам добиться успеха в этом году. Какой навык стал для вас ключевым? А какой проект или достижение вы считаете главным успехом?

Мы готовим статью об IT-итогах 2024 году и хотим услышать ваше мнение! 💻 Поделитесь своим мнением, и самое важное и интересное войдет в нашу статью. 🏆
  • 🥰 3
Post #5384 4.93K

Forwarded from Библиотека разработчика игр | Gamedev, Unity, Unreal Engine

Существует мнение, что высшего образования в сфере разработки игр в России нет, но это не так. В этой большой статье я подробно и честно расскажу о своем опыте обучения на разработчика игр в одном из московских университетов.

👉 Статья
Post #5382 5.74K
⚙️ Inline return values в Visual Studio: как новая функция упрощает отладку

Недавнее обновление Visual Studio 2022 (версия 17.12) принесло массу полезных функций, и одна из них — это отображение возвращаемых значений методов прямо в строке кода во время отладки.

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

int CalculateSum(int a, int b) { return a + b; } 
// В отладчике сразу видно: возвращаемое значение = 15.


Преимущества:
✅ Скорость и удобство: мгновенный доступ к возвращаемым значениям без лишних шагов.
✅ Чистота кода: больше не нужно добавлять лишние переменные для промежуточного хранения результата.
✅ Удобство анализа: работает автоматически, что ускоряет процесс отладки.

📎 Подробнее в блоге Visual Studio
  • 🔥 19
  • 👍 5
  • 🤔 1
Post #5381 5.71K
❓⚙️ .Net для веб-разработки

В последние годы .NET стал мощным инструментом для создания веб-приложений. Он предлагает кросс-платформенность, высокую производительность, удобные инструменты разработки (Blazor, Razor Pages, Web API) и всё это в экосистеме с хорошей документацией и поддержкой.

Однако вокруг .NET всё ещё ходят споры: кто-то видит в нём идеальный стек для веба, а кто-то считает его нишевым решением

Один из пользователей Reddit поднял интересную тему, сравнивая Node.js и .NET в веб-разработке. Основными аргументами в сравнении были производительность, типизация и использование сторонних библиотек.

А как вы считаете недооценён ли .Net для веб-разработки? Делитесь своим мнением!👇
  • 👍 16
  • 🥰 2
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →