Представим типичный пользовательский интерфейс. Есть несколько элементов управления, которые запускают некоторые повторяемые (за время жизни приложения) действия разной сложности. Чтобы сложные действия, такие как обращение к различным носителям, обращение к сети или сложное вычисление, не снижали отзывчивость интерфейса, они должны быть асинхронными. Дополнительно могут быть элементы управления, отменяющие асинхронно запущенное действие. Действие имеет свойство состояния (неактивно, запущено, завершено успешно, завершено с ошибкой, отменено), которое тем или иным образом отображается пользователю. Принятый в WPF, Silverlight и WinPhone шаблон проектирования MVVM диктует, чтобы такое «действие» было частью модели представления, давая возможность вызывать сервисы модели из пользовательского интерфейса без создания между ними жёсткой связи. К сожалению, такое «действие» в базовой библиотеке классов не реализовано. Ближайшие имеющиеся в библиотеке сущности, такие как задачи System.Threading.Tasks.Task, команды System.Windows.Input.ICommand и делегаты System.Delegate, не подходят: задачи всегда одноразовые и не могут представлять повторяемое действие, делегаты и команды не поддерживают отмену и не содержат свойств состояния, а команды вообще не могут быть асинхронными. Далее я предлагаю решение в виде небольшой библиотеки классов, дающей возможность легко использовать описанные «действия» в ваших приложениях.
Alf @alf_samara
CTO at TrafficStars
IT Эмиграция в Минск
7 min
128KВводная часть
Так сложилось, что я переехал жить и работать из Москвы в Минск. Часто видел подобные материалы про аналогичные переезды в какие-то экзотические для меня или совсем далеки страны, я же хочу поделиться опытом эмиграция «к соседям».
Важно, что я буду писать именно о Минске, а не о всей Белоруссии. Написанное ниже — это лишь мое видение ситуации, возможно, где-то я не все увидел.
Если возникнут какие-то вопросы, напишите в личку или в комментарии к посту.
+152
Умный дом — дешево и сердито
3 min
176KВсю свою сознательную жизнь мечтал сделать если уж не весь мир, то хотя бы свое собственное жилище похожим на дома из фантастических фильмов. Чтобы, заходя после тяжелого трудового дня домой, мне заботливо включали свет, вежливо здоровались, сообщали о происшествиях, а на выходе предупреждали о погоде за бортом и закрывали за мной дверь. Чтобы мне не приходилось идти, запинаясь, в темноте к кровати, а можно было бы лечь, и только потом выключить свет со своего гаджета, который всегда под рукой.
На хабре уже полным полно статей о реализации подобного, чем же моя будет отличаться? Меня задушила жаба. Я не захотел покупать законченные устройства, это дорого и не интересно, было принято решение делать все самому.
На данный момент мой умный дом полностью закончен: серверная часть, web-интерфейс, приложение с виджетами под Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.
Но для начала я бы хотел вам рассказать про аппаратную часть «рабочей лошадки» дома – RC-2(room controller). Я давно пишу прошивки под AVR МК, поэтому в качестве мозга нашего контроллера будет известная Atmega 8-16PU, которая есть во всех магазинах радиодеталей. Да, ее старший брат используется в уже надоевшей всем Arduino Uno, но мы будем держаться от нее подальше.
На хабре уже полным полно статей о реализации подобного, чем же моя будет отличаться? Меня задушила жаба. Я не захотел покупать законченные устройства, это дорого и не интересно, было принято решение делать все самому.
На данный момент мой умный дом полностью закончен: серверная часть, web-интерфейс, приложение с виджетами под Android, контроллеры, датчики и исполнительные устройства, алгоритмы, даже собственный скриптовый язык программирования для них.
Но для начала я бы хотел вам рассказать про аппаратную часть «рабочей лошадки» дома – RC-2(room controller). Я давно пишу прошивки под AVR МК, поэтому в качестве мозга нашего контроллера будет известная Atmega 8-16PU, которая есть во всех магазинах радиодеталей. Да, ее старший брат используется в уже надоевшей всем Arduino Uno, но мы будем держаться от нее подальше.
+31
Па-па-папам
1 min
9.3KВозвращение легендарного «Па-па-папам» в двух новых тв-роликах от Intel. Особенно понравился первый — в памяти невольно родились воспоминания из детства, а именно диафильмы, электроника с «Ну погоди» и первый «комп».
+7
Information
- Rating
- Does not participate
- Location
- Лимассол, Government controlled area, Кипр
- Registered
- Activity