Несмотря на то, что использовать механизм сериализации при программировании на C# достаточно просто и удобно, есть моменты, которые стоит учитывать. О том, на какие грабли можно наступить, работая с сериализацией, о примерах кода, в котором эти грабли припрятаны, а также о том, как PVS-Studio поможет вам избежать шишек на лбу, и будет эта статья.
Читать полностью »
Рубрика «C#» - 110
Как не наступить на грабли, работая с сериализацией
2016-07-05 в 6:53, admin, рубрики: .net, C#, open source, pvs-studio, serialization, static code analysis, Блог компании PVS-Studio, Программирование, статический анализ кодаПовышаем эффективность работы в Xamarin.Forms
2016-07-05 в 6:50, admin, рубрики: .net, C#, Mono и Moonlight, xamarin, xamarin.forms, xamarincolumn, Блог компании Microsoft, мобильные приложения, разработка мобильных приложений
Друзья! Очередная статья на тему разработки мобильных приложений на Xamarin. Мы не прекращаем рассмотривать особенности использования Xamarin.Forms при разработке бизнес-приложений для iOS и Android. Все статьи из колонки можно найти и прочитать по ссылке #xamarincolumn
В прошлой статье мы рассмотрели, как можно повысить продуктивность при разработке мобильных приложений с использованием Xamarin, а также отметили базовые механизмы повышения производительности бизнес-приложений на базе Xamarin.Forms.
В сегодняшнем материале мы продолжим выбранный курс и расскажем об использовании Fody для сокращения необходимого программного кода, а также узнаем об использовании иконочных шрифтов и библиотеки NControlView для ручной отрисовки интерфейсных элементов.
Что такое бизнес-приложения?
Для того, чтобы мы с вами находились на одной странице и использовали одинаковые понятия, давайте для начала определимся с тем, чем же бизнес-приложения отличаются от игр и других типов программ.
Читать полностью »
Четыре способа извлечения значений из скрытых полей в C#
2016-07-03 в 10:02, admin, рубрики: .net, C#, всем выйти из сумрака, как вы читаете закрытые поля, ненормальное программирование, писать ли об Expression Trees, тегиниктонечитает, метки: всем выйти из сумрака, всем добра, как вы читаете закрытые поля, писать ли об Expression Trees, тегиниктонечитаетДобрый день. Не так давно на хабре проскакивала статья, в которой показывалась возможность обращения к закрытым полям объекта из другого экземпляра того же класса.
public class Example
{
private int JustInt;
// Some code here
public void DoSomething(Example example)
{
this.JustInt = example.JustInt; // Вполне валидная строка, некоторых удивляет
}
}
Кроссплатформенное использование классов .Net из неуправляемого кода. Или аналог IDispatch на Linux
2016-06-30 в 12:22, admin, рубрики: .net, 1С, 1С-Битрикс, C#, c++, Core ClrБудучи программистом 1С, мне часто приходится использовать классы .Net через различные прослойки.
Использование сборок .Net через обертку реализующую IReflect
Для подключения .NET сборок используется «CLR Hosting API»
1C.Net: Предприятие – пример коммерческого успеха .Net-решений в России
Как вызвать метод из C# в 1С?
Но все они используют в той или иной степени COM. С появлением .Net Core стало возможным использование сборок .Net и на любой оси отличной от Windows.
На просторах интернета было найдено решение: Hosting .NET Core Clr in your own process и simpleCoreCLRHost.
Суть подключения заключается в загрузке библиотеки coreclr.dll, получения нужных интерфейсов и запуск CLR Runtime Host.
Читать полностью »
Unity: как мы создавали генератор домов для AssetStore или возвращение к хрущёвкам
2016-06-30 в 10:17, admin, рубрики: C#, unity inspector, unity3d, генерация мешей, разработка игр, метки: unity inspector, генерация мешей
Поводом для написания данной статьи послужила эта публикация про "хрущёвки", в которой была поднята интересная для меня тема программной генерации мешей в Unity.
Моя статья не предназначена для тех, кто уже давно работает на Unity, маловероятно, что здесь будет что-то новое для людей, знакомых с тонкостями Unity. Также для совсем новичков здесь возможны неочевидные "трудности" и зачем нужно что-то придумывать, когда итак в редакторе всё есть. Наиболее подходящей нашей аудиторией являются разработчики, которые уже кое-что умеют делать в Unity, но они ещё не решали задачи динамического изменения мешей в редакторе. Также, возможно, некоторым будет полезен наш опыт работы с инспектором.
Автор не претендует на абсолютное знание предметной области, я лишь хочу рассказать своими словами решение некоторых задач, которые появлялись при создании ассета.
Читать полностью »
Как подружить юнит-тестирование с базой данных
2016-06-29 в 6:05, admin, рубрики: .net, C#, mysql, tdd, Блог компании Аркадия, Тестирование IT-систем
История о том, как разрабатывалась система автоматического тестирования методов, взаимодействующих с базой данных, с подробным описанием того, с какими подводными камнями пришлось столкнуться в процессе разработки и внедрения системы в окружение проекта.
Читать полностью »
Решаем «Первый открытый контест» от Mail.ru по Data Science с помощью Azure ML (введение в Azure ML)
2016-06-28 в 13:28, admin, рубрики: .net, azure ml, C#, data mining, data science, Microsoft Azure, Программирование, метки: azure mlСейчас проходит соревнование ML Boot Camp, в котором надо спрогнозировать время, за которое будут перемножены 2 матрицы размерами mxk и kxn на данной вычислительной системе, если известно, сколько решалась эта задача на других вычислительных системах с другими размерами матриц (точные правила). Давайте попробуем решить эту задачу регресии не с помощью стандартных инструментов и библиотек (R, Python и panda), а используя облачный продукт от Microsoft: Azure ML. Для наших целей подойдет бесплатный доступ, для которого достаточно даже trial Azure аккаунта. Все, кто хочет получить краткое руководство по настройке и использованию Azure ML в общем и ML Studio в частности на примере решения реальной живой задач, приглашаются под кат.
Читать полностью »
Pipelist в PowerShell
2016-06-28 в 10:33, admin, рубрики: C#, powershell, Программирование, разработка под windowsНаиболее распространенным методом получения списка именованных каналов среди буржуинов является незатейливая команда:
[IO.Directory]::GetFiles(($$='\.pipe'))|%{$_.Replace($$, '')}
Однако тем, кому ранее доводилось использовать pipelist из набора Sysinternals Suite, вывод данной команды явно покажется малоинформативным.
Читать полностью »
Обработка событий в приложениях с многослойной архитектурой
2016-06-27 в 10:03, admin, рубрики: .net, C#, event handling, EventsДовольно часто в приложениях с многослойной архитектурой простой механизм событий, предлагаемый .NET, оказывается неудобным в использовании. При глубине композиции объектов от трёх и более возникают сложности либо с подпиской верхних объектов на события, которые происходят на нижних уровнях, либо с передачей события вверх через все уровни, которые могут быть в нём заинтересованы. Рассмотрим подробнее эти проблемы, а также способ их избежать с помощью централизованного механизма регистрации и вызова обработчиков событий.
Читать полностью »
Azure Service Fabric: первые шаги
2016-06-23 в 9:13, admin, рубрики: .net, azure service fabric, C#, Microsoft Azure, метки: azure service fabric
Чарли Чаплин в фильме «Новые времена»
Про Azure Service Fabric уже немало написано статей и даже книг, благо около года продукт находился в состянии preview. Однако 1 апреля 2016 года без всяких шуток Azure Service Fabric наконец достиг состояния General availability, и есть основания полагать, что он задержится здесь всерьез и надолго. А раз так — почему бы не пройтись по нему если не из прикладного, то хотя бы из академического интереса? Тем более что информации по Azure Service Fabric на русском языке явно маловато.
Зачем же вообще потребовался Azure Service Fabric? В мире ПО существует довольно много серверов, привязанных к экосистемам определенного языка или платформы. Исторически так сложилось, что в экосистеме Java таких серверов едва ли не больше всех — Tomcat, JBoss, WebSphere и пр. Увы, платформа .NET таким богатством выбора похвастаться пока не может. На ум приходят разве что IIS, “облачные” сервисы Azure и их “локальный” близнец Windows Azure Pack (не считая хелперов-оберток типа Topshelf). Azure Service Fabric призван расширить этот недлинный список в сторону популярной нынче концепции SOA и остромодной подконцепции микросервисов, упрощая развертывание сервисов и обеспечивая их масштабируемость и отказоустойчивость. И после этого лирического отступления перейдем, наконец, в наступление.
Читать полностью »