.NET
Visual Studio 2010 und das Intellisense im Vergleich
Posted on .Da ich Beruflich auch viel im Javaumfeld arbeite, komme ich in Kontakt mit verschiedenen IDEs. Am besten gefällt hier das kostenlose NetBeans von Sun Oracle. Und bereits nach kurzer Zeit sieht man die vielen Unterschiede der IDEs, besonders fällt hier aber der Unterschied des Code Completion Features der IDEs auf.
Im Visual Studio haben wir Intellisense kennen- und lieben gelernt, es ist schnell und liefert uns die Informationen die wir haben wollen. Doch schaut man hier mal auf das andere Ufer, wird man schnell feststellen, dass hier doch tatsächlich noch Nachholbedarf besteht.
Schauen wir uns beispielsweise ein typischen Intellisense Pupup an, der uns Informationen zu der Methode Create() der HttpWebRequest-Klasse liefert:
Wir bekommen eine Auflistung der uns zur Verfüfung stehenden Methoden (1) und die markierte Methode wirft noch ein weiteres Popup auf, welches uns den Methodenkopf, eine Kurze Beschreibung und die möglichen Exceptions liefert (2).
Eigentlich doch alles was manbraucht, stimmt! Vergleichen wir das Ganze doch mal mit dem „Intellisense“ von NetBeans 7:
Was haben wir hier, als erstes taucht, wie im Visual Studio auch, eine Liste mit dem möglichen Befehlen auf (1), diese ist hier etwas großzügiger gestaltet und nimmt etwas mehr Platz auf dem Bildschirm ein, liefert uns aber auch auf den ersten Blick den Return-Typ der Funktion (das was rechtsbündig in der Liste steht) – Im VS müsste man erst die Methode auswählen und auf den „Hilfspopup“ warten um an diese Information zu kommen.
Als zweites taucht auch hier ein weiteres Popup auf, mit Details zur Funktion an sich (2). Und das ist der Teil wo es interessant wird, denn hier bekommen viel mehr Informationen als im VS.
Als erstes fällt auf, dass es viel mehr zu lesen gibt, hier wird nämlich das dazugehörige Javadoc geladen und angezeigt, dieses bietet natürlich eine Fülle an Informationen und sogar Beispielcode für die gerade gewählte Funktion.
Um diese Informationen im VS zu erhalten müssen wir die Funktion markieren und dann [F1] drücken, damit sich dann der Browser öffnet und uns zu dem passenden Artikel auf MSDN navigiert, wo wir dann alle nötigen Infos inkl. Beispiele finden, aber warum der Umweg?
Als nächstes fällt auf, dass das in dem zweiten Popup auch Links auftauchen (3), diese kann man natürlich auch anklicken und man wird innerhalb des kleinen Fensters zu dem geklickten Dokueintrag weitergeleitet – das ist wirklich sehr sehr praktisch! Dazu kommt noch oben eine kleine Navigation (4) um zwischen den besuchten Seiten zu wählen, den Artikel im Browser zu öffnen oder direkt zu der gewählten Klasse zu wechseln.
Das macht wirklich Spaß mit dieser Hilfe zu arbeiten und man kann schnell die nötigen Informationen nachschlagen ohne überhaupt die Maus bewegen zu müssen.
Natürlich bin ich mit dessen bewusst, dass es auch für das VS Erweiterungen gibt wie ReSharper oder CodeRush, die sich dieser „Schwäche“ annehmen und versuchen es zu verbessern, diese kosten aber erstens Geld und machen aber auch nicht alles perfekt.
Aber es gibt auch Sachen die mich umgekehrt an NetBeans extrem stören, wie zb. die Tatsache, dass NetBeans sich nicht mehrkt welchen Befehl ich als letztes benutzt habe.
Wenn wir das obere Bild anschauen, will ich die methode callVRFY() aufrufen und das mehr fach hintereinander. NetBeans wird mir jedes Mal den Vorschlag genau so machen wie wir ihn hier sehen, ich muss also jedes Mal 12x [Pfeil nach unten] drücken um den Eintrag auszuwählen oder den Namen direkt voll ausschreiben.
Visual Studio reagiert hier deutlich intelligenter, denn es merkt sich, dass man diese Methode nun 2x benutzt hat und schlägt beim nächsten Mal wenn man „call“ tippt direkt die callVRFY() Methode als erstes vor.
Eine weitere Sache die bei Visual Studio genial ist, ist die Tatsache, dass ich eigentlich den „call“-Teil des Methodennamen überspringen kann und direkt anfangen kann „VRFY“ zu tippen, Intellisense würde dennoch erkennen, dass ich die „callVRFY“ Methode meine und diese für mich auswählen.
Beispiel:
Wie man sieht schlägt mit VS hier alle Klassen & Methoden vor die „response“ im Namen haben. – Super!
Das sind nun natürlich zwei „Kleinigkeiten“ die ich mir hier herausgepickt habe, aber glaubt mir wenn man plötzlich auf diese verzichten muss ist das mehr als nervig!
Zum Schluss kann ich sagen, dass beide IDEs von ein an der lernen können und dass ich, egal mit welcher IDE ich gerade arbeite das ein oder andere Feature aus der anderen IDE vermisse. Bleibt noch zu hoffen, dass die Entwickler sich gegenseitig auf die Finger schauen und diese netten kleinen Features gegenseitig „ausleihen“ 😉
Wie steht ihr dazu? Seit ihr mit dem Intellisense glücklich, nutzt ihr Erweiterungen (ReSharper etc..)?
Sebastian Gross
http://www.bigbasti.comSebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.
There are no comments.