About .NET, ASP.NET, MVC, C#, WPF, WCF and everything related to .NET and more.

Категория: Программирование

Сегодня, я выпустил новую версию библиотеки Mugen MVVM Toolkit. Новая версия доступна по этой ссылке или через nuget. Также, я выпустил плагин для ReSharper’а, который предоставляет расширения для проекта Mugen MVVM Toolkit, он доступен по этой ссылке или через ReSharper-plugin manager.

What's new in Mugen MVVM Toolkit:

  • Добавлен "Should" класс, вместо класса 'Validate', класс 'Validate' теперь является устаревшим.
  • Добавлены 'Toolkit.Annotations' для поддержки плагина Mugen MVVM Toolkit ReSharper.
  • В проекте обновлены аннотации JetBrains.
  • Добавлено свойство 'GlobalSettings.DefaultActivationPolicy', которое предоставляет политику активации по умолчанию.
  • Удален метод 'GetSettings' из класса 'ViewModelBase'. Вместо него, используется свойство 'GlobalSettings.DefaultViewModelSettings'.
  • Обновлен класс 'ActivationPolicy'.
  • Обновлена библиотека 'Autofac' до версии 3.1.3.
  • Обновлены unit-тесты.
  • Незначительные изменения.

Введение в Mugen MVVM Toolkit ReSharper

Mugen MVVM Toolkit ReSharper - это плагин для ReSharper, который помогает в разработке и предоставляет следующие возможности:
  • Возможность автоматического реализации интерфейса IView.
Подробнее →

Сегодня, я выпустил новую версию библиотеки Mugen MVVM Toolkit. Новая версия доступна по этой ссылке или через nuget.

Введение

Mugen MVVM Toolkit делает разработку Silverlight, WPF, WinRT и WP приложений с использованием паттерна MVVM проще. Цель toolkit’a предоставить простой framework для разработки приложений с использованием паттерна MVVM. Mugen MVVM Toolkit содержит компоненты для работы с навигацией, модальными окнами, валидацией объектов и т.д. Mugen MVVM Toolkit содержит все базовые MVVM классы, такие как: ViewModelBase, RelayCommand, сервисы и т.д.

Особенности

Mugen MVVM Toolkit включает в себя следующие функции, которые отличают его от других:
  • Решает проблему вложенных User control’ов присущую многим MVVM toolkit’ам. View-model’и создаются динамически в коде используя методы GetViewModel и GetViewModel<TViewModel>. Можно забыть про ViewModelLocator, потому что в toolkit’е все view-model’и создаются динамически и сопоставление view --> view-model происходит на лету.
[ViewModel(typeof(MainWindowViewModel))]
public partial class MainWindow : Window, IWindowView
{
    public MainWindow()
    {
        InitializeComponent();
    }
}
public class MainWindowViewModel : WindowViewModel
{
}
//View is already created.
var viewModel = GetViewModel<MainWindowViewModel>();

Подробнее →

Сегодня я выпустил новую версию библиотеки Captcha MVC, она доступна по этой ссылке или через nuget.

What's new:

  • Изменен интерфейс IIntelligencePolicy, добавлен интерфейс ​​ICaptchaManager в качестве параметра для всех методов.
  • Улучшена размер шрифта в изображении, спасибо пользователю abot.
  • Добавлен класс ​​ResponseTimeIntelligencePolicy - это зависящая от времени проверка для капчи, спасибо пользователю reinhardS за идею.
  • Добавлен класс ​​MultiIntelligencePolicy, который позволяет использовать несколько IIntelligencePolicy.
  • Добавлено перечисление ​​StorageType, используется IIntelligencePolicy.
  • Исправлена ​​проблема с DataContract сериализацией.
  • Добавлено свойство ​​AddAreaRouteValue в класс DefaultCaptchaManager .
  • Удалены устаревшие методы.
  • Мелкие изменения.
Ниже я опишу изменения более подробно. Подробнее →

При использовании обычных C# события, при регистрации обработчика события создается "сильная ссылка" из источника события на объект слушателя. Если источник события имеет более длительный срок службы по сравнению со слушателем, и если слушатель станет больше не нужен (когда на него нет других ссылок), чтобы избежать утечки памяти, объект слушателя должен отписаться от исходного события. Если он этого не сделает, использование обычных .NET событий вызывает утечку памяти.
Есть много различных подходов для решения этой проблемы. В этой статье рассматриваются некоторые из них с их преимуществами и недостатками. Подробнее →

Сегодня, я выпустил новую версию библиотеки CaptchaMVC, которая поддерживает "intelligent captcha". Новая версия доступна по этой ссылке или через nuget. Я написал этот пост для демонстрации возможностей новой версии. Подробнее →

Иногда нам необходимо получить доступ к закрытым членам, и если попытаться сделать это в SL-приложении с использование рефлексии, мы получим ошибку:
Attempt by method 'method name' to access method 'member name' failed.
Подробнее →