Solution: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(8 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{review}}
{{complete}}


Eine [[Solution]] ist in [[VisualStudioTutorial|Microsoft Visual Studio]] eine Zusammenfassung von mehreren [[Projekt|Projekten]] zu einer großen "Lösung".
Eine [[Solution]] ist in [[VisualStudioTutorial|Microsoft Visual Studio]] eine Zusammenfassung von mehreren [[Projekt|Projekten]] zu einer großen "Lösung".
Zeile 7: Zeile 7:


Der Vorteil einer [[Solution]] besteht darin, dass eingestellt werden kann, welche der enthaltenen [[Projekt|Projekte]] wie [[Compiler|kompiliert]] werden sollen - also mit welchen Parametern und Einstellungen - und wie die gegenseitigen Abhängigkeiten aussehen. Es ist also möglich, bei der [[Compiler|Kompilierung]] seiner Anwendung festzulegen, dass zunächst die [[DLL]] im in der [[Solution]] enthaltenen Nebenprojekt kompiliert werden soll, bevor mit der [[Compiler|Kompilierung]] der Hauptanwendung begonnen wird. Dies stellt sicher, dass die Anwendung auch bei kleineren Änderungen in den anderen [[Projekt|Projekten]] stets die aktuellste Version der abhängigen [[Projekt|Projekte]] verwendet.
Der Vorteil einer [[Solution]] besteht darin, dass eingestellt werden kann, welche der enthaltenen [[Projekt|Projekte]] wie [[Compiler|kompiliert]] werden sollen - also mit welchen Parametern und Einstellungen - und wie die gegenseitigen Abhängigkeiten aussehen. Es ist also möglich, bei der [[Compiler|Kompilierung]] seiner Anwendung festzulegen, dass zunächst die [[DLL]] im in der [[Solution]] enthaltenen Nebenprojekt kompiliert werden soll, bevor mit der [[Compiler|Kompilierung]] der Hauptanwendung begonnen wird. Dies stellt sicher, dass die Anwendung auch bei kleineren Änderungen in den anderen [[Projekt|Projekten]] stets die aktuellste Version der abhängigen [[Projekt|Projekte]] verwendet.
Eine weitere Anwendungsmöglichkeit besteht darin, logisch voneinander getrennte Bereiche in verschiedenen [[Projekt]]en zu entwickeln, um eine bessere Arbeitsteilung und größere Unabhängigkeit zwischen den Bereichen zu ermöglichen. So kann z.B. bei einem Spiel die [[Engine]] separat von der [[Spiellogik]] entwickelt werden, in dem für beide Bereiche ein eigenes Projekt erstellt wird. Das gesamte Spiel (bestehend aus diesen beiden Projekten) wird dann in einer gemeinsamen [[Solution]] verwaltet. Dies ermöglicht sowohl die leichte Wiederverwendung der [[Engine]], als auch die bessere Testbarkeit der [[Spiellogik]].


Ein neues [[Projekt]] wird zu einer bestehenden [[Solution]] hinzugefügt, indem entweder per Rechtsklick auf die [[Solution]] geklickt wird und "Add -> New Project..." ausgewählt, oder dies über die Hauptmenüeinträge "File -> Add -> New Project..." erledigt wird.
Ein neues [[Projekt]] wird zu einer bestehenden [[Solution]] hinzugefügt, indem entweder per Rechtsklick auf die [[Solution]] geklickt wird und "Add -> New Project..." ausgewählt, oder dies über die Hauptmenüeinträge "File -> Add -> New Project..." erledigt wird.
{{BA|Dietsch|Man verwendet Solutions ja auch für Multi-Tier-Anwendungen bzw. die Einteilung in einzelne, stärker getrennte Komponenten (ala Engine, GameMechanic, Editor, etc.) - vielleicht sollte man das hier auch noch erwähnen}}
 
== Solution am Beispiel ==
== Solution am Beispiel ==
Befinden sich in einer [[Solution]] mehrere [[Projekt|Projekte]], so stehen diese im Solution-Explorer untereinander. Dabei können in allen [[Projekt|Projekten]] alle darin enthaltenen Dateien wie auch in einem einzelnen [[Projekt]] geöffnet und bearbeitet werden.
Befinden sich in einer [[Solution]] mehrere [[Projekt|Projekte]], so stehen diese im Solution-Explorer untereinander. Dabei können in allen [[Projekt|Projekten]] alle darin enthaltenen Dateien wie auch in einem einzelnen [[Projekt]] geöffnet und bearbeitet werden.
Zeile 15: Zeile 17:
[[Datei:solution_multiple_projects.jpg|thumb|Solution mit mehreren Projekten]]
[[Datei:solution_multiple_projects.jpg|thumb|Solution mit mehreren Projekten]]


Jedes [[Projekt]] besitzt seine separaten Kompilierungseinstellungen. Ist zum Beispiel eine [[DLL]] fertig gestellt und wird nicht mehr großartig verändert, können die [[Projekteigenschaften|Kompilierungseinstellungen]] der DLL auf "Release" gesetzt werden, bevor die Hauptanwendung diesen Status erreicht. Die [[.NET]]-eigenen Codeoptimierungen werden dann bereits auf die [[DLL]] angewendet.
Jedes [[Projekt]] besitzt seine separaten [[Projekteigenschaften|Kompilierungseinstellungen]]. Ist zum Beispiel eine [[DLL]] fertig gestellt und wird nicht mehr großartig verändert, können die [[Projekteigenschaften|Kompilierungseinstellungen]] der DLL auf "[[Release]]" gesetzt werden, bevor die Hauptanwendung diesen Status erreicht. Die [[.NET]]-eigenen Codeoptimierungen werden dann bereits auf die [[DLL]] angewendet.
{{BA|Dietsch|Machen wir eine Übersicht über diese Einstellungen?}}
{{BA|Greitschus|--> [[Projekteigenschaften]]}}


Um die [[Build]]-Order innerhalb einer [[Solution]] festzulegen, reicht es, mit einem Rechtsklick die [[Solution]] auszuwählen und "Project Dependencies..." anzuklicken. Es öffnet sich ein Fenster, in dem jedes [[Projekt]] innerhalb der [[Solution]] ausgewählt werden kann und die abhängigen [[Projekt|Projekte]] über einen Haken gesetzt werden können.
Um die [[Build]]-Order innerhalb einer [[Solution]] festzulegen, reicht es, mit einem Rechtsklick die [[Solution]] auszuwählen und "Project Dependencies..." anzuklicken. Es öffnet sich ein Fenster, in dem jedes [[Projekt]] innerhalb der [[Solution]] ausgewählt werden kann und die abhängigen [[Projekt|Projekte]] über einen Haken gesetzt werden können.
Zeile 23: Zeile 23:
[[Datei:project_dependencies.jpg]]
[[Datei:project_dependencies.jpg]]


Unter dem Reiter "Build Order" kann dann die aktuell generierte [[Build]]-Order verifiziert werden.
Unter dem Reiter "Build Order" kann dann die aktuell generierte [[Build]]-Order eingesehen und überprüft werden.
{{BA|Dietsch|Was bedeutet verifiziert hier?}}


[[Datei:build_order.jpg]]
[[Datei:build_order.jpg]]

Aktuelle Version vom 3. Dezember 2009, 10:14 Uhr


Eine Solution ist in Microsoft Visual Studio eine Zusammenfassung von mehreren Projekten zu einer großen "Lösung".

Anwendung

Wenn ein Programm entwickelt wird, kann es nötig sein, ein weiteres Projekt zu erstellen, um dem Programm zusätzliche Funktionalität hinzuzufügen. Man könnte sich vorstellen, dass ein Programm eine spezielle Klasse benötigt, die komplizierte Rechenoperationen durchführt. Nun soll diese Klasse aber nicht nur dem einem Programm vorbehalten bleiben, sondern möglichst auch von weiteren, zukünftigen Projekten verwendet werden, da sie sehr nützlich ist. Üblicherweise schreibt man in diesem Fall eine DLL, die von mehreren Programmen aus angesprochen werden kann.

Der Vorteil einer Solution besteht darin, dass eingestellt werden kann, welche der enthaltenen Projekte wie kompiliert werden sollen - also mit welchen Parametern und Einstellungen - und wie die gegenseitigen Abhängigkeiten aussehen. Es ist also möglich, bei der Kompilierung seiner Anwendung festzulegen, dass zunächst die DLL im in der Solution enthaltenen Nebenprojekt kompiliert werden soll, bevor mit der Kompilierung der Hauptanwendung begonnen wird. Dies stellt sicher, dass die Anwendung auch bei kleineren Änderungen in den anderen Projekten stets die aktuellste Version der abhängigen Projekte verwendet.

Eine weitere Anwendungsmöglichkeit besteht darin, logisch voneinander getrennte Bereiche in verschiedenen Projekten zu entwickeln, um eine bessere Arbeitsteilung und größere Unabhängigkeit zwischen den Bereichen zu ermöglichen. So kann z.B. bei einem Spiel die Engine separat von der Spiellogik entwickelt werden, in dem für beide Bereiche ein eigenes Projekt erstellt wird. Das gesamte Spiel (bestehend aus diesen beiden Projekten) wird dann in einer gemeinsamen Solution verwaltet. Dies ermöglicht sowohl die leichte Wiederverwendung der Engine, als auch die bessere Testbarkeit der Spiellogik.

Ein neues Projekt wird zu einer bestehenden Solution hinzugefügt, indem entweder per Rechtsklick auf die Solution geklickt wird und "Add -> New Project..." ausgewählt, oder dies über die Hauptmenüeinträge "File -> Add -> New Project..." erledigt wird.

Solution am Beispiel

Befinden sich in einer Solution mehrere Projekte, so stehen diese im Solution-Explorer untereinander. Dabei können in allen Projekten alle darin enthaltenen Dateien wie auch in einem einzelnen Projekt geöffnet und bearbeitet werden.

Solution mit mehreren Projekten

Jedes Projekt besitzt seine separaten Kompilierungseinstellungen. Ist zum Beispiel eine DLL fertig gestellt und wird nicht mehr großartig verändert, können die Kompilierungseinstellungen der DLL auf "Release" gesetzt werden, bevor die Hauptanwendung diesen Status erreicht. Die .NET-eigenen Codeoptimierungen werden dann bereits auf die DLL angewendet.

Um die Build-Order innerhalb einer Solution festzulegen, reicht es, mit einem Rechtsklick die Solution auszuwählen und "Project Dependencies..." anzuklicken. Es öffnet sich ein Fenster, in dem jedes Projekt innerhalb der Solution ausgewählt werden kann und die abhängigen Projekte über einen Haken gesetzt werden können.

Unter dem Reiter "Build Order" kann dann die aktuell generierte Build-Order eingesehen und überprüft werden.

In diesem Fall wird zunächst das DLL-Projekt mit Namen "CoolCalculations" gebaut, bevor die Hauptanwendung "test" kompiliert wird.