In case you missed it: Lot's of Bag 'o Tricks fun recently
I've also added the BOT to NuGet.
Here's a lazy man's update--just a copy-paste from the changelog.
Take a look.
Bag of Tricks Change Log
V4.1.0 - 2011-07-20
Lot's of fun now stuff, but no breaking changes! Feels good.- Added
GetStringComparerextension that takes a CultureInfo - Added
SelectAdjacentPairsto extensions - Added
ResourceHelpersextensions to SL assembly - Added
TryGetTypedValue<>extension - Fixed a gnarly bug in SL version of
ColorHelper.HsbToRgb - Added
NextFloatextension method forRandom - Added
ModalControlCloses #23 - Adjacent pairs methods now take
IEnumerable<T>instead of requiringIList<T>
v4.0.0 - 2011-07-08
- BREAKING - Removed
DispatcherExtensions. The implementation was trivial and it brought in all of Reactive Extensions as a dependency, which isn't worth it. - Fix for Issue #3 from Larry.
v3.0.0 - 2011-07-08
Because this rev contains non-compatible breaking changes, I'm bumping the version number. If this is annoying, let me know and I'll be more careful.- Added command support to
DoubleClickBehavior- thanks, Larry - Added demo for
DoubleClickBehavior - Added
FilteredObservableEnumerable - BREAKING - Using Reactive Extensions for async features
v2.0.0 - 2011-07-05
In theNuGet world, BOT is not three projects: Core, Common, BOT. This allows one to minimize dependencies on external assemblies (mostly Prism) when not needed.- BREAKING - Added a
CoreSilverlight assembly to match the same in WPF - BREAKING - Moved
DemoCollectionback to WPF demo app. This eliminates the dependency on Prism in Core and Common
v1.1.0 - 2011-06-22
Moving to Semantic Versioning. Non-breaking features are added, so we bump minor version number.Library changes
- Added
Insertmethod toWeakEnumerable<T>, which puts new items at the beginning of the enumeration. Which makes insertion O(1) instead of O(n) - Added
SortedObservableEnumerable<T>: because sometimes you'd like a sorted view of anINotifyCollectionChange - Added
Synchronizeextension method. For those times you want to update an OCP with a source collection and a factory
Non-library changes
- Fixed the WPF demo around property watcher
- Removed Phone from the main solution (since it remains broken)
- Added another layer of directories to builds, so there are no longer collisions between Silverlight and WPF build outputs
v1.0.6
- Added support for critical inner exceptions to
IsCritical - Moved
DispatcherExtensionsmethods to useSynchronizationContext, which is more general- Should likely rename the class to
SynchronizationContextExtensions, huh?
- Should likely rename the class to
- Naming and param order changes to
PropertyChangeWatcher- Breaking Change - Clean-up in the SL test project
- Added test for
PropertyChangeWatcher
v1.0.5
- A mountain of changes to
ObservableCollectionPlus<T>- Added
Resetmethod - Closes #21 - Made sort methods safe - Closes #22
- Added
MultiUpdateActive - Changed the location of the call to protected
AfterMultiUpdateto before raising reset
- Added
v1.0.4
- A mountain of clean-up in demo and test code
- Added
WatchPropertyextension method toExtensions - NEW
PropertyChangeWatcher- Issue #16 - Added some usage details to
InstanceFactory - Added
Util.ThrowUnless Extensions.GetCustomAttributes-> change paramMemberInfoto more genericICustomAttributeProvider- Issue #19- Added
AddRangetoObservableCollectionPlus<T>- Issues # 17 - Some work to get Windows Phone 7 projects to load, although I've hit a snag with sharing generic.xaml between SL4 and Phone - progress towards Issue #18
v1.0.3
- Much smarter implementation of
Util.GetHashCode - Added
ClearErrorstoDataErrorHelper - Moved the
targetsfiles - Removed
[DataContract]fromChangeable- and cried that serialization support in Silverlight wasn't more flexible AsyncValue: addedLoadCommandproperty andLoadErrorevent - Closes #10