| Program: | Tektosyne Library for the .NET Framework |
| Version: | 5.6.2 (History) |
| Released: | 18 April 2012 |
| Author: | Christoph Nahr (Copyright) |
| Contact: | christoph.nahr@kynosarges.org |
| Website: | http://www.kynosarges.org/ |
The Tektosyne library for the .NET Framework consists of two assemblies:
The full Tektosyne library and the precompiled assemblies require a Microsoft Windows system capable of running the Microsoft .NET Framework 4.0 Client Profile. This includes the following operating systems:
On all of these systems, Microsoft Internet Explorer 5.01 or later and Microsoft Windows Installer 3.1 or later are also required.
Either Microsoft Visual Studio 2010 or the free Microsoft Windows SDK 7.1 for Windows 7 and .NET 4.0 is required to write programs that use the full Tektosyne library. Both have the same system requirements as the .NET Framework 4.0 itself, but the Windows SDK also requires that you first install the full .NET Framework 4.0 – not just the Client Profile.
Tektosyne.Core requires only four BCL assemblies: mscorlib.dll, System.dll, System.Core.dll, and System.Xml.dll. These four “core” assemblies are the minimum requirement for a Portable Class Library, and they are also supported by Mono. All Tektosyne.Core types should therefore work on any platform with any degree of .NET 4 compatibility, including Silverlight 4, Windows Phone 7, and XNA Framework 4.
Note: The Tektosyne.Core project and precompiled assembly is not actually a Portable Class Library, as Microsoft has yet to finalize this feature. Therefore, unless you’re targeting the .NET Framework 4 on Windows, you will have to create a new project for Tektosyne.Core with the desired target environment, and copy the individual source code files to the new project.
The directory to which the archive was unpacked (and its various subdirectories corresponding to namespaces) contains all source files required to build the Tektosyne library. The output directory bin contains the following files:
Tektosyne.Core.dll – platform-independent components, compiled in release mode and signed with a strong name.Tektosyne.Core.xml – the XML documentation file generated for the Tektosyne.Core assembly.Tektosyne.Windows.dll – Windows-specific components, compiled in release mode and signed with a strong name.Tektosyne.Windows.xml – the XML documentation file generated for the Tektosyne.Windows assembly.Tektosyne.GuiTest.* – a WPF demo application and its associated files. See Testing Projects and Saving & Printing Grids for details.Tektosyne.UnitTest.dll and nunit.framework.* – a suite of unit tests and its NUnit support library. See Testing Projects for details.Use Visual Studio or MSBuild to load or build the solution Tektosyne.sln, or to reference the C# project Tektosyne\Tektosyne.csproj from another solution. The two testing projects, Tektosyne.GuiTest.csproj and Tektosyne.UnitTest.csproj in the eponymous directories, should be ignored when using the library from another solution.
You can use the free Visual C# Express IDE instead of Visual Studio 2010. However, the Express edition has several artificial limitations, including a lack of support for “solution items”. These are files that are linked to a solution but not to any particular project, such as this ReadMe file. Express users will have to locate and open these files manually.
The distribution package was created by running MSBuild on the separate build script Publish.proj. This script offers the following targets:
bin, and a distribution package Tektosyne.zip containing the entire directory tree.The default target is “Publish”. You need a key container named “Kynosarges” and the archiver 7-Zip for this target to succeed.
The solution Tektosyne.sln contains two testing projects, Tektosyne.GuiTest and Tektosyne.UnitTest. These projects are not required to use or deploy the library. They are included in the distribution package to verify the integrity of the precompiled library and to demonstrate the use of various library classes.
Tektosyne.GuiTest is a small WPF application that exercises several Tektosyne types which are unsuitable for a unit testing harness, such as the geometric and user interface classes. Choose General: Public Key Token to show the public key token for the signed distribution build, which should be 4A-81-84-5B-DA-6D-59-57.
Security Permissions. The GuiTest executable requires a number of .NET security permissions that are available only when the executable is running with “Full Trust”. This is usually the case for all .NET programs that are run from a local hard disk or a shared network drive. The executable does not require administrator privileges.
Tektosyne.UnitTest is a unit testing library designed for NUnit 2.6.0. To run the tests, use either nunit.exe or nunit-console.exe to load the control file Tektosyne.nunit in the Tektosyne root directory. The testing project references the NUnit assembly bin\nunit.framework.dll which is distributed with Tektosyne (see Copyright Notice).
Integrated Testing. You can also start the project Tektosyne.UnitTest from within Visual Studio to run nunit-console.exe on the unit tests. You’ll have to adjust the executable path in the project’s Properties to match your NUnit installation. Test results will appear in the Visual Studio output window as well as in the file TestResult.xml in the Tektosyne root directory.
This method also used to allow integrated debugging, but this no longer appears to be the case with Visual Studio 2010. Breakpoints set in the tested code are simply ignored. As a workaround, start the NUnit GUI runner and then use the Debug > Attach to Process menu item to attach to the process nunit-agent.exe.
Tektosyne.GuiTest contains a useful feature that helps with the creation of game maps based on real-world terrain. Choose Geometry: Save & Print Grid to show a dialog that allows you to save or print grids of arbitrary size that are composed of squares or hexagons of any side length and orientation.
You can print a grid on transparent film and overlay it on an atlas page to determine your map layout, or you can save a grid to a PNG file and use your favorite paint program to superimpose it on an image file with your real-world map. This is how I created the “Roman Empire” and “Battle of Crécy” demo scenarios that ship with Hexkit.
The Tektosyne User’s Guide presents an overview of the library’s contents, organized into thematically related groups. Unusual features such as the graph algorithms are covered in greater detail. The guide is an Adobe PDF document, available as a separate download at the Tektosyne home page.
A comprehensive class reference for the Tektosyne library is also available as a separate download at the Tektosyne home page. This reference was created from XML source code comments using the free Sandcastle help compiler.
To recreate the class reference, you also need the Microsoft HTML Help Workshop. To view the class reference, you need the Microsoft HTML Help Viewer. You can obtain the current versions of both programs at this MSDN page.
All files – individual files, multi-file packages, and individual files contained in multi-file packages – that constitute the original distribution of the Tektosyne Library for the .NET Framework are Copyright © 2002–2012 by Christoph Nahr, except where otherwise noted.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
The assembly bin\nunit.framework.dll and the corresponding XML documentation file are part of the NUnit distribution and therefore Copyright © 2002-2012 Charlie Poole, Copyright © 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov, Copyright © 2000-2002 Philip A. Craig.
The current Sandcastle release that was used to build the Class Reference still has a few bugs. You may encounter the following issues:
When in doubt, please refer to the source code for the correct documentation.