Programmieren auf Apple MAC, wenn man aktuell nur VB.NET mit WinForms beherrscht

  • Sonstige

Es gibt 18 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Programmieren auf Apple MAC, wenn man aktuell nur VB.NET mit WinForms beherrscht

    Hallo Leute,

    ich war bisher ein reiner Windows VB.NET Programmierer (nicht gelernt, selbst gelernt). Mit Arduino C habe ich auch schon ein kleines Projekt umgesetzt (bocomponent.com).
    HTML geht, CSS in Grundzügen und Classic ASP. Das war es aber auch schon mit meinem Programmiersprachen-Wissen.

    Nun würde ich gerne einige meiner Anwendungen auch in die MAC-Welt bringen.
    Ich habe mir vorgestellt mir vorerst einmal einen MAC mini mit M2 Chip zu besorgen.
    Damit sollte ich zumindest betriebsystemtechnisch und hardwaretechnisch auf dem neuesten Stand sein.
    Und dann werde ich mich einmal mit dem Mac selbst beschäftigen. Bis auf ein iPad hatte ich bis jetzt noch keinerlei Berührung mit der MAC-Welt.

    Welche Programmiersprache würdet Ihr mir für die APP-Entwicklung auf dem MAC empfehlen?
    Eine die nicht ganz so weit von VB.NET entfernt ist oder der zumindest ähnlich.
    Ist VisualStudio2022 für Mac mit C# 11 empfehlenswert? Ich möchte nichts lernen was morgen schon überholt ist.

    LG Roland
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    .NET Maui und C#. Wird sicher nicht morgen überholt sein.
    learn.microsoft.com/de-de/dotn…is-maui?view=net-maui-7.0

    learn.microsoft.com/de-de/dotn…verview?view=net-maui-7.0

    Ich selbst arbeite mich da grad rein und die Möglichkeiten sind echt gut. Verzeih die deutschen ms links mein browser leitet mich zur Zeit immer auf die doofen deutschen seiten.
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    Moin Roland!

    Das ist ja genau mein Thema! :D

    Ich habe seit Anfang des Jahres ein M1 Pro MacBook Pro. Endgeiles Gerät.

    Tatsächlich entwickle ich auf dem Mac viel mit C#; VB geht auch!



    Ich verwende hauptsächlich Visual Studio for Mac und VS Code zum Entwickeln; .net7 ist direkt mit dabei!

    Wenn du natürlich native Apps entwickeln möchtest, dann kommst du nicht um Swift drum herum. Aber hübsche UIs gehen auch vorzüglich mit MAUI.

    Ein paar Sachen, die du aber vorher wissen solltest.
    Sei kein Feind des Terminals, der tut dir nichts böses ;)
    macOS ist eine Umstellung, wenn man sich vorher nicht damit befasst hat. Linuxkenntnisse sind vorteilhaft, aber bringen dir nichts wenn es um die Tastatur geht.

    Egal was du entwickeln möchtest; XCode muss installiert werden. Du brauchst aber keine Lizenz rein zum entwickeln :)

    Bei weiteren Fragen: immer her damit!
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    @siycah
    Also wäre SWIFT das vernünftigste? Ist das sozusagen der Standard auf Mac?
    Also wenn man sowieso schon eine neue Sprache lernen muss, dann kann ich ja auch gleich diese lernen.
    Ja, native Anwendungen mit schönen Oberflächen möchte ich machen.

    @xChRoNiKx
    .Net MAUI steckt aber noch in den Kinderschuhen. Ist fraglich ob es sich langfristig halten wird. Das ist mir aktuell noch zu unsicher.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    Also wäre SWIFT das vernünftigste? Ist das sozusagen der Standard auf Mac?


    Nicht nur sozusagen. Apple hat vor Jahren Objective-C (zum Glück) abgekündigt und es nahezu vollständig mit Swift ersetzt; selbst die Cocoa Libs wurden drauf umgestellt.

    Swift ist sehr ähnlich zu C# und ist auch allgemein eine sehr schöne Sprache!
    Wenn du plattformübergreifend entwickeln willst, dann würde ich dir dennoch .Net empfehlen.
    Sprich: Frontend in Swift für macOS, andere Sprache für andere Betriebssysteme.
    Dann das Backend in C# oder VB, wie auch immer.

    Was wir auf der Arbeit machen, ist wir verwenden viel IPC wenn mehrere Applikationen miteinenander funktionieren müssen; wäre dort auch ein Ansatz.

    Anbei noch ein paar Links zu Swift:
    swift.org/
    developer.apple.com/swift/

    Was ich dir noch empfehlen kann, ist ohmyz.sh/; das ist ist ein Addon für die zsh, die standardmäßig mit macOS installiert wird. Bash ist auf macOS obsolet.

    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Ist warscheinlich weit in die Luft gegriffen, aber ich verwende zurzeit C++ für meine Anwendungen und die laufen auf allen gängigen Platformen, dank der tollen Frameworks die es für C++ gibt. (wxWidgets, QT, JUCE und so weiter)

    Ich verstehe aber auch, wenn das nicht in deinem Interesse liegt, da es nervige Zeit in Anspruch nimmt sich da reinzuarbeiten.
    ----------------------------------------------------------------------------------------------------------------------

    Hier könnte meine Signatur stehen, aber die ist mir abfußen gekommen.

    ----------------------------------------------------------------------------------------------------------------------

    dive26 schrieb:

    (...) Ich möchte nichts lernen was morgen schon überholt ist (...)

    C wird nicht so schnell aus der Mode kommen, C# vermutlich auch nicht, alle anderen Abwandlungen sind ständigem Wandel unterworfen, mal mehr, mal weniger, manches driftet in die Schublade ab, anderes entwickelt sich erst.
    Das gleichzeitige Erscheinen von Dummheit und Unmündigkeit nach Immanuel Kant ist eines der schlimmsten Dinge, die einem Homo sapiens in geistiger Hinsicht widerfahren können, hat manchmal aber auch durchaus seine Vorteile.
    Wenn du VB.Net kannst, ist es für dich wahrscheinlich sehr einfach C# zu erlernen (ich bin vor ein paar Jahren umgestiegen und wollte schon nach einem Monat nicht mehr zurück zu VB).

    Wie meine Vorredner gesagt haben, ist Swift halt die Sprache von Apple für ihr Betriebssystem - aber auch eben nur dafür...
    Du kannst nun natürlich das Backend in C# .NetCore schreiben und das jeweilige Frontend ins der plattformspezifischen Sprache - aber mir wäre das zu viel.

    .Net Maui ist die Multiplattform UI Lösung von Microsoft - die allerdings noch in den Kinderschuhen steckt und noch lange nicht optimal läuft - da könntest du aber einmal ausprobieren, wie gut du damit zurecht kommst.
    Ich persönlich nutze auch gerne AvaloniaUI - das ist Multiplattform Port von WPF (für Linux, Mac und Windows), der wirklich sehr gut funktioniert.

    Aber zusammengefasst... wenn du auf einem Mac entwickeln willst, musst du eine neue Sprache sowie ein neues UI Framework lernen... und ich würde dir empfehlen bei .Net (mit C#) zu bleiben, weil du damit sicherlich schneller Erfolge verzeichnen kannst, und der Code direkt auf allen Plattformen läuft.

    PS: Eine Alternative, die man in der neuen Zeit eigentlich immer im Hinterkopf behalten sollte, sind Web-Apps - also Applikationen, die im Browser laufen (diese können ja trotzdem auch lokal installiert werden). Microsoft hat dort Blazer im Angebot (funktioniert erstklassig).
    ----

    WebApps mit C#: Blazor

    florian03 schrieb:

    aber auch eben nur dafür...


    Das ist leider eine Falschaussage, die vermutlich nur auf Ignoranz zurückzuführen ist :)
    Swift funktioniert auf allen gängigen Betriebssystemen. Auf Linux schon länger, auf Windows seit ~2020.

    Ach so, bevor "Ignoranz" falsch verstanden wird: ich meine das Wort in seiner ursprünglichen Bedeutung; dass man es schlicht nicht wusste!
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Das war mir tatsächlich nicht bewusst - vielen Dank für die Aufklärung :)
    Aber ist auch das Swift UI Framework multiplattformfähig? Weil das kann ich mir gar nicht vorstellen, dass Apple so einen Schritt geht...
    ----

    WebApps mit C#: Blazor
    SwiftUI ist soweit ich weiß noch nicht plattformunabhängig; aber ich kann mir vorstellen dass das in nicht allzu ferner Zukunft auch kommt.
    Mittlerweile ist SwiftUI ja ziemlich von Cocoa abgekoppelt.

    Aber auch sonst gibt es diverse Wrapper um andere UI-Frameworks.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Ok, SWIFT wirds dann wohl werden.
    Habe vor einigen Monaten schon einen Blick in die Mac-Welt gemacht und da ist mir auch nur SWIFT als "DAS" Mittel zum Zweck aufgefallen.
    Es wird auch eher ein Hobby-Projekt (kann aber auch mehr werden). Geld verdiene ich nach wie vor in der Windows-Welt, wo ich mich auskenne.

    Jetzt bin ich noch am grübeln ob ein normaler MAC Mini M2 reicht oder ob nicht lieber gleich ein MAC Mini M2 Pro mit 16GB /1 TB und Multigigabit Ethernet.
    Vielleicht verwende ich den auch zum Videoschneiden - dann wär er nicht ganz umsonst, falls ich ein Programmier-Fail erleide ;-).
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    dive26 schrieb:

    Jetzt bin ich noch am grübeln ob ein normaler MAC Mini M2 reicht oder ob nicht lieber gleich ein MAC Mini M2 Pro mit 16GB /1 TB und Multigigabit Ethernet.


    Wenn es ein Mac Mini werden soll, dann würde ich auf jeden Fall mindestens 16GiB RAM nehmen. Bei der SSD musst du es wissen, wie viel du brauchen wirst.

    Was halt wichtig ist (gilt für mein MacBook genau so), ein Laie kann die SSD später nicht austauschen.
    RAM/CPU/GPU, etc. sowieso auch nicht, weil es alles auf einem SoC ist.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    @siycah
    Hab vorhin bestellt: Mac mini M2 Pro 16GB Ram / 1 TB SSD.
    Lieferzeit ca. 23. März.

    Als erstes werde ich mir das Programmiermodell vornehmen, dann ein Oberflächendesign entwerfen, danach eine API-Abfrage und JSON in Angriff nehmen und zum Schluss dann TCP (mit Modbus TCP) angehen.
    Mal sehen wie lange es dauert, bis ich die Grundzüge dafür kann.
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Ich wünsche viel Spaß mit dem Gerät!

    Ich hatte früher ein Mac Mini (~ 2017) und ich habe das Gerät geliebt. Mein MacBook mit M1 Pro ist einfach der Oberhammer!

    Berichte gerne mal wie du es empfindest
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    Fazit nach einem Monat:
    Bis jetzt werde ich mit dem Mac nicht warm.
    Mir gefällt weder das Betriebssystem, noch verschiedene Kleinigkeiten.
    Da sehe ich wieder, dass ich ganz auf der Windows-Welle schwimme.

    Mit Swift-UI habe ich mich bereits etwas (in den Anfängen) beschäftigt - aber so richtig gefallen tut es mir nicht. Ist leider das meiste auf iOS bezogen und berücksichtigt m. M. n. weniger das Mac OS.

    Swift an sich ist als Sprache ok.

    Ein Monat gebe ich der Sache noch, dann entscheide ich ob ich den Mac wieder hergebe. Wäre schade drum, wenn er ungenutzt rumstehen würde
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    @dive26 Wie gesagt, es ist schon eine arge Umgewöhnung!

    Es gibt einige Kleinigkeiten die wirklich nerven, alleine das Verhalten der Fenster, wenn man auf die Titelleiste klickt und es sich nicht maximiert.
    Meine Empfehlung wäre es, eine zeitlang komplett und nur auf den Mac umzusteigen, sofern möglich. Und wenn dir Swift so nicht gefällt, kannst du natürlich weiterhin die anderen Programmiersprachen ausprobieren.

    Ich will dich gewiss nicht vom Mac überzeugen, aber wie das so oft im Leben ist, man geht nicht unvoreingenommen in die Sache rein und das macht es schon schwerer, sich da wirklich wohlzufühlen.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.
    @siycah

    Eine Frage an Dich als Profi, nachdem ich mir Swift UI näher angesehen und einiges herumprobiert habe:
    Kann man mit Swift UI folgendes umsetzen?:

    * Anwendung die auf MacOS und auf iOS läuft
    * Ein transparentes Hintergrundbild ohne Fensterrahmen (MacOS) - auf iOS einfach mittig anzeigen
    * Pixelgenaue Position von Text, Linien und Vierecken genau über der Hintergrundgrafik

    Zur Veranschaulichung was ich eigentlich möchte, habe ich Dir Screenshots von meiner Windows-App angehängt und das "rohe" Hintergrundbild.
    Auf Windows habe ich einfach eine transparente Form mit einem PNG Bild als Hintergrund. Die Texte und teilweise Grafiken werden mit Labels und Panels dargestellt.
    So etwas möchte ich auch auf dem MacOS in einem Fenster machen und auf dem iOS einfach mittig am Bildschirm.

    Geht das eigentlich mit Swift UI ?
    Irgendwie kommt mir Swift UI eher wie HTML vor - mit den H-V-Z-Stacks und den Paddings etc.
    Und das vermischen von MacOS und iOS machts auch nicht einfacher.

    Was meinst Du? Kann ich das was ich vorhabe mit Swift UI eigentlich umsetzen?
    Bilder
    • m5back.gif

      4,52 kB, 306×307, 89 mal angesehen
    • 18042023095936.jpg

      48,03 kB, 308×313, 75 mal angesehen
    • 18042023100043.jpg

      95,11 kB, 570×424, 76 mal angesehen
    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at
    Ja, das geht mit SwiftUI.

    Ich bin jetzt kein Profi darin, aber es müsste gehen, wenn du Titelleiste und die entsprechenden Buttons ausblendest.

    Quellcode

    1. ​if let window = NSApplication.shared.mainWindow {
    2. window.standardWindowButton(.closeButton)?.isHidden = true
    3. window.standardWindowButton(.miniaturizeButton)?.isHidden = true
    4. window.standardWindowButton(.zoomButton)?.isHidden = true
    5. window.titleVisibility = .hidden
    6. window.titlebarAppearsTransparent = true
    7. }


    Sowas in der Art müsste den Effekt haben, den du suchst - zumindest auf macOS.
    Was UIs auf dem iPhone angeht habe ich allenfalls geringfügig Erfahrung, da ich ein reiner Android-Nutzer bin. Aber ich kann mir nicht vorstellen, dass das nicht geht!
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems

    Selbstständiger Softwareentwickler & IT-Techniker.