Forwarded from Библиотека задач по C# | тесты, код, задания
Какое утверждение корректно описывает поведение struct с полями-ссылками (ref fields) и использованием ref struct в C#?
👾 — ref struct можно хранить в куче, если он вложен в класс, но доступ к нему осуществляется только по ссылке
👍 — ref struct запрещает захват в замыканиях, хранение в полях классов и boxing, чтобы гарантировать расположение в стеке
🥰 — Обычный struct с полями-ссылками (ref T) компилятор не ограничивает, и их можно хранить в куче без последствий
🥱 — ref struct может быть полем обычного struct, если оба находятся в куче
Библиотека задач по C#
👾 — ref struct можно хранить в куче, если он вложен в класс, но доступ к нему осуществляется только по ссылке
👍 — ref struct запрещает захват в замыканиях, хранение в полях классов и boxing, чтобы гарантировать расположение в стеке
🥰 — Обычный struct с полями-ссылками (ref T) компилятор не ограничивает, и их можно хранить в куче без последствий
🥱 — ref struct может быть полем обычного struct, если оба находятся в куче
Библиотека задач по C#
👍37❤2🤔1👾1
C# Unity Developer — удалёнка.
Разработчик C# (Middle+) — от 230 000 ₽, гибрид (Москва).
Senior C# developer — от 4 500 до 5 500 €, удалёнка.
Senior C#-разработчик — удалёнка.
C# разработчик — от 240 000 до 300 000 .
Бустер — Удалённо (в любом городе мира).
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
This media is not supported in your browser
VIEW IN TELEGRAM
📀 Как настроить SQLite в .NET
SQLite — это легковесная база данных, которая идеально подходит для локальных приложений, тестирования или небольших проектов.
Давайте разберём, как настроить SQLite в проекте на .NET и начать работать с данными.
• Прежде всего, нужно добавить SQLite в ваш проект.
Для этого пишем команду:
• Создание базы данных
После установки пакета можно приступать к созданию базы данных. Пример простого кода для создания базы данных и таблицы:
Здесь мы создаем базу данных, если её ещё нет, и таблицу пользователей.
Добавляем данные: вставка записей
Чтобы извлечь данные, используем SQL-запрос и ExecuteReader:
Параметризированные запросы
Для защиты от своих же SQL-инъекций важно использовать параметризированные запросы:
Теперь вы знаете, как легко настроить SQLite в вашем проекте на .NET.
🐸 Библиотека шарписта
#буст
SQLite — это легковесная база данных, которая идеально подходит для локальных приложений, тестирования или небольших проектов.
Давайте разберём, как настроить SQLite в проекте на .NET и начать работать с данными.
• Прежде всего, нужно добавить SQLite в ваш проект.
Для этого пишем команду:
Install-Package Microsoft.Data.Sqlite
• Создание базы данных
После установки пакета можно приступать к созданию базы данных. Пример простого кода для создания базы данных и таблицы:
using Microsoft.Data.Sqlite;
public class SQLiteExample
{
public void CreateDatabase()
{
var connectionString = "Data Source=example.db"; // Путь к базе данных
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText =
@"
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
email TEXT NOT NULL
);
";
command.ExecuteNonQuery();
}
}
}
Здесь мы создаем базу данных, если её ещё нет, и таблицу пользователей.
Добавляем данные: вставка записей
public void InsertData()
{
var connectionString = "Data Source=example.db";
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText =
@"
INSERT INTO users (name, email)
VALUES ('John Doe', 'johndoe@example.com');
";
command.ExecuteNonQuery();
}
}
Чтобы извлечь данные, используем SQL-запрос и ExecuteReader:
public void ReadData()
{
var connectionString = "Data Source=example.db";
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText =
"SELECT id, name, email FROM users;";
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine($"ID: {reader.GetInt32(0)}, Name: {reader.GetString(1)}, Email: {reader.GetString(2)}");
}
}
}
}
Параметризированные запросы
Для защиты от своих же SQL-инъекций важно использовать параметризированные запросы:
public void InsertDataWithParameters(string name, string email)
{
var connectionString = "Data Source=example.db";
using (var connection = new SqliteConnection(connectionString))
{
connection.Open();
var command = connection.CreateCommand();
command.CommandText =
@"
INSERT INTO users (name, email)
VALUES (@name, @email);
";
command.Parameters.AddWithValue("@name", name);
command.Parameters.AddWithValue("@email", email);
command.ExecuteNonQuery();
}
}
Теперь вы знаете, как легко настроить SQLite в вашем проекте на .NET.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🥱7
🧑💻 Сёрфить .NET без Blazor
Можно ли запустить .NET-приложение в браузере без Blazor? Да, существуют несколько альтернативных методов, которые могут подойти для различных проектов.
Один из таких методов — это WebAssembly. Эта технология позволяет компилировать .NET-код в байткод, который выполняется в браузере. Однако WebAssembly не поддерживает все возможности .NET, а настройка может быть сложной.
Если нужна большая гибкость, можно использовать JavaScript Interop. Этот подход позволяет обмениваться данными между JavaScript и .NET, что дает возможность интегрировать их в одно приложение.
Это решение для тех, кто хочет сохранить существующий JavaScript-код, но при этом использовать возможности .NET в клиентской части.
Также можно использовать инструменты вроде Mono и CoreRT для компиляции .NET-приложений в WebAssembly, или платформы, такие как Ooui и Uno Platform, которые упрощают перенос .NET-кода в браузер.
➡️ Подробнее про запуск с WebAssembly можно почитать в статье
🐸 Библиотека шарписта
#буст
Можно ли запустить .NET-приложение в браузере без Blazor? Да, существуют несколько альтернативных методов, которые могут подойти для различных проектов.
Один из таких методов — это WebAssembly. Эта технология позволяет компилировать .NET-код в байткод, который выполняется в браузере. Однако WebAssembly не поддерживает все возможности .NET, а настройка может быть сложной.
Если нужна большая гибкость, можно использовать JavaScript Interop. Этот подход позволяет обмениваться данными между JavaScript и .NET, что дает возможность интегрировать их в одно приложение.
Это решение для тех, кто хочет сохранить существующий JavaScript-код, но при этом использовать возможности .NET в клиентской части.
Также можно использовать инструменты вроде Mono и CoreRT для компиляции .NET-приложений в WebAssembly, или платформы, такие как Ooui и Uno Platform, которые упрощают перенос .NET-кода в браузер.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7👍4
📺 Хватит коллекционировать туториалы!
Десятки роликов по ML, сотни вкладок, папка «Посмотреть позже» трещит по швам. В голове — обрывки знаний о нейросетях и Pandas.
Знания без системы — это просто «шум». Они не превращаются в навыки и проекты.
Наш курс «ML для старта в Data Science» — это не ещё один туториал. Это система. Чёткий путь от «каши» в голове до первого сильного проекта в портфолио.
И да, чтобы старт был ещё проще — при покупке курса по ML вы получаете курс по Python в подарок
👉 Превратите «шум» в навык
А вы сталкивались с «информационной кашей»? Как выбирались? 👇
Десятки роликов по ML, сотни вкладок, папка «Посмотреть позже» трещит по швам. В голове — обрывки знаний о нейросетях и Pandas.
Знания без системы — это просто «шум». Они не превращаются в навыки и проекты.
Наш курс «ML для старта в Data Science» — это не ещё один туториал. Это система. Чёткий путь от «каши» в голове до первого сильного проекта в портфолио.
И да, чтобы старт был ещё проще — при покупке курса по ML вы получаете курс по Python в подарок
👉 Превратите «шум» в навык
А вы сталкивались с «информационной кашей»? Как выбирались? 👇
❤4🥱4
🛠 Как оживить протухшую ветку без merge-хаоса
Бывает: вы увлеклись разработкой, прошло пару недель (или месяцев), а основная ветка уже ушла далеко вперёд. В итоге — боль, конфликты и бесконечные merge-коммиты.
В таких случаях может спасати ребейз на свежую ветку:
Она подтянет последние изменения из релизной ветки и наложит ваши коммиты поверх, сохранив линейную историю.
Конфликты всё равно придётся разруливать, но по одному — в контексте конкретного коммита, а не в гигантской свалке.
После успешного ребейза пушим с
🐸 Библиотека шарписта
#буст
Бывает: вы увлеклись разработкой, прошло пару недель (или месяцев), а основная ветка уже ушла далеко вперёд. В итоге — боль, конфликты и бесконечные merge-коммиты.
В таких случаях может спасати ребейз на свежую ветку:
git pull --rebase origin release/1.2.0
Она подтянет последние изменения из релизной ветки и наложит ваши коммиты поверх, сохранив линейную историю.
Конфликты всё равно придётся разруливать, но по одному — в контексте конкретного коммита, а не в гигантской свалке.
После успешного ребейза пушим с
--force-with-lease
, чтобы аккуратно обновить удалённую ветку, и продолжаем работать так, как будто отставания и не было.#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🌚2
🔥 Успей поднять квалификацию по выгодной цене!
Только до 17 августа у вас есть последняя возможность купить наши курсы по старым ценам.
🔹 Математика для Data Science:
— Базовый: (сейчас)
— Ультра:
— VIP:
🔹 Программирование на Python:
🔹 Алгоритмы и структуры данных:
🔹 Архитектуры и шаблоны проектирования:
🔹 AI-агенты для DS специалистов:
🔹 Основы IT для непрограммистов:
🔹 Базовые модели ML:
❗ Важно: Курсы из линейки Frontend Basic полностью снимаются с продажи. 17 августа — буквально последний день, когда их можно будет приобрести.
Успей купить до повышения — осталось 4 дня!
👉 Зафиксировать цену и начать учиться
Только до 17 августа у вас есть последняя возможность купить наши курсы по старым ценам.
🔹 Математика для Data Science:
— Базовый: (сейчас)
26 399₽
→ (будет) 33 900₽
— Ультра:
35 199₽
→ 44 900₽
— VIP:
59 829₽
→ 75 900₽
(выгода больше 16 000₽!)🔹 Программирование на Python:
24 990₽
→ 32 900₽
🔹 Алгоритмы и структуры данных:
31 669₽
→ 39 900₽
🔹 Архитектуры и шаблоны проектирования:
24 890₽
→ 32 900₽
🔹 AI-агенты для DS специалистов:
54 000₽
→ 59 000₽
🔹 Основы IT для непрограммистов:
14 994₽
→ 19 900₽
🔹 Базовые модели ML:
6 990₽
→ 9 900₽
❗ Важно: Курсы из линейки Frontend Basic полностью снимаются с продажи. 17 августа — буквально последний день, когда их можно будет приобрести.
Успей купить до повышения — осталось 4 дня!
👉 Зафиксировать цену и начать учиться
❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20❤1
Если вы планируете изменить схему базы данных, то важно тщательно подготовиться к этому процессу. В этом посте мы собрали ключевые шаги, которые помогут вам сделать миграцию безопасной и безболезненной.
1. Определите цель изменения и ожидаемый эффект.
2. Классифицируйте тип изменений
• backward-compatible: добавления, nullable-колонки, индексы
• breaking: переименования, удаления, типовые изменения.
3. Выберите стратегию
• Expand/Contract (двухэтапно: добавляем новое → адаптируем код → удаляем старое)
• Online миграция (pg_repack, gh-ost, pt-online-schema-change)
• Blue-Green или shadow-write/read если критична безостановочность.
4. Спланируйте идемпотентные скрипты миграций и версионирование.
5. Решите, как обрабатывать большие таблицы
• батчи
• lock timeout
• throttling, disable/enable triggers.
6. Найдите все места использования затрагиваемых таблиц/полей: сервисы, джобы, ETL, BI, отчёты, внешние интеграции, функции/триггеры/вьюхи.
7. Проверьте совместимость контрактов API и сериализаций (Protobuf/JSON схемы).
8. Подготовьте репрезентативные объёмы данных в том числе «длинные хвосты», edge-кейсы.
9. Зафиксируйте базовые метрики производительности до изменений: latency, throughput, locks, bloat.
10. Убедитесь в валидном бэкапе: полный + журналы. Сделайте тестовое восстановление.
11. Зафиксируйте точку восстановления: restore point, snapshot, LSN.
12. Для облачных БД — проверьте снапшоты и политику retention.
13. Реализуйте обратную совместимость: код должен работать со старой и новой схемой в переходный период.
14. Обновите ORM-модели/миграции, DTO, валидаторы, GraphQL/REST схемы.
15. Нагрузочное тестирование критичных запросов и миграций: проверка блокировок, регрессий.
16. Обновите диаграммы, спецификации, Confluence/README, схемы событий.
17. Задокументируйте проблемы и фактические времена выполнения, обновите шаблон миграций.
Что бы вы добавили в этот список?
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8❤2
🧑💻 Почему SOAP — это прошлое
Когда мы говорим о веб-сервисах, старые технологии вроде SOAP уже не так популярны. Но почему?
Такой вопрос, который нам недавно задал подписчик:
Сейчас объясним почему REST стал стандартом.
SOAP использует XML, который довольно тяжёлый и сложный в обработке. В REST для обмена данными чаще используется JSON — лёгкий формат, который легче читается и быстрее обрабатывается.
SOAP требует строгого соблюдения протоколов, что делает его менее гибким. REST, наоборот, позволяет работать с разными форматами данных и требует меньше настроек.
REST проще интегрируется с мобильными приложениями, веб-сервисами и современными технологиями. SOAP лучше подходит для сложных корпоративных систем, но для большинства проектов REST подходит гораздо лучше.
SOAP был хорош, но сегодня REST предоставляет всё, что нужно для современных приложений.
💬 А вы когда-нибудь использовали SOAP? Поделитесь своим опытом в комментариях 👇
🐸 Библиотека шарписта
#междусобойчик
Когда мы говорим о веб-сервисах, старые технологии вроде SOAP уже не так популярны. Но почему?
Такой вопрос, который нам недавно задал подписчик:
Почему SOAP считается устаревшим, а REST стал стандартом?
Сейчас объясним почему REST стал стандартом.
SOAP использует XML, который довольно тяжёлый и сложный в обработке. В REST для обмена данными чаще используется JSON — лёгкий формат, который легче читается и быстрее обрабатывается.
SOAP требует строгого соблюдения протоколов, что делает его менее гибким. REST, наоборот, позволяет работать с разными форматами данных и требует меньше настроек.
REST проще интегрируется с мобильными приложениями, веб-сервисами и современными технологиями. SOAP лучше подходит для сложных корпоративных систем, но для большинства проектов REST подходит гораздо лучше.
SOAP был хорош, но сегодня REST предоставляет всё, что нужно для современных приложений.
💬 А вы когда-нибудь использовали SOAP? Поделитесь своим опытом в комментариях 👇
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12😁3🤔3🌚2
Facet — библиотека для маппинга объектов в C#. Она позволяет легко маппить объекты и работает с проекциями для EF Core.
Facet не самая быстрая по производительности, но для большинства задач её возможностей хватает.
#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👾1
💰 Сколько вы реально стоите как разработчик
Переговоры о зарплате — это всегда искусство не продешевить. Но как точно определить свою стоимость?
Мы подготовили 3 эффективных способа, которые помогут вам без догадок понять, сколько вы действительно стоите, и уверенно озвучить свою цену работодателю.
Листайте карточки и торгуйтесь уже на следующем собесе
➡️ Читать статью
🐸 Библиотека шарписта
Переговоры о зарплате — это всегда искусство не продешевить. Но как точно определить свою стоимость?
Мы подготовили 3 эффективных способа, которые помогут вам без догадок понять, сколько вы действительно стоите, и уверенно озвучить свою цену работодателю.
Листайте карточки и торгуйтесь уже на следующем собесе
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁30🔥6
🤖 C# для машинного обучения
Когда речь идет о машинном обучении, обычно на ум приходит Python. Но C# с его мощной экосистемой и возможностями тоже может быть использован для решения задач машинного обучения.
Давайте разберемся, подходит ли C# для машинного обучения или всё-таки стоит обратить внимание на более традиционные инструменты.
Плюсы использования C# для машинного обучения:
• C# является частью экосистемы .NET, что даёт разработчикам доступ к множеству библиотек для работы с большими данными, многозадачностью и асинхронными операциями.
• Microsoft предлагает ML.NET — библиотеку, которая позволяет работать с алгоритмами машинного обучения в C#.
• C# известен своей высокой производительностью, благодаря чему можно эффективно обрабатывать большие объемы данных.
Минусы использования C# для машинного обучения:
• Хотя ML.NET предоставляет некоторые возможности, C# не имеет такого богатого выбора фреймворков и моделей, как Python.
• В интернете гораздо меньше примеров и документации по машинному обучению на C# по сравнению с Python
💬 Используете ли вы C# для машинного обучения или предпочли бы выбрать Python? Поделитесь своим мнением в комментариях 👇
🐸 Библиотека шарписта
#междусобойчик
Когда речь идет о машинном обучении, обычно на ум приходит Python. Но C# с его мощной экосистемой и возможностями тоже может быть использован для решения задач машинного обучения.
Давайте разберемся, подходит ли C# для машинного обучения или всё-таки стоит обратить внимание на более традиционные инструменты.
Плюсы использования C# для машинного обучения:
• C# является частью экосистемы .NET, что даёт разработчикам доступ к множеству библиотек для работы с большими данными, многозадачностью и асинхронными операциями.
• Microsoft предлагает ML.NET — библиотеку, которая позволяет работать с алгоритмами машинного обучения в C#.
• C# известен своей высокой производительностью, благодаря чему можно эффективно обрабатывать большие объемы данных.
Минусы использования C# для машинного обучения:
• Хотя ML.NET предоставляет некоторые возможности, C# не имеет такого богатого выбора фреймворков и моделей, как Python.
• В интернете гораздо меньше примеров и документации по машинному обучению на C# по сравнению с Python
💬 Используете ли вы C# для машинного обучения или предпочли бы выбрать Python? Поделитесь своим мнением в комментариях 👇
#междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍2
😎 Вы просили — мы сделали. Самый долгожданный анонс этого лета!
Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!
На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.
📆 Старт потока — 15 сентября.
💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.
👉 Занять место
Мы открываем набор на второй поток курса «AI-агенты для DS-специалистов»!
На курсе мы учим главному навыку 2025 года: не просто «болтать» с LLM, а строить из них рабочие системы с помощью Ollama, RAG, LangChain и crew.ai.
📆 Старт потока — 15 сентября.
💸 Цена 49 000 ₽ действует только в эти выходные — до 17 августа. С понедельника будет дороже.
👉 Занять место
🥱9
📰 Дайджест новостей
Выловили из потока новостей только самое важное.
— Copilot теперь понимает код как человек
В обновлении Visual Studio 17.14.11 появился новый механизм поиска — Remote Semantic Search, интегрированный непосредственно в Copilot Chat. Теперь поиск кода выходит за рамки простого сопоставления ключевых слов.
— .NET 10 Preview 7 уже здесь
Microsoft представила .NET 10 Preview 7 — седьмой предварительный релиз, который включает обновления в .NET Runtime, SDK, библиотеках, ASP.NET Core, Blazor, .NET MAUI и других компонентах экосистемы.
— .NET задаёт новый темп в AI-интеграции
NuGet MCP Server — новый сервер в экосистеме .NET, позволяющий AI‑ассистентам (в частности, LLM) получать актуальную информацию о пакетах NuGet в режиме реального времени.
— GPT-5 теперь в Visual Studio
Microsoft объявила, что GPT‑5, последняя и наиболее продвинутая модель OpenAI, теперь доступна в GitHub Copilot внутри Visual Studio.
— Сколько вы реально стоите как разработчик
🐸 Библиотека шарписта
#свежак
Выловили из потока новостей только самое важное.
— Copilot теперь понимает код как человек
В обновлении Visual Studio 17.14.11 появился новый механизм поиска — Remote Semantic Search, интегрированный непосредственно в Copilot Chat. Теперь поиск кода выходит за рамки простого сопоставления ключевых слов.
— .NET 10 Preview 7 уже здесь
Microsoft представила .NET 10 Preview 7 — седьмой предварительный релиз, который включает обновления в .NET Runtime, SDK, библиотеках, ASP.NET Core, Blazor, .NET MAUI и других компонентах экосистемы.
— .NET задаёт новый темп в AI-интеграции
NuGet MCP Server — новый сервер в экосистеме .NET, позволяющий AI‑ассистентам (в частности, LLM) получать актуальную информацию о пакетах NuGet в режиме реального времени.
— GPT-5 теперь в Visual Studio
Microsoft объявила, что GPT‑5, последняя и наиболее продвинутая модель OpenAI, теперь доступна в GitHub Copilot внутри Visual Studio.
— Сколько вы реально стоите как разработчик
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤1