Rico Suter edited this page Aug 21, 2015 · 19 revisions

Legend:

  • all = Available for all platforms (PCL)
  • SL = Silverlight 5
  • WinRT = Windows 8.1 and Windows Phone 8.1 (PCL library for W8.1 and WP8.1 WinRT)
  • UWP = Universal Windows Platform (Windows 10)
  • WP7SL = Windows Phone 7 Silverlight
  • WP8SL = Windows Phone 8 Silverlight
  • WPF = .NET 4.5 (WPF)
  • WP = WP7SL and WP8SL

Most popular: YouTube, Http, Paging, ObservableCollectionView, ...

MVVM (Model-View-ViewModel)

Package: MyToolkit

MVVM Overview

View models

  • ViewModelBase (all), view model base class which implements ObservableObject and provides a loading property and life cycle methods
  • ViewModelHelper (all): Contains helper methods to correctly wire up view models to views or the Windows Phone progress bar.

Data modelling

  • ObservableObject (all), INotifyPropertyChanged implementation to simplify observable model implementation
  • GraphObservableObject (all), observable object with child tracking and property changed event with old and new value
  • UndoRedoManager (all), transparent undo/redo implementation based on a graph of observable objects

Commands (ICommand implementations)

  • RelayCommand (all), an ICommand implementation which takes an action and a predicate to run its logic
  • AsyncRelayCommand (all), an ICommand implementation which takes a task returning function and a predicate to run its logic
  • CommandBase (all), observable abstract ICommand base implementation

Messaging / messenger pattern

The article "Recommendations and best practices for implementing MVVM and XAML/.NET applications" explains how to use the MVVM classes.

Collections

Package: MyToolkit

Composition & Dependency Injection

Package: MyToolkit

  • CompositionContext, dependency injection container with support for property and constructor injection.
  • ServiceLocator, service locator to access service implementations in a decoupled way.

Paging & navigation

Package: MyToolkit.Extended

Paging Overview: Improved frame and page classes for Universal and Windows Phone Silverlight apps.

Universal apps (W8.1, WP8.1 and UWP)

Windows Phone Silverlight

Networking

Package: MyToolkit.Http and MyToolkit.Extended Http (all),

  • HTTP class with GZIP, POST FILE, POST form, authentication and timeout support.
  • WakeOnLan (WP, WinRT), class to send Wake-On-Lan (WOL) magic packets to devices
  • ClientBaseExtensions (WPF) used to authenticate an ASP.NET authenticated WCF service

XAML controls

Package: MyToolkit.Extended

  • DatePicker (WinRT) (only functionality, not user friendly, need better control)
  • DataGrid (WinRT)
  • ExtendedListPicker (WP), added TypedSelectedItems property which can be bound to ObservableCollection<T> not only ObservableCollection<object>
  • PivotExtensions (WP only): Attached property to disable the automatic margin on WP Pivot control.
  • Hamburger (UWP only): A hamburger control
  • HtmlView/ScrollableHtmlView (WP, WinRT): Render HTML with native controls for better performance then with a WebControl/WebView
  • ImageButton (WinRT), has Content, ContentPressed and IsTiltEnabled properties. Use these Content properties to set the vectorized image (eg generated by Metro Studio).
  • LongListSelector (WinRT): Native looking long list selector for Windows Phone (WinRT)
  • MtGridView (WinRT): GridView with scrolling and scrolled to end event and other features
  • MtListBox (WP, WinRT): ListBox with scrolling and scrolled to end event, InnerMargin, and other features
  • MtPivot (WinRT)
  • NativeLongListSelector (WP): Native looking/correctly styled LongListSelector which correctly works on WP7 and WP8.
  • NavigationList (WP, WinRT): ListBox with navigation event (with navigation item parameter)
  • PanAndZoomImage (WP)
  • PanAndZoomViewer (WP)
  • ScrollableItemsControl: Use this class instead of ListBox if you don't need support for selected item.
  • TextButton (WinRT), shows an icon (specified by Segue UI character) and a header
  • TimePicker (WinRT) (only functionality, not user friendly, need better control)
  • WatermarkedTextBox (SL, WP, WinRT): TextBox with watermark
  • YouTubeButton, see YouTube (WP, WinRT): Button with YouTube video preview and logic to play YouTube

XAML converters

Package: MyToolkit.Extended

User interface extensions and helpers

Package: MyToolkit.Extended

  • VisibilityManger (WinRT), shows and hides XAML controls depending on the screen width (useful for Windows Store apps to support the various screen states, portrait, landscape, snapped, etc.)
  • TextBinding (WP) provides an attached property to allow immediate updated text bindings to the TextBox and PasswordBox controls
  • Popups, helper classes to implement native looking popups in WP and WinRT
  • TiltEffect (WinRT), tilt effect like in Windows Phone Toolkit for WinRT

Multimedia

Package: MyToolkit.Extended

  • YouTube (WP, WinRT), play YouTube videos and get their MP4 links

Media

Package: MyToolkit.Extended

  • ImageHelper (WP, WinRT) Provides an attached Source property for the Image control with better performance and support for AuthenticatedUri (URI with basic authentication credentials)

Animation

Package: MyToolkit.Extended

Serialization

Package: MyToolkit and MyToolkit.Extended

Data

Package: MyToolkit

Storage

Package: MyToolkit and MyToolkit.Extended

  • ApplicationSettings (PCL but WinRT, WPF and WP only), simple class to access application settings.
  • StorageApplicationSettings, class to access application settings which are stored in files and use the DataContractSerializer or XmlSerializer.
  • FileUtilities (WinRT, WP), WriteAllText(Async) and ReadAllText(Async) methods

Events

Package: MyToolkit (most) and MyToolkit.Extended

  • EventUtilities
  • SingleEvent (WP, SL, WinRT) register an event which is called only once and automatically deregistres itself (mainly used to register anonymous delegates)
  • WeakEvent (WP, SL, WinRT) register weak events which are automatically deregistered if they are only referenced by callback target

Utilities

Package: MyToolkit (most) and MyToolkit.Extended

  • CodeContractExtensions, extension methods for checking method parameters with Code Contract support.
  • ColorUtilities, mix two colors, remove alpha from color, ToHex/FromHex
  • DependencyPropertyChangedEvent (WP, WinRT) register a property changed event on a dependecy property.
  • EnumerableExtensions, OrderByThenBy, DistinctBy, IsCopyOf, Shuffle, TakeRandom, MinObject, MaxObject, MiddleElements (for LINQ to objects)
  • StringExtensions, EscapeUriString, RemoveHtmlTags, RemoveHtmlLinks, RemoveHtmlWhitespaces, ConvertHtmlCharacters
  • StreamExtensions (WinRT, WP), ReadToEnd and ReadToEndAsync extension methods with IProgress support
  • ToastNotificationHelper (WinRT), shows a notification toast (enable capability in manifest)

Workflow Engine

Package: MyToolkit

Workflow Overview

In development...

ASP.NET MVC

Package: MyToolkit.AspNet.Mvc

  • CollectionEditorExtensions: Extension methods to implement an edit form for an entity with a sortable child collection (read this article for more information).
  • Bootstrap: Extension method to generate Bootstrap elements
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.