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


Today, I released a new version of the Mugen MVVM Toolkit, it is available at this link or via nuget. Moreover, I released the ReSharper plugin for the Mugen MVVM Toolkit project, it is available at this link or via ReSharper-plugin manager.

What's new in Mugen MVVM Toolkit:

  • Added the 'Should' class instead of the 'Validate' class. The 'Validate' class is now obsolete.
  • Added 'Toolkit.Annotations' to support the Mugen MVVM Toolkit ReSharper plugin.
  • Updated JetBrains annotations within the project.
  • Added the 'GlobalSettings.DefaultActivationPolicy' property to represent the default activation policy.
  • Removed the 'GetSettings' method from the 'ViewModelBase' class. Instead of it, the 'GlobalSettings.DefaultViewModelSettings' property is used.
  • Updated the 'ActivationPolicy' class.
  • Updated the 'Autofac' to 3.1.3 version.
  • Clean up code.
  • Updated unit tests.
  • Minor changes.

Introduction to Mugen MVVM Toolkit ReSharper

Mugen MVVM Toolkit ReSharper is a ReSharper plugin that helps with development in the following fields:
  • The ability to automatically implement the IView interface.
Read more →

Today, I released a new version of the Mugen MVVM Toolkit, it is available at this link or via nuget.


Mugen MVVM Toolkit makes it easier to develop Silverlight, WPF, WinRT and WP applications using the Model-View-ViewModel design pattern. The purpose of the toolkit is to provide a simple framework and set of tools for getting up to speed quickly with applications based on the MVVM design pattern. The core of Toolkit contains a navigation system, windows management system, models, validation, etc. Mugen MVVM Toolkit contains all the MVVM classes such as ViewModelBase, RelayCommand, services, etc.


The MVVM framework includes the following features that differs this project from other frameworks:
  • Solves the nested user controls problem in MVVM, view models are dynamically created by you, using the GetViewModel and GetViewModel<TViewModel> methods. Forget about the ViewModelLocator, in the Toolkit all view models are created dynamically and binding view and view model are on the fly.
public partial class MainWindow : Window, IWindowView
    public MainWindow()
public class MainWindowViewModel : WindowViewModel
//View is already created.
var viewModel = GetViewModel<MainWindowViewModel>();

Read more →

Today, I released a new version of the Captcha MVC library, it is available at this link or via nuget.

What's new:

  • Changed the IIntelligencePolicy interface, added ICaptchaManager as parameter for all methods.
  • Improved font size in the image, thanks abot user.
  • Added the ResponseTimeIntelligencePolicy class - is the time-dependent validation for captcha, thanks reinhardS user for the idea.
  • Added the MultiIntelligencePolicy class that allows the use of multiple IIntelligencePolicy.
  • Added the StorageType enum is used by the IIntelligencePolicy.
  • Fixed problem with datacontract serialization.
  • Added the AddAreaRouteValue property to the DefaultCaptchaManager class.
  • Removed obsolete methods.
  • Minor changes.
Below I will describe the changes in more detail. Read more →

When using usual C# events, registering an event handler creates a strong reference from the event source to the listening object. If the source object has a longer lifetime than the listener, and if the listener no longer needed (there are no other references), to avoid memory leak the listener object must unsubscribe from the source event, if it does not, the use normal .NET events causes a memory leak.
There are lots of different approaches to resolve this problem. This article will explain some of them and discuss their advantages and disadvantages. Read more →

Today, I released a new version of the Captcha MVC library, which supports the "intelligent" captcha. It is available at this link or via nuget. I wrote this article to introduce a new feature of this release. Read more →

Sometimes we need to have access to non-public members. However, if you try to do this via reflection in Silverlight, you get something like this:
Attempt by method 'method name' to access method 'member name' failed. Read more →

Hi everyone, my name is Vyacheslav Volkov!
Welcome to my website. On it, I will spread information about my open-source projects as well as useful information about the .NET platform.
More information about me can be found on this page. All entries on this blog are available in two languages, English and Russian. Because English is my second-language, I can make some funny mistake, if you found it or you have any question for me, please contact me, use this page.
I hope that the information on my site will be useful to you.
Read more →