5fb433ad98Converted all documents to Markdown
main
Markus Ewald
2025-06-19 12:35:43 +0200
e146057071Added INotifyOnDispose interface
Markus Ewald
2025-06-19 12:15:18 +0200
5184fb5e51Tweaked ReadMe badges a little
Markus Ewald
2024-08-07 14:39:26 +0200
2a87701201Added project platform and status badges
Markus Ewald
2024-08-05 14:32:17 +0200
6b70ca2fcfSublime inserted tabs - fixed
Markus Ewald
2024-07-27 08:56:29 +0200
8f9b5ef19cWrote a short ReadMe file for Nuclex.Support
Markus Ewald
2024-07-27 08:53:43 +0200
705ec87d5dUpdated dependency description
Markus Ewald
2024-07-25 22:29:13 +0200
dc46b07c32Removed packages.config since we use project references now
Markus Ewald
2024-07-25 13:08:16 +0200
ac14779be4Back to NuGet, ther's an obscure workaround for now
Markus Ewald
2024-07-25 12:42:12 +0200
090b1375c0Removed UNITTEST constant from most files; tried switching to Moq, but encountered some InternalsVisibleTo() problems; ripped out NuGet again because it is so very bad
Markus Ewald
2024-07-24 17:42:17 +0200
8b011981d9Began restoring the unit tests (and porting any usages of NMock to NSubstitute)
Markus Ewald
2024-07-24 14:10:08 +0200
825cd8c105Upgraded project to .NET standard 2.0
Markus Ewald
2024-07-24 13:30:59 +0200
ba5234f701Moved all unit test files into a separate directory in preparation for splitting the project
Markus Ewald
2024-07-24 13:27:29 +0200
28b96fd557Added Markdown documentation to Visual Studio project
Markus Ewald
2024-06-18 19:05:19 +0200
2b63977f19Added NUnit and NMock via NuGet instead of relying on the VCS
Markus Ewald
2024-06-17 23:44:50 +0200
5a6f283d32Added proper license and attribution statements
Markus Ewald
2024-06-13 18:57:01 +0200
9f36d71529Changed license to Apache License 2.0
Markus Ewald
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