# Auswahl einer IDE usw



## OneCent (18. Jul 2008)

Tach zusammen

Für ein Pilot/Prototyp muss ich eine Umgebung zusammenstellen, eigentlich zwei: .net und Java. Das ist auf .net noch relativ einfach, aber Java bietet hier ja eine fülle IDE's und Libraries. 

Die Anforderungen ganz einfach ausgedrückt:
- Applikation die sowohl im Intranet und Internet zu funktionieren hat - Versicherungen, Banken.
- Es muss möglich sein ein Client mit einem "State of the Art" GUI Auszustatten - egal was man sagt - schaut es gut aus, hat man den Fuss bereits mal in der Türe.
- Plattformunabhängigkeit: muss nicht unbedingt sein - unsere Kunden haben alle Windows im Einsatz - also ist die primäre Zielplattform Windows XP, Windows Server. 
- Prüfen des Einsatz von MDA, MDSD... 
gibt natürlich noch vieles mehr ....


Hier mal meine Zusammenstellung (manchmal denke ich es wäre am besten man würfelt es einfach aus oder wirft ne Münze)

- JBoss Developer Studio
  Damit möchte ich das die Entwickler sich mehr um das Lösen der Aufgaben kümmern müssen und nicht mit der Technik zu kämpfen haben, also nicht mehr als notwendig ;-).

- MagicDraw oder Enterprise Architect von Sparx

- Subversion

- MS SQL Datenbank oder Oracle (allerdings lieber MS SQL)

- androMDA oder openArchitectureWare (um den MDA Ansatz zu testen)

- schön wäre auch noch ne integrierbare Collaboration Software wie Microsofts Sharepoint.

- TeamCity - wobei ich jetzt noch nicht so genau weiss ob ich so was überhaupt benötige..

Anmerkung: ich komme aus einem Umfeld das leicht anders ist ;-) - Smalltalk.

Also wenn ich da was komplett vergessen habe oder was überhaupt nicht zusammenpasst - um ein Hinweis wäre ich froh. Das sammle ich dann alles für den Entscheid. Bis jetzt sagt jeder "Consultant" was anderes und meistens ist es im der einzige Weg ;-).

Cheer, OneCent


----------



## BjörnBu (18. Jul 2008)

HIER MAL WIEDER EIN MIT VORSICHT ZU GENIEßENDER BEITRAG:
Ich maße mir nicht an ein allgemein so guten Überblick zu haben das Thema vollständig beleuchten zu können. ich will in eigentlich nur ein paar Punkte ansprechen, die mir in der Liste der Möglichkeiten fehlen.


_- Es muss möglich sein ein Client mit einem "State of the Art" GUI Auszustatten - egal was man sagt - schaut es gut aus, hat man den Fuss bereits mal in der Türe. _
Kann da nur für die Java Seite sprechen aber egal ob man nun pure EJBs, Seam oder Spring verwendet, kann man optinal JSF nutzen und hat die Möglichkeit AJAX Bibliotheken mit zu nutzen. Mit Seam geht das wohl erstmal am schnellsten und einfachsten, aber man schränkt sich halt auch etwas ein (nehmen wir an ein geschäftsparner will 'ne webservice Schnittstelle. Das sind die ganzen Stateful Beans und Conversations und Seam ziemllich doof)

_- Plattformunabhängigkeit: muss nicht unbedingt sein - unsere Kunden haben alle Windows im Einsatz - also ist die primäre Zielplattform Windows XP, Windows Server. _
Das könnte fast für 'ne .NET Lösung sprechen, von der ich allerdings keine Ahnung habe

_- Prüfen des Einsatz von MDA, MDSD..._
Auch wenn ich mich derzeit erst damit beschäftige und noch nicht voll drin bin, bieten die Eclipse plug-ins mit EMF und GMF eine geniale Toolsuite. Vor 1-2Monaten war im Javamagazin ein Artikel der einfach nur die Möglichkeiten beschrieben hat und auch was ich derzeit am eigenen Leib erlebe ist Klasse. Besonders wenn es darum geht eigene Diagrammtypen abseits der UML zu nutzen, ist GMF genial.

Außerdem lassen sich mit Eclipse selbst plug-ins für die unterschiedlichsten Anwendungsfälle entwerfen, die die weitere Entwicklung beschleunigen können.

Da an sonsten Subversion in der Liste steht, würde ich auf jeden Fall auch noch Maven und CI nennen. Von übersichtlichen dependencies, automatisierten builds und guten Projektstrukturen hat man meiner Meinung nach fast mehr als von manchem Tool.


----------



## Wildcard (18. Jul 2008)

BjörnBu hat gesagt.:
			
		

> Von übersichtlichen dependencies, automatisierten builds und guten Projektstrukturen hat man meiner Meinung nach fast mehr als von manchem Tool.


Unbedingt mal Eclipse Buckminster anschauen. Tolles Projekt  :toll:


----------



## maki (18. Jul 2008)

Wildcard hat gesagt.:
			
		

> BjörnBu hat gesagt.:
> 
> 
> 
> ...


Läuft Buckminster auch von der Kommandozeile? 

Maven 2 ist eine vollständige Toolchain, aber eben ohne IDE.


----------



## Wildcard (18. Jul 2008)

Ja, tut es. Ausserdem kann es (unter anderem) mit Maven Repositories umgehen.


----------



## maki (18. Jul 2008)

Wildcard hat gesagt.:
			
		

> Ja, tut es. Ausserdem kann es (unter anderem) mit Maven Repositories umgehen.


Interessant, Buckminster kann auch Maven poms nutzen... kenne Buckmister nicht, daher weiss ich nicht was die Vorteile/Nachteile gegenüber zB. Maven 2 sind.

Gibt es da eine Gegenüberstellung/Vergleich?


----------



## Wildcard (18. Jul 2008)

Buckminster ist kein Ersatz für Maven, oder Ant, oder die vielen anderen Toolchains, es verwendet diese Toolchains.
Buckminster hat folgende Idee: 
Ich möchte Komponente X in Version Y, und ich möchte mich nicht um Abhängigkeiten kümmern. Wenn Buckminster richtig konfiguriert ist, kann man seinen kompletten Workspace in 2 klicks zusammenbauen (checkout, build, ...).
Exportieren von Artifacts, oder zB Eclipse Update-Sites geht genauso einfach. Immer mit dem Gedanken, das es von der Handhabung keinen Unterschied machen soll, ob man ein Produkt lokal, oder automatisiert builden will.
Von einem POM leitet sich Buckminster zB eine Component Descripton ab, die Aufschluß über Dependencies und 'Actions' einer Komponente gibt.
Anschließend wird die Resolver Map verwendet um alle Dependencies aus beliebigen Quellen aufzulösen.
Alle Dependencies werden wieder nach ihren Dependencies befragt und schon hast du alles beisammen.
Der Vorteil von Buckminster wird hier verdeutlicht:
http://wiki.eclipse.org/Why_Buckminster_?


----------



## maki (18. Jul 2008)

Danke Wildcard, den Link habe ich schon gefunden.



> Ich möchte Komponente X in Version Y, und ich möchte mich nicht um Abhängigkeiten kümmern. Wenn Buckminster richtig konfiguriert ist, kann man seinen kompletten Workspace in 2 klicks zusammenbauen (checkout, build, ...).
> ..
> Immer mit dem Gedanken, das es von der Handhabung keinen Unterschied machen soll, ob man ein Produkt lokal, oder automatisiert builden will.


Hmm, das habe ich mit Maven 2 auch.

Werde mir das bei Gelegenheit mal genauer ansehen müssen, bis jetzt sieht es so auch, als ob Buckminster verschiedene Repositories vereinheitlicht.


----------



## Wildcard (18. Jul 2008)

maki hat gesagt.:
			
		

> Werde mir das bei Gelegenheit mal genauer ansehen müssen, bis jetzt sieht es so auch, als ob Buckminster verschiedene Repositories vereinheitlicht.


Das ist ein Teil des Ganzen. Wir verwenden zB kein Maven, weil es sich schlecht in unser proprietäres System integrieren lies. 
Mit Buckminster stehen mir genügend Hooks zur Verfügung um andere Systeme einzubinden.
Insbesondere für OSGi Bundle Entwicklung ist das Werkzeug eine tolle Sache, da alles nötige aus dem OSGi Manifest extrahiert werden kann.
Dann noch kurz einen CVS Provider in der resource map eingetragen und schon konnten alle internen PlugIn Abhängigkeiten in der richtigen Version aus unserem CVS gefischt und im Workspace materialisiert werden.
Wenn man das Konzept mal verstanden hat, funktioniert alles erstaunlich einfach und gut.


----------



## ps (21. Jul 2008)

OneCent hat gesagt.:
			
		

> - JBoss Developer Studio
> Damit möchte ich das die Entwickler sich mehr um das Lösen der Aufgaben kümmern müssen und nicht mit der Technik zu kämpfen haben, also nicht mehr als notwendig ;-).



Unbedingt auch einen Blick auf NetBeans werfen. Gerade wenn dem Entwickler nichts im Weg rumgehen soll und er eine IDE aus einem Guss wünscht. Wenn man Geld ausgeben möchte ist IntelliJ IDEA wohl die erste Wahl.



> - Subversion



Ein zentrales Repository macht meistens Sinn. Wenn es ein agiles Team ist (und zwar weil es aus sehr guten Entwicklern besteht welche dynamisch arbeiten - nicht weil der Chef ein Buzzword hören will) kann man auch den Einsatz einer dezentralen Versionsverwaltung in Betracht ziehen.

Mercurial kommt mir in den Sinn.



> - androMDA oder openArchitectureWare (um den MDA Ansatz zu testen)



Die Tools von Visual Paradigm sollen sehr gut sein:
-> http://www.visual-paradigm.com/



> - schön wäre auch noch ne integrierbare Collaboration Software wie Microsofts Sharepoint.



NetBeans bietet ein sehr gutes Plugin welches auf XMPP / Jabber basiert:
-> http://collab.netbeans.org/

für IDEA gibt es sicher was vergleichbares. Bei Eclipse kenne ich mich nicht aus.



> TeamCity - wobei ich jetzt noch nicht so genau weiss ob ich so was überhaupt benötige..



TeamCity macht IMHO nur Sinn wenn du es zusammen mit idea benutzt. Eine sehr gute Alternative wäre Hudson:
-> https://hudson.dev.java.net/




> Also wenn ich da was komplett vergessen habe


Ich würde auch noch Maven2 der Liste hinzufügen: http://maven.apache.org


----------



## OneCent (21. Jul 2008)

Also mal vielen Dank an alle für eure Tipps und Hinweise!


----------

