Рубрика «C#» - 81

Xamarin удивителен тем, что позволяет .NET разработчикам писать приложения для Android, iOS, macOS на… С#. Но эта удивительная возможность имеет свою цену и даже простейшее приложение может запросто потреблять неприлично много памяти. Давайте посмотрим как это происходит и что мы можем сделать с этим. Большинство моих примеров основываются на Xamarin.Android, но вы быстро заметите, что это также применимо и к Xamarin.iOS.

Как работает сборщик мусора в Xamarin приложениях

На самом деле в Xamarin приложениях используется несколько типов объектов. Каждое Xamarin приложение имеет объекты, которые живут в двух отдельных мирах:

  • Управляемый, мир Mono с объектами, наследуемыми из System.Object
  • Неуправляемый, нативный мир с объектами, наследуемыми от NSObject (iOS) или Java.Lang.Object (Android)

Из этого также следует что существуют и работают 2 сборщика мусора:

  • Сборщик мусора от Mono, называемый SGEN
  • Сборщики мусора из нативных миров Android или iOS

Читать полностью »

Здравствуйте, не так давно загорелся желанием побить рекорд в мини-игре браузера Google Chrome. Если кто не знает, то при отсутствии доступа в интернет и при использовании выше упомянотого браузера, появляется мини-игра для запуска которой необходимо просто нажать клавишу пробел или в случае с мобильными телефонами, тапнуть по экрану.

image

Читать полностью »

Игры надо сохранять. Сохраняемых сущностей может быть великое множество. Например, в последних выпусках TES и Fallout игра помнит расположение каждой закатившейся склянки. Необходимо решение, чтобы:
1) Написал один раз и используй в любом проекте для любых сущностей. Ну, насколько возможно.
2) Создал сущность — и она сохраняется сама собою, с минимумом дополнительных усилий.
Читать полностью »

image
Revit — программный комплекс, реализующий принцип информационного моделирования зданий. Изначально программа предназначалась для архитекторов. Теперь все больше компаний при устройстве на работу требуют от инженеров умения работы в Revit. Autodesk Revit предоставляет мощный .NET API, позволяющий разрабатывать собственные приложения для решения различных задач. В данной статье хочу поделиться опытом создания однолинейных схем в Revit.

Читать полностью »

Онлайн касса Хочу поделиться опытом разработки ПО для бюджетной онлайн-кассы VikiPrint 57. В связи с вступлением в силу закона ФЗ-54, это может быть актуально и полезно техническим специалистам, которые впервые в жизни выполняют задачу по интеграции ПО или сайта с физическим оборудованием. Особенно с этих онлайн-касс «бзднут» вебмастеры, разрабатывающие на WordPress магазины и по-другому понимающие термин «онлайн».

Да, судя по всему, когда вы что-то заказываете в Интернет-магазине, в каком-то бутике в ТЦ сам по себе будет «вылазить» чек из кассы. Иначе владельца магазина оштрафуют. Если, конечно, ничего не изменится в головах тех людей, кто это придумал. Просто чудо как оно есть!Читать полностью »

Привет, Дорогой читатель!

Почти все кто мало-мальски работал в .Net знает что такое Делегаты (Delegates). А те кто не знает о них, почти наверняка хотя бы в курсе о Лямбда-выражениях (Lambda expressions). Но лично я постоянно то забываю о синтаксисе их объявления, то возвращаюсь к многостраничным объяснениям умных людей о том, как компилятор реагирует на подобные конструкции. Если у Вас случается такая проблема, то милости прошу!
Читать полностью »

Предыстория

Уже много лет мы помогаем нашим клиентам отправлять потребителям хорошие, информативные и человеческие письма. В них вместо сухого “Добрый день” мы пишем “Здравствуйте, Никита!”, а вместо “Ваш баланс пополнился” сообщаем “вы получили 25 баллов”. Но маркетологи становятся все изобретательнее, и современное письмо от интернет-магазина должно выглядеть так:

В реальной жизни всего этого на порядок больше в каждом письме

И мы хотим уметь генерировать такие письма автоматически.

Читать полностью »

Каждый разработчик совершает ошибки, никто от них не застрахован.

Большинство программистов учатся методом проб и ошибок. Это часть пути от Junior C# Developer до Senior C# Developer. Тем не менее, не обязательно совершать самому все эти ошибки, чтобы пройти этот путь.

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

Загрузка реальных ландшафтов в Unity 3D - 1

Введение

Тема генерации ландшафтов путем применения разнообразных хитроумных алгоритмов достаточно широко освещалась на хабре (раз, два, три и продолжать можно до бесконечности). Перечисленные примеры касаются случайной генерации некой абстрактной местности для повышения реализма в конечных игровых продуктах. А как быть, если требуется смоделировать некую реальную местность?

По этой теме тоже довольно много разного рода публикаций в сети. Однако, многие из них опираются на использование платных приложений или расширений для Unity. Существуют описания и «дешевых» методов, но основная масса их ориентирована на получение так называемых heightmap — черно-белых квадратных изображений местности, где градациями серого определяется относительных уровень высот в данной точке. Существует ряд способов генерации подобных карт высот с использованием например инструментария GDAL. И такой подход не лишен недостатков, связанных с достаточной громоздкостью процедуры создания карты высот и последующей привязкой к полученной местности. Поэтому, в данной статье будет изложен некий альтернативный подход и интересующиеся приглашаются под кат.

Читать полностью »

Уверен, большинство людей, читающих это, знают, что Microsoft недавно анонсировала ASP.NET Core и .NET Core 2.0 Preview 1 на Microsoft Build 2017.

.NET Core: номера версий и global.json - 1

У этой статьи нет цели — дать введение в ASP.NET Core. Вместо этого мы рассмотрим установку .NET Core 2.0 Preview 1 на ваш компьютер таким образом, чтобы это не мешало параллельно работать над другими проектами под ASP.NET Core 1.0/1.1. Т.е. мы установим несколько версий .NET Core на одном компьютере.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js