Laden...

Wie WPF mit .NET Framework und csc kompilieren?

Erstellt von _mk_ vor 3 Jahren Letzter Beitrag vor 3 Jahren 768 Views
_
_mk_ Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren
Wie WPF mit .NET Framework und csc kompilieren?

Hallo Zusammen.

In der Programmierung von C# bin ich relativ neu. Meine Quellcodes schreibe ich mit dem Notepad++ oder wenn der nicht Verfügung steht, mit dem bordeigenen Texteditor. Die Programme kompiliere unter Verwendung des Befehlszeilencompilers csc.exe. Die ersten brauchbaren Ergebnis konnte ich so erzielen: lauffähige Konsolenanwendungen und grafische Benutzeroberflächen auf Basis von System.Windows.Forms. Jetzt möchte eines meines Powershell-Skripte, das WPF nutzt, nach C# portieren.

Nun zur meiner Frage: Wie musst der Aufruf in dem Haupteinstiegspunkt meiner WPF-Anwendung aussehen? Wie sehen die Compilerparamter aus? Auf den Einsatz einer IDE wird zu Lernzwecken bewusst verzichtet.

Danke im Voraus.

2.079 Beiträge seit 2012
vor 3 Jahren

Meine Quellcodes schreibe ich mit dem Notepad++ oder wenn der nicht Verfügung steht, mit dem bordeigenen Texteditor

Warum?
Warum nicht Visual Studio? Die Community-Edition hast den selben Funktionsumfang wie die Pro-Version und ist kostenlos.
Wenn dir das zu schwerfällig ist, dann Visual Studio Code, das ist komplett kostenlos.

Ich weiß nicht, wie man WPF mit PowerShell nutzt, aber wenn Du eine WPF-Anwendung "richtig" aufbauen möchtest, dann ist das mehr als ein paar Properties zuweisen oder Compiler-Parameter setzen.
Z.B. brauchst Du für "richtiges" WPF auf XAML und Visual Studio generiert auch das Eine oder Andere, was die Arbeit abnimmt. Klar geht es auch ohne, aber wozu der zusätzliche Aufwand?

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

16.833 Beiträge seit 2008
vor 3 Jahren

Auf den Einsatz einer IDE wird zu Lernzwecken bewusst verzichtet.

Was ist denn das Lernziel?
Wenn Du nun mit WPF und .NET Framework mit csc anfängst zu lernen, dann machst Du nichts anderes als Legacy zu lernen, denn in der neuen .NET Welt wird alles - auch WPF - mit der dotnet CLI gemacht; nicht mehr mit der csc.exe.

Ist halt immer schwer zu wissen, wo man beginnen soll zu lernen, wenn man das Ökosystem nicht kennt.
Da wirste Dir aber ohne IDE keinen großen Gefallen tun.

Wie sehen die Compilerparamter aus?

Dafür gibt es in der alten csc-Welt keine pauschale Antwort. Im Endeffekt würdest Du das im Output-Window von Visual Studio sehen.

Mit der dotnet cli einfach nur dotnet build; das geht aber halt nur mit WPF und .NET Core.

Wie musst der Aufruf in dem Haupteinstiegspunkt meiner WPF-Anwendung aussehen?

Den wirst Du so nicht haben.

Der Einstiegspunkt bei WPF Anwendungen ist genauso die main() wie bei allen Anwendungsarten.
Bei WPF sieht das jedoch so aus, dass der Compiler das main() Konstrukt bastelt und der Entwickler das so gar nicht sieht.

4.939 Beiträge seit 2008
vor 3 Jahren

Es wird dazu aus der "App.xaml" die temporäre Datei "App.g.i.cs" (im "obj"-Verzeichnis) erzeugt, in der u.a. die Main-Methode deklariert ist:


namespace WpfApplication {        
    /// <summary>
    /// App
    /// </summary>
    public partial class App : System.Windows.Application {
        // ...

        /// <summary>
        /// Application Entry Point.
        /// </summary>
        [System.STAThreadAttribute()]
        [System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [System.CodeDom.Compiler.GeneratedCodeAttribute("PresentationBuildTasks", "4.0.0.0")]
        public static void Main() {
            WpfApplication.App app = new WpfApplication.App();
            app.InitializeComponent();
            app.Run();
        }
    }
}

_
_mk_ Themenstarter:in
2 Beiträge seit 2020
vor 3 Jahren

@Th69
Danke für Antwort. Wenn es auf der Arbeit wieder etwas ruhiger geworden ist, werde ich es ausprobieren.

@Abt
Die Vorteil einer IDE sind mir deutlich bewusst. IntelliSence, Debugging, Ständige Analyse des Quellcodes. Ich dachte nur, dass ich gerade so, C# und die .NET Welt besser verstehe. Was wird statt csc.exe gewählt? MSBuild.exe? Da werde ich mich wohl erst einarbeiten wie die Projektdateien aufgebaut sind.

Danke für Eure Hilfe und Bemühungen.

16.833 Beiträge seit 2008
vor 3 Jahren

Ich dachte nur, dass ich gerade so, C# und die .NET Welt besser verstehe.

Mein persönlicher Rat: lern erstmal das Ökosystem oberflächlicher kennen; woraus die Tooling-Welt besteht.
Ansonsten wirste den Wald vor lauter Bäumen nicht erkennen 😉

Was wird statt csc.exe gewählt? MSBuild.exe?

In der alten Welt vor allem MSBuild; nur wenige kenne ich die je direkt mit csc gearbeitet haben (bis heute verstehe ich nicht wieso).
In der neuen Welt wie gesagt alles dotnet cli; wobei Du auch hier direkt über Roslyn gehen kannst.