About Us
Our Services
Contact Us
What is Skeleton Crew

     Skeleton Crew is a tool designed to help you quickly build model code. It uses it's own code model to represent models, not the CodeDom. It's not designed to represent expressions and statements, just basic structure. The purpose of tools like the Pseudo.Net modeler are to allow you to easily and quickly specify your models, and render them in any language desired. Think of Pseudo.Net code as a happy medium between UML class diagrams and actual code. Many people get caught up building a UML model that takes far longer than it would to just write the code. Pseudo.Net allows you to specify the same structural design, without worrying about implementation details, and easily translates directly to code in any language. Other tools such as the XML modeler allow you to generate an XML serializable model that is virtually interchangable with XML through the models generated serializer class.

What Skeleton Crew can do for you

     Skeleton Crew is a code generation tool designed to save time and improve productivity by doing large amounts of work for you. It does not generate full applications, full application tiers or ready to use libraries. It generates skeleton code for you to modify. These tools can shave weeks of work off of most projects. If you know what your model will be and dread typing all your property accessors and other tedious coding tasks, Pseudo.Net can help. If you have a large XML structure that you have to work with and would much rather work with a programmable model instead of XPath queries through the XML DOM, the XML Modeler can help.

How Skeleton Crew works

     There are four main interfaces that Skeleton Crew 2.0 employs to facilitate it's code generation.

  • ICodeBuilder builds a code model from some type of input.
  • ICodeTransformer modifies a code model.
  • ICodeRenderer renders a code model to text.
  • ICodeGenerator generates text from some type of input. They do building and rendering all in one. They don't necessarily use the code model.
     These four interfaces are used in concert to generate code based on your specifications. As an example, if you are using the Pseudo.Net modeler with the C# renderer and XMLSerialize checked on the renderer options form, Skeleton Crew takes the Pseudo.Net code you supply, uses an instance of PseudoCodeBuilder to generate a code model, then uses an instance of XmlSerializeTransformer to add XML serialization attributes to the model, and finally uses an instance of CSharpCodeRenderer, which uses an instance of TemplateCodeGenerator to render any collection statements in your Psuedo.Net code using the "TypedCollection.cs.xslt" file in the application's "Templates" directory, to produce your XML serializable C# output.

     Skeleton Crew uses a proprietary code model that's only represents structure such as types and members. The code model output of an ICodeBuilder is a Package object, which contains Namespaces, which contain types. ICodeTransformers can act on either Package objects or Namespace objects, returning the same type as supplied. ICodeRenderers and ICodeGenerators both produce SourcePacks, which are analogous to files. They both have a RenderMode property that allows you to specify how to break up the content into SourcePacks.

     Below are abreviated definitions of the four interfaces, and a list of their implementations.

1: public interface ICodeBuilder {
2: 	event ProgressHandler Progress;
3: 	Package Build();
4: }

ICodeBuilder Implementations
DatabaseCodeBuilder Builds a code model from a database schema.
PseudoCodeBuilder Builds a code model from Pseudo.Net code.
XmlDeserializeCodeBuilder Builds a code model by deserializing code model XML.
XmlNsCodeBuilder Builds a code model from a sample XML structure.

1: public interface ICodeTransformer {
2: 	event ProgressHandler Progress;
3: 	Package Transform(Package pkg);
4: 	Namespace Transform(Namespace ns);
5: }

ICodeTransformer Implementations
CodeTransformDecorator An abstract implementation that uses the Decorator design pattern to allow multiple ICodeTransformers to act on a model.
XmlSerializeTransformer Add XML serialization attributes to the members of a code model.

1: public interface ICodeRenderer {
2: 	event ProgressHandler Progress;
3: 	RenderMode RenderMode { get; set; }
4: 	string IndentString { get; set; }
5: 	SourcePacks Render(Package pkg);
6: 	SourcePacks Render(Namespace ns);
7: 	SourcePack Render(IType itp);
8: }

ICodeRenderer Implementations
AbstractCodeRenderer Provides base functionality for many of the implemented ICodeRenderers.
CSharpCodeRenderer Renders a code model to C# code.
CSharp2CodeRenderer Renders a code model to C# 2.0 code.
DialogCodeRenderer Renders a code model to a C# dialog form.
JavaCodeRenderer Renders a code model to Java code.
PseudoCodeRenderer Renders a code model to Pseudo.Net code.
SqlCodeRenderer Renders a code model to SQL script.
VBCodeRenderer Renders a code model to VB.Net code.
VB2CodeRenderer Renders a code model to VB.Net 2.0 code.
XMLCodeRenderer Serializes a code model to XML.
XsdCodeRenderer Renders a code model to an XML Schema (XSD).

1: public interface ICodeGenerator {
2: 	event ProgressHandler Progress;
3: 	LanguageDescription LanguageDescription { get; set; }
4: 	RenderMode RenderMode { get; set; }
5: 	SourcePacks Render();
6: }

ICodeGenerator Implementations
TemplateCodeGenerator Transforms an XML document to text using XSLT.
HtmlCodeGenerator Generates HTML from input text using the colors and keywords specified in a LanguageDescription object.
SqlStoredProcGenerator Generates stored procedure SQL script from a database schema.
XmlSerializerGenerator A specialized TemplateCodeGenerator used to generate a serializer class by the XmlNsCodeBuilder.

Tech Spec
Pseudo.Net Edition
XML Edition

Skeleton Crew - Skeleton Crew PE - Skeleton Crew XE - RegeXPath
Home - Company - Products - Services - Projects - Contact - Downloads - Site Map