Class Tools
Authors: Blizzard
Version: 0.94
Type: Programming Tools
IntroductionAre you sick of having to write code for classes from the beginning? Are you using languages like C++ that have no reflection and serialization becomes a bothersome process to implement? Are you sick of having to manually create all the instances of a class be it by reading a binary file or XML? Your problems will not be solved automatically, but here is something that will make all of these tasks so much easier:
Class Tools!This set of tools was created in C# and supports plugins that can be coded in C# as well.
Class Tools was primarily intended for use on other development platforms and for other programming languages than C#. In other words, you are using a tool created in C# to generate code and data for a project that is being made in another language such as C++, Python, Ruby, Basic, etc.
Class Tools at github + Official PluginsThis work is protected by the following license:
Quote
Copyright (c) Boris Mikic
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FeaturesCurrently Class Tools consists out of the following applications.
Class Maker Features:
- Allows you to create class models with definitions of variables and methods.
- Save and load models that you create at any time.
- Generate any kind of code for your model with the plugin supported code generator system.
- Create your own generator plugins with maximum simplicity.
Data Maker Features:
- Create instances of classes from a model that you have created in Class Maker.
- Save and load the databases that you create at any time.
- Update the model of your database with an version of the model altered Class Maker after you have created the database.
- Save and load databases that you create at any time.
- Create your own exporters to export your databases into well-known formats such as XML, binary, etc. or formats that you have created yourself.
DownloadClass Maker v0.94Downloads:Class Maker v0.94Plugins:C++ Source Code Generator v0.93C++ Binary Serialization Code Generator v1.0C++ Lite Serializer Code Generator v1.0Class Maker v0.93Downloads:Class Maker v0.93Plugins:C++ Source Code Generator v0.93C++ Binary Serialization Code Generator v1.0C++ Lite Serializer Code Generator v1.0Class Maker v0.92Downloads:Class Maker v0.92Plugins:C++ Source Code Generator v0.92C++ Binary Serialization Code Generator v1.0C++ Lite Serializer Code Generator v1.0Class Maker v0.91Downloads:Class Maker v0.91Plugins:C++ Source Code Generator v0.91C++ Binary Serialization Code Generator v1.0C++ Lite Serializer Code Generator v1.0Class Maker v0.9Downloads:Class Maker v0.9Plugins:C++ Source Code Generator v0.9C++ Binary Serialization Code Generator v0.9C++ Lite Serializer Code Generator v0.9Data Maker v0.94Downloads:Data Maker v0.94Plugins:C++ Lite Serializer Database Dumper v1.0Data Maker v0.93Downloads:Data Maker v0.93Plugins:C++ Lite Serializer Database Dumper v1.0Data Maker v0.92Downloads:Data Maker v0.92Plugins:C++ Lite Serializer Database Dumper v1.0Data Maker v0.91Downloads:Data Maker v0.91Plugins:C++ Lite Serializer Database Dumper v1.0Data Maker v0.9Downloads:Data Maker v0.9Plugins:C++ Lite Serializer Database Dumper v0.8
Installing PluginsIn order to install a plugin into one of the tools in Class Tools, simply create a folder called "Plugins" in the same folder as the tools executable and copy the DLLs into that folder. The tool will automatically detect the new generator plugins and allow you to use them.
Creating PluginsIf you want to create a plugin yourself:
- Create a new C# project as a Class Library.
- Right click on "References" and select "Add References".
- Choose the "Browse" tab and find the files ClassTools.IPlugin.dll and ClassTools.Data.dll. Those files are included in every tool of Class Tools.
- Make sure your project uses .NET 3.5. Class Tools can't load projects from higher framework versions and your project won't be able to load ClassTools.Plugin.IPlugin if it is less than 3.5 so your project has to use .NET 3.5.
- Implement your own plugin by inheriting the ClassTools.Plugin.IPlugin interface.
- Compile and you are ready to go!
- Use the provided ClassTools.Data classes to create your own plugin that generates source or binary files based on the meta data that one of the Class Tools sends to your plugin.
The ClassTools.Plugin.IPlugin interface defines several properties and methods which you have to implement in your own generator plugin:
Properties:
- Name: the name of your generator plugin
- Description: a brief description of what your generator plugin does
- Author: your name or pseudonym
- Version: the version of the generator plugin
- ToolId: the tool ID for which the plugin was intended
Methods:
- void Create(): This method is called when your generator plugin is created.
- void Destroy(): This method is called when your generator plugin is destroyed.
- string Execute(ClassTools.Data.Base data, string path): Implement here your generator logic. The parameter "data" is the object that you will get depending on which tool is used. The parameter "path" is the folder path where you should create the generated files. The return value is a string that will be displayed to the user. Use it to notify the user of possible errors or complications with your generator plugin.
Tool Specific StuffClass Maker:
- Tool ID: ClassMaker
- Execute method "data" parameter: instance of ClassTools.Data.Hierarchy.Model
Data Maker:
- Tool ID: DataMaker
- Execute method "data" parameter: instance of ClassTools.Data.Database.Repository
CompatibilityAll tools of Class Tools require Microsoft .NET Framework 3.5 to be installed (comes by default default with Windows XP Service Pack 3 and Windows 7).
Author's NotesKeep in mind that Class Tools is still a project in development. Currently both Class Maker and Data Maker are available, but both programs are still missing some features.
.NET 3.5 has been selected for usage because it comes by default with Windows XP Service Pack 3 and Windows 7 while it provides a big deal of the .NET functionality and classes for your plugin.
You are not limited to plugin development only. You can also create a full fledged application yourself.
If you find any bugs, please report them here:
http://forum.chaos-project.com