Что нового для мобильных разработчиков в Visual Studio 15.6 Preview

Хабр, привет! Меня зовут Ромуальд (можно просто Роман) Здебский. Я больше 11 лет работаю в Microsoft. В последние годы помогал ключевым партнерам Microsoft в выпуске популярных игр и приложений для платформы Windows, например клиентов ВКонтакте для Windows Store, таких игр как World Of Tanks Blitz, Cut The Rope 2 и многих других. С технологической точки зрения много занимался XAML-фреймворками и технологиями доступа к данным. Сейчас сферой моих технологических интересов является разработка мобильных приложений с помощью Visual Studio и Xamarin, технологии доступа к данным в Azure, CosmosDB и др. В прошлом месяце мы выпустили Visual Studio 2017 15.5 с новыми возможностями, включая эмулятор iOS Remoted Simulator, доступный всем разработчикам, средство просмотра XAML в режиме реального времени в эмуляторах Android с помощью Xamarin Live Player, новые шаблоны проектов Xamarin.Forms для .NET Standard и усовершенствованный механизм связывания с Mac. В январе стала доступна предварительная версия Visual Studio 2017 15.6. В этой статье мы обсудим, что было добавлено в эту версию, включая подготовку среды macOS сборки проектов, развертывание на iOS через Wi-Fi, просмотр интерфейса на базе XAML в эмуляторе Remoted iOS Simulator в реальном времени и многое другое. ...Далее...

Взаимодействие C# и C++ кроссплатформенно

Вам приходилось сталкиваться с необходимостью взаимодействия кода на C# и native-C++ (или скорее С)? Причины могли быть разными: библиотека уже есть, на С/С++ написать проще, разработка частей приложения ведётся разными командами, _______________ (нужное вписать).

Известно, что языки базируются на совершенно разных наборах аксиом.

В С# (CLR, если точнее) вы имеете дело с типами фиксированных размеров (за редкими оговорками), код может быть скомпилирован JIT-компилятором под любую из поддерживаемых целевых платформ (если явно не оговорено иное).

В мире C++ всё совсем иначе: одни и те же типы могут иметь разные размеры при компиляции на разные платформы (привет, size_t), код генерируется по-разному для разных платформ, операционных систем и прочих прелестей.

Под катом будем пробовать их подружить с учётом указанных особенностей.
Читать дальше →

Читаем данные из открытой части файлов КОМПАС-3D для интеграции с Pilot-ICE

Файлы КОМПАС-3D содержат информацию о документе: наименование и обозначение чертежа, фамилию разработчика, проверяющего и утверждающего, вид документа, формат, количество листов.
Когда на предприятии используется система для автоматизации документооборота, проектировщику очень часто приходится вводить эту информацию вручную.

image
Добавление документа в систему документооборота (Карточка документа)

Данные, которые нужно ввести в карточку, уже могут быть в исходном файле, и поэтому процесс ввода можно автоматизировать.
Читать дальше →

«Здравствуй елка — Новый Год!» или программируем NanoCAD с помощью Visual Basic .NET

Намедни просматривая документацию к NanoCAD API идущую в комплекте с SDK неожиданно обратил внимания на то, что описание членов классов для .NET API и MultiCAD.NET API дано, как на C# так и на Visual Basic. И я подумал: «А ведь это здорово, что есть описание и для VB!» И хотя если честно я совсем не знаю VB, да и код на старом добром BASIC последний раз видел лет 100 назад, но ведь это же один из языков на котором начинают учить людей азам программирования, поэтому я решил внести свой небольшой вклад в популяризацию программы. Надо сказать, что на «Хабре» уже есть хорошая статья по применению VB для NanoCAD, там рассматривается связка NanoCAD с Excel и то как она в итоге может облегчить строительное проектирование. Мы же с Вами решим другую, более простую и праздничную задачу, начертим ёлочку и поздравим пользователя с новым годом. Несмотря на то, что статья посвящена VB, код на C# тоже будет. А поскольку «Новый год» – праздник затратный то ориентироваться мы будем на бесплатную для коммерческого использования версию NanoCAD 5.1 (но по идее без проблем должно работать и под NC 8.X). Также не обойдем стороной и пользователей Linux поскольку код на C# с помощью Mono и Wine можно будет на нём скомпилировать и запустить. Если честно я сам только недавно начал осваивать API NanoCAD и поэтому моя последняя в этом году предпраздничная статья по сложности кода чем-то напоминает старый добрый графический исполнитель ...Далее...

Распределенные бекэнды для видеорекламы 2ГИС на .NET Core и Kubernetes

Привет!

Мы продолжаем рассказывать о компаниях-разработчиках, использующих технологии Microsoft в своих проектах. В сегодняшнем выпуске — компания 2ГИС, основной офис которой находится в холодном Новосибирске и к которой автор статьи питает самые теплые чувства.

2ГИС недавно закончили большой проект, используя ядром функциональности .NET Core, Kubernetes и много Linux. Я часто получаю вопросы о том, можно ли использовать .NET Core в продакшене, каков наш опыт использования его в полностью Open Source среде. Я попросил ребят рассказать, что да как. Читайте подробнее под катом, это стоит того — это один из первых публичных и больших проектов, которые построены на .NET Core, да еще и в полном Open Source вокруг.


Читать дальше →

Упрощаем лог действий пользователя


В предыдущих статьях мы сделали большое и доброе дело — научились автоматически собирать предысторию падения программы и отправлять её с крэш-репортом. Для WinForms, WPF, ASP, Javascript. Теперь научимся показывать все эти горы информации в удобоваримом виде.
Читать дальше →

Решаем Open Day CrackMe, таск Pizza

На момент написания статьи (16.12.2017) ридми от ЛК еще не выложили, поэтому я подумал, что можно и свой пока написать. Кому интересно почитать, как работать с il-кодом в powershell и какая у .NET PE структура, прошу под кат.
Читать дальше →

Противоестественная диагностика



Разбираться с падениями программы у конечных пользователей — дело важное, но довольно тяжкое. Доступа к машине клиента обычно нет; если есть доступ, то нет отладчика; когда есть отладчик, оказывается, что проблема не воспроизводится и т.п. Что делать, когда нет даже возможности собрать специальную версию приложения и установить её клиенту? Тогда добро пожаловать под кат!
Читать дальше →

Внедрение зависимостей в .Net Марка Симана 2 — Внедрение конструктора, время жизни

Зависимости между слоями приложения | Внедрение конструктора, время жизни

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

Агрегация, внедрение конструктора


Объекты/классы системы, как и слои, взаимодействуют друг с другом. Между классами тоже есть зависимости.

Например, в листинге 1 MyService использует MyDataContext (EF) – имеет зависимость MyDataContext.
class MyService
{
    public void DoSomething()
    { 
        using(var dbCtx = new MyDataContext())
        {
            // используем dbCtx
        }
    }
}

Листинг 1. Сильная зависимость MyService от MyDataContext

Читать дальше →

[Перевод] Сборка мусора и время жизни объектов

Казалось бы, простой вопрос: может ли среда CLR вызвать финализатор объекта, когда экземплярный метод не завершил свое исполнение? Читать дальше →


Последние посты