Как стать автором
Обновить
-1
0

Пользователь

Отправить сообщение

Развертывание ASP.NET Core MVC приложения на Ubuntu 20.04 на VPS. Установка SSL

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

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

В этой статье я по шагам, на примере своего ASP.NET приложения, рассказал как:

1. Развернуть ASP.NET приложение на VPS
2. Установить SSL сертификат
3. Установить и настроить MS SQL

Это все на Ubuntu 20.04.

Читать далее ->
Всего голосов 10: ↑4 и ↓60
Комментарии15

Simulating Return Type Inference in C#

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

Мне по-настоящему нравится больше чего-либо в разработке ПО делать фреймворки, позволяющие другим разработчикам создавать что-то крутое. Иногда, в погоне за идеальным кодом, мне на ум приходят странные идеи, при реализации которых C# может дойти до предела своих возможностей.

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

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

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

Как управлять вашими секретами с git-crypt

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

Большинство программных проектов используют секреты – обычно, как ключи к удаленному API или данные для доступа к внешнему ресурсу, например к базе данных. Вашему приложению необходимы эти ключи во время работы, поэтому вам нужно предоставить их при развертывании приложения или на этапе подготовки окружения.
В данной статье я покажу вам, как использовать git-crypt так, чтобы вы могли безопасно хранить секреты ваших приложений в репозиториях исходного кода, даже публичных.

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

Скриптинг в C# или динамическое выполнение в runtime

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

умаю, не многие знают, что в C# есть штука на подобии eval из других языков. Благодаря Rosyln API, можно во время выполнения скомпилировать и выполнить C# код. Пример использования можете посмотреть в моей реализации REPL-а для C#.

Впервые с такой штукой, как REPL, я познакомился когда теребил питона. В мире .NET есть похожая вещь под названием C# Interactive (CSI). Довольно удобная штука, но у нее есть один большой минус — она входит в состав инструментов Visual Studio, так что без установки VS, не получится ее использовать, а чтобы запускать ее без запуска VS, вообще надо лезть в ее недра (а точнее, через консоль запустить C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\VsDevCmd.bat), что так себе.

Есть еще такие проекты, как dotnet-script и cs-script (они работают через Microsoft.CodeAnalysis.CSharp.Scripting), но у них есть фатальный недостаток — они написаны не мной. Вот и появилась мысль, написать свой корявый велосипед, но со своими фичами! (которые тоже коряво работают). После недолгих поисков, мой взор упал на сие чудо: Microsoft.CodeAnalysis.CSharp.Scripting. Из плюсов — удобный API, возможность выполнять код без классов и namespace-ов.

Для начала...

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

Сила композиции

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


Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?»


Но когда объясняет Скотт Влашин, все совершенно не так: его доклад о композиции с конференции DotNext 2019 Moscow — пример того, как можно доносить функциональные идеи простыми словами. Он за час перешел от бананов к монадам так, что второе кажется немногим сложнее первого. А в конце объяснил, почему осмыслить композицию полезно даже тем, кто не собирается покидать мир ООП. Примеры кода в докладе как на F#, так и на C#.


Уже завтра начнется новый DotNext, где я помогу Скотту выступить с другим докладом, а пока что публикую перевод его выступления про композицию. Далее повествование будет от лица Скотта.

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

Избавляемся от постоянного написания конструкторов для инжекта зависимостей с помощью C# Source Generators

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

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

Поэтому я решил автоматизировать это дело, благо в .NET 5 у нас есть такая возможность в виде Source Generators.

А так же хотелось поделиться библиотекой с теми, кого так же как и меня достало написание спагетти конструкторов!

Читать далее
Всего голосов 34: ↑29 и ↓5+33
Комментарии70

Реализация многопоточной архитектуры игрового движка

Время на прочтение23 мин
Количество просмотров30K
С появлением многоядерных процессоров возникла необходимость в создании игрового движка на основе параллельной архитектуры. Использование всех процессоров системы — как графического (ГП), так и центрального (ЦП) — открывает гораздо больше возможностей по сравнению с однопоточным движком на базе только ГП. Например, используя больше ядер ЦП, можно улучшить визуальные эффекты, увеличив количество физических объектов, используемых в игре, а также добиться более реалистичного поведения персонажей за счет реализации продвинутого искусственного интеллекта (ИИ).
Рассмотрим особенности реализации многопоточной архитектуры игрового движка.
Читать дальше →
Всего голосов 31: ↑28 и ↓3+25
Комментарии1

Подход к интеграции .NET в TeamCity

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

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

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

Goblin Wars II.NET – история создания сетевой игры на C# с нуля

Время на прочтение18 мин
Количество просмотров27K
Добрый день, уважаемые хабровчане. Представляю вашему вниманию свой небольшой проект – сетевой 2D-шутер на C#. Несмотря на то, что визуальная составляющая весьма простая – в наш век уже никого не заинтересуешь 2D-играми, некоторые архитектурные решения могут заинтересовать людей, собирающихся написать свою игру. В статье я расскажу о вариантах реализации ключевых моментов игры.
Читать дальше →
Всего голосов 76: ↑64 и ↓12+52
Комментарии27

Написать игровой движок на первом курсе: легко! (ну почти)

Время на прочтение8 мин
Количество просмотров27K
Привет! Меня зовут Глеб Марьин, я учусь на первом курсе бакалавриата «Прикладная математика и информатика» в Питерской Вышке. Во втором семестре все первокурсники нашей программы делают командные проекты по С++. Мы с моими партнерами по команде решили написать игровой движок. 

О том, что у нас получается, читайте под катом.

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

Как написать собственный игровой движок на C++

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

Перевод статьи Джеффа Прешинга (Jeff Preshing) How to Write Your Own C++ Game Engine.


Как написать собственный игровой движок на C++


В последнее время я занят тем, что пишу игровой движок на C++. Я пользуюсь им для создания небольшой мобильной игры Hop Out. Вот ролик, записанный с моего iPhone 6. (Можете включить звук!)



Hop Out — та игра, в которую мне хочется играть самому: ретро-аркада с мультяшной 3D-графикой. Цель игры — перекрасить каждую из платформ, как в Q*Bert.


Hop Out всё ещё в разработке, но движок, который приводит её в действие, начинает принимать зрелые очертания, так что я решил поделиться здесь несколькими советами о разработке движка.


С чего бы кому-то хотеть написать игровой движок? Возможных причин много:

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

Пишем собственный воксельный движок

Время на прочтение11 мин
Количество просмотров24K
image

Примечание: полный исходный код этого проекта выложен здесь: [source].

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

После выпуска первоначального концепта Task-Bot [перевод на Хабре] я почувствовал, что меня ограничивает двухмерное пространство, в котором я работал. Казалось, что оно сдерживает возможности емерджентного поведения ботов.

Предыдущие неудачные попытки изучения современного OpenGL поставили передо мной мысленный барьер, но в конце июля я каким-то образом наконец пробил его. Сегодня, в конце октября, у меня уже достаточно уверенное понимание концепций, поэтому я выпустил собственный простой воксельный движок, который будет средой для жизни и процветания моих Task-Bots.

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

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

Так как движок уже довольно сильно продвинулся вперёд и я снова перехожу к программированию ботов, я решил написать пост о движке, его функциях и реализации, чтобы в будущем сосредоточиться на более высокоуровневых задачах.
Всего голосов 25: ↑24 и ↓1+23
Комментарии9

Зачем писать свой игровой движок?

Время на прочтение20 мин
Количество просмотров28K
В декабре прошлого года, на конференции Games Gathering 2017, мы сделали доклад, в котором рассказали о том, надо ли компаниям, работающим в игровой индустрии, писать собственные движки.


Читать дальше →
Всего голосов 59: ↑56 и ↓3+53
Комментарии51

Основы компьютерной геометрии. Написание простого 3D-рендера

Время на прочтение30 мин
Количество просмотров52K
Привет меня зовут Давид, а вот я собственной персоной отрендеренный своим самописным рендером:

image

К сожалению я не смог найти более качественную бесплатную модель, но все равно выражаю благодарность заморскому скульптору запечатлевшему меня в цифре! И как вы уже догадались, речь пойдет о написании CPU — рендера.
Читать дальше →
Всего голосов 34: ↑33 и ↓1+43
Комментарии21

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность