• Что нового появилось в C# 7 и уже поддерживается в Visual Studio “15” Preview 4

    • Translation
    С релизом Visual Studio “15” Preview 4 многие новые фичи C# 7 можно попробовать самому. Основные новшества C# 7 призваны облегчить работу с данными, упростить код и улучшить производительность. От себя скажу, что C# движется в сторону функционального языка, добавляя такие вещи, как кортежи и сопоставления с шаблоном (pattern matching). Не все из новой функциональности работает так, как задумано, в Preview 4, в этих случаях будет указано, что именно вы можете пока использовать и как это будет работать в будущем. Что ж, приступим.
    Читать дальше →
  • Пишем мультиплатформенного бота для перевода денег с карты на карту с помощью Microsoft Bot Framework V1

    • Tutorial
    Во время конференции Microsoft Build 2016 был анонсирован Microsoft Bot Framework (сессия с Build 2016: видео). С его помощью можно создать бота (на C# или Node.js), которого потом можно подключить к различным каналам / приложениям: СМС, Skype, Telegram, Slack и т.д. Мы пишем бота, используя Bot Builder SDK от Microsoft, а все проблемы взаимодействия с третьесторонними API берет на себя Bot Connector (см. изображение). Звучит красиво, попробуем создать простого бота, который мог бы переводить деньги с карты на карту (логику перевода возьмем у Альфа Банка — тестовый стенд, описание API: Альфа Банк), испытав все прелести продукта, находящегося в альфа-версии.

    Disclaimer: во время написания статьи Microsoft выпустил новую версию фреймворка, так что ждите вторую серию: мигрируем бота с v1 на V3.


    Читать дальше →
  • Решаем «Первый открытый контест» от Mail.ru по Data Science с помощью Azure ML (введение в Azure ML)

      Сейчас проходит соревнование ML Boot Camp, в котором надо спрогнозировать время, за которое будут перемножены 2 матрицы размерами mxk и kxn на данной вычислительной системе, если известно, сколько решалась эта задача на других вычислительных системах с другими размерами матриц (точные правила). Давайте попробуем решить эту задачу регресии не с помощью стандартных инструментов и библиотек (R, Python и panda), а используя облачный продукт от Microsoft: Azure ML. Для наших целей подойдет бесплатный доступ, для которого достаточно даже trial Azure аккаунта. Все, кто хочет получить краткое руководство по настройке и использованию Azure ML в общем и ML Studio в частности на примере решения реальной живой задач, приглашаются под кат.
      Читать дальше →
    • Перегружаем стандартные DataAnnotation атрибуты для использования с custom resource provider

        Представьте, что у вас есть legacy проект Asp.NET MVC версии 5, которому немало лет. В нем используется самописный ResourceProvider, который умеет доставать из базы ресурс и показывать его на UI. В зависимости от различных условий (например, от того, откуда пользователь пришел на сайт), ресурсы будут показаны разные. Теперь пришло время сделать так, чтобы все намертво захардкоженные строки в Data Annotation атрибутах, такие как:
        [Display(Name = "Username")]
        [Required(ErrorMessage = "Please enter the username")]
        [StringLength(64, ErrorMessage = "Username cannot exceed 64 characters")]
        public string Username{ get; set; }
        

        тоже могли получать свои значения, используя ResourceProvider. Как это сделать, используя немного наследования и доступной в Asp.NET MVC кастомизации, я покажу под катом.
        Читать дальше →
      • Полное руководство по использованию ASP.NET Core 1.0 (aka ASP.NET 5) Tag Helpers

        • Translation
        Тег-хэлперы (Tag Helpers) – новая функция MVC, которую удобно использовать для генерации HTML кода. Они выглядят как обычные HTML элементы и атрибуты, но обрабатываются движком Razor на стороне сервера. Тег-хэлперы во многом представляют собой альтернативный синтаксис для HTML Helpers, но также они позволяют сделать то, что было трудно или невозможно сделать с помощью HTML Helpers. У каждого тег-хэлпера свое поведение и возможности. Эта статья рассмотрит базовые тег-хэлперы, существующие в MVC 6 (ASP .NET Core 1.0, как стало известно совсем недавно).
        Читать дальше →
        • +21
        • 28.7k
        • 6
      • Вызываем обработчики событий потокобезопасно без лишнего присваивания в C# 6

        • Translation

        От переводчика


        Часто начинающие разработчики спрашивают, зачем при вызове обработчика нужно копировать его в локальную переменную, а как показывает код ревью, даже опытные разработчики забывают об этом. В C# 6 разработчики языка добавили много синтаксического сахара, в том числе null-conditional operator (null-условный оператор или Элвис-оператор — ?.), который позволяет нам избавиться от ненужного (на первый взгляд) присваивания. Под катом объяснения от Джона Скита — одного из самых известных дот нет гуру.
        Читать дальше →
      • Пишем Custom MSBuild Task для деплоя (WMI included)

          Добрый день! Одним прекрасным днем мы обнаружили, что наш MSBuild деплой проект не хочет работать в новой среде: для создания и управления сайтами и пулами он использовал MSBuild.ExtensionPack. Падали ошибки, связанные с недоступностью DCOM. Среду менять было нельзя, поэтому кстати пришлась возможность написания собственных задач для MSBuild: msdn.microsoft.com/en-us/library/t9883dzc.aspx, было принято решения написать свои, которые работали бы через WMI (доступный на среде) Кому интересно, что получилось, прошу под кат.
          Читать дальше →
          • +13
          • 6.5k
          • 3
        • Использование искусственных иммунных систем для решения задачи символьной регрессии

          Доброго времени суток, уважаемое хабро-сообщество!

          Представляю на ваш суд статью, написанную по мотивам моей магистерской работы (факультет прикладной математики, информатики и механики Воронежского ГосУниверситета). Ее тема «Применение распределенных искусственных иммунных систем для решения задачи символьной регрессии». Постараюсь коротко (но содержательно) рассмотреть основные понятия искусственных иммунных систем и мой подход к их реализации для решения задачи символьной регрессии – восстановления символьного представления функции по заданному множеству ее значений в некоторых точках. Программа была написана на языке Python (версии 3.3), исходники доступны на Github.
          Читать дальше →
          • +16
          • 3.5k
          • 5