Метка «mvvm» - 2

Как-то совершенно незаслуженно обделена вниманием платформа Xamarin 2.0, и я б хотел начать описание всех его замечательных свойств

Прежде всего, что такое Xamarin?

Xamarin это коммерческий продукт, основанный на open-source проекте Mono, который позволяет использовать .Net framework, в том числе язык C#, для кроссплатформенных разработок.

Основные свойства:

  • C# для написания приложений под Android, iOs и Windows8. Поддержка LINQ и async/task
  • Native UI, Native Peformance — код компилируется под конкретную платформу и использует native UI контроли
  • Visual Studio и все его plugins, включая ReSharper, NUnit testing…
  • Xamarin Studio, которая похожа на Visual Studio, но доступна также и для Mac
  • Использование .Net библиотек
  • Использование других готовых native компонент, обвернутых в C#
  • Графический редактор для Андроида

image
Читать полностью »

Каждый раз при создании неигрового проекта под Windows Phone 7.1/8.0 приходится повторять ряд однотипных шагов. Сегодня мне это надоело, и я сделал Windows Phone Bootstrap App Template.
Это шаблон проекта, который «из коробки» включает:

  • Пакеты nuget SimpleMVVM Toolkit и Phone Toolkit.
  • Два окна: MainPage и About, с соответствующими models и viewmodels.
  • Полностью работающую локализацию окон и application bars.
  • Информацию о версии и ссылка на оценку приложения в Marketplace в окне About.
  • Turnstile анимацию страниц.

Читать полностью »

Впервые прочитав знаменитую статью Джоша Смита WPF Apps With The Model-View-ViewModel Design Pattern я был очень вдохновлен философией MVVM и решил все будущие проекты писать исключительно с ее использованием. По мере «внедрения» MVVM я столкнулся с определенными трудностями и недостатками (на мой субъективный взгляд). В одном из проектов мне был необходим UserControl, который бы позволял авторизироваться на веб-сервисе. При попытке забиндить свойство ViewModel к элементу управления PasswordBox я получил такую ошибку:
A 'Binding' cannot be set on the 'Password' property of type 'PasswordBox'. A 'Binding' can only be set on a DependencyProperty of a DependencyObject
Читать полностью »

Knockoutjs. «Растим» дерево
Судя по частоте появления статей, KnockoutJS набирает популярность на Хабре. Внесу и я свою лепту. Хочу осветить тему нестандартных для HTML элементов управления и «дерева» в частности. Под деревом здесь понимается аналог элемента управления TreeView. Статья подразумевает, что читатель уже знаком с KnockoutJS на базовом уровне. Публикация может рассматриваться, как пособие для изучения KnockoutJS. С другой стороны, надеюсь, и опытные пользователи KnockoutJS смогут почерпнуть для себя что-то новое.
Читать полностью »

О библиотеке knockout.js на хабре написано не так много, но кое что есть (и конечно же есть официальный туториал и другие материалы на оф. сайте и хороший ресурс на англ. языке knockmeout.net, статьи которого смогу перевести, если будет спрос). Данная статья возможно перерастёт в цикл статей по javascript и нокауту, если нло не похитит меня.

Изначально готовил материал для людей, уже знакомых с нокаутом и mvvm, но в комментариях к другим статьям меня попросили рассказать как готовить нокаут для чайников. Предполагаю, что вы уже прочитали предыдущие статьи о нокауте на хабре. Поехали!
Читать полностью »

в 6:04, , рубрики: .net, javascript, knockoutjs, mvvm, метки: , ,

Steve Sanderson сообщает о релизе следующей версии knockoutjs.

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

О новых возможностях под катомЧитать полностью »

mv-patterns
В Интернет можно найти множество различающихся реализаций и схем, уже набившего оскомину, паттерна MVC. В разных книгах я также встречал разные схемы. Это порождает некоторую путаницу и комментарии к моей предыдущей статье: "Реализация MVC паттерна на примере создания сайта-визитки на PHP" тому подтверждение. В поисках истины, я попытался расставить все по местам… перечитал некоторую литературу и статьи по паттернам проектирования и написал дополнение к упомянутой статье. Но решил запостить это дополнение, как отдельный топик в надежде на фидбэк. Под катом вы найдете несколько часто встречающихся схем MVC и MVP с описанием жизненного цикла приложения, а также описание менее популярных паттернов HMVC, MVVM и схемы AMD (Asynchronous Module Definition), которая актуальна для клиент-сайд приложений. Разумеется, некоторые из перечисленных паттернов применимы не только к веб-приложениям, но в статье они рассматриваются именно в этом контексте.
Читать полностью »

Многим известна библиотека Prism, но зачастую весь её обширный функционал ненужен. Иногда хочется воспользоваться некоторыми плюшками из этой библиотеки.
Просто так выдрать малый кусок кода не получается, тогда приходится создавать свою реализацию с более или менее приближенным функционалом.
RegionManager — одна из интересных плюшек, простую реализацию которой мы и рассмотрим
Читать полностью »

knockoutmvcНа Хабре уже много писали про Knockout.js (раз, два, три, четыре, пять, видео). Для тех кто не в курсе, Knockout.js — это популярная JavaScript библиотека, позволяющая реализовать Model-View-View Model (MVVM) паттерн на клиенте. Освоить Knockout.js можно очень быстро — ведь есть система интерактивного обучения, куча живых примеров (можно потыкать и посмотреть исходный код) и прекрасная документация.

Очень часто Knockout.js используют в связке с ASP.NET MVC — ведь библиотека существенно упрощает написание клиентской логики. Однако, возникает много типичных проблем для клиент-серверной разработки: основную модель и часть логики её обработки приходится описывать как на клиенте (JavaScript), так и на сервере (C#/VB). Кроме того, есть рутинная часть, связанная с обращением клиента к серверным методам и передачи им модели для обработки. Но не стоит печалиться! Теперь у нас есть Knockout MVC — это .NET оболочка для Knockout.js, которая генерирует весь нужный JavaScript-код за нас. Нам остаётся только описать нашу модель на C# и в MVVM-стиле указать для каждого нужного html-элемента к какому свойству модели нужно привязаться (а можно указать и целые выражения — они будут транслированы в js). Таким образом, можно получить полноценное кроссбраузерное клиентское веб-приложение без единой строчки JavaScript!
Читать полностью »

Недавно я начал экспериментировать с разработкой под Windows Phone. У меня уже есть некоторый опыт разработки под WPF и Silverlight с использованием шаблона MVVM и IoC-контейнера, поэтому эта задача не представляет для меня большой трудности. Как выяснилось, мой любимый MVVM-фреймворк Caliburn.Micro (CM) и любимый IoC-контейнер Autofac поддерживают эту платформу. Я засучил рукава и начал формировать скелет приложения. CM активно использует IoC-контейнер для своей работы. Можно использовать либо встроенный контейнер (SimpleContainer), либо ряд других, для которых существуют адаптеры для CM. Есть такой адаптер и для Autofac – Caliburn.Micro.Autofac, который я уже использовал для WPF-приложений. Это замечательно, однако бочку мёда, как обычно, испортила ложка дёгтя – адаптер Autofac для CM 1.3.1 (текущая версия) под Windows Phone не работает. До недавнего времени он даже не компилировался, но его автор David Buksbaum недели три назад поправил это недочёт. Однако, так или иначе, приложения с его использованием не работают. Видимо David не разрабатывает сам приложений для Windows Phone и эта версия осталась недоработанной. Отказываться от любимой связки не хотелось и пришлось написать этот адаптер самостоятельно. Сегодня я представляю вашему вниманию эту реализацию.

Мне пришлось решить следующие проблемы:

  • Компоненты, реализующие IPhoneService и INavigationService, должны инстанцироваться в AutofacBootstrapper прежде, чем регистрировать в контейнере.
  • Отсутствовала реализация IPhoneContainer, что и вызвало основные трудности.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js