Commit Graph

  • 5fb433ad98 Converted all documents to Markdown main Markus Ewald 2025-06-19 12:35:43 +0200
  • e146057071 Added INotifyOnDispose interface Markus Ewald 2025-06-19 12:15:18 +0200
  • 5184fb5e51 Tweaked ReadMe badges a little Markus Ewald 2024-08-07 14:39:26 +0200
  • 2a87701201 Added project platform and status badges Markus Ewald 2024-08-05 14:32:17 +0200
  • 6b70ca2fcf Sublime inserted tabs - fixed Markus Ewald 2024-07-27 08:56:29 +0200
  • 8f9b5ef19c Wrote a short ReadMe file for Nuclex.Support Markus Ewald 2024-07-27 08:53:43 +0200
  • 705ec87d5d Updated dependency description Markus Ewald 2024-07-25 22:29:13 +0200
  • dc46b07c32 Removed packages.config since we use project references now Markus Ewald 2024-07-25 13:08:16 +0200
  • ac14779be4 Back to NuGet, ther's an obscure workaround for now Markus Ewald 2024-07-25 12:42:12 +0200
  • 090b1375c0 Removed 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
  • 8b011981d9 Began restoring the unit tests (and porting any usages of NMock to NSubstitute) Markus Ewald 2024-07-24 14:10:08 +0200
  • 825cd8c105 Upgraded project to .NET standard 2.0 Markus Ewald 2024-07-24 13:30:59 +0200
  • ba5234f701 Moved all unit test files into a separate directory in preparation for splitting the project Markus Ewald 2024-07-24 13:27:29 +0200
  • 28b96fd557 Added Markdown documentation to Visual Studio project Markus Ewald 2024-06-18 19:05:19 +0200
  • 2b63977f19 Added NUnit and NMock via NuGet instead of relying on the VCS Markus Ewald 2024-06-17 23:44:50 +0200
  • 5a6f283d32 Added proper license and attribution statements Markus Ewald 2024-06-13 18:57:01 +0200
  • 9f36d71529 Changed license to Apache License 2.0 Markus Ewald 2024-06-13 18:36:21 +0200
  • d3bf0be9d7 Added alternative .NET 4.6.2 project Markus Ewald 2023-10-03 12:33:17 +0000
  • 3acba1311c Made the storable binding list public Markus Ewald 2022-11-05 11:49:53 +0000
  • 5cba0ed266 Added 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
  • 0e49d46eab Simplified 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
  • 41691ddf94 Vastly 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
  • a10d30e6ea Created 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
  • e3ca928636 Implemented 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
  • 48dce94f47 Added an IList extensions class that can sort IList<T> using the insertion sort algorithm Markus Ewald 2022-11-02 18:54:21 +0000
  • c7dd57f59f Added ListSegment class which is analogous to StringSegment and ArraySegment, but for IList<T> Markus Ewald 2022-11-02 18:05:04 +0000
  • 207a17712e Fixed 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
  • 8cc16143de Cleaned 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
  • 97183d2335 The 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
  • 2f82a2fdf9 Updated 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
  • e6e0220fb3 Used 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
  • a934fb155e Fixed async task notifications; added more comments; restored CancellationToken methods; removed useless usings Markus Ewald 2017-01-21 22:08:24 +0000
  • fdf4442163 Added 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
  • 6053f5a877 Found some more bits and pieces of WinRT + Xbox 360 support code and removed them Markus Ewald 2014-08-19 11:32:56 +0000
  • 3f1809e5cc Fixed a bug in the ValueCollection: SyncRoot was returning the IsSynchronized property of the internal collection Markus Ewald 2014-07-28 22:14:30 +0000
  • 7dd08c93e0 Removed the last traces on WinRT compatibility Markus Ewald 2014-07-28 11:00:08 +0000
  • ab6a3374d8 More documentation Markus Ewald 2014-07-24 16:04:09 +0000
  • 3a945f5d48 Minor cosmetic improvements Markus Ewald 2014-07-23 19:20:42 +0000
  • 52401a43ac The windows registry store can now enumerate non-existing categories, too Markus Ewald 2014-07-22 22:04:16 +0000
  • f74f1d0c6c Fixed a typo Markus Ewald 2014-07-22 21:28:31 +0000
  • dfc9be412a One 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
  • 40492c8b21 Achieved full test coverage for the configuration file store and the windows registry settings store Markus Ewald 2014-07-22 20:02:33 +0000
  • 58504f4a8a Fully 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
  • 0d1051dd84 Documented 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
  • 88105794a9 The 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
  • e5f8b99519 Enumerating 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
  • b6fe183994 Found some more remaining traces of Microsoft's scrapyard and killed them; removed WinRT support Markus Ewald 2014-07-22 08:56:33 +0000
  • b1b1f02e6f Removed the last traces of Windows Phone 7 and Xbox 360 support Markus Ewald 2014-07-22 08:50:05 +0000
  • 9a4a051100 The unit test for the float helper was public -- fixed Markus Ewald 2014-07-21 17:11:48 +0000
  • cb85b3025e Added XML documentation for the mono-3.5 project Markus Ewald 2014-07-21 16:21:02 +0000
  • e8c21b91d4 Allowed compilation and unit tests with the mono-3.5 profile and without NMock Markus Ewald 2014-07-21 16:17:13 +0000
  • de4a7d2213 Added 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
  • f9ebc95dd9 Updated 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
  • d55ba52369 Fully implemented the memory store and added unit tests for it Markus Ewald 2014-07-21 12:58:33 +0000
  • 03ada146e5 Simplified 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
  • 55b3ffd923 Options 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
  • 7bde463b2a Changing and adding options works perfectly now Markus Ewald 2014-07-20 23:18:44 +0000
  • 73a17b7a3e Changed 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
  • 0753aeb220 Configuration file parsing should be complete now (but creation and changing not so much) Markus Ewald 2014-07-20 21:30:41 +0000
  • 7e39bd684f ConfigurationFileStore 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
  • ea68676cd2 Added some unit tests; the configuration file parser can now parse categories Markus Ewald 2014-07-20 12:42:09 +0000
  • 91d382a940 There were some tab characters. Now they're dead. Markus Ewald 2014-07-20 07:20:21 +0000
  • 2c3d9db4c9 Renamed 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
  • ddc76cf09f Made 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
  • 0bb50d9254 Updated 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
  • c90033caad Added a SkipString() method to the parser helper; began work in implementing a configuration file parser Markus Ewald 2014-07-19 09:08:35 +0000
  • 2210973528 Returned 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
  • 5fb5b1f568 Fixed the problems the AreAlmostEqual() methods had with floating point zeros Markus Ewald 2014-02-24 13:31:35 +0000
  • 0a7306bb58 Made 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
  • a2b92248b5 Parallel 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
  • feac2b9c89 Added 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
  • a18cb63fc5 Began 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
  • 33e26a93e7 Disabled 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
  • 9a73838f6c Not using optional parameter in Variegator anymore because Windows Phone is a wuss Markus Ewald 2013-07-15 13:42:48 +0000
  • 63ddef021d Added more unit tests to the floating point helper classes; Variegator unit test is now internal Markus Ewald 2013-07-15 13:38:21 +0000
  • 2462dd6dc4 Added 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
  • 4b94bdd1a5 Improved unit test names for the XML helper class Markus Ewald 2013-04-27 21:34:45 +0000
  • 23fe4cfd37 Added some helper methods for building parsers Markus Ewald 2013-04-27 21:14:02 +0000
  • 56cc2cee12 Updated copyright statement for the year 2013 Markus Ewald 2013-04-25 13:12:32 +0000
  • d42aa48236 Updated copyright statement for the year 2013; fixed a warning; minor cosmetic changes Markus Ewald 2013-04-25 13:11:59 +0000
  • 7d4a66e9f2 Some attempts at making this compile on WinRT. Much work remains. Markus Ewald 2012-03-17 13:03:40 +0000
  • cc1b8d095a Fixed an invalid XML comment Markus Ewald 2012-03-14 22:45:17 +0000
  • c5eb234eef Added MonoDevelop/Unity project for Nuclex.Support Markus Ewald 2012-03-14 16:10:44 +0000
  • 72511417ef ReverseComparer still used old generic argument naming convention - fixed Markus Ewald 2012-03-14 15:47:31 +0000
  • 556b9ac0fb Reenabled unit tests for the new Nuclex.Support.Plugins project Markus Ewald 2012-03-11 09:20:39 +0000
  • 92733d147b Moves services directory into Nuclex.Support.Plugins project Markus Ewald 2012-03-11 09:05:15 +0000
  • c9b20cd2cd Moved 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
  • 9ddd8770b2 Added non-generic variant of the TyperHelper.HasAttribute() method Markus Ewald 2012-03-09 07:13:07 +0000
  • 07d1b026f1 Fixed 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
  • 9fcee1e872 Windows Phone 7 and Xbox 360 builds now use a Dictionary again Markus Ewald 2012-03-09 07:05:38 +0000
  • 0637b9d71b Moved 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
  • 97de199705 It 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
  • 58a1652749 Added 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
  • c91a082e84 Pool 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
  • 24439da822 Unit 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
  • f3652ac4db Added some read-only attributes to the cloner implementations Markus Ewald 2012-03-06 13:45:33 +0000
  • 21754b8e87 The 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
  • 4c408a56ad Unit 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
  • 07a9de6283 Some 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
  • 1a05bf9d63 Added 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