🔥 UUID v7 в .NET 9
.NET изначально поддерживает UUID v4 через
При этом начиная с предварительной версии 7, появилась поддержка UUID версии 7.
📌 UUID v7
Так как
Главным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
#csharp #dotnet #code
Источник
@csharp_1001_notes
.NET изначально поддерживает UUID v4 через
Guid.NewGuid().
При этом начиная с предварительной версии 7, появилась поддержка UUID версии 7.
📌 UUID v7
Так как
GUID
является альтернативным названием для UUID,
новый API находится в пространстве имен System.Guid:
var guid = Guid.CreateVersion7();
var guidWithTimestamp = Guid.CreateVersion7(DateTimeOffset.UtcNow);
Главным преимуществом является включение метки времени в UUID. Это дает 122 бита энтропии, включая 6 бит для версии и варианта где-то посередине.
Главное преимущество заключается в том, что вы можете сортировать UUID по времени их создания, что делает их более подходящими для баз данных по сравнению с UUID v4.
📌 Контроль метки времени
Поскольку метод ожидает
DateTimeOffset,
вызывающая функция может использовать TimeProvider для контроля UtcNow:
var uuid = Guid.CreateVersion7(timeProvider.GetUtcNow());
timeProvider
может быть получен через DI контейнер и подделан в тестовых сценариях.#csharp #dotnet #code
Источник
@csharp_1001_notes
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ .NES ("dot" NES)
Интересная библиотека предназначенная для разработки под NES (Nintendo Entertainment System).
Инструмент позволяет разработчикам создавать игры для NES с использованием C# и других технологий #NET, предоставляя инструменты и ресурсы для упрощения процесса разработки игр для этой классической игровой платформы.
▪ Github
@csharp_1001_notes
Интересная библиотека предназначенная для разработки под NES (Nintendo Entertainment System).
Инструмент позволяет разработчикам создавать игры для NES с использованием C# и других технологий #NET, предоставляя инструменты и ресурсы для упрощения процесса разработки игр для этой классической игровой платформы.
dotnet new install dotnes.templates
▪ Github
@csharp_1001_notes
В .NET у нас есть множество способов сопоставлять объекты друг с другом. Выше — пример использования оператора
explicit
для этих целей.⚡️ Подробнее
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Выпуск .NET Aspire 8.2!
Команда .NET Aspire выпустила новую версию 8.2, которая улучшает процесс внедрения и тестирования.
Главное изменение — Components теперь называются Integrations, что упрощает работу с облачными сервисами.
Подробности: https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-8-2/
@csharp_1001_notes
Команда .NET Aspire выпустила новую версию 8.2, которая улучшает процесс внедрения и тестирования.
Главное изменение — Components теперь называются Integrations, что упрощает работу с облачными сервисами.
Подробности: https://devblogs.microsoft.com/dotnet/announcing-dotnet-aspire-8-2/
@csharp_1001_notes
Исключения играют важную роль в C#/.NET приложениях, помогая поддерживать их стабильность. Важно использовать
throw;
вместо throw ex;
в блоках catch, чтобы сохранить исходный стек вызовов и упростить отладку. Использование throw ex;
сбрасывает стек, усложняя устранение ошибок. Подробности: https://nilebits.hashnode.dev/c-net-exception-handling-why-you-should-avoid-using-throw-ex-in-catch-blocks
#en
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Новый SDK Pinecone для .NET: Расширяйте свои возможности в AI!
Экосистема AI в .NET постоянно растет, и команда платформы не собирается останавливаться.
Этот новый инструмент представляет собой векторную базу данных, разработанную для эффективной обработки и запроса больших векторных данных. Под катом — краткий обзор его возможностей.
📍 Читать
@csharp_1001_notes
Экосистема AI в .NET постоянно растет, и команда платформы не собирается останавливаться.
Этот новый инструмент представляет собой векторную базу данных, разработанную для эффективной обработки и запроса больших векторных данных. Под катом — краткий обзор его возможностей.
📍 Читать
@csharp_1001_notes
Упрощает создание:
▪приложений для совместного редактирования документов (например, Google Docs, Trello),
мультиплеерных игр (например, для мгновенного ▪оповещения игроков о действиях других),
маркетплейсов (биржи, ставки),
▪дешбордов с данными в реальном времени,
▪систем для общения между IoT-устройствами: обмен сообщениями, сигнализация, запуск действий через прослушивание одного источника.
https://github.com/rethinkdb/rethinkdb
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ Создаём реальное чат-приложение на SignalR в .NET и React
Статья подробно описывает процесс создания реального чат-приложения с использованием SignalR в .NET и React. Разбираются этапы настройки бэкенда с помощью ASP.NET Core и фронтенда с использованием React, а также взаимодействие между ними для обеспечения реального времени в чате.
https://blog.ghanshyamdigital.com/building-a-real-time-chat-app-with-signalr-in-net-and-react
@csharp_1001_notes
Статья подробно описывает процесс создания реального чат-приложения с использованием SignalR в .NET и React. Разбираются этапы настройки бэкенда с помощью ASP.NET Core и фронтенда с использованием React, а также взаимодействие между ними для обеспечения реального времени в чате.
https://blog.ghanshyamdigital.com/building-a-real-time-chat-app-with-signalr-in-net-and-react
@csharp_1001_notes
🏬 Разработка масштабируемого веб-API для приложения e-commerce с использованием .NET и MongoDB: пошаговый гайд
Гайд проведет вас через ключевые компоненты и принципы проектирования чистой архитектуры .NET, интеграцию MongoDB и различные функции и возможности приложения электронной коммерции.
👉 Читать
Гайд проведет вас через ключевые компоненты и принципы проектирования чистой архитектуры .NET, интеграцию MongoDB и различные функции и возможности приложения электронной коммерции.
👉 Читать
💁💁 LXC vs. Docker: что использовать?
В современных условиях разработки программного обеспечения технология контейнеризации стала ключевым инструментом для разработчиков, стремящихся повысить эффективность и обеспечить согласованность в различных средах. Среди различных контейнерных технологий, доступных сегодня, контейнеры Linux (LXC) и Docker являются двумя наиболее популярными вариантами.
В статье рассматриваются виртуальные среды LXC и Docker и их функциональные возможности.
Продолжение тут
#почитать
В современных условиях разработки программного обеспечения технология контейнеризации стала ключевым инструментом для разработчиков, стремящихся повысить эффективность и обеспечить согласованность в различных средах. Среди различных контейнерных технологий, доступных сегодня, контейнеры Linux (LXC) и Docker являются двумя наиболее популярными вариантами.
В статье рассматриваются виртуальные среды LXC и Docker и их функциональные возможности.
Продолжение тут
#почитать
✔ Awesome-Avalonia PRs Welcome
Коллекция полезных библиотек и инструментов для проекта Avalonia включает в себя множество полезных ресурсов.
Если вы работаете с кроссплатформенным XAML-фреймворком для экосистемы .NET, то репозиторий awesome-avalonia заслуживает вашего внимания. Он содержит множество полезной информации и будет отличным дополнением к вашим закладкам.
▪ GitHub
Коллекция полезных библиотек и инструментов для проекта Avalonia включает в себя множество полезных ресурсов.
Если вы работаете с кроссплатформенным XAML-фреймворком для экосистемы .NET, то репозиторий awesome-avalonia заслуживает вашего внимания. Он содержит множество полезной информации и будет отличным дополнением к вашим закладкам.
▪ GitHub
⚡️ Сможет ли Blazor превзойти React/Angular?
Очень интересное обсуждение на Reddit от новичка в .NET-разработке. Комментаторы считают, что Blazor учить легче, но в то же время он не развивается так быстро как популярные JavaScript-фреймворки.
Делитесь своими мыслями в комментариях
@csharp_1001_notes
Очень интересное обсуждение на Reddit от новичка в .NET-разработке. Комментаторы считают, что Blazor учить легче, но в то же время он не развивается так быстро как популярные JavaScript-фреймворки.
Делитесь своими мыслями в комментариях
@csharp_1001_notes
Обновление в .NET Smart Components
.NET Smart Components теперь доступны на GitHub! Эти AI-ориентированные компоненты облегчают интеграцию умных функций в ваши приложения. Ознакомьтесь с кодом, документацией и примерами, чтобы начать использовать AI в своих проектах, и делитесь своими идеями на GitHub.
Подробности: https://devblogs.microsoft.com/dotnet/join-the-dotnet-smart-components-ecosystem/
#en
.NET Smart Components теперь доступны на GitHub! Эти AI-ориентированные компоненты облегчают интеграцию умных функций в ваши приложения. Ознакомьтесь с кодом, документацией и примерами, чтобы начать использовать AI в своих проектах, и делитесь своими идеями на GitHub.
Подробности: https://devblogs.microsoft.com/dotnet/join-the-dotnet-smart-components-ecosystem/
#en
Caller Information
позволяет передавать в метод информацию о вызывающем его коде, например:- Имя файла
- Номер строки в файле
- Имя вызывающего метода
[CallerFilePath]
— возвращает полный путь к исходному файлу, в котором был вызван метод.[CallerLineNumber]
— возвращает номер строки в файле, где был вызван метод.[CallerMemberName]
— возвращает имя метода или свойства, из которого был вызван метод.Предположим, у нас есть метод
Log
, который записывает сообщение в консоль вместе с информацией о вызове:
using System;
using System.Runtime.CompilerServices;
class Program
{
static void Main()
{
TestMethod();
}
static void TestMethod()
{
Log("Это тестовое сообщение");
}
static void Log(string message,
[CallerFilePath] string filePath = "",
[CallerLineNumber] int lineNumber = 0,
[CallerMemberName] string memberName = "")
{
Console.WriteLine($"Сообщение: {message}");
Console.WriteLine($"Файл: {filePath}");
Console.WriteLine($"Метод: {memberName}");
Console.WriteLine($"Строка: {lineNumber}");
}
}
Файл: C:\Users\...\Program.cs
Метод: TestMethod
Строка: 11
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
▪️Github
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
@csharp_1001_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
@csharp_ci
Please open Telegram to view this post
VIEW IN TELEGRAM