Thomas Bandt

Über mich | Kontakt | Archiv

.NET-Entwicklung am Mac

Ich werde immer wieder darauf angesprochen, dass ich doch einen Mac nutze, um dann gefragt zu werden, wie das denn eigentlich mit der .NET-Entwicklung sei. Dem möchte ich hier kurz Rechnung tragen.

Nach einem ersten gescheiterten Versuch im Sommer 2006 habe ich vor knapp einem Jahr einen zweiten Anlauf genommen und mir ein MacBook zugelegt. Grund war nicht nur, dass ich spätestens seit den angedrohten Wegwerf-Lizenzen für Windows vor der Einführung von Vista 2006 gerne zweigleisig fahren und so meine Abhängigkeit von Microsoft verringern möchte. Es war auch die Qualität der Hardware, die meiner Meinung nach von keinem einzigen PC-Hersteller bei vergleichbaren Preisen geschlagen oder ausgeglichen werden kann. Das Unibody-Gehäuse des MacBook setzt einfach neue Maßstäbe, davon bin ich überzeugt.

Aber zurück zur Entwicklung. Grundsätzlich gibt es heute 3 Möglichkeiten, Software und Websites mit .NET am Mac zu entwickeln:

1. Mono

Mono wird, angetrieben und finanziert von Novell, immer erwachsener und ich möchte nicht ausschließen, dass es sich mittelfristig zu einer echten Alternative, vor allem unter Linux, entwickeln kann. Seit Kurzem gibt es auch MonoDevelop, die dazugehörige Entwicklungsumgebung, für den Mac. Leider funktionierte das Ding bei mir nicht - beim ersten Versuch ließ es sich gar nicht erst starten, beim zweiten Versuch (nach einer zwischenzeitlichen Neuinstallation des gesamten Rechners) klappte der Start und es rauchte erst beim Öffnen von einzelnen Dateien ab. Zwischenfazit also: derzeit noch nicht brauchbar.

2. Bootcamp

Bootcamp bezeichnet im Prinzip nur ein Set von Treibern, welche durch Apple für Windows bereitgestellt werden. Damit lässt sich Windows also parallel oder als Ersatz für OS X auf dem Mac installieren. Das ist seit der Umstellung auf die Intel-CPUs kein Problem mehr, denn seitdem ist ein Mac auch nur noch ein PC ...

Der Vorteil liegt hier vor allem darin, dass man keinerlei Geschwindigkeitseinbußen zu verzeichnen hat, da Windows nativ ausgeführt wird. Wer also nur eine schicke Hardware haben möchte und sonst mit Windows leben kann, oder wer mit der Einschränkung des Reboots leben kann, um Software zu entwickeln, für den ist das eine Option. Dann gibt es im Vergleich zu einem normalen Windows-Rechner auch nichts weiter zu beachten, außer dass man entsprechend viel Speicherplatz auf der Platte/SSD benötigt.

3. Virtualisierung

Wer jedoch wie ich gerne mit Mac OS arbeitet, und das werden die meisten tun, wenn sie es einmal ohne Vorbehalte ausprobiert haben, für den ist die Virtualisierung wohl eher eine geeignete Option. Denn man spart sich damit nicht nur den zeitaufwendigen Reboot, sondern man kann auch gleichzeitig mit seinen sonstigen Apps weiter arbeiten und muss nicht alles zweimal installieren (z.B. Mailanwendung oder Chat-Client). Und man kann, was man nicht vergessen darf, auch auf alle Files des Macs vom virtualisierten Windows aus zugreifen und umgekehrt. Etwas, was unter einem nativ gebooteten Windows nur mit Handständen zu machen ist.

Welche Software sollte man für die Virtualisierung nehmen?

Das hängt ganz vom persönlichen Geschmack und Geldbeutel ab. Vor einem Jahr habe ich mich nach einem Vergleich zwischen VMware Fusion und Parallels für Letzteres entschieden, weil es mir damals eindeutig schneller erschien.

Vor ein paar Monaten hingegen habe ich erneut VMware Fusion probiert, was zu diesem Zeitpunkt definitiv sehr viel schneller und weniger Ressourcen-bindend war als Parallels, also bin ich umgestiegen und auch bis heute dabei geblieben. Ich bin damit sehr zufrieden - insbesondere auch das Stoppen und Starten von VMs klappt damit reibungslos und fix.

In jedem Fall sollte man die aktuellsten Versionen verwenden. Sowohl Parallels als auch VMware Fusion stehen seit Kurzem in neuen Versionen zur Verfügung. Als dritten Player könnte man noch VirtualBox von Sun dazunehmen, wobei ich die Software am Mac bisher noch nicht probiert habe (unter Windows ist sie klasse und sehr schnell).

Wie klappt die Integration?

Man kann sowohl mit VMware als auch mit Parallels seine Windows-Installation sowohl in einem Fenster, wie im Screenshot zu sehen, als natürlich auch Fullscreen oder aber integriert verwenden. "Integriert" meint, dass das virtualisierte Windows mit dem Host-MacOS "verschwimmt", man kann also beispielsweise sowohl die Windows-Taskleiste als auch das Mac-Dock verwenden und ein Windows-Internet-Explorer-Fenster neben einem Mac-Safari-Fenster geöffnet haben.

Für mich ist das bis heute nichts als eine nette Spielerei, die ich aus Performance-Gründen, übrigens genau wie Aero unter Windows in der VM, nicht verwende. Das liegt aber auch daran, dass ich die Werkzeuge genau trennen kann. Für Leute, die gleichzeitig mit Mac- und Windows-Anwendungen arbeiten, mag das eine gute Option sein.

Und die Performance?

Die Geschwindigkeit lässt sich zwar bis zu einem gewissen Grad durch die Wahl der VM-Software beeinflussen, letztendlich geht aber nichts über ausreichend Hardware. Ich selbst verwende ein MacBook mit einem 2,4 GHz Intel-Core-2-Duo-Prozessor und 4 GB DDR3-RAM. Die 4 Gigabyte Arbeitsspeicher sind ein Muss - werden aber von allen aktuellen Geräten unterstützt und lassen sich leicht und günstig nachrüsten.

Viel entscheidender ist aber die Wahl der richtigen Festplatte bzw. Solid State Disk. Ich habe ein halbes Jahr lang mit einer Festplatte und der VM gearbeitet - was leidlich ging. Richtig Spaß begann es aber erst zu machen, als ich im Sommer eine 120-GB-SSD von OCZ reingesteckt habe. Die liefert richtig Performance.

Zwar bietet Apple für Snow Leopard im Gegensatz zu Microsoft mit Windows 7 noch immer keine native Unterstützung für den TRIM-Befehl, der dafür sorgt, dass die Disks nicht kleiner und langsamer werden. Doch existiert unter anderem für die OCZ-SSDs mittlerweile Firmware mit einer eingebauten Garbage Collection, die die Disk in Ruhezeiten "aufräumt" und so für einen Erhalt der Geschwindigkeit sorgt.

Mit dieser Konfiguration erhalte ich auf meinem Mac eine Geschwindigkeit, die ausreichend ist um die meisten Projekttypen und Anwendungen mit Visual Studio in der VM zu bearbeiten. Auch Website-Projekte oder viele Unit-Tests oder die Verwendung des WinForms-Designers stellen kein Problem dar.

Aber natürlich kann ein virtualisiertes Windows nie so schnell sein wie ein nativ laufendes Windows auf der gleichen Hardware. Wer also nervös wird, wenn Visual Studio mit ReSharper 5 Sekunden länger beim Öffnen eines Projektes braucht, sollte überlegen auf die Bootcamp-Variante zurückzugreifen. Leider braucht das sehr viel Platz und die SSDs sind heute noch nicht wirklich günstig ...

Fazit

Windows- bzw. .NET-Entwicklung am Mac? Das ist heute absolut kein Problem mehr. Sowohl Hard- als auch Software sind nun endlich soweit ausgereift, dass man das Experiment problemlos wagen kann.

Kommentare

  1. Ilker Cetinkaya schrieb am Freitag, 13. November 2009 22:03:00 Uhr:

    Thomas,

    kurze Anmerkung zu MonoDevelop auf Mac. Die aktuelle 2.2 Beta (http://monodevelop.com/Download) hat einen Bug, welches die IDE anfangs fast unverwendbar macht. Die IDE friert ein oder wird unvermittelt einfach nur laaangsaaam. Ich weiß nicht wieso, aber wenn man nach der Installation von MonoDevelop unter den Editor-Optionen alles wihtige mal ausschaltet (CodeFolding, SyntaxHighlighting, CodeCompletion), die IDE neu startet, wieder alles einschaltet und die IDE wieder neu startet - dann, ja ab dann wird MonoDevelop richtig anwendbar. Hab' schon einiges damit programmiert. Ich finde MonoDevelop ganz nett gelöst. Bis auf den "Forms-Designer" ist es auch gut tauglich für mittlere Projekte.

    Gruß,
    Ilker
  2. Thomas schrieb am Freitag, 13. November 2009 23:31:00 Uhr:

    Ich hatte eine Solution mit einem WinForms-Projekt und einigen Libraries damit geöffnet, in der Hoffnung, es evtl. sogar mit ein paar Umstellungen zum Laufen zu bringen. Allerdings rauchte es dann wie geschrieben ab.

    Ich werde deinen Hinweis mal berücksichtigen und einen neuen Versuch starten.
  3. Carsten schrieb am Sonntag, 15. November 2009 10:59:00 Uhr:

    Danke dir Thomas für den guten Beitrag. Sobald mein dienstlicher DELL-Laptop "ausgesorgt" hat, wird er gegen ein MacBook getauscht.

    Ich bin mir nur noch nicht ganz sicher, ob es ein neues kleines nicht-Pro oder das 13er der Pro-Serie sein soll. Mir ist die Möglichkeit des immer-dabei-seins wichtig. ;-)
  4. Thomas schrieb am Sonntag, 15. November 2009 13:14:00 Uhr:

    Ist Geschmacksache - das Alubook hat halt eine noch höhere Qualität (habe es jetzt ziemlich genau ein Jahr - keine Verschleißerscheinungen, obwohl ich es durchaus auch unterwegs dabei habe), ist etwas leichter, dünner und - ein Punkt, den ich sehr zu schätzen gelernt habe - es hat eine Tastaturbeleuchtung.

    Aber für 900 EUR kann man beim kleinen Weißen sicher auch nicht mehr so viel falsch machen ;).
  5. Carsten schrieb am Sonntag, 15. November 2009 13:17:00 Uhr:

    Und kannst du etwas zum Akku sagen? Du hast doch den fest verbauten, oder?
  6. Thomas schrieb am Sonntag, 15. November 2009 13:21:00 Uhr:

    Nö, ich habe noch den Voränger, also das Alu-Macbook-Pro "ohne Pro", mit austauschbarem Akku. Hält nach einem Jahr aber immer noch sehr lange, gefühl länger als alle Akkus in meinen 5 Notebooks vorher (vielleicht 3-4 Stunden, nutze es selten richtig aus).

    Aber ich muss auch sagen, dass ich nie ein Notebook solange hatte, dass ich den Akku hätte austauschen müssen - bzw. wenn er dann mal richtig runter war, konnte ich meist damit leben, weil das Gerät eh nicht mehr mobil im Einsatz war.
  7. rw schrieb am Montag, 16. November 2009 13:53:00 Uhr:

    Zum Thema VirtualBox.

    Läuft bei mir seit 1 Jahr ohne Probleme. Auch die Geschwindigkeit ist akzeptabel.
    Nur ist der 13" Bildschirm zum entwickeln mal definitiv zu klein.
  8. Thomas schrieb am Montag, 16. November 2009 13:54:00 Uhr:

    "Nur ist der 13" Bildschirm zum entwickeln mal definitiv zu klein."

    Stimmt. Aber ich nutze das Notebook schon aus Ergonomie-Gründen auf dem Schreibtisch mit Monitor und externer Tastatur - und unterwegs entwickle ich nur im Notfall, da kann man dann kurzfristig auch mal mit der geringen Auflösung leben.
  9. Sebastian schrieb am Mittwoch, 24. November 2010 11:48:00 Uhr:

    Man kann übrigens auch Bootcamp und eine Virtualisierung kombinieren. Ich habe auf einer Bootcamp-Partition mein Windows 7 liegen. Wenn ich weiß dass ich mehrere Stunden am Stück nur Windows brauche, ist das schon angenehmer. Ich kann die selbe Partition jedoch auch mit Parallels booten und somit unter OS X darauf zugreifen. Man muss sich also nicht zwingend für eine der beiden Varianten entscheiden.
  10. Thomas schrieb am Mittwoch, 24. November 2010 11:59:00 Uhr:

    Was mitunter aber auch zu unschönen Seiteneffekten führt, insbesondere mit den Treibern von VMware oder Parallels und wenn Windows meint, die Hardware hätte sich geändert und eine neue Aktivierung wäre fällig.


« Zurück  |  Weiter »