Kraken
Kraken is my personal class library for .NET. It has evolved since v1.0 to
provide a variety of classes to make .NET programming easier. It continues to
evolve over time. The v2.x version of Kraken supports .NET v2.0 and
VS2005/VS2008. The v3.x version supports .NET v3.5 and VS2008.
The source code for Kraken is not available for several reasons. The primary
reason is to avoid a proliferation of "unofficial" versions floating around.
However you can use Reflector or another tool to look into the assemblies to see
how something is implemented.
Features
- Data access library to isolate connection management from applications.
- Threading classes to make working with multi-threaded applications easier.
- String helper class to provide additional support for strings.
- Reflection helper class to help with reflection.
- Many more...
Downloads
The core library is contained in a Windows Installer package and is needed by everyone.
Kraken is installed in the GAC. Multiple versions can co-exist.
The SDK is a Windows Installer package that adds the necessary files and links to
hook Kraken into Visual Studio 2005 and expose the documentation and symbol files
for Intellisense. It also installs a merge module for installing Kraken from
other installation programs.
Version History
| Version |
Release Date |
|
Comments |
| .NET Version 3.5 |
|
| 3.0.0 |
13 December 2007 |
Download |
Functionally equivalent to v2.3.0 but recompiled for v3.5 and with all obsolete
members removed. Release Notes
Alert |
| .NET Version 2.0 |
|
| 2.3.0 |
13 December 2007 |
Download |
Adds some utility classes and enhanced support for Windows services.
Release Notes Alert |
| 2.2.0 |
18 March 2007 |
Download |
Update to provide a reworked data access layer and some minor enhancements.
Release Notes
|
| 2.1.1 |
25 January 2007 |
Download |
This was a minor update to move Kraken from v1.1 of .NET to v2.0. |
Critical Issue Alert in v2.3.0 and v3.0.0!!
TimeZoneEx will not work properly under Windows Vista. Attempting
to use it may cause an exception. The problem lies in a change made to
Windows to support more complex daylight savings time (DST) rules. In
Vista a new dynamic time zone structure and functions were added in addition to
some registry changes. In previous versions of Windows a single DST rule
existed for a time zone and it was year agnostic. This required that
Windows be updated when the DST rules changed and invalidated DST calculations
for any prior years. With Vista each time zone can have different DST
calculations for each year. While necessary to support the complexity of
DST it does break existing code that assumed a single DST for a time zone, such
as TimeZoneEx.
While updating TimeZoneEx to support dynamic DST calculations is possible
it would require either breaking support for previous versions of Windows in
order to use the new APIs or implement the logic needed to support DST, which is
not trivial. Since TimeZoneEx has been marked obsolete as of v3.5
of .NET I do not feel that the benefits of fixing this class is worth the time
and effort it would take.
For clarification, TimeZoneEx will work when used to represent a time
zone that does not support dynamic DST. TimeZoneEx.GetTimeZones
will throw an exception if called as it will encounter the dynamic time zones.
These issues will not be fixed as the class is marked as obsolete.
Legalese
Now for the legality issues. Kraken is freely available for use in personal
or commercial applications without any restrictions. It would be nice if you
give credit where credit is due but it is not required.
To lead by example I must now inform you that not all the classes are my own.
Some classes are either directly or indirectly influenced by others. To this
end the following classes and their original authors are listed below.
- InterlockedEx - Portions of the class come from the following sources:
- Morrison, Vance. Understand the Impact of Low-Lock Techniques in Multithreaded
Apps., MSDN Magazine. October, 2005.
- Richter, Jeffrey. Concurrent Affairs: Performance-Conscious Thread Synchronization.,
MSDN Magazine. October, 2005.
- SpinWaitLock - Richter, Jeffrey. Concurrent Affairs: Performance-Conscious
Thread Synchronization., MSDN Magazine. October, 2005.
- TimeZoneEx - Modified for style and to enhance some functionality.
Michael Brumm