Hallo,
Interessant wäre auch zu wissen ob es ein WinForms, WPF, Silverlight,
ASP.net Anwendung werden soll. Für alle außer WinForms ist es einfach
denn die Beschreibung geschieht ja schon in einem XML-Dialekt ;-)
ZB für WPF kann eine XAML (XML-Dialekt von WPF) auch zur Laufzeit
geladen werden. Das wäre dann schon eine Lösung für dein Problem. Siehe
zB
Dynamically
Loading XAML.
Für WinForms wäre ein Ansatz:
In der XML kann der Typ des jeweiligen Controls hinterlegt sein (der AssemblyQualifiedName) sowie dessen Eigenschaften wie Position, Größe, ...
Nachdem Einlesen der XML wird aus dem hinterlegten Typ eine Instanz erstellt (in einer Fabrik per Activator.CreateInstance) und dem übergeordneten Steuerelement bzw. dessen ControlCollection hinzugefügt und die entsprechenden Eigenschaften gesetzt.
Die Eigenschaften können im XML in der Art <Eigenschaft1>Wert</Eigenschaft1> hinterlegt werden und zur Laufzeit per Reflektion dem Control zugewiesen werden.
Das Problem bei der ganzen Sache ist dass die XML passen muss ;-) sonst kracht es zur Laufzeit. D.h. es soll sich auch Gedanken über ein Exception-Management gemacht werden. Hier könnte ich mir vorstellen dass es einen "Validator" gibt der prüft ob das generierte XML korrekt ist, bevor es die Anwendung lädt oder das dem Erzeuger der XML zur Verfügung gestellt wird.
So jetzt hab ich eine Menge "Stichwörter" genannt die dir wahrscheinlich nicht viel sagen werden - du schreibst ja dass C# Neuland ist. Ich hoffe aber dennoch dass diese Stichworte - nach einer grundlegenden Einführung in C# - dir für die Suche (zB bei MSDN) weiterhelfen.
mfG Gü
Programming today is a race between the programmers and software engineers to create better
and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
the universe is winning". - Rich Cook