| 

.NET C# Java Javascript Exception

3
Ich plane die Entwicklung einer eigenen Webseite, welche überwiegend für mich und einige Freunde aus dem Netz erreichbar sein soll. Ein bißchen Fotos 'sharen' und vllt ein gemeinsames Bundesliga-Tippspiel etc.

Als Datenbank habe ich mir die dokumentbasierte MongoDB überlegt. Jedoch fehlt mir das Know-How für die richtige Programmiersprache. PHP möchte ich grundsetzlich ausschließen.
Ich denke, dass PHP aktuell eher 'state of the art' ist, daher ist der Titel der Frage wahrscheinlich etwas verfehlt ^^. Mich würde interessieren, ob man mit Java oder Ruby nicht besser fährt. Oder vllt was ganz anderes?
Hat da vllt jemand einen guten Vorschlag für mich?
Vllt auch noch einen Vorschlag für ein gutes CMS?
Gerne mit ein paar Argumenten ;-)

Würde mich sehr freuen =)
13.08.2014
Parallels 47 4
3 Antworten
2
Bei privaten Projekten frage ich mich immer wo ich den Fokus setzen will. In dem Bereich ist manchmal der Weg das Ziel, statt das ursprünglich ins Auge gefasste Ziel.

Ist das Ziel wirklich eine private Webseite, wie in der Frage beschrieben, zu betreiben?

Dann wäre das Ziel mit einem fertigen CMS am schnellsten zu erreichen. Im OpenSource-Bereich gibt es eine große Auswahl an recht ausgereiften Content Management Systemen und passenden Erweiterungen für fast alles.

Für PHP sind Joomla, Drupal, Typo3 und Wordpress recht weit verbreitet und ausgereift. Drupal und Typo3 setzen wir nicht ein, daher kann ich dazu nichts sagen.
Aus Anwendersicht ist Wordpress durchaus zu empfehlen; verhältnismäßig übersichtliche Admin-GUI, Plugin-Installation und Updates sind einfach über den Admin-Bereich machbar. Als Entwickler mag ich Wordpress weniger. Kein MVC, die Möglichkeiten komplette Inhaltsseiten über ein Plugin bereitzustellen wirken eher wie ein Hack statt wie vorgesehen und OOP ist da auch eher Neuland. Dafür ist die API-Dokumentation sehr umfangreich (muss sie aber auch, der WP-Quellcode ist IMHO nahezu unlesbar).
Joomla erfordert mehr Einarbeitungszeit, dafür ist die API und die interne Architektur wesentlich sauberer, auch wenn die Dokumentation an ein paar Stellen etwas besser sein müsste (dafür kann man sich die Zusammenhänge zur Not aus den Quellen herleiten). Mittlerweile funktioniert das Update von Joomla und einigen Erweiterungen über das Admin-Interface auch recht gut, allerdings haben (historisch bedingt) viele Erweiterungen immer noch einen eigenen oder gar keinen Update-Mechanismus. Das wird sich aber über kurz oder lang ändern.

Bei Ruyb schaue ich immer wieder mal ein paar OpenSoruce-CMS-Projekte an und es gibt einige recht interessanten Ansätze. Allerdings (so gern ich RoR auch mag) habe ich bis jetzt nichts gefunden, was lange genug aktiv weiterentwickelt wird, meinen Anforderungen genügt und auch für Nicht-Entwickler verwendbar ist. Wir hatten mal Radiant im aktiven Einsatz und ich fand das auch recht angenehm, aber da hat sich schon lange nichts mehr getan und für Nicht-Entwickler ist das eher ungeeignet. Momentan behalte ich LocomotiveCMS und BrowserCMS im Auge. Für ein privates Projekt würde ich eines von denen auch einsetzen, aber jemanden der bisher keine Erfahrung mit Ruby hat würde ich das nicht unbedingt empfehlen.

Alle (mir bekannten) Webspaceanbieter haben PHP im Programm, einige bieten auch Perl, Ruby und/oder Python in relativ günstigen Paketen an.
Für .NET und Java ist mir keine günstiger Hoster bekannt, aber Cloud-Anbieter decken diesen Bereich ab. Bei privaten Projekten sollten die Kosten überschaubar bleiben, wenn kein kostenloser Cloud-Dienst genutzt wird. Das Risiko bei kostenpflichtigen Cloud-Hosting im privaten Bereiche sehe ich bei den möglichen Kosten. Ein erfolgreicher Angriff auf das gehostete CMS kann die Kosten ganz schnell explodieren lassen. Daher würde ich für Privatprojekte, wenn überhaupt, nur Angebote wählen, bei denen eine Kosten-Obergrenze festgelegt werden kann.

Oder ist eher der Weg das Ziel?

Also etwas mit MongoDB und Java oder Ruby zu bauen, dass dann ggf. sinnvoll eingesetzt werden kann?

Für Ruby gibt es den MongoDB-Treiber sowie Mongoid und evtl. noch ein paar mehr. Soweit ich das sehe sind beide ohne ActiveRecord-Unterstützung, was aber kein Problem sein sollte (habe MongoDB noch nie verwendet). Eventuell unterstütz auch eines der oben genannten CMS MongoDB, darauf habe ich noch nie geachtet.

Mit Ruby on Rails lassen sich auch sehr schnell Anwendungen erstellen, sofern die Anwendung einfach auf dem CURD-Prinzip basiert und die RoR-Konventionen zu den eigenen Vorstellungen passen. Natürlich kann man vom CURD-Prinzip abweichen und die Konventionen durch Konfigurationen ersetzten, aber das bedeutet etwas mehr Zeitaufwand und vor allem Tipparbeit. Das sollte aber kein Hinderungsgrund sein Ruby bzw. RoR einzusetzen. Es gibt auch noch Sinatra und einige andere Ruby-Basierte Webframeworks.

Für die meisten gängigen Aufgaben einer Webanwendung gibt es mindestens ein ausgereiftes GEM (Ruby-Jargon für Library) das man verwenden kann. Für Authentifizierung z.B. Device oder Authlogic für die Rechteverwaltung CanCan und für den Datei-Up/Download Carrierwave um einige Beispiele zu nennen.

In der Java-Welt sollte es ähnlich aussehen, hier würde ich mir mal SpringMVC genauer anschauen, weil ich das noch nie ausprobiert habe. Java Server Faces und Apache Struts funktionieren, finde ich aber etwas umständlich (bis schmerzhaft) im Vergleich zu Ruby on Rails und Sinatra.

Was die .NET-Welt im Moment hergibt kann ich nicht beurteilen, da ich damit schon länger nichts mehr zu tun hatte. Warum ich PHP für ein neues Projekt nicht ohne sehr, sehr, guten Grund einsetzten würde spare ich mir mal ;)
16.08.2014
phg 1,6k 4
1
Für kleine Websiteprojekte empfiehlt sich, ein CMS zu nutzen.
Gute Beispiele findet man wie Sand am Meer.
Ich persönlich habe recht gute Erfahrungen mit WordPress gemacht. Hier kommt man ohne großen Aufwand schnell zu guten Ergebnissen.
Sicherlich sind auch andere Systeme gut geeignet. Hier entscheidet zuerst die gewählte Plattform (LINUX, Windows, Mac?) über deren Einsatz.

Nun zu den Programmiersprachen.
Ich denke, auch hier entscheiden persönliche Präferenzen oder Vorkenntnisse. Ich kann Websites heute praktisch mit JEDER gängigen Programmiersprache entwickeln.
Wenn Sie PHP ausschließen, dann könnten Sie mit Java entwickeln (hätte den Vorteil - erworbene Kenntnisse können in einer Android-Entwicklung wiederverwendet werden), Ruby (insbesondere Ruby On Rails) oder Python - um bei Scriptsprachen zu bleiben - sind meines Wissens nicht so verbreitet und werden auch weniger bei den Hostern angeboten.
Daneben: Wie wäre es mit .NET und der Microsoftplattform (neben nativ auch Xamarin). Das System ist inzwischen sehr ausgereift und vollständig. Auch Nischensysteme sind hervorragend (mir fällt hier aus eigener Anschauung Gupta Mobile Developer ein) - primär zwar mobile Anwendungen, aber auch beliebige Webanwendungen möglich.

Ach so - Datenbanken: Dokumentenzentrierte Datenbanken werden zwar eifrig beworben, sind aber aus meiner Erfahrung eher für größeren Projekte geeignet, da aktuell noch jede Datenbank eine eigene API mitbringt und man sich damit eine Abhängigkeit schafft. Bei kleinen Projekten sollte man unbedingt bei relationalen Datenbanken (wie mySQL, PostgreSQL, SQL Server, SQLBase, Oracle usw.) bleiben. Der SQL-Standard deckt praktisch alle Anforderungen ab und es gibt genügend Bibliotheken zur Unterstützung.

Ich hoffe diese ersten Vorstellungen sind eine Anregung für Sie.
14.08.2014
edvservice 1,4k 1 6
1
Also, was man immer beachten sollte bei einem kleinen Privatprojekt, sind natürlich auch die laufenden Kosten die dadurch entstehen. Wenn das keine Rolle spielt, würd ich jedem ASP.Net MVC Anwendungen + MSSQL Server empfehlen.

Wenn man aber wenig bis garnichts ausgeben will, denn ist Javascript --> jQuery --> Ajax --> php --> MySQL genau das Richtige. Dafür gibt es haufenweise günstige bis kostenlose Server. Und wenn man php nur für die Datenbankabfrage nutzt, reichen schon die Grundlagen aus (Sehr einfach & viele Tutorials vorhanden).
14.08.2014
DerPunk 1,2k 1 7

Stelle deine Cms-Frage jetzt!