От переводчика: англоязычные it-блоггеры обычно начинают такие статьи со слов I'm so excited. Про Wix# я узнал совершенно случайно и спешу поделиться этим открытием с читателим, т.к. каждый, кто имел дело с «голым» WiX, знает, насколько неприятным может быть этот процесс. И вот теперь можно сделать msi-дистрибутив, написав всего лишь несколько строчек на C#! По-моему, это круто! А относительно недавно (4 дек 2014) автор Wix# Олег Шило дал интервью изданию InfoQ. Перевод этого интервью я и представляю вашему вниманию. И прошу не судить строго за кальку некоторых слов — тот же «деплоймент» мне как-то ближе, чем «развертывание».
Читать полностью »
Рубрика «C#» - 131
Использование C# и Wix# для создания msi-пакетов
2015-03-24 в 0:31, admin, рубрики: .net, C#, deployment, I'm so excited, MSI, wix, WixSharp, разработка под windows, метки: WiX, Wix#, WixSharpИнтересные моменты работы LINQ to SQL. Опять
2015-03-23 в 11:58, admin, рубрики: .net, C#, l2s, linq to sql, linq2sql, Блог компании MindboxС моего предыдущего поста прошёл месяц, по-моему самое время продолжить. В этот раз поговорим об Inheritance Mapping’е, ну а особо интересующихся в конце статьи ждёт сюрприз.
Итак, начнём.
Проблемы с дискриминатором
Разумеется, мы храним в нашей базе данных полиморфные сущности. Например, есть сущность CustomerOperation, которая отражает некоторую операцию, которую можно совершать над потребителем. Операции совершаются в основном через сервисы, поэтому есть наследник CustomerServiceOperation, а так же у нас есть механизм WebTracking’а, для которого есть WebTrackingOperation. Но довольно слов, лучше покажу код:
Читать полностью »
Бэкенд и «золотые молотки»
2015-03-20 в 5:33, admin, рубрики: .net, C#, conferences, dotnetconf, enterprise, learning, orm, ORMLite, wpf, Блог компании GeekFamily, разработка, разработка под windows, метки: dotnetconf, WPFПривет, коллеги!
Совсем недавно мы анонсировали конференцию, посвященную Desktop UI & Business Application. В поддержку, чтобы посмотреть на настроения публики, была опубликована статья «WPF живее всех живых», которая оказалась дискуссионной и заставила нас в несколько другом свете взглянуть, на то, что и как мы хотим донести до широкой публики.
Как показали комментарии, не WPF единым живет десктоп разработка. Есть порты Qt для .NET, есть WinRT, если в эпсилон окрестности от дефолт-сити есть спецы по этим технологиям, которые хотят высказаться – у нас есть трибуна! Для этого все и задумано, чтобы показать различные варианты для ваших проектов.
Буквально вчера закончилась онлайн конференция dotNetConf 2015, которую, исходя из сообщений, Microsoft скорее возродила, нежели придумала заново. Конференция, судя по содержанию старается покрыть все основные области использования языка, это мультиплатформенность, веб, десктоп, доставка приложений, интеграция с Xamarin, будущее .NET, .NET Core, Roslyn Analyzer и другие темы. На мой взгляд, это генеральная репетиция перед конференцией //build, которая состоится в конце апреля-начале мая.
Про золотые молотки
Кроме WPF для энтерпрайз разработчиков есть еще много тем, на которое можно поговорить, и львиная доля разговоров всегда упирается в бэкенд. Различных дизайн-шаблонов для корпоративных приложений очень много, и большая их часть посвящена бэкенду. Мартин Фаулер посвятил этому книгу, которая, насколько я смог увидеть за время тренингов, является настольной для многих разработчиков и тим-лидов. Из шаблонов, описанных там, вырастают конкретные инструменты, которые позволяют решать задачи наиболее эффективным способом.
Читать полностью »
MSBuild — в Open Source на github
2015-03-19 в 21:19, admin, рубрики: .net, ASP, C#, clrium, Microsoft Azure, msbuild, opensource, Блог компании LuxoftСегодня мы особенно рады сообщить что MSBuild (наверное, самая часто используемая и самая таинственная по документированности — прим. перев.) — теперь доступен на github и мы вносим его в список .NET Foundation! The Microsoft Build Engine (MSBuild) — это платформа для построения приложений. Вызывая msbuild на вашем проекте или решении, вы можете организовывать и строить свои продукты в окружениях, где нет установленной MS Visual Studio. Например, MSBuild используется чтобы строить такие Open Source проекты, как .NET Core Libraries и .NET Core Runtime.
Ядро, библиотеки, миграция на Mac/Linux, msbuild… Еще немного и я поверю в выход на github MS Visual Studio =)
Читать полностью »
Урок 1.1 — Акторы и ActorSystem
2015-03-19 в 17:23, admin, рубрики: .net, akka.net, C#, высокая производительность, метки: c#
И вот мы здесь! Добро пожаловать на первый урок.
В этом уроке вы создадите ваши первые акторы и будете введены в основы Akka.NET.
Основные понятия / предпосылки
В этом первом уроке вы узнаете основы создания консольного приложения с вашей первой системой акторов и простыми акторами внутри. Мы создадим два актора, один для чтения с консоли, и один для записи после некоторой простой обработки.
Читать полностью »
Akka.NET Bootcamp — Часть 1: начальный уровень Akka.NET
2015-03-19 в 14:53, admin, рубрики: .net, C#, высокая производительность
В первой части вы изучите основы о том, как модель акторов и Akka.NET работают.
Концепции, которые вы узнаете
В *NIX системах есть tail утилита, встроенный мониторинг изменений в файле, которую Windows не имеет. Мы пересоздадим tail для Windows и в процессе будем изучать фундаментальные вещи.
В первой части мы узнаем:
- Как создать вашу собственную ActorSystem и акторы.
- Как отправлять сообщения акторов и как обрабатывать различные типы сообщений.
- Как использовать Props и ActorRef в построении слабосвязанных систем
- Как использовать пути акторов, их адреса, и ActorSelection для отправки сообщений акторам
- Как создать потомков акторов (child actors) и иерархию акторов, и как контролировать потомков используя SupervisionStrategy
- Как использовать жизненный цикл актора чтобы управлять поведением запуска, выключения и перезапуска актора
GridFS vs SQL Server vs Local
2015-03-19 в 12:49, admin, рубрики: .net, AsNoTracking, C#, Catch, clr, CreateIfNotExists, db, download, Entity, express, file, FileInfo, framework, FS, GET, Grid, local, mongo, OutOfMemory, put, remoting, save, sql, thread, try, upload, загрузка, закачка, многопоточность, сервер, сохранение, СУБД, Тестирование веб-сервисов, файл, хранение, метки: localДля дотошных
В последнее время в среде разработчиков серверных приложений часто возникают споры о том, как лучше управлять фалами и какая технология обеспечивает более быстрые чтение/запись файлов. В сети стали появляться статьи и статейки о сравнительной производительность локальной файловой системы и GridFS. Или о хранении файлов в реляционной базе как BLOB против хранения на жёстком диске в файловой системе. Вот и я решил ввязаться в этот противостояние. Сегодня мы будем сравнивать производительность и накладные расходы MongoDB 2.6.7 x64 GridFS против MS SQL Server Express 2012 v11.0.5058.0 x64 против NTFS. Для эксперимента была использована платформа Windows 7 x64 SP1 на AMD Athlon(tm) II X2 250 Processor 3.00 GHz c 4ГБ ОЗУ 1033 MHz и HDD 600 Gb SATA 6Gb/s Western Digital VelociRaptor 10000rpm 32Mb. После каждого теста компьютер перезапускался, а базы обнулялись. Производительность будем рассматривать на примере файлового сервера на C# под .NET 4.5, код которого прикреплён к статье.
Читать полностью »
Введение в ASP.NET 5
2015-03-18 в 21:08, admin, рубрики: .net, .net core, ASP, asp.net 5, C#, CoreCLR, Microsoft Azure, Блог компании LuxoftПервый предварительный релиз ASP.NET 1.0 вышел практически 15 лет назад и с тех пор миллионы разработчиков использовали его чтобы создавать и запускать различные приложения., а мы на протяжении этих лет добавляли в совокупности колоссальное количество кода и возможностей.
Я сегодня сильно взволнован из-за того что пишу новость о новом релизе ASP.NET, над которым работает наша команда, и который называется ASP.NET 5. Этот релиз – одно из самых значимых обновлений архитектуры, которое мы делали когда-либо. В рамках этого релиза мы сделали ASP.NET более компактным, модульным и кросс-платформенным, а также ориентированным на облачные хостинги. ASP.NET 5 Preview доступна для скачивания в последнем Visual Studio 2015 CTP, которая стала доступна совершенно недавно.
ASP.NET 5 – web фреймворк с открытыми исходными текстами, который предназначен для создания современных web приложений и работы на Windows, Linux и Mac. Он включает фреймворк MVC 6 и Web API. ASP.NET 5 также станет базой для SignalR 3. Изначально ASP.NET 5 разработан для работы на .NET CoreCLR, но также может быть запущен и на полном .NET Framework.
C ASP.NET 5 мы внесли ряд архитектурных изменений, которые сделали ядро web фреймворка значительно более компактным (он более не нуждается в System.Web.dll) и модульным (теперь большинство функций сделано в виде NuGet пакетов, позволяя вам иметь в приложении только то, что вам необходимо). С ASP.NET 5 вы получаете следующие изменения:
- Сборка и работа кросс-платформенных ASP.NET приложений на Windows, Linux и Mac.
- Работа на .NET Core
- Новый инструментарий, который упрощает разработку современных web приложений
- Единый технологический стек для Web UI и Web APIs
- Конфигурация, готовая для работы в облаке, и основывающаяся на окружении (Cloud-ready environment-based configuration)
- Встроенная поддержка создания и использования NuGet пакетов
- Встроенная поддержка Dependency Injection
- Возможность хостироваться в IIS либо в вашем собственном приложении
И как конечный результат – ASP.NET, с которым вы хорошо знакомы, но который стал гораздо более хорошо подтюнен под современные реалии веб-разработки.
Читать полностью »
Почему WPF живее всех живых?
2015-03-18 в 4:40, admin, рубрики: .net, C#, gosharp, Line of Business, WinRT, wpf, бизнес-приложения, Блог компании GeekFamily, разработка под windows, метки: WPFЯ долгое время был разработчиком систем для десктопа. Сначала это был WinForms, потом более мощный и гибкий WPF. С тех пор прошло много времени и курсирует множество слухов и мнений о том, что WPF завершает свою жизнь, ведь сейчас столько разговоров о том, что можно писать настольные приложения на JS. А еще Microsoft усиленно двигает в массы платформу WinRT для разработки новых приложений. Это не могло меня и коллег оставить равнодушным.
Так почему же мы, команда GoSharp конференции (да, да, это о C#), решили сделать акцент на десктопной разработке в разрезе WPF? Далее я хочу показать какие светлые и темные моменты есть в существующем положении фреймворка и почему все же стоит в него вкладывать силы и время.
Существует мнение, что развитие десктопной разработки остановилось в своем развитии и для этого есть несколько предпосылок. Одна из них – остановка, или даже лучше сказать стагнация, в самой базе, в визуальном фреймворке WPF. Значительных обновлений для него не было вот уже лет 5, как может показаться. Официальный тулкит давно не обновлялся, точнее с февраля 2010 года, т.е. вот как раз те самые 5 лет. При этом компании, специализирующиеся на кастом-компонентах, как например DevExpress и Telerik успешно выпускают обновления и составляют планы на будущее относительно WPF. Даже если вы ориентированы на новинки, то компоненты для WinRT все равно используют концепции и общую структуру XAML, который никуда не уходит.
Далее мы хотим представить причины, по которым WPF некоторые считают неактуальным, и опровержение этих причин.
Парсинг Json на C#
2015-03-17 в 15:43, admin, рубрики: .net, ASP, C#, C# Json OAuth, метки: C# Json OAuth Прикручивая авторизацию с помощью популярных сайтов, столкнулся с проблемой. Согласно стандарту OAuth, ответ от сервера авторизации приходит в формате Json, а в .net удобной функции для его парсинга нет. Существует, конечно, JavaScriptSerializer, но он наследует все проблемы сериализеров. Во-первых, если будет расхождение в названии полей, тогда будут появляться исключения. Во-вторых, чисто лень создавать класс, пусть и содержащий только название полей под каждый ответ. Я подключал 8 систем авторизации, в среднем мне пришлось бы написать по 2-3 класса на каждую. То есть где-то 20 классов. Я уже не говорю о тех, кто делает глубокую интеграцию. Зачем нагромождать код? Ну и, естественно, в вебе особо остро стоит вопрос производительности, а сериализаторы производительностью не блещут. Исходя из всех этих рассуждений я написал довольно простую функцию, которая превращает строку json в словарь типа Dictionary<string,string>.
Читать полностью »