Как стать автором
Обновить

Анонсирован выпуск .NET Community Toolkit 8.0

Время на прочтение 3 мин
Количество просмотров 3.2K
.NET *C# *

.NET Community Toolkit - это коллекция классов-хелперов и API, которые могут использовать все .NET - разработчики и которые не зависят от конкретной платформы пользовательского интерфейса.

Toolkit поддерживается и публикуется Microsoft и является частью .NET Foundation.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 0

Вебинар по Android-разработке: Model View-паттерны презентационного слоя

Время на прочтение 1 мин
Количество просмотров 286
Блог компании KTS Разработка мобильных приложений *Разработка под Android *Kotlin *

Привет!

Всем интересующимся, изучающим и практикующим Android-разработку:
приглашаем в следующий вторник, 21 февраля, на бесплатный вебинар, посвящённый паттернам MV*

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

Паттерн презентационного слоя используется в каждом Android-приложении. Если эта тема пока кажется вам сложной — не беда, приходите на наш вебинар 21 февраля, где мы всё объясним и научим пользоваться этими страшными приёмами.

Посмотреть подробнее
Всего голосов 10: ↑9 и ↓1 +8
Комментарии 0

Вебинар по Android-разработке: Model View-паттерны презентационного слоя

Время на прочтение 1 мин
Количество просмотров 211
Блог компании KTS Разработка мобильных приложений *Разработка под Android *Kotlin *

Привет!

Сегодня в 18:00 мы приглашаем всех интересующихся, изучающих и практикующих Android-разработку, на бесплатный вебинар, посвящённый паттернам MV*

Паттерн презентационного слоя используется в каждом Android-приложении. Если эта тема пока кажется вам сложной — не беда, приходите на наш вебинар, где мы всё объясним и научим пользоваться этими страшными приёмами. Ведущий — Максим Мялкин, руководитель мобильной разработки KTS.

Читать далее
Всего голосов 12: ↑10 и ↓2 +8
Комментарии 3

MVVM Light Toolkit

Время на прочтение 1 мин
Количество просмотров 19K
Visual Studio *
Toolkit добавляет в Visual Studio и Blend, новый тип проекта MVVM. Таким образом, на не нужно создавать структуру проекта — все уже сделано за нас.

image

Для детального ознакомления с данным toolkit'ом следует ознакомиться с введением и примером
Всего голосов 13: ↑7 и ↓6 +1
Комментарии 7

«Оживление» пользовательского интерфейса

Время на прочтение 12 мин
Количество просмотров 32K
.NET *
image

Приложение не отвечает?!


Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
{Binding Items}

Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
Читать дальше →
Всего голосов 104: ↑97 и ↓7 +90
Комментарии 10

OnPropertyChanged со строгими именами

Время на прочтение 2 мин
Количество просмотров 4.3K
.NET *
Меня дико бесит OnPropertyChanged. Он требует передачи ему строки с именем идентификатора… Мало того, что такой код не верифицируется компилятором, так еще и никакого Intellisence — тайпи весь идентификатор от начала до конца… А если опечатаешся — так проглотит и во время выполнения. Вобщем, нехорошая вещь. Но в MVVM без нее никуда, как и в WPF без MVVM.

Последняя проблема худо-бедно решалась вот таким костылем, содранным отсюда, который вызывался из OnPropertyChanged:
[Conditional("DEBUG")]
[DebuggerStepThrough]
public void VerifyPropertyName(string propertyName)
{
  // Verify that the property name matches a real, 
  // public, instance property on this object.
  if (TypeDescriptor.GetProperties(this)[propertyName] == null)
  {
    string msg = "Invalid property name: " + propertyName;

    if (this.ThrowOnInvalidPropertyName)
      throw new Exception(msg);
    else
      Debug.Fail(msg);
  }
}


И вот сегодня я совершенно случайно нашел красивый способ избавится от него.
Читать дальше →
Всего голосов 43: ↑28 и ↓15 +13
Комментарии 23

Миграция Silverlight приложений с Prism 2.2 на Prism 4 MEF edition

Время на прочтение 10 мин
Количество просмотров 1.6K
Silverlight *
Подходит время, когда будет объявлено об окончании разработки библиотеки Prism 4, предназначенной для создания модульных и гибких Silverlight и WPF приложений. Новая версия имеет большое число изменений, улучшений и нововведений. В качестве одного из главных нововведений можно отметить добавление поддержки MEF в качестве контейнера (в предыдущей версии поддерживался только Unity контейнер).

В этой статье я хотел бы затронуть вопрос миграции с Prism 2.2 на Prism 4 c учётом перехода на использование MEF контейнера вместо Unity.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Разработка с использованием паттерна проектирования Model-View-ViewModel на примере Twitter клиента шаг за шагом

Время на прочтение 12 мин
Количество просмотров 41K
Программирование *
Из песочницы
Введение

Статья посвящена работе с MVVM и WPF. В ней описывается процесс разработки twitter client. Процесс разработки разбит на шаги. В конце каждого шага читатель параллельно пишущий приложение должен иметь работающее приложение. Каждый последующий шаг добавляет какую-то функциональность к написанному на предыдущем шаге. Используется thirdparty библиотека TweetSharp. Ссылку на исходный код, а так же оригинал статьи, написанный мной на английском, можно найти тут.
Статья рассчитана на новичков в WPF разработке. Но предполагается, что читатель имеет некоторый начальный опыт работы с WPF, в частности освоил data binding.
Я не буду писать зачем нужно использовать MVVM – считаю, что об этом хорошо написано в статье “Приложения WPF с шаблоном проектирования модель-представление-модель представления” от Джоша Смита. Если вы не хотите читать эту статью – просто поверьте мне – неверное спроектированное GUI в случае с WPF превращается в большую головную боль.

Читать дальше →
Всего голосов 54: ↑43 и ↓11 +32
Комментарии 24

Установка DataContext вложенным невизуальным объектам в WPF/Silverlight

Время на прочтение 8 мин
Количество просмотров 9.4K
Блог компании Developer Soft
image
При разработке DXScheduler for WPF мы получили от пользователя сценарий, в котором использовался MVVM шаблон.
Пользовательский объект назначался свойству DataContext нашего планировщика, а в XAML-разметке осуществлялась «привязка» к соответствующим свойствам объекта с использованием Binding-выражений.
Но возникла проблема — планировщик содержал некий невизуальный объект Storage, который хранил набор настроек для данных. В том виде, в котором были записаны Binding-выражения, свойства объекта-стораджа не обновлялись.

О том, как была решена эта проблема, вы узнаете ниже…
Читать дальше →
Всего голосов 35: ↑29 и ↓6 +23
Комментарии 1

Команде разработчиков MVVM библиотеки Prism нужна ваша помощь

Время на прочтение 2 мин
Количество просмотров 2.2K
.NET *
В одном из недавних твиттеро-постов я отметил, что работа над библиотекой Prism приостановлена после выхода 4-й версии. В ответ на это я получил сообщения от Ade Miller (бывший дев лид в комманде patterns & practices) и от Bob Brumfield (работает в patterns & practices на проектах Prism, Enterprise Library, и Windows Phone 7 guidance).
Читать дальше →
Всего голосов 48: ↑34 и ↓14 +20
Комментарии 10

А MVC ли это?

Время на прочтение 6 мин
Количество просмотров 24K
Разработка веб-сайтов *
Добрый день!

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

За последние две недели, в беседах с десятком знакомых программистов я выяснил, что все представляют себе MVC совершенно по-разному. Доходит до диаметрально противоположных взглядов, но по какой-то причине, все настаивают, что это MVC и что он должен выглядеть именно так, и находятся в полной уверенности, что все его так и видят.
Читать дальше →
Всего голосов 95: ↑81 и ↓14 +67
Комментарии 47

Пример использования KnockoutJS

Время на прочтение 9 мин
Количество просмотров 17K
JavaScript *
Из песочницы
День добрый, хабрасообщество!В статье будет рассмотрен процесс создания web-страницы редактирования списка пользователей. Готовый пример можно забрать тут. Статья является не обзорной, а приближенной к реальным боевым действиям, потому настоятельно рекомендую ознакомиться с простым примером.
Мне интересны детали
Всего голосов 42: ↑37 и ↓5 +32
Комментарии 14

Разработка приложения живого поиска по Twitter с помощью Knockout, jQuery и ASP.NET MVC 3

Время на прочтение 14 мин
Количество просмотров 6.8K
JavaScript *
Перевод
Достаточно не тривиально разработать хорошо спроектированный front-end веб-приложения с уровнем отклика, производительностью и фичами, которые ожидают пользователи сегодня. Легко потеряться в кипящей смеси jQuery обработчиков событий, HTML разметки и AJAX вызовов и даже относительно простой GUI быстро может стать кошмаром для сопровождения.

Один из способов добавления некоторой структуры и порядка на клиентской стороне – использование фреймворка вроде Knockout. Knockout – это свободная Javascript библиотека с открытым исходным кодом, которая помогает реализовать Model-View-View Model (MVVM) паттерн на клиенте. Она хорошо документирована и официальный веб сайт великолепная точка старта с кучей реальных примеров, которые не только демонстрируют использование встроенных фич библиотеки, но и показывают, как расширить её свои собственными фичами.

В этом посте мы рассмотрим, как Knockout может быть использован совместно с плагином отображения, каким-нибудь jQuery и ASP.NET MVC 3 backend (или модель, как вам нравится) для построения простого, но эффективного приложения для живого поиска в Twitter.

Ок, сделаем это.
Всего голосов 24: ↑22 и ↓2 +20
Комментарии 17

Долгожданный Ciklum .NET Субботник — в Днепропетровске

Время на прочтение 2 мин
Количество просмотров 3.2K
Блог компании Ciklum
Еще один Сiklum Субботник — теперь по теме .NET пройдет 23 июля в Днепропетровске. Приглашаем практикующих разработчиков .NET-приложений для обмена опытом и знаниями в наш днепропетровский офис. Мы постарались сделать полезное мероприятие с условиями, комфортными не только для общения в неформальной обстановке, но и обучения и передачи опыта. Для этого мы пригласили спикеров не только из Днепропетровска, но и из .NET-сообществ других городов.
Интересности под хабракатом
Всего голосов 21: ↑17 и ↓4 +13
Комментарии 5

Создание динамического прокси-объекта с помощью dynamic типа

Время на прочтение 9 мин
Количество просмотров 5.9K
.NET *
Из песочницы
Как и многие люди, перед которыми стоит задача написания очередного UI для своего приложения, я периодически сталкиваюсь с необходимостью создания для UI своей собственной модели, которая в какой-то мере повторяет модель предметной области, однако при этом расширяем и/или изменяет ее. И вот что из этого вышло.
Читать дальше →
Всего голосов 25: ↑18 и ↓7 +11
Комментарии 21

KnockoutJS: Фильтрация списков на лету

Время на прочтение 6 мин
Количество просмотров 11K
JavaScript *
В минувшую субботу я имел честь читать доклад о MVVM и KnockoutJS на .NET Saturday в Днепорпетровске.
Доклад был достаточно тепло встречен публикой и у многих появились интересные вопросы,
которые не были раскрыты во время самого доклада.
Собственно говоря, я решил написать публичные ответы на некоторые из них на Хабре.

Сегодня я отвечу на вопрос о template-binding. «Как быть, если мне надо отобразить не все записи, а только подходящие определённым условиям».

Ответ находится под хабракатом.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Комментарии 7

KnockoutJS: Ajax grid view с нуля в 40 строк

Время на прочтение 8 мин
Количество просмотров 14K
JavaScript *
В последнее время на Хабре все больше упоминаний о KnockoutJS, и я не останусь в стороне от этого тренда.
Сегодня я расскажу о том как сделать своими руками Ajax Grid View с фильтрацией и переходом по страницам написав, при этом, совсем немного кода.
Начиная писать эту статью я чувствовал себя несколько неловко, да и сейчас ощущение не ушло. Все дело в том, что сама библиотека простая, паттерн MVVM простой, и рассказывать я буду простые вещи. Я уверен, что в ближайшее время Knockout получит достаточно большое распространение. А неловко мне от того, что уже через год-дугой кто-то наткнувшись на эту статью будет обескуражен простотой изложенного материала. Примерно так, как любой из вас сейчас, открывший статью о jQuery от 2007 года.

Кто не испугался предполагаемого баяна, милости прошу под хабракат.

Читать дальше →
Всего голосов 39: ↑36 и ↓3 +33
Комментарии 22

Введение в MVVM и KnockoutJS (видео)

Время на прочтение 1 мин
Количество просмотров 5.3K
JavaScript *
В своей статье о фильтрации списков на Knockout я упоминал, что читал доклад о MVVM и KnockoutJS на .NET Saturday в Днепропетровске.

Совсем недавно подоспело видео и я спешу им поделиться. Хочу заранее немного оправдаться — поначалу я немного тараторил, но потом вошёл в ритм и вроде как всё было достойно.

Сам доклад разделён на 2 части:
  1. рассказ о MVVM с разбором практического примера, как сей паттерн может облегчить жизнь при разработке UI
  2. написание простенького приложения на Knockout в live-режиме. Эта часть доклада всем понравилась больше чем первая, но за несколько моих «затупов» я до сих пор краснею :-)


Посмотреть видео доклада

PS 1: слайды можно скачать тут: bit.ly/qX61m2
PS 2: если вдруг кому нужны исходники демо-проекта — я выложу. Но их как минимум причесать надо
Всего голосов 8: ↑7 и ↓1 +6
Комментарии 1

Три подхода к методологии построения сложного клиентского приложения

Время на прочтение 6 мин
Количество просмотров 10K
JavaScript *
Наверно, не существует единого рецепта, который бы всех устроил. Это касается любой проблемы. Для разработчиков этот тезис самоочевиден, и вовлеченность в использование и проектирование отдельных инструментов определяется, главным образом, лишь профессионализмом. Изобретение велосипедов романтично и неизбежно.

Особо вероятно изобретение велосипеда, когда рост сложности приложения происходит постепенно и в некотором смысле незаметно. Сложное приложение обычно является богатым приложением (rich), его элементы и особенности специфицированы W3C www.w3.org/TR/backplane. Известный JavaScript-евангелист Addy Osmani так дополнительно определяет сложное приложение: “По-моему, крупное JavaScript приложение есть нетривиальное приложение, требующее значительных усилий разработчика для поддержки, причем наиболее сложное оперирование обработкой и отображением данных ложится на браузер” (http://addyosmani.com/largescalejavascript/).
Читать дальше →
Всего голосов 40: ↑34 и ↓6 +28
Комментарии 27

Первый тренинг по KnockoutJS от Романа Гомолко в Днепропетровске

Время на прочтение 1 мин
Количество просмотров 3K
Блог компании Ciklum JavaScript *
Дорогие Хабра-читатели,

Спешим похвастаться, что в субботу, 24 Марта, Днепропетровский офис Ciklum принимает в гостях однодневный тренинг Романа Гомолко (romanych) по KnockoutJS.

Выяснить больше деталей о программе мероприятия, целевой аудитории, организации, а также зарегистрироваться вы можете пройдя по ссылке: http://knockoutjs.in.ua/training/

Поскольку тренинг будет проходить на нашей территории, сотрудники Ciklum получат скидку на участие.
Всего голосов 12: ↑6 и ↓6 0
Комментарии 7