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

C# *

Объектно-ориентированный язык программирования

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

Enterprise Library 5 and Unity 2 Beta 2 Downloads

Время на прочтение1 мин
Количество просмотров895
Команда Microsoft Patterns & Practices Team сообщила о релизе Enterprise Library 5 и Unity 2 Beta 2, что не может не радовать.

  • Enterprise Library 5 Beta 2: Download here.
  • Unity 2 Beta 2: Download here.


Следует отметить пару моментов. Enterprise Library 5 Configuration Editor теперь встроен прямо в Visual Studio, а в связи с определенной нехваткой времени, конфигуратор Unity был удален из EntLib 5 Configuration Editor и будет встроен позже.

Оптимизация Unity-сцены: от Profiler до Object Pooling. Убираем лаги шаг за шагом

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

Твоя игра на Unity тормозит?
В этой статье гайд о том, как поднять FPS с 30 до 60+.
Мы вместе разберем Profiler, GC, Object Pooling и другие "болевые точки".

Читать далее

Как я добавлял таймзоны в своего бота (и выжил)

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

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

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

Читать далее

DAX-style подход в C# для SUMMARIZECOLUMNS из Power BI

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

Привет, Хабр! Одной из важных функций в аналитическом языке DAX является SUMMARIZECOLUMNS, т.к. она готовит данные для дашбордов за счет декартова произведения полей группировки, если поля группировки из разных таблиц. Понятно, что на любом языке программирования можно реализовать логику, в чем-то аналогичную SUMMARIZECOLUMNS из DAX. Интересующимся DAX-style логикой для C# из NuGet пакета DaxSharp для функцииSUMMARIZECOLUMNS — добро пожаловать под кат :)

Читать далее

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

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

Всем привет.

Пару лет назад мне пришлось заняться интеграцией СБП с АБС банка, писать надо было на C#. Первое о чём я подумал, конечно, это было логирование. Писать логи руками это конечно не мой выбор. Конечно хотелось чтобы при вызове метода в логи записывались его входные аргументы и выходные результаты и конечно эксепшены.

В C#, на тот момент (конец 2023 года), для этого надо было делать обёртку над классом, пример обёртки я приведу ниже.

Читать далее

Zenject (Extenject) в Unity: Исчерпывающее руководство по внедрению зависимостей

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

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

Zenject (Extenject) решает это раз и навсегда.

Эта статья о том, что такое zenject и как им пользоваться.

Читать далее

Используйте Camunda как удобный REST-движок для оркестрации и workflow — без необходимости работать с Java

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

Я много общаюсь о микросервисных архитектурах с «не-Java-людьми» — будь то разработчики на C#, энтузиасты Node.JS/JavaScript или GoLang. Все они сталкиваются с необходимостью оркестрации в микросервисной архитектуре — или просто хотят использовать workflow, упорядочивание действий, обработку таймаутов, Saga и компенсации, а также другие полезные возможности.

Open Source BPM-платформа Camunda отлично подходит для этих задач. Ориентированность на разработчиков — один из ключевых принципов продукта, но при изучении документации может показаться, что она рассчитана в основном на Java-разработчиков. Платформа предоставляет множество точек расширения и интеграции, но всё это реализуется на Java. Значит ли это, что другим разработчикам путь закрыт?

Нет! На самом деле, запустить Camunda и работать с ней без знания Java очень просто — архитектуру можно выстроить так, чтобы писать код на любом удобном языке. В этом посте:

Читать далее

Как построить надежную архитектуру B2B-системы на основе 1С

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

Здравствуйте! Меня зовут Дмитрий Гусаков, я менеджер проектов компании DD Planet. В своей статье я расскажу, почему нельзя использовать 1С как полноценный бэкенд в современных B2B-системах, с какими ограничениями могут сталкиваться разработчики, и как выстроить надёжную структуру, используя дополнительный слой бэкенда и брокеры сообщений.

В России существует острый дефицит отечественных продуктов для автоматизации бизнеса. 1С — один из немногих российских игроков на этом рынке. В условиях активного импортозамещения он стал основным кандидатом на замену западных систем, вроде Oracle CRM, ERP SAP и все больше российских компаний переходят на эту платформу. Однако сам по себе этот переход не решает всех проблем.

Читать далее

Когда ТЗ — враг: 7 корпоративных запросов, над которыми плачут программисты

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

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

Итак, начну с собственного реноме. Меня зовут Богдан, я работаю в одном достаточно большом отечественном финтеке вот уже 7-й год и добрую половину из них занимаю позицию Java-лида в одной из интеграционных команд. За такое (относительно) длительное время в энтерпрайзе периодически приходят требования на разработку, от которых хочется или плакать, или смеяться, а то и всё вместе. Происходит это по самым разным причинам, которые мы сегодня касаться не будем. Скажу лишь, что никого не осуждаю, не пытаюсь никого принизить и наверняка сам генерировал нечто схожее, о чем пойдет речь ниже. Также стоит учесть, что мой бэкграунд преимущественно бэкендово-интеграционный, соответственно, и кейсы будут из этой области и контекста. Ну а дальше — по кейсам, по тем 7 кейсам, когда прочитав требования, внутри что-то скукоживается от отвращения либо раздается улыбка во всё лицо — у кого как.

Немного глобального контекста: проект, вокруг которого будут описаны курьезные запросы, — интеграционная шина данных, напичканная самой разной интеграционной логикой, Java-приложение, состоящее из невообразимого количества SOAP/REST-методов, шедуллеров и всяческих очередей.

Читать далее

Путь программиста: в ловушке SRP

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

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

Читать далее

Микросервисы на C#. Часть 2

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

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

Первая часть.

Читать далее

Локальный AI-ассистент в почте: инструкция по применению

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

Привет, Хабр! Это Eppie – p2p децентрализованная почта. У нас новости: мы добавили в Eppie ИИ. Сейчас расскажем, зачем, и как им пользоваться.

Локальный ИИ == приватный ИИ

Иногда ради безопасности пользователю приходится мириться с некоторыми неудобствами: короткий пароль удобнее длинного, но длинный надежнее. Люди естественным образом стремятся к удобству. И если длину пароля можно валидировать, и к этому все привыкли, то в других местах ожидать от пользователя больших жертв во имя безопасности не приходится.

Читать далее

Разработка конструктора для конфигурирования производственных этикеток в системе второго уровня TWS ТПЦ

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

В статье представлен опыт создания специализированного редактора этикеток для технологического персонала Трубопрокатного цеха (ТПЦ), направленного на устранение ограничений стандартного решения Danieli. Ранее процесс создания шаблонов для различных ГОСТов требовал ручного проектирования уникальных макетов, что снижало гибкость и увеличивало трудозатраты. Разработанный конфигуратор позволяет динамически формировать этикетки на основе универсального ZPL-шаблона, интегрирует параметры ГОСТ, а также обеспечивает централизованное хранение и доступ к шаблонам через систему TWS. Реализация включает визуальный интерфейс для операторов, логику динамической подстановки данных (вес, длина, сорт и др.) и поддержку нормативных стандартов.

Читать далее

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

Порядок инициализации полей, статики и всего остального в C#

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

Всем привет! Многие сталкиваются с трудностями на собеседовании на вопросе по типу "Расскажите о порядке иницализации в C#". Либо банально когда видят квиз, стараются вспомнить, а что там должно инициализироваться? Сегодня многие вспомнят, а кто-то узнает о порядке инициализации. Затронем не только классы, а также структуры, а точнее - ключевое слово default для них.

Сделаем следующие классы и посмотрим, что будет при создании объекта B:

Читать далее

Простое решение для автоматизации контроля за состоянием базы данных с использованием EF Core

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

Привет, Хабр! Меня зовут Кирилл Салихов, и я занимаюсь разработкой бизнес-приложений на платформе .NET в компании КРОК. При оптимизации процессов развертывания приложений возник вопрос о том, как эффективно хранить SQL-код, предназначенный для применения к базе данных, чтобы избежать необходимости в ручном труде и перемещении файлов.

В короткой статье дам пошаговую инструкцию автоматического применения миграций к базе данных и управлению представлениями и процедурами, без всяких сиай/сиди…

So what if I swagger?

GraphQL для C#. БД прилагается

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

Приветствую, Хабр! Относительно недавно я решил влиться в С# и его технологию для создания веб-приложений ASP.NET. До этого писал в основном на С++ и Python с Django. Ну а так как я по жизни практик, то и чтоб чему-то научиться, надо что-то сделать, пусть и корявенькое (хотя пару книжек, конечно, прочитал). Выбор пал на стандартное приложение магазина книг, а точнее его бэк составляющую, ибо с дизайном и любыми, даже базовыми, проявлениями фронтовой части я не дружу от слова совсем)

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

Читать далее

Совместить DDD и MVVM: Разработка приложения-трекера расходов по правилу 50-30-20 на .NET MAUI

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

Всем привет! Сегодня я бы хотел рассказать вам про свое приложение Profitocracy, которое помогает мне следить за личными расходами, а также автоматически планировать бюджет на месяц.

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

Читать далее

Лента Мёбиуса, биомеханические прыжки, мягкие посадки и PD-контроллер

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

Продолжаю описание внутреннего устройства шаблона 3D-игры с ходьбой по ленте Мёбиуса.

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

Идём прыгать на ленте Мёбиуса!

Гибкая фильтрация EFCore с помощью Expression

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

Фильтрация данных в EntityFramework — это довольно простая задача, которую можно легко решить с помощью метода Where() в LINQ. Однако если поля для фильтрации как и значения приходят к нам динамически, и тем более если фильтровать приходится по вычисляемым в рантайме значениям - возникают некоторые трудности с их обработкой. В статье рассказываю как я делал динамическую фильтрацию по вычисляемым в рантайме полям с помощью Expression trees и EntityFramework.

Читать далее

Что выбрать для типов моделей: Enums VS Tables?

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

Enums VS Tables для создания типов моделей...

Зачем использовать вообще одно из этих решений?

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

Читать далее

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