Progression of the Core Library in 2013

More than 95% of the features of the Core Library are now implemented.

The remaining works are essentially adjustments, corrections, unit testing, packaging and perhaps checking Mono compatibility, which should take a few months.

Here is the actual namespaces list:

  • Ordisoftware.Core
    ObjectUtility, ReflexionUtility, StringUtility, SystemManager, DisplayManager
  • Ordisoftware.Core.Collections.Generic
    SingletonList, SingletonDictionary, SingletonHashSet, etc.
  • Ordisoftware.Core.Compute
    BinaryValue, MathExtended, MathGeneric
  • Ordisoftware.Core.Configuration
    SystemSettings, Parameters
  • Ordisoftware.Core.Data
    Singleton, SharedStaticValue, ThreadedValue, NameValue, Tuple
  • Ordisoftware.Core.Data.Embedded
    EmbeddedValue, EmbeddedOrdinal
  • Ordisoftware.Core.Diagnostics
    Debugger, Logger
  • Ordisoftware.Core.Diagnostics.Testing
    UnitTest, TestManager
  • Ordisoftware.Core.Globalization
    Localizer
  • Ordisoftware.Core.IO
    FileLister, Filer, IniFile, TextFileManager, FolderLister, FolderTool
  • Ordisoftware.Core.Net.Remoting
    RemoteClientBase, RemoteServerBase, RemoteComposite
  • Ordisoftware.Core.Security
    Passwordable, PasswordManager
  • Ordisoftware.Core.Text
    TextFormatter
  • Ordisoftware.Core.Threading
    Chronometer, ManagedThread, ManagedThreadList, ThreadManager
  • Ordisoftware.Core.Windows.Forms
    InputBox, ObjectInspector, ExceptionForm, LogForm, TestManagerForm

Static members shared amongst instances of closed constructed generic types

Each closed constructed generic type has its own access to static members.

If Class<T> has a static member Value then Class<int> and Class<string> have two separate values for Value.

Indeed, as mentioned in this article about interfaces, there is no diamond operator in C# to access the open generic type underlying to closed types, which prevents generic polymorphism.

How have the same Value for all types or how to have a common static value to simple classes such as Class1 and Class2?

Here is a solution.

Continue reading »


SingletonList generic class preview

Here is a simplified example of a hierarchy based on the latest improvements of the Singleton to create a persistent generic list:

Example of usage: