Все потоки
Поиск
Написать публикацию
Обновить
52.14

.NET *

Хаб со знаниями про .NET

Сначала показывать
Порог рейтинга
Уровень сложности

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 10. C# не нужен

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.9K

F# и C# в плане выразительности ООП различаются не так радикально, как некоторым кажется. Но у них разные дефолты, и мы вольны как бороться с ними, так и эксплуатировать их на полную катушку. Для этого необходимо понять, что F#-ный подход ориентирован на симуляцию процессов, а C#-ный — на симуляцию данных. Формально от нас требуется и то, и то, но по моему мнению, моделирование процессов — это 80% моей работы. Оставшиеся 20% — это данные, которые затачиваются под те же самые процессы.

C#-еры то ли обитают в другом мире, то ли как-то пропустили этот момент, поэтому систематически пишут код в обратном направлении — от данных к процессам. Первое время я думал о Godot в том же ключе, но чем больше ковырял <Prefix>Server-ы (там их много, VisualServer — это лишь один из подобных), тем больше у меня складывалось ощущение, что где-то в недрах его команды сидит вменяемый ФП-программист. Уж слишком сильно некоторые решения напоминали наши. К сожалению, я ещё многое не расковырял из того, что нужно расковырять для потенциального разрыва с дефолтным API. Поэтому в рамках текущего цикла мы не будем избавляться от ООП-нагромождений. Вместо этого мы нагородим новых, но так, чтобы нам было удобно работать в ФП-парадигме.

Читать далее

Разворачиваем локально ИИ при помощи клиента Microsoft.Extensions.AI и Ollama

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров5.9K

Если вы хотите создавать код по запросу, делать переводы текстов, генерировать резюме, и при этом всем не хотите чтобы данные уходили в сеть, то вы наверняка задумывались как развернуть свой ИИ(например deepseek) на локальном компьютере. Эта статья расскажет о том, как просто это сделать. Для этого нам понадобится небольшое знание C# и «docker» для ИИ моделей — Ollama.

Дальше будет интересно...

Партийная номенклатура и развитие промышленности в КНР: чему меня научили в коммунистической бизнес школе

Время на прочтение18 мин
Количество просмотров13K

Чуть более 10 лет назад, когда я служил не очень большим, но и не очень маленьким начальником в федеральном министерстве, мне предложили пройти российско-китайскую программу в Китайской академии руководящих кадров Пудун (CELAP) в Шанхае. Ядумал, что это будет очередная командировка с ритуальными поклонами.
Оказалось — нет. Совсем нет.

Если говорить ИТ метафорами, нам дали доступ в бэкенд системы управления Китаем. Представьте себе, что вы — инженер, и вас внезапно пригласили заглянуть внутрь исходного кода ОС, на которой держится страна с населением 1,4 миллиарда.
Таково ощущение от первых дней в Пудуне.

CELAP — не просто академия. Это один из самых закрытых и влиятельных центров подготовки элиты КНР, прямо в подчинении Центрального комитета КПК.
Сюда не попасть по конкурсу или связям — попасть можно только по решению системы. Здесь не просто учат не менеджеров.

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

Читать далее

Книга: «.NET 8: инструменты и навыки. Лучшие практики и паттерны проектирования, отладки и тестирования»

Время на прочтение5 мин
Количество просмотров3K

Привет, Хаброжители! Хотим рассказать вам о новой книги Марка Прайса! В ней вы узнаете, как управлять исходным кодом и проектами с помощью Git, обеспечивая при этом контроль версий. Откроете для себя передовые методы отладки и стратегии выявления и устранения проблем, а также увидите, как правильно документировать код, API и сервисы, чтобы повысить удобство обслуживания проекта.

Погрузитесь в мир криптографии и освоите приемы обеспечения конфиденциальности и целостности на протяжении всего цикла разработки.

Вы сможете расширить свои навыки, познакомившись с такими продвинутыми темами, как создание интеллектуальных приложений с поддержкой пользовательских чат-сервисов на основе LLM, внедрение зависимостей, оптимизация производительности с помощью тестирования и запуск сервисов в контейнерах Docker.

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

Читать далее

Шестидесятилетний заключённый и лабораторная крыса. F# на Godot. Часть 9. Первичный конструктор, _Ready

Уровень сложностиПростой
Время на прочтение20 мин
Количество просмотров859

В прошлой главе мы ненадолго прервали изучение синтаксиса F#, но в этой всё с лихвой нагоним, так как сегодня у нас в программе первичный конструктор, расширения типов (снова) и их архитектурные следствия. Я попытался описать их в одном тексте, но обычно они раскиданы по разным частям документации, что серьёзно мешает целостному восприятию, в результате чего даже весьма башковитые ребята тупят как мальчики с Википедией при обсуждении истории древнего Рима. То есть формально у них есть доступ ко всем знаниям человечества, но фактически они соображают слабее, чем человек, прочитавший трижды устаревшего Моммзена.

Начиная с этой главы мы будем постепенно отказываться от того сценария разработки, который предлагает Godot по умолчанию. Итогом отказа будет почти полное исчезновение C# (пока только в рамках проекта) и переход на удобную и идиоматически правильную архитектуру.

Читать далее

Создание шаблона проекта HTML-сайта в Visual Studio

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров2.1K

Не помню уже с какой версии, но весьма давно, в Visual Studio пропали типы проектов, создающие шаблон простого html/js/css сайта. Появилось много новых: в разных видах ASP.NET Core, Blazor, Vue, Angular, React etc. А вот шаблона простого классического сайта нет. Но это можно исправить.

У меня периодически возникает необходимость сделать такой сайт, и я для себя сделал шаблон проекта простого html сайта. Этим проектом и методикой его создания хочу с вами поделиться.

Приступим

Интеграция .NET-приложения с внешним API по ГОСТ TLS через CryptoPro

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров2.2K

Всем привет. Представлюсь — меня зовут Евгений Думчев и я Team Lead.NET разработки в DDPlanet.

В какой‑то момент в моей практике появилась задача по интеграции с внешним API. Для взаимодействия требовалось применять предоставленный публичный доверенный сертификат сервера.cer и клиентский.pfx сертификат. Особенность в том, что.pfx сертификат был выпущен через CryptoPro CSP — а это вносит свои тонкости в процесс интеграции…

Читать далее

Паттерн Saga через MassTransit. Оркестрация vs Хореография

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров4K

Сегодня многие разработчики активно используют архитектуру микросервисов. Идея кажется простой: разбить приложение на небольшие независимые сервисы и соединить их между собой. На словах всё звучит логично, но на практике появляются сложности - особенно когда нужно управлять распределёнными транзакциями.

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

В этой статье мы разберём Saga с нуля, простыми словами и на понятных примерах. Материал подойдёт как для первого знакомства с темой, так и в качестве пошагового гайда по её реализации в C#. Мы рассмотрим два основных подхода — хореографию и оркестрацию, разберём, чем они отличаются, и в каких случаях что выбрать.

Читать далее

Получаем Fullchain-сертификат с помощью PowerShell

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров3.1K

Всем привет! Меня зовут Мороз Иван, я Системный администратор и в этой статье расскажу как автоматизировать получение Fullchain — сертификата при помощи PowerShell, OpenSSL и NET Framework.

Читать далее

Скачиваем с YouTube без рекламы и SMS: гайд по созданию консольной утилиты на C#

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров7.2K

Надоела бесконечная реклама на сайтах-загрузчиках? Хочется простой и быстрый инструмент для скачивания видео с YouTube? Решение есть — написать его самому!

Читать далее

CORS для собеседований и работы

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров5.3K

Если вы видите эту ошибку — вы не одиноки:

Access to fetch at 'https://api.site.com' from origin 'http://localhost:3000' has been blocked by CORS policy.

Разберем, почему это происходит и как это починить. Что такое CORS и для чего он нужен. Кратко, понятно.

Читать далее

Кастомизируем xUnit: feature-toggles или API тесты не для всех (конечных точек)

Уровень сложностиСложный
Время на прочтение9 мин
Количество просмотров1.1K

У вас в проекте появились feature‑toggles, а API тесты никто не отменял?

В статье рассматривается практический пример кастомизации тестового фреймворка xUnit для написания API тестов с учётом feature‑toggles в условиях их конфликтующих состояний.

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

Читать далее

Автоматическая регистрация в контейнере по атрибутам — теперь с IServiceCollection и тестами

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров1.3K

Я сделал простейшую утилиту для регистрации в контейнере по атрибутам на интерфейсе\реализации. Добавил тесты а так же поддержку IServiceCollection.

Читать далее

Ближайшие события

Строка из чисел

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.4K

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

Читать далее

Как просто сделать линейку с помощью своей камеры?

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.4K

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

А что дальше?

Симуляция экосистемы с элементами ИИ

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.2K

Собственная экосистема на твоем компьютере? Без проблем! А если добавить туда животных с примитивным ИИ, которые учатся, выживают и принимают решения сами?

А что же дальше?

C#, Логи которые пишут себя сами, 2

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.3K

Всем привет.

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

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

Ниже я подробно опишу применение этого способа автоматического логирования.

Читать далее

Я у мамы программист, а не маркетолог: как я пытался продвинуть своего бота

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров5.2K

Вы когда-нибудь пытались собрать друзей на вечер настолок, но в итоге кто-то забыл, кто-то перепутал время, а кто-то вообще не пришёл? Я - да. И, как программист, я сделал то, что умею лучше всего - написал бота, который решает эту проблему. А потом понял, что писать код было проще, чем заставить людей им пользоваться.

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

И вот сегодня число пользователей дошло до 300, а количество групп выросло до 100 (на самом деле 98) и я хотел бы подвести некоторый итог по проекту. Плюс я пару дней назад выпустил обновление, в котором закончил все фичи, которые задумывал и бот переходит в режим поддержки. Если что я его не отключаю, будет работать, но об этом в конце.

Читать далее

Реализация собственного биллинг-сервиса на .NET: необходимость, особенности и архитектура

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.9K

Привет, меня зовут Павел, я являюсь разработчиком в DD Planet. Сегодня хочу поговорить об одной частой ситуации. Если ваш web сервис работает по подпискам или с регулярными платежами — рано или поздно встаёт вопрос: брать готовое решение или сделать своё.

Читать далее

Throw — это новый goto

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров33K

Помните ли вы о существовании goto?

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

Но почему-то я не встречал никакого негатива насчёт throw. А ведь это точно такая же фигня, если даже не хуже.

Читать далее

Вклад авторов