Projekteigenschaften: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Ruzzoli (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
LeonH (Diskussion | Beiträge)
 
(2 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{stub}}
{{stub}}


[[VisualStudioTutorial|Microsoft Visual Studio]] erlaubt etliche Einstellungsmöglichkeiten für [[Projekt|Projekte]], die die [[Compiler|Kompilierungsergebnisse]] verändern. In diesem Artikel soll ein kurzer Überblick über die wichtigsten und sinnvollsten Einstellungen gegeben werden.
[[VisualStudioTutorial|Microsoft Visual Studio]] erlaubt etliche Einstellungsmöglichkeiten für [[VisualStudioTutorial#Projekte|Projekte]], die die [[Compiler|Kompilierungsergebnisse]] verändern. In diesem Artikel soll ein kurzer Überblick über die wichtigsten und sinnvollsten Einstellungen gegeben werden.


Die [[Projekteigenschaften]] sind erreichbar über einen Rechtsklick auf ein Projekt -> Properties im Solution-Explorer, oder über das Hauptmenü mit den Menüpunkten "Project" -> "<Name> Properties...".
Die [[Projekteigenschaften]] sind erreichbar über einen Rechtsklick auf ein Projekt -> Properties im Solution-Explorer, oder über das Hauptmenü mit den Menüpunkten "Project" -> "<Name> Properties...".


{{BA|Dietsch|Wenn die einzelnen Reiter jetzt hier erklärt werden, könnte man eine eigene Überschrift für die alle machen und sowas sagen wie "Im Folgenden werden die einzelnen Reiter genauer erklärt."}}
{{BA|Dietsch|Wenn die einzelnen Reiter jetzt hier erklärt werden, könnte man eine eigene Überschrift für die alle machen und sowas sagen wie "Im Folgenden werden die einzelnen Reiter genauer erklärt."}}
== Application ==
{{BA|Greitschus|So?}}
Im Application-Reiter der [[Projekteigenschaften]] können die wichtigsten Darstellungseigenschaften zur Anwendung geändert werden.
== Der Eigenschaftendialog ==
Im Folgenden werden die wichtigsten Unterpunkte des Eigenschaftendialogs für ein Projekt erläutert.
 
=== Application ===
Im Application-Reiter der [[Projekteigenschaften]] können die wichtigsten Einstellungen zur Darstellung (Programmsymbol, ...) und den Assembly-Informationen zur Anwendung geändert werden. Ebenfalls wichtig sind die Einstellungen zur Zielarchitektur und Projekttyp.
{{BA|Dietsch|Was sind Darstellungseigenschaften? Hier werden doch so Sachen wie "Als was baue ich" und "wo kommen meine Ressourcen her" eingestellt, was hat das mit Darstellung zu tun?}}
{{BA|Dietsch|Was sind Darstellungseigenschaften? Hier werden doch so Sachen wie "Als was baue ich" und "wo kommen meine Ressourcen her" eingestellt, was hat das mit Darstellung zu tun?}}
{{BA|Greitschus|Wenn ok, BA entfernen, sonst bitte nach eigenen Wünschen selbst ändern. Ich find es schwierig, das so zu formulieren, dass mit unteren Formulierungen keine Redundanz besteht und es in einem kurzen, prägnanten Satz klar ist, um was es gehen soll.}}
[[Datei:project_properties_Application.jpg]]
[[Datei:project_properties_Application.jpg]]


Grundsätzlich sollten die Einstellungen für "Assembly name" und "Default namespace" nicht verändert werden, da sich diese negativ auf das Programmverhalten auswirken können und unter Umständen dazu führen, dass die gesamte Anwendung neu gedebugged werden muss.  
Grundsätzlich sollten die Einstellungen für "Assembly name" und "Default namespace" nicht verändert werden, da sich diese negativ auf das Programmverhalten auswirken können und unter Umständen dazu führen, dass die gesamte Anwendung neu [[VisualStudioTutorial/Refactoring|refactored]] werden muss. Ändert man den "Assembly name", hat dies Einfluss darauf, wie andere Projekte innerhalb einer [[Solution]] das aktuelle Projekt sehen. Dies dient vor allem der Referenz des Projektes in anderen Projekten. "Default namespace" legt fest, in welchem [[Namensraum]] neu hinzugefügte Klassen automatisch angelegt werden sollen.
{{BA|Dietsch|sicher neu "gedebugged"? Nicht eher sowas wie refaktoring? Eventl. dennoch hier erklären, was es macht}}


Über "Target Framework" lässt sich auswählen, für welche Version des [[.NET]]-Frameworks die Anwendung gebaut werden soll. Hier gilt zu beachten, dass unter Umständen ältere Versionen des [[.NET]]-Frameworks bestimmte Features nicht unterstützen. Beispielsweise bieten die [[.NET]]-Versionen unter 3.5 noch nicht die <code>System.Linq</code>-Umgebung.
Über "Target Framework" lässt sich auswählen, für welche Version des [[.NET]]-Frameworks die Anwendung gebaut werden soll. Hier gilt zu beachten, dass unter Umständen ältere Versionen des [[.NET]]-Frameworks bestimmte Features nicht unterstützen. Beispielsweise bieten die [[.NET]]-Versionen unter 3.5 noch nicht die <code>System.Linq</code>-Umgebung.
Zeile 21: Zeile 25:
{{BA|Dietsch|Wollen wir hier eine Übersicht über die ganzen Output Types?}}
{{BA|Dietsch|Wollen wir hier eine Übersicht über die ganzen Output Types?}}
{{BA|Ruzzoli|Ich wuerde sagen: Nein, nur die fuer das Sopra relevanten erwaehnen.}}
{{BA|Ruzzoli|Ich wuerde sagen: Nein, nur die fuer das Sopra relevanten erwaehnen.}}
{{BA|Greitschus|Dann bitte, tut euch keinen Zwang an... ^^}}


"Startup object" legt fest, in welcher [[Klasse]] sich die Main-Methode befindet. Es ist möglich, innerhalb eines [[Projekt|Projektes]] mehrere Main-Methoden in unterschiedlichen [[Klasse|Klassen]] zu haben. Man kann sich vorstellen, dass eine [[Klasse]] mit Main-Methode zum Testen bestimmter Programmeigenschaften gestartet wird, während eine andere [[Klasse]] mit Main-Methode gebraucht wird, um die Anwendung normal zu starten. Mit dieser Option lässt sich die entsprechende [[Klasse]] auswählen. In den meisten Programmiersprachen wird dies auch als "Entry Point" der Anwendung bezeichnet.
"Startup object" legt fest, in welcher [[Klasse]] sich die Main-Methode befindet. Es ist möglich, innerhalb eines [[Projekt|Projektes]] mehrere Main-Methoden in unterschiedlichen [[Klasse|Klassen]] zu haben. Man kann sich vorstellen, dass eine [[Klasse]] mit Main-Methode zum Testen bestimmter Programmeigenschaften gestartet wird, während eine andere [[Klasse]] mit Main-Methode gebraucht wird, um die Anwendung normal zu starten. Mit dieser Option lässt sich die entsprechende [[Klasse]] auswählen. In den meisten Programmiersprachen wird dies auch als "Entry Point" der Anwendung bezeichnet.
Zeile 32: Zeile 37:
Professionelle Anwendungen sollten diese Informationen grundsätzlich enthalten.
Professionelle Anwendungen sollten diese Informationen grundsätzlich enthalten.


Im unteren Teil des "Application"-Reiters können noch weitere Informationen hinzugefügt werden. Hier ist vermutlich nur das Icon wichtig, da dies viel über eine Anwendung aussagen kann. Dabei ist das Icon hier ein anderes, als beispielsweise das in der Main-Form gesetzte. Wird hier ein Icon ausgewählt, so erhält automatisch die ausführbare <code>.exe</code>-Version der Anwendung ebenfalls dieses Icon.
Im unteren Teil des "Application"-Reiters können noch weitere Informationen hinzugefügt werden. Hier ist vermutlich nur das Icon wichtig, da es viel über eine Anwendung aussagen kann. Ein Icon bietet einen zusätzlichen Übersichtlichkeitsgewinn. Eine Anwendung kann über ein markantes Icon schneller gefunden werden, als über ihren Text. Außerdem verstärkt die Benutzung eines eigenen Programmsymbols den Eindruck von Professionalität. Dabei ist das Icon hier ein anderes, als beispielsweise das in der Main-Form gesetzte. Setzt man das Icon im Eigenschaftsdialog für eine Form, hat die Programm-Executable immernoch das Standard-Icon. Damit auch die Anwendung ein anderes Icon erhält, kann man hier eines auswählen. So erhält es automatisch die ausführbare <code>.exe</code>-Version der Anwendung.
{{BA|Dietsch|Was ist der Unterschied zum Main-Form-Icon?}}


== Build ==
=== Build ===
Der "Build"-Reiter der [[Projekteigenschaften]] ist der wichtigste Reiter, da sich über ihn grundsätzliche Eigenschaften der [[Compiler|kompilierten]] Versionen der Anwendung einstellen lassen.
Der "Build"-Reiter der [[Projekteigenschaften]] ist der wichtigste Reiter, da sich über ihn grundsätzliche Eigenschaften der [[Compiler|kompilierten]] Versionen der Anwendung einstellen lassen.


Zeile 49: Zeile 53:


{{BA|Dietsch|Uhh, oh, Symbole, Präprozessordirektiven, ... das sollte man alles erklären und/oder verlinken}}
{{BA|Dietsch|Uhh, oh, Symbole, Präprozessordirektiven, ... das sollte man alles erklären und/oder verlinken}}
{{BA|Greitschus|Letzter Satz dieses Abschnittes. So lassen? Früher bringen? Ganz rausschmeißen? Ändern?}}


<source lang="csharp">
<source lang="csharp">
Zeile 63: Zeile 68:
Hierbei wird der der Code zwischen <code>#ifdef</code> und <code>#endif</code> nur dann ausgeführt (und sogar nur dann kompiliert), wenn in den [[Projekteigenschaften]] "SHOW_INTRO" als "Conditional compilation symbol" definiert wurde. Die Symbole dort werden durch Komma (<code>,</code>) getrennt angegeben.
Hierbei wird der der Code zwischen <code>#ifdef</code> und <code>#endif</code> nur dann ausgeführt (und sogar nur dann kompiliert), wenn in den [[Projekteigenschaften]] "SHOW_INTRO" als "Conditional compilation symbol" definiert wurde. Die Symbole dort werden durch Komma (<code>,</code>) getrennt angegeben.


[[CSharp|C#]] besitzt die Möglichkeit, zwei dieser Symbole automatisch einer Anwendung hinzuzufügen. Diese Symbole heißen "DEBUG" und "TRACE". Wie im obigen Beispiel können diese Symbole innerhalb des Codes abgefragt und so das Verhalten der Anwendung in der Debug- bzw. der Release-Umgebung gesteuert werden.
[[CSharp|C#]] besitzt die Möglichkeit, zwei dieser Symbole automatisch einer Anwendung hinzuzufügen. Diese Symbole heißen "DEBUG" und "TRACE". Wie im obigen Beispiel können diese Symbole innerhalb des Codes abgefragt und so das Verhalten der Anwendung in der Debug- bzw. der Release-Umgebung gesteuert werden. Eine detailliertere Übersicht über Präprozessordirektiven befindet sich im dazugehörigen [[Präprozessor-Anweisungen|Artikel]].


"Platform Target" erlaubt es, die Architektur, auf der die Anwendung später laufen soll, auszuwählen. Die beiden gängigen Werte hier sind "x86" für gewöhnliche [[32-Bit]]-Systeme und "X64" für [[64-Bit]]-Systeme. Grundsätzlich muss bei dieser Einstellung vorsichtig vorgegangen werden. Wird zum Beispiel eine C++-[[DLL]] aus der Anwendung heraus angesprochen, die für ein [[64-Bit]] System [[Compiler|kompiliert]] wurde, könnte es sein, dass die Anwendung bei Verwendung der [[32-Bit]] Architektur als Target abstürzt.
"Platform Target" erlaubt es, die Architektur, auf der die Anwendung später laufen soll, auszuwählen. Die beiden gängigen Werte hier sind "x86" für gewöhnliche 32-Bit-Systeme und "X64" für 64-Bit-Systeme. Grundsätzlich muss bei dieser Einstellung vorsichtig vorgegangen werden. Wird zum Beispiel eine C++-[https://de.wikipedia.org/wiki/Dynamic_Link_Library DLL] aus der Anwendung heraus angesprochen, die für ein 64-Bit System [[Compiler|kompiliert]] wurde, könnte es sein, dass die Anwendung bei Verwendung der 32-Bit Architektur als Target abstürzt.
{{BA|Dietsch|Unterschied zwischen Platform target und Platform? Außerdem: 32 und 64bit sind beide x86 instruction set, x64 meint also x86-64bit}}
{{BA|Dietsch|Unterschied zwischen Platform target und Platform? Außerdem: 32 und 64bit sind beide x86 instruction set, x64 meint also x86-64bit}}


Zeile 75: Zeile 80:


Die restlichen Einstellungen dieses Reiters sind selbst-erklärend bzw. nicht sonderlich wichtig. Es kann nützlich sein, das eine oder andere auszuprobieren.
Die restlichen Einstellungen dieses Reiters sind selbst-erklärend bzw. nicht sonderlich wichtig. Es kann nützlich sein, das eine oder andere auszuprobieren.
{{BA|Dietsch|Dann hier auch gerne auf detailiertere Infos in der MSDN oder sonstwo linken}} [[Kategorie:Code-Beispiele]]
{{BA|Dietsch|Dann hier auch gerne auf detailiertere Infos in der MSDN oder sonstwo linken}}  
{{BA|Greitschus|S.u.}}
 
[[Kategorie:Code-Beispiele]]


== Resources ==
=== Resources ===
In "Resources" können alle Ressourcen, die in der Anwendung vorhanden sind - also Bilder, Icons, Audiodateien, usw. - verwaltet und angesehen werden. Es gibt auch die Möglichkeit, neue Ressourcen für die Anwendung hinzuzufügen.
In "Resources" können alle Ressourcen, die in der Anwendung vorhanden sind - also Bilder, Icons, Audiodateien, usw. - verwaltet und angesehen werden. Es gibt auch die Möglichkeit, neue Ressourcen für die Anwendung hinzuzufügen.
{{BA|Dietsch|Was ist eine Ressource für ein XNA-Game? Wie hängt das mit Assets zusammen?}}
{{BA|Dietsch|Was ist eine Ressource für ein XNA-Game? Wie hängt das mit Assets zusammen?}}
Zeile 83: Zeile 91:
[[Datei:project_properties_resources.jpg]]
[[Datei:project_properties_resources.jpg]]


== Übrige Einstellungen ==
=== Übrige Einstellungen ===
Die sonstigen Einstellungsmöglichkeiten der Projekteigenschaften können vernachlässigt werden. Neben vielen Einstellungen zu Sicherheit und Referenzen, bietet sich hier unter anderem noch die Möglichkeit, über den "Publish"-Reiter die Anwendung an ein Webverzeichnis zu verteilen, von dem sich Kunden das Programm und neuere Versionen herunterladen können. Der Vorteil dieser Methode besteht in der Notifizierungsfunktion bei einem Update der Anwendung. Die Anwendung überprüft dann automatisch, ob neuere Versionen vorliegen.
Die sonstigen Einstellungsmöglichkeiten der Projekteigenschaften können vernachlässigt werden. Neben vielen Einstellungen zu Sicherheit und Referenzen, bietet sich hier unter anderem noch die Möglichkeit, über den "Publish"-Reiter die Anwendung an ein Webverzeichnis zu verteilen, von dem sich Kunden das Programm und neuere Versionen herunterladen können. Der Vorteil dieser Methode besteht in der Notifizierungsfunktion bei einem Update der Anwendung. Die Anwendung überprüft dann automatisch, ob neuere Versionen vorliegen.


{{BA|Dietsch|Entweder das mit dem Publish rauslassen (für das Sopra ohnehin etwas schwierig, denk nur an Copyright ;p - oder auch hier Link auf ausführlichere Infos}}
{{BA|Dietsch|Entweder das mit dem Publish rauslassen (für das Sopra ohnehin etwas schwierig, denk nur an Copyright ;p - oder auch hier Link auf ausführlichere Infos}}
== Siehe auch ==
# [http://msdn.microsoft.com/en-us/library/bb1aa8f1.aspx MSDN-Seite zum Projekteigenschaftsdialog]


[[Kategorie:Code-Beispiele]]
[[Kategorie:Code-Beispiele]]
[[Kategorie:VisualStudio]]
[[Kategorie:VisualStudio]]