Development with Code Generation: Difference between revisions

From OpenPetra Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
== Tools ==
= Tools =
* In csharp/ICT/PetraTools
* In csharp/ICT/PetraTools
* uses CSParser to parse existing C# files
* uses CSParser to parse existing C# files
Line 8: Line 8:
* TODO: write into Templates
* TODO: write into Templates
* Plugin writers for different output (Winforms, GTK, ASP.net)
* Plugin writers for different output (Winforms, GTK, ASP.net)
=== YAML ===
== YAML ==
YAML is a text file format that is shorter and easier to write and read than XML, but you can get the same structure than XML. This is achieved by not having opening and closing tags, but by using identation to define the hierarchy of elements. It is more friedly to read than XML, since it is less technical (no markup!).
YAML is a text file format that is shorter and easier to write and read than XML, but you can get the same structure than XML. This is achieved by not having opening and closing tags, but by using identation to define the hierarchy of elements. It is more friedly to read than XML, since it is less technical (no markup!).


Line 18: Line 18:
*** Advantage: we can write short yaml code, but can use the comfort of the XML parser in .Net to walk through the hierarchy
*** Advantage: we can write short yaml code, but can use the comfort of the XML parser in .Net to walk through the hierarchy
*** yml2xml maps the YAML into XML
*** yml2xml maps the YAML into XML
====openPETRA YAML syntax====
===openPETRA YAML syntax===
Specific syntax is used in openPETRA for  
Specific syntax is used in openPETRA for  
* defining the hierarchy of Namespaces  
* defining the hierarchy of Namespaces  
Line 30: Line 30:
  nant generateORMCachedTables
  nant generateORMCachedTables


=== XAML ===
== XAML ==
* TODO: XAML idea
* TODO: XAML idea


== Documentation YML for OpenPetra Forms ==
= Documentation YML for OpenPetra Forms =
see also [[Documentation GUI generation with YAML]] and [[Documentation YAML for OpenPetra Forms]] for details
see also [[Documentation GUI generation with YAML]] and [[Documentation YAML for OpenPetra Forms]] for details

Revision as of 19:26, 6 August 2010

Tools

  • In csharp/ICT/PetraTools
  • uses CSParser to parse existing C# files
  • write code:
    • can comment generated code
    • can insert regions with name ManualCode (need endregion ManualCode as well)
  • TODO: write into Templates
  • Plugin writers for different output (Winforms, GTK, ASP.net)

YAML

YAML is a text file format that is shorter and easier to write and read than XML, but you can get the same structure than XML. This is achieved by not having opening and closing tags, but by using identation to define the hierarchy of elements. It is more friedly to read than XML, since it is less technical (no markup!).

  • Overview
  • Official specification
  • Parsers
    • see a parser for YAML: http://yaml-net-parser.sourceforge.net/default.html
    • For openPETRA we have developed our own converter from yaml to xml: project Ict.Tools.CodeGeneration, Yml2Xml.cs, Ict.Tools.CodeGeneration.Yml2Xml
      • Advantage: we can write short yaml code, but can use the comfort of the XML parser in .Net to walk through the hierarchy
      • yml2xml maps the YAML into XML

openPETRA YAML syntax

Specific syntax is used in openPETRA for

  • defining the hierarchy of Namespaces
(csharp\ICT\Petra\Definitions\NamespaceHierarchy.yml)
  • defining the navigation menu hierarchy
(csharp\ICT\Petra\Definitions\UINavigation.yml)
nant generateORMCachedTables

XAML

  • TODO: XAML idea

Documentation YML for OpenPetra Forms

see also Documentation GUI generation with YAML and Documentation YAML for OpenPetra Forms for details