Библиотека шарписта | C#, F#, .NET, ASP.NET
22.9K subscribers
2.26K photos
36 videos
85 files
4.43K links
Все самое полезное для C#-разработчика в одном канале.

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

Учиться у нас: https://proglib.io/w/b60af5a4

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

РКН: https://gosuslugi.ru/snet/67a5c81cdc130259d5b7fead
Download Telegram
🏝️ Решаем очень сложную SQL-задачу об островах и проливах

Задача об островах и проливах — это классическая задача в SQL, часто используемая для оценки навыков программиста в работе с базами данных. Суть задачи заключается в том, чтобы в таблице, содержащей данные о событиях и их временных интервалах, объединить отдельные записи в непрерывные интервалы, представляющие собой «острова» (периоды, когда происходили события) и «проливы» (промежутки между ними).

👉В новой статье разбираем решение задачи👈
👍112
👩‍💻 Как работать с Tasks view: пошаговый гайд для .NET-разработчиков, которые используют Rider

Новый инструмент Rider (доступен в 2024.2 EAP) поможет визуализировать и оптимизировать планирование задач, а также обнаружить и исследовать взаимоблокировки в коде.

👉 Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥5👍3😢3
🔥 UUID v7 в .NET 9

.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 #tip by
Steven Giesel
👍45🔥6
🚩 Как понять, что с компанией точно что-то не так: 11 красных флагов на собеседовании

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

Читать статью
👍11
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи

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

Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций.

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

👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
👍1
🔥 Span в .NET: руководство от Stephen Toub

Хотите лучше разобраться в Span? Тогда этот вебинар для вас. Stephen Toub вместе со Scott Hanselman рассматривают System.Span, который обеспечивает безопасный способ доступа к непрерывным областям произвольной памяти.

Таймкоды:
00:00:00 Exploring the Impact and Evolution of Span in Software Engineering
00:03:09 Deep Dive into Assembly Code and its Translation
00:04:15 Exploring Methods to Disassemble and Analyze C# Function
00:05:43 Exploring the JIT Compiler and Assembly Code Optimization
00:12:03 Understanding Arrays and Pointers in Programming
00:16:46 Understanding Memory Management and Array Access in Programming
00:24:35 Discussing the Cost and Implementation of Memory Management Functions
00:26:23 Exploring the Intersection of Performance, Maintenance, and Interop in Programming
00:31:51 Understanding the Concept and Impact of Span in Computer Science
00:39:28 Discussion on Memory Protection and Immutability in Unix and Windows
00:45:59 Implementing and Understanding the Concept of Ref Functions in C#
00:51:08 Exploring JavaScript Optimal Notation and Memory Management
00:54:28 Exploring the Implementation and Functionality of Span in Programming
00:59:53 The Evolution and Impact of Span in .NET Development
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍93😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Сам написал, сам полетал: как и зачем автор статьи разработал 3D-игру на C# с нуля под компьютеры из 90-х в 2024 году?

Интересно, как происходит процесс разработки игры с нуля — от первого «тридэ» треугольника, до работающей на реальном железе демки? Тогда добро пожаловать под кат!

👉 Читать
👍28🔥3🥱1
💡Явные транзакции EF Core помогают более гибко и надежно управлять операциями по сравнению с неявными транзакциями.

Это можно достичь с помощью следующих методов:

BeginTransaction()
Commit() / RollBack()

#efcore #tip
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥33😢4🌚2🥰1🥱1
🤯 International Blue Screen Day

Собрали мини-подборку фото и мемов по мотивам сегодняшних событий.

#назлобудня
😁41👏3