• ThinkingHome.Migrator — версионная миграция схемы базы данных на платформе .NET Core

      Привет! Сегодня я выпустил новую версию ThinkingHome.Migrator — инструмента для версионной миграции схемы базы данных под платформу .NET Core.


      Пакеты опубликованы в NuGet, написана подробная документация. Вы уже можете пользоваться новеньким мигратором, а я расскажу, как он появился, почему у него номер версии 3.0.0 (хотя это первый релиз) и зачем он нужен, когда есть EF Migrations и FluentMigrator.

      Читать дальше →
    • .NET Core 2.1 Global Tools

      • Перевод

      Пару недель назад вышел .NET Core 2.1 RC1. Это первая версия SDK, где есть фича под названием "Глобальные утилиты .NET Core" (".NET Core Global Tools"). Она дает простой способ создания кросс-платформенных консольных утилит.



      Мы познакомимся с основами использования .NET Core Global Tools и кратко посмотрим, что внутри. А еще вы можете скачать .NET Core 2.1 SDK и попробовать написать собственный пример.

      Читать дальше →
    • Как настроить Travis CI для проекта .NET Core + PostgreSQL

      • Tutorial

      Я расскажу о том, как настроить автоматический запуск модульных тестов в сервисе Travis CI для .NET Core проекта, в котором используется PostgreSQL.


      Можно использовать эту статью как пример для быстрого старта.


      Читать дальше →
      • +13
      • 4,5k
      • 8
    • .NET Core: номера версий и global.json

      • Перевод

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



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


      Читать дальше →
    • Умный дом на .NET — релиз ThinkingHome 3.0

        Привет! Сегодня я наконец-то могу поделиться с вами результатами своей работы на протяжении последних двух лет! Вчера вечером я выпустил новую версию 3.0 системы управления умным домом ThinkingHome.



        ThinkingHome — это программа (.NET Windows service), с помощью которой вы можете организовать на своем компьютере управляющий центр умного дома. Это центр, который дружит между собой "железки" с разными интерфейсами от разных производителей, позволяет автоматизировать работу с ними (писать скрипты на JavaScript) и управлять всем этим хозяйством через веб-интерфейс.


        Под катом более подробное описание системы, список изменений в новой версии и небольшое объявление для тех, кто ненавидит Windows :)

        Читать дальше →
      • Кнопочные выключатели nooLite — первые впечатления

          Я вас приветствую!

          Хочу рассказать небольшую новость про nooLite — систему управления освещением и электроприборами по радио. Думаю, многие уже знакомы с ней и знают, что один из её основных недостатков — сенсорные кнопки пультов. Пользоваться ими, мягко говоря, непривычно (особенно, людям в возрасте), а еще неудобно пользоваться в темноте — проблематично нащупать нужную сенсорную кнопку.

          Те, кто ходил в прошлом и позапрошлом году на электро-выставки с участием Ноотехники, могли видеть на их стенде прототип настенного радиопульта с нажимаемыми (не сенсорными) кнопками. Кнопочные пульты лишены недостатков своих сенсорных собратьев, но имеют новый большой недостаток — не понятно, когда начнется их производство.

          Так вот… кажется, этот недостаток скоро будет устранен! Сейчас уже выпущена небольшая экспериментальная партия, а в апреле, как сказали в Ноотехнике, начнется их серийное производство!



          Так получилось, что ко мне на время попали для тестирования образцы из первой партии пультов. Постараюсь здесь поделиться с вами впечатлениями от их использования.

          Узнать подробности
        • Программируем свой дом на .NET

          • Tutorial
          Недавно я писал сюда статью о проекте системы управления умным домом, в разработке которого я участвую. Это .NET Windows Service, который может управлять домом по сценариям и через веб-интерфейс. В октябре как раз был релиз версии 2.0.

          Весь функционал системы находится в плагинах. Если вам чего-то не хватает, вы можете легко написать собственный плагин, который будет взаимодействовать с нужным железом, интернет-сервисами или делать что-нибудь еще. Чтобы облегчить написание собственных плагинов, я создал небольшой проект, который можно использовать как пример.

          Этот демо-плагин собирает информацию с датчиков температуры/влажности nooLite и отображает полученную информацию в веб-интерфейсе. Результат выглядит примерно так:

          график изменения температуры за последние двое суток


          текущая температура в комнатах (точнее, последние значения, полученные с датчиков)


          Предлагаю вашему вниманию слегка хардкорную статью о том, как писался этот плагин. Там по шагам объясняется процесс разработки собственного плагина для умного дома и приводятся ссылки на GitHub, по которым можно скачать готовый код и запустить его. В этой статье вы узнаете, как создать заготовку плагина и запускать ее в режиме отладки, как настроить автоматическое создание таблиц в системной БД и сохранять туда данные. И, наконец, вы узнаете, как получать информацию о температуре и влажности с датчиков (если интересно только это, то листайте статью сразу в самый конец).

          Начать обучение
        • Мой умный дом на .NET, версия 2.0

            Добрый вечер!

            Предлагаю вашему вниманию проект, над которым я работаю последние полтора года. Это программный продукт (если быть точным, .NET Windows Service), с помощью которого вы можете организовать на своем компьютере управляющий центр «умного дома». Хотя это всего лишь мое хобби (моя основная работа — веб-разработчик на .NET), многие люди, которым я показывал мой проект, высоко его оценили. Я пишу эту статью, чтобы попробовать заинтересовать вас.


            Читать дальше →
          • nooLite: новые датчик температуры PT112 и USB-приемник RX2132

              Спешу поделиться двумя хорошими новостями для людей, интересующихся домашней автоматизацией.
              На самом деле, эти новости — недельной давности: когда написал о них в прошлый раз, меня на неделю забанили на хабре за то, что дал ссылку на свой сайт. Но, т.к. на хабре про это до сих пор ничего не было, удалил лишние ссылки и пробую еще раз.

              Итак:

              1. Начато производство датчиков температуры PT112 (только температуры, без возможности измерения влажности).



              Датчик точно такой же, как датчик температуры/влажности PT111, но может измерять только температуру. Его достоинство — более низкая стоимость — $21.7. Думаю, многим людям не нужно измерение влажности и они будут рады новой модели датчика.

              2. Начато производство новой модели USB-приемника nooLite RX2164 с возможностью принимать информацию от датчиков



              Характеристики — такие же, как у RX1164, цена — такая же. Более того, будет возможность бесплатно обменять купленный ранее адаптер RX1164 на новую модель!

              Ссылки на подробную информацию
            • Мой web-интерфейс управления умной квартирой

                Привет!

                Последние 1.5 года я работаю над очень интересным проектом — это система управления домом по сценариям. Она позволяет навешивать произвольную логику (сценарии) на различные события в доме (срабатывание датчиков, нажатия кнопок, события от внешних сервисов, например, получнеие email или сообщения в twitter). Система имеет модульную архитектуру, весь функционал находится в плагинах. Если нужно добавить новый тип события или новые команды «домашнего API», нужно просто добавить плагин для этого.

                В феврале у нас был первый релиз. Первая версия включала фреймворк для домашней автоматизации: систему плагинов и инфраструктуру для них (чтобы плагины могли описывать свой API и события, а также использовать API и подписываться на события друг друга). Сейчас близится релиз второй версии, основная фича которого — новый веб-интерфейс.



                UI теперь — модульное одностраничное приложение. Плагины могут описывать свой UI в виде html/js/css файлов, расположенных в ресурсах DLL. Клиентская часть UI основана на backbone.js и marionette.js, модули загружаются через require.js. В целом получилось довольно удобно для авторов плагинов — даже не имея глубоких знаний java script, можно, смотря в примеры, описать полноценный UI, который будет автоматически подключен в интерфейс управления домом.

                А теперь - слайды!
              • Начато производство беспроводных датчиков nooLite PM111 и PT111

                  На этой неделе свершилось то, чего долго ждали многие энтузиасты домашней автоматизации — белорусская компания "Ноотехника" начала производство беспроводных датчиков nooLite: датчика движения PM111 и датчика температуры/влажности PT111.


                  Читать дальше →
                • Ethernet-шлюз nooLite PR1132 — управление светом со смартфона и планшета

                    Неоднократно на хабре писали про систему nooLite, позволяющую управлять освещением и электроприборами по радио. Недавно белорусская компания «Ноотехника» — производитель системы nooLite — начала выпуск нового устройства — Ethernet-шлюза nooLite, позволяющего управлять светом с любого смартфона или планшета.
                    Итак, встречайте! Ethernet-шлюз PR1132:



                    Девайс работает в локальной сети (например, его можно подключить к роутеру, который раздает интернет по квартире). Управление светом происходит через веб-интерфейс (т.е. через браузер) или через HTTP API.
                    Читать дальше →
                  • Перевод книги The Art of Unit Testing

                      Всем привет!
                      Недавно я участвовал в попытке организации модульного тестирования в команде разработчиков. Как оказалось, для этого мне очень не хватает знаний и опыта. Т.к. у всех моих знакомых опыта примерно столько же, я решил начать восполнять пробел с прочтения книги The Art of Unit Testing (тыц тыц) — сложилось впечатление, что это «классика жанра» (ну, если даже php программисты ее рекомендуют).



                      Как ни странно, эта книга до сих пор не была переведена на русский язык (и, вероятно, не будет переведена). По мере чтения книги появилась идея сделать ее коллективный перевод. Мне кажется, перевод будет существенным вкладом развитие этой интересной и нужной темы.

                      Все отменяется. Я плохо искал, есть русская версия: www.ozon.ru/context/detail/id/26230428
                      Извините за беспокойство.

                      Я только-что залил книгу на notabenoid.com (это сервис коллективного перевода) и предлагаю всем желающим присоединиться к переводу. На хабре много людей, думаю, получится клево и относительно быстро.
                      Welcome!


                      Пусть пост повисит немного (вдруг кто-то из него узнает об отличной книге), потом скрою.
                      Читать дальше →
                    • Мой умный дом на .NET

                        В последнее время на хабре много статей про умный дом. В основном все они касаются взаимодействия с домашними устройствами. Для автоматического принятия решений используют MajorDoMo, Ninja Blocks или собственные велосипеды.

                        Уже около года я пишу yet another home automation систему управления домом по сценариям. Т.е. она позволяет навешивать произвольную логику на различные домашние события. Предлагаю ее на ваш строгий суд.
                        Описание и дистрибутив
                        Читать дальше →
                      • Автоматизация сборки .NET приложений — часть 2



                          Три года назад я писал статью про автоматизацию сборки .NET приложений. Планировалось, что она будет из двух частей. Первая часть — основы использования NAnt и примеры выполнения базовых задач (компиляция проекта, сборка сайта ASP.NET). Во второй части хотел рассказать о более продвинутых задачах типа трансформации конфигов, запуска модульных тестов и т.п.

                          Когда вторая часть была почти готова, перечитал ее и понял, что получился пересказ документации NAnt. Вне контекста реальных задач он бесполезен, а если возникнет необходимость, всю нужную информацию легко найти в гугле. В результате, статья до сих пор лежит в черновиках.

                          Сейчас я хотел бы предложить вашему вниманию вторую часть, но немного на другую тему, чем планировалось изначально. Я расскажу о написании собственных тасков для NAnt, а также сделаю небольшой обзор библиотеки с тасками, которую я писал для себя последние 4 года.

                          Читать дальше →
                          • +5
                          • 10,2k
                          • 1
                        • Управление светом через браузер

                            Мы написали веб-приложение для управления освещением при помощи системы NooLite.

                            В настройках приложения можно определить список его страниц. На каждую из них можно добавить элементы управления (слайдеры и кнопки), выполняющие нужный набор действий (включение/выключение света, регулировка яркости в нескольких каналах).

                            Демо (вместо включения/выключения света в демо-режиме выдается текстовое сообщение о выполнении действий).

                            Мы использовали ASP.NET MVC на стороне сервера, JQuery Mobile на клиенте (собственно, в первую очередь интересно было управлять освещением именно с телефона). СУБД не требуется (настройки хранятся в конфигурационном файле). Для отправки команд с компьютера на управляющие блоки используется USB-адаптер PC118.

                            Скачать приложение можно здесь. Там же можно отдельно скачать .NET библиотеку, реализующую API для управления системой NooLite. Исходный код всего этого на Google Code.

                            Под катом находится инструкция по установке и настройке «с нуля».
                            Читать дальше →
                          • Что вы хотели бы узнать о системе радиоуправления освещением NooLite?

                              imageЯ думаю, система NooLite (о ней уже писали на хабре) — очень клевый проект: она дает недоступные ранее возможности, имеет низкую стоимость, ее очень легко подключить и использовать. Такие выключатели стоят у меня дома и это очень удобно. Но, на мой взгляд, о системе NooLite знают мало людей (в основном, гики), хотя подключить/использовать ее не сложнее обычного проводного выключателя и с этим справится практически любой человек.
                              Читать дальше →
                            • Верстка like Metro UI

                                В последнее время появилось довольно много инструментов для создания сайтов в духе Metro UI. К сожалению, лично у меня, использовать что-то из этого в реальных проектах не получилось: либо страдает качество и приходится вставлять «костыли», либо с качеством все нормально, но нет стилей для нужных компонентов приложения (например, нигде нет стилей для datepicker-а).



                                Я попробовал написать свое с блэкджеком и шлюхами. Сначала это был просто набор стилей для компонентов, которые были нужны мне в первую очередь. Cейчас все становится похожим на довольно большой CSS framework.

                                Я пишу об этом сюда, надеясь, что для кого-то мои наработки окажутся полезными, а я получу обратную связь.

                                Стили в архиве и документация лежат здесь: milk.ecm7.ru, есть .LESS и CSS версии.

                                Читать дальше →
                              • Выпадающее меню в панели номеров страниц Twitter Bootstrap

                                  Вчера я делал верстку для панели с номерами страниц с использованием Twitter Bootstrap и мне потребовалось добавить туда выпадающее меню (для выбора вариантов сортировки и количества элементов на странице).



                                  Bootstrap не содержит стандартных стилей для выпадающих меню в панели номеров страниц. Я написал свои стили для выпадающих меню, возможно, кому-то они будут полезны.

                                  Версия .less (просто подключите вместе с twitter bootstrap)
                                  Версия .css и пример использования
                                  Демо

                                  Пример использования
                                • Миграции БД для .NET — новый ECM7.Migrator

                                    О проблеме внесения изменений в БД в ходе разработки приложения писали на Хабре много раз.
                                    Версионная миграция БД — удобный подход к решению проблемы.

                                    Уже долгое время я участвую в разработке ECM7.Migrator — инструмента для автоматизации изменений БД. О том, как его использовать и почему это удобно, мы писали здесь.

                                    8 месяцев назад мы выпустили версию 2.0, а на этой неделе вышла версия 2.6. По сравнению с версией 2.0 многое изменилось.
                                    • Полностью переписаны классы всех провайдеров: API стал проще и удобнее, все методы работают адекватно (а для проверки адекватности было написано большое количество модульных тестов);
                                    • Поддержка SQL Azure и Firebird;
                                    • Методы Up и Down переименованы в Apply и Revert, реализовывать Revert не обязательно;
                                    • Обработка разделителей запросов (например, «GO» для MSSQL);
                                    • Возможность работы со схемами БД (отличающимися от схемы по умолчанию);
                                    • … и много других мелких доработок.

                                    Попробуйте наш новый мигратор и, возможно, он понравится вам так же, как нравится нам!
                                    Взять новую версию можно в google code и в галерее пакетов nuget.
                                    • +20
                                    • 2,4k
                                    • 6