Как стать автором
Обновить
54.48

C# *

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

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

Как стать C#-разработчиком бесплатно? Программа обучения с нуля

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

Если вбить слово «С# разработка» в поисковую строку, можно найти огромное количество курсов по данному направлению. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.

Чтобы разбавить засилие платных курсов, мы подготовили для вас программу обучения «C#-разработчик с нуля», которая состоит только из бесплатных материалов.

Читать далее
Всего голосов 32: ↑18 и ↓14+4
Комментарии11

Новости

Пишем программы на C# для одноплатников: что, как и где на примере Orange Pi One

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

В своей жизни я обожаю как минимум три вещи: это C# (как и .NET в целом), интересное железо и одноплатные компьютеры. В Embedded-системах на Linux обычно принято писать код на C/C++ для решения чувствительных к производительности задач и интерпретируемых Lua/Python для быстрого прототипирования, которые стали популярны в встраиваемых устройствах сравнительно недавно. Однако о нативной разработке под одноплатники на C# практически ничего не слышно и я решил исправить это недоразумение! В сегодняшнем материале: рассмотрим, какие платформы .NET нам доступны на одноплатниках, научимся работать с GPIO и SPI в юзерспейсе, а также напишем практическое приложение, которое реализовывает драйвер дисплея и выводит на экран определенное изображение.
Читать дальше →
Всего голосов 22: ↑21 и ↓1+27
Комментарии32

Паттерны проектирования в Unity: от Singleton до Object Pool

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

Паттерны проектирования в Unity: от Singleton до Object Pool

В этой статье мы подробно рассмотрим ключевые паттерны проектирования, такие как Singleton, Observer, Factory Method и Object Pool. Узнайте, как эти паттерны могут улучшить структуру вашего кода, повысить производительность игры и упростить управление ресурсами. Пошаговые примеры помогут вам внедрить эти методы в ваш проект и сделать его более масштабируемым и устойчивым.

Читать подробнее
Всего голосов 9: ↑6 и ↓3+5
Комментарии2

Глубокое погружение в CancellationToken: эффективное управление отменой в .NET

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

Привет, Хабр! Меня зовут Давид, я C#-разработчик в SimbirSoft. В современном программировании эффективное управление ресурсами и контроль за выполнением задач становятся ключевыми аспектами для создания надежных и масштабируемых приложений. В C# одним из важнейших инструментов в для достижения этих целей является механизм Cancellation Token. Эта концепция позволяет разработчикам изящно и безопасно управлять долгосрочными или ресурсоемкими операциями, обеспечивая возможность их отмены по требованию.

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

Читать далее
Всего голосов 11: ↑6 и ↓5+1
Комментарии10

Истории

.NET: итерируемую в foreach коллекцию изменять нельзя. Или…

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

Сегодня поговорим о неочевидной особенности некоторых коллекций в .NET. Долго вокруг да около ходить не будем и начнём с задачки на самопроверку.

Читать далее
Всего голосов 31: ↑30 и ↓1+33
Комментарии27

Управление секретами IT-инфраструктуры

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

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

Что вы получите от статьи?

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

Зачем это нужно?

У компании, в которой я проходил практику, есть около 60 веб-сервисов и приложений, которые продолжают улучшаться и поддерживаться. У каждого сервиса есть в среднем около 15-20 секретов, например: логин и пароль от админки, API-ключи, строки подключения к БД, ключи шифрования и т.д. Обычно они хранятся в специальных файлах конфигурации проекта (appsettings.json) либо прямо в коде. Управлять ими в таком формате, когда они разбросаны по разным репозиториям и файлам, проблематично. Под "управлять" я имею в виду такие действия, как получение и периодическое обновление секретов. Передаются эти секреты между разработчиками обычно через мессенджеры, что приводит к их расползанию.

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

Показать полностью
Всего голосов 6: ↑3 и ↓3+2
Комментарии11

Подборка докладов по С# 2023-2024

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

Недавно мы публиковали подборку докладов по C++, но не будем же мы обделять и C# разработчиков. Поэтому предлагаем вашему вниманию интересные доклады из мира .NET и C#.

Вперёд к новым знаниям!
Всего голосов 9: ↑9 и ↓0+10
Комментарии0

Proton Mail в командной строке: пошаговая инструкция

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

Привет, Хабр!

В этом посте мы расскажем, как подключить учетную запись Proton Mail в Eppie CLI — консольный клиент Eppie.

Proton Mail использует при аутентификации протокол Secure Remote Password (SRP) — обычные почтовые клиенты его не поддерживают. В Eppie SRP реализован (мы об этом уже рассказывали здесь), попробовать можно уже сейчас, если скачать наше CLI приложение. Вся настройка займет минуту.

Прежде чем мы начнем, возможно, вам захочется узнать больше об Eppie. Это наш GitHub. Кое-что можно почитать и здесь, на Хабре. А теперь к делу.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

typewriter: бесплатная программа, которая введёт любой текст за вас

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

Всем привет! Делюсь своей довольно простой программкой, полезной в таких ситуациях, когда нужно перенести некоторые количества текста в такие места, куда он простым буфером обмена не переносится, например - в remote console виртуального или физического сервера, как Proxmox или iBMC / iLO.

Исходный код и ссылки на скачивание - под катом.

Читать далее
Всего голосов 17: ↑17 и ↓0+18
Комментарии18

Деплой .NET приложений для самых маленьких. Часть 1. Jenkins

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

В прошлой статье мы рассмотрели способы запуска наших проектов на удаленном VPS. Для этого мы арендовали хостинг, создали шаблонное приложение, перенесли его на хостинг через простое копирование через ssh и через git clone, запустили через dotnet run / dotnet publish, а также развернули приложение в докере.

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

Читать далее
Всего голосов 19: ↑18 и ↓1+26
Комментарии8

Кликер на Unity с использованием нейросети для генерации графики

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

Разработка кликера на Unity под ПК/Андроид и быстрое создание графики при помощи пиксель-арт нейросети.

Ну типа... Читать
Всего голосов 11: ↑6 и ↓5+3
Комментарии38

Клятва на крови: контрактные тесты с Pact в .NET. Часть вторая

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

Продолжение темы использования библиотеки контрактного тестирования Pact для .NET. В первой части темы были рассмотрены теория и процесс контрактного тестирования взаимодействий по HTTP.

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

В этой статье подробнее остановимся на тестировании асинхронных коммуникаций на примере RabbitMq, а также познакомимся с инструментом PactBroker.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Клятва на крови: контрактные тесты с Pact в .NET. Часть первая

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

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

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

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

12 – 13 июля
Геймтон DatsDefense
Онлайн

Отсутствие в .NET важных тригонометрических функций: заполняем пробелы

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

.NET включает базовые тригонометрические функции (sin, cos, tan, asin, acos, atan) и их гиперболические аналоги (sinh, cosh, tanh, asinh, acosh, atanh) в классе Math. Однако в .NET отсутствуют важные тригонометрические функции, я решил заполнить этот пробел, при реализации этих функций необходимо учитывать особенности вычислений с плавающей запятой, диапазон входных и выходных значений и их свойства симметрии.

Читать далее
Всего голосов 16: ↑12 и ↓4+11
Комментарии17

Гуманитарий с 0 знаний в программировании. 4 часть. Привет и пока, геймдев

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

Маленькие дети! Ни за что на свете. Не идите в геймдев, Игры создавать! В геймдеве реклама, В геймдеве обманы, В геймдеве большие деньги, Заработают на вас!

Но что же нам делать!?

Только лишь — качественная информация и самообразование!

Сохранить нервы, время и деньги
Всего голосов 15: ↑10 и ↓5+6
Комментарии31

Как работает отрисовка в фреймворках на основе XAML

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

Довольно часто мне приходится видеть вопросы, причиной которого либо непонимание как работают под капотом фреймоворки на базе XAML (я работал с WPF и AvaloniaUI, но имею все основания считать, что эта информация применима и к другим их родственникам).

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

Читать далее
Всего голосов 12: ↑3 и ↓9-6
Комментарии1

Максимально точное увеличение разрешения изображений: билинейная аппроксимация

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

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

Продолжаем увеличивать апскейл...
Всего голосов 17: ↑17 и ↓0+20
Комментарии19

Разработка сервиса для публикации препринтов. Архитектурный подход

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

Всем привет! Это мой первый пост на Хабре, в котором я бы хотел поделиться процессов разработки своего сервиса для публикации препринтов ScienceArchive.

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

С исходниками проекта также можно ознакомиться на GitHub.

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии6

Java и C#. История одного вдохновения

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

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

Читать далее
Всего голосов 14: ↑6 и ↓8+1
Комментарии18

Быстрое вычисление степени

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

В статье описан процесс разработки алгоритма функции вычисления любой степени положительного числа, использующего «магическую константу». Приведены результаты её сравнения с исходной функцией вычисления обратного квадратного корня, а также со стандартной функцией вычисления степени Math.Pow.

Читать далее
Всего голосов 17: ↑16 и ↓1+19
Комментарии8
1
23 ...