a8a6dd71ceRemoved packages.config since we use project references now
cygon
2024-07-25 13:08:16 +0200
67abd0146aBack to NuGet, ther's an obscure workaround for now
cygon
2024-07-25 12:42:12 +0200
079fe8b1cdRemoved UNITTEST constant from most files; tried switching to Moq, but encountered some InternalsVisibleTo() problems; ripped out NuGet again because it is so very bad
cygon
2024-07-24 17:42:17 +0200
56c6b649a7Began restoring the unit tests (and porting any usages of NMock to NSubstitute)
cygon
2024-07-24 14:10:08 +0200
6028e84509Upgraded project to .NET standard 2.0
cygon
2024-07-24 13:30:59 +0200
40cf645ef1Moved all unit test files into a separate directory in preparation for splitting the project
cygon
2024-07-24 13:27:29 +0200
14572d5947Added Markdown documentation to Visual Studio project
Markus Ewald
2024-06-18 19:05:19 +0200
c8fd327f7dAdded NUnit and NMock via NuGet instead of relying on the VCS
cygon
2024-06-17 23:44:50 +0200
102704649fAdded proper license and attribution statements
cygon
2024-06-13 18:57:01 +0200
52dc3d3708Changed license to Apache License 2.0
cygon
2024-06-13 18:36:21 +0200
d3bf0be9d7Added alternative .NET 4.6.2 project
Markus Ewald
2023-10-03 12:33:17 +0000
3acba1311cMade the storable binding list public
Markus Ewald
2022-11-05 11:49:53 +0000
5cba0ed266Added a sortable variant of the BindingList class (useful in getting DataGridViews to be not quite so silly)
Markus Ewald
2022-11-03 20:04:45 +0000
0e49d46eabSimplified and optimized the QuickSort() method for IList<T>; added unit test that verifies the sorting algorithm with a large number of elements both for insertion sort and quicksort
Markus Ewald
2022-11-03 18:55:30 +0000
41691ddf94Vastly simplified the quicksort implementation (split out the partition sorting code into a separate method like most code examples did)
Markus Ewald
2022-11-03 11:33:16 +0000
a10d30e6eaCreated a separate 'Partition' structure for the QuickSort() method so the Stack (used to avoid recursion) is a bit cleaner
Markus Ewald
2022-11-02 22:39:33 +0000
e3ca928636Implemented a messy QuickSort method for IList, appears to be working but needs to be cleaned and optimized still
Markus Ewald
2022-11-02 22:27:51 +0000
48dce94f47Added an IList extensions class that can sort IList<T> using the insertion sort algorithm
Markus Ewald
2022-11-02 18:54:21 +0000
c7dd57f59fAdded ListSegment class which is analogous to StringSegment and ArraySegment, but for IList<T>
Markus Ewald
2022-11-02 18:05:04 +0000
207a17712eFixed a potential NullReferenceException (though I'm thinking about phasing out the method it's happening in entirely)
Markus Ewald
2019-02-08 18:27:15 +0000
8cc16143deCleaned and added a base class for view models with background processing tha uses the new ThreadedAction class to do its background processing; added a view binding interface for WinForms that emulates the WPF design
Markus Ewald
2019-02-06 07:00:27 +0000
97183d2335The Shared helper is now obsolete (singletons are just too bad, not even suitable as workaround for static methods in interfaces for generic types; some cosmetic changes; made the ThreadRunner public
Markus Ewald
2019-02-02 12:47:07 +0000
2f82a2fdf9Updated Mono project (may replace it with pure SCons or Gradle build soon); added a threaded task runner I wrote for some WPF applications going through MCSE; wrote more unit tests for the thread runner
Markus Ewald
2019-02-02 09:12:00 +0000
e6e0220fb3Used pragmas to avoid warnings in unit tests designed to test obsolete methods; method thread-related classes into a new namespace, 'Threading'
Markus Ewald
2019-02-01 19:54:28 +0000
a934fb155eFixed async task notifications; added more comments; restored CancellationToken methods; removed useless usings
Markus Ewald
2017-01-21 22:08:24 +0000
fdf4442163Added a set of interfaces implementing async methods in a plain enough way to support coroutines, RPC and P/Invokes; updated copyright statement for the year 2017
Markus Ewald
2017-01-21 21:33:55 +0000
6053f5a877Found some more bits and pieces of WinRT + Xbox 360 support code and removed them
Markus Ewald
2014-08-19 11:32:56 +0000
3f1809e5ccFixed a bug in the ValueCollection: SyncRoot was returning the IsSynchronized property of the internal collection
Markus Ewald
2014-07-28 22:14:30 +0000
7dd08c93e0Removed the last traces on WinRT compatibility
Markus Ewald
2014-07-28 11:00:08 +0000
ab6a3374d8More documentation
Markus Ewald
2014-07-24 16:04:09 +0000
3a945f5d48Minor cosmetic improvements
Markus Ewald
2014-07-23 19:20:42 +0000
52401a43acThe windows registry store can now enumerate non-existing categories, too
Markus Ewald
2014-07-22 22:04:16 +0000
f74f1d0c6cFixed a typo
Markus Ewald
2014-07-22 21:28:31 +0000
dfc9be412aOne unit test opened HKEY_LOCAL_MACHINE for testing, but it seems Mono on Linux doesn't grant even read access to this (emulated) key, so the unit test now uses HKEY_CURRENT_USER
Markus Ewald
2014-07-22 20:26:43 +0000
40492c8b21Achieved full test coverage for the configuration file store and the windows registry settings store
Markus Ewald
2014-07-22 20:02:33 +0000
58504f4a8aFully implemented the windows registry-based settings store; added more unit tests for the registry settings store
Markus Ewald
2014-07-22 16:24:08 +0000
0d1051dd84Documented the intended interface for the settings store; parseBooleanLiteral() is now a private method in the ConfigurationFileStore again; added some unit tests for the registry-based settings store
Markus Ewald
2014-07-22 15:58:07 +0000
88105794a9The configuration file store now understands 'yes' and 'no' as booleans; implemented the Get() and TryGet() methods of the windows registry settings store
Markus Ewald
2014-07-22 11:10:14 +0000
e5f8b99519Enumerating categories and options with the registry-based settings store is now working; updated mono-3.5 project
Markus Ewald
2014-07-22 10:43:23 +0000
b6fe183994Found some more remaining traces of Microsoft's scrapyard and killed them; removed WinRT support
Markus Ewald
2014-07-22 08:56:33 +0000
b1b1f02e6fRemoved the last traces of Windows Phone 7 and Xbox 360 support
Markus Ewald
2014-07-22 08:50:05 +0000
9a4a051100The unit test for the float helper was public -- fixed
Markus Ewald
2014-07-21 17:11:48 +0000
cb85b3025eAdded XML documentation for the mono-3.5 project
Markus Ewald
2014-07-21 16:21:02 +0000
e8c21b91d4Allowed compilation and unit tests with the mono-3.5 profile and without NMock
Markus Ewald
2014-07-21 16:17:13 +0000
de4a7d2213Added support for compilation under the Mono 3.5 profile; removed support for Windows Phone and Xbox 360
Markus Ewald
2014-07-21 15:46:40 +0000
f9ebc95dd9Updated the project files for the other platforms (but all XNA-related projects will be removed in the near future - betting on Microsoft was a mistake)
Markus Ewald
2014-07-21 13:07:22 +0000
d55ba52369Fully implemented the memory store and added unit tests for it
Markus Ewald
2014-07-21 12:58:33 +0000
03ada146e5Simplified the parsing code; all code paths of the configuration file store are now covered by tests
Markus Ewald
2014-07-21 12:03:22 +0000
55b3ffd923Options can now be removed from a configuration file; added more unit tests to cover all the code paths
Markus Ewald
2014-07-21 10:33:24 +0000
7bde463b2aChanging and adding options works perfectly now
Markus Ewald
2014-07-20 23:18:44 +0000
73a17b7a3eChanged the format of how the parsed configuration file is stored in memory - lines are now part of the categories, avoiding a costly scan over the whole array if lines are added to a category in the middle
Markus Ewald
2014-07-20 22:53:03 +0000
0753aeb220Configuration file parsing should be complete now (but creation and changing not so much)
Markus Ewald
2014-07-20 21:30:41 +0000
7e39bd684fConfigurationFileStore now parses category definitions and some cases of options; wrote a few methods for changing options and creating options and categories
Markus Ewald
2014-07-20 18:14:06 +0000
ea68676cd2Added some unit tests; the configuration file parser can now parse categories
Markus Ewald
2014-07-20 12:42:09 +0000
91d382a940There were some tab characters. Now they're dead.
Markus Ewald
2014-07-20 07:20:21 +0000
2c3d9db4c9Renamed the configuration namespace to settings; more progress on the configuration file parser; partially implemented the memory settings store
Markus Ewald
2014-07-19 22:16:41 +0000
ddc76cf09fMade some progress on my configuration file parser / writer; ParserHelper can now skip over floating point values
Markus Ewald
2014-07-19 11:04:19 +0000
0bb50d9254Updated the copyright statement for the year 2014; remove CommandLine.txt which seemed to contain a copy of CommandLine.cs for a purpose I have long since forgotten
Markus Ewald
2014-07-19 09:13:36 +0000
c90033caadAdded a SkipString() method to the parser helper; began work in implementing a configuration file parser
Markus Ewald
2014-07-19 09:08:35 +0000
2210973528Returned to my own naming convention - at the latest, the 'SingleInt32Union' would raise the question about where there is only a single int32 in that union
Markus Ewald
2014-02-24 15:40:12 +0000
5fb5b1f568Fixed the problems the AreAlmostEqual() methods had with floating point zeros
Markus Ewald
2014-02-24 13:31:35 +0000
0a7306bb58Made the ParallelBackgroundWorker.CancelRunningTasks() and .CancelPendingTasks() methods safe to call after Dispose() (since many usage patterns become much easier with this allowed); Wait() didn't wait for queued tasks (though as long as tasks are queued, there will always be executing tasks, so this is just me being pedantic) - fixed; fixed a race condition in one of the unit tests for the ParallelBackgroundWorker
Markus Ewald
2014-02-24 11:02:39 +0000
a2b92248b5Parallel background worker unit tests are now internal again; added missing comments; nested unit test files under the implementation files they are testing
Markus Ewald
2014-02-20 14:49:08 +0000
feac2b9c89Added unit tests for parallel background worker; fixed some issues with the parallel background worker; added failing unit test for almost equal checks with doubles; fixed a typo
Markus Ewald
2014-02-20 14:33:40 +0000
a18cb63fc5Began work on a parallel background worker class that will be like the BackgroundWorker, but without the tight coupling to WinForms and with support for running multiple tasks in parallel
Markus Ewald
2014-02-20 11:49:11 +0000
33e26a93e7Disabled Variegator completely on Windows Phone and Xbox 360 because those outdated .NET frameworks don't have sets (ISet)
Markus Ewald
2013-07-15 13:46:07 +0000
9a73838f6cNot using optional parameter in Variegator anymore because Windows Phone is a wuss
Markus Ewald
2013-07-15 13:42:48 +0000
63ddef021dAdded more unit tests to the floating point helper classes; Variegator unit test is now internal
Markus Ewald
2013-07-15 13:38:21 +0000
2462dd6dc4Added a C# port of my new Variegator collection, a MultiDictionary that resolves ambiguities by picking a random value or providing the least recently used one, very useful for returning varying responses
Markus Ewald
2013-06-27 16:05:54 +0000
4b94bdd1a5Improved unit test names for the XML helper class
Markus Ewald
2013-04-27 21:34:45 +0000
23fe4cfd37Added some helper methods for building parsers
Markus Ewald
2013-04-27 21:14:02 +0000
56cc2cee12Updated copyright statement for the year 2013
Markus Ewald
2013-04-25 13:12:32 +0000
d42aa48236Updated copyright statement for the year 2013; fixed a warning; minor cosmetic changes
Markus Ewald
2013-04-25 13:11:59 +0000
7d4a66e9f2Some attempts at making this compile on WinRT. Much work remains.
Markus Ewald
2012-03-17 13:03:40 +0000
cc1b8d095aFixed an invalid XML comment
Markus Ewald
2012-03-14 22:45:17 +0000
c5eb234eefAdded MonoDevelop/Unity project for Nuclex.Support
Markus Ewald
2012-03-14 16:10:44 +0000
72511417efReverseComparer still used old generic argument naming convention - fixed
Markus Ewald
2012-03-14 15:47:31 +0000
556b9ac0fbReenabled unit tests for the new Nuclex.Support.Plugins project
Markus Ewald
2012-03-11 09:20:39 +0000
92733d147bMoves services directory into Nuclex.Support.Plugins project
Markus Ewald
2012-03-11 09:05:15 +0000
c9b20cd2cdMoved plugin framework into its own assembly (it's really not such a good idea anymore with the Managed Extensibility Framework and all); added Xbox360 and Windows Phone 7 projects for Nuclex.Support.Transactions
Markus Ewald
2012-03-11 08:57:24 +0000
9ddd8770b2Added non-generic variant of the TyperHelper.HasAttribute() method
Markus Ewald
2012-03-09 07:13:07 +0000
07d1b026f1Fixed compilation error in .NET 4.0 build - member in excluded section of code had not been renamed
Markus Ewald
2012-03-09 07:10:25 +0000
9fcee1e872Windows Phone 7 and Xbox 360 builds now use a Dictionary again
Markus Ewald
2012-03-09 07:05:38 +0000
0637b9d71bMoved another helper method that tests whether a type is carrying an attribute into the TypeHelper class
Markus Ewald
2012-03-08 17:14:42 +0000
97de199705It seems that contrary to what MSDN says, the Dictionary<K, T> class does not have a constructor accepting an IEqualityComparer on the Xbox 360 or Windows Phone 7; added missing documentation in Pool class
Markus Ewald
2012-03-08 12:05:59 +0000
58a1652749Added six separate constructors to avoid default parameters (which aren't supported on Windows Phone 7 or the Xbox 360)
Markus Ewald
2012-03-08 11:31:24 +0000
c91a082e84Pool can now be used with types not derived from IRecyclable and/or without a public default constructor; consolidated type-related helper methods into a common helper class (TypeHelper.cs); optimized GetFieldInfosIncludingBaseClasses() method
Markus Ewald
2012-03-08 11:05:20 +0000
24439da822Unit tests for the StringBuilderHelper weren't properly localized, containing hard-coded decimal separators - fixed; StringBuilderHelper always used a dot as a decimal separate - behavior changed so it uses the system's current locale (StringBuilderHelper should be identical to the normal StringBuilder except not produce any garbage)
Markus Ewald
2012-03-08 09:55:29 +0000
f3652ac4dbAdded some read-only attributes to the cloner implementations
Markus Ewald
2012-03-06 13:45:33 +0000
21754b8e87The expression tree cloner was not able to assign read-only field -- fixed; expanded tests to safeguard against regressions
Markus Ewald
2012-03-06 13:39:02 +0000
4c408a56adUnit tests for the ObservableSet not also tests the change notification events resulting from union/intersect/except methods; added unit tests for read-only set
Markus Ewald
2012-03-03 15:06:02 +0000
07a9de6283Some cosmetic changes; all methods in the StringBuilderHelper are now extension methods; added GarbagePolicy enumeration for StringBuilder helper methods; custom Semaphore is not internal in Windows builds to avoid ambiguous symbols
Markus Ewald
2012-03-03 12:45:49 +0000
1a05bf9d63Added some helper classes for INotifyPropertyChanged; added unit tests for the ObservableSet class; documented the second Count property exposed by the multi dictionary
Markus Ewald
2012-03-03 10:57:08 +0000
df169e376aRemoved overridable change notifications from MultiDictionary - accurately sending these would involve considerable overhead; added unit tests for all main interface methods of the MultiDictionary
Markus Ewald
2012-03-02 23:00:02 +0000
b37c4a757cMultiDictionary wasn't firing 'removed' events when an entire set of values is replaced - fixed, but not unit-tested yet; added more unit tests to the ObservableSet class; ObservableSet was not firing the 'added' event - fixed
Markus Ewald
2012-03-02 21:05:05 +0000
0195b34289The Count property of the multi dictionary now returns either the value count of the number of unique keys depending on which interface it is called from
Markus Ewald
2012-03-01 14:48:53 +0000