# Webanwendungen als Teamprojekt, wie?



## expensne (13. Jun 2016)

Nabend,

wie der Titel schon sagt bezieht sich meine Frage auf das Zusammenarbeiten für ein Teamprojekt. Für normale Softwareanwendungen habe ich schon mit Git und Smartgit gearbeitet, allerdings würde ich gerne wissen wie man sowas für Webandwendungen durchführt.
Wenn die Anwendung auf einem Server liegt, gibt es dann ähnliche Programm wie Smartgit zum synchronisieren um direkt auf dem Server zu arbeiten?
Oder ist das manuelle Hochladen neuer Versionen auf den Server unumgänglich?

Oder erstellt man einfach ein Git Repository auf dem Server?
Wenn ja ist das denn möglich Git auf gängigen Webhostern wie Strato, Checkdomain zu installieren? Die Frage stellt sich mir weil teilweise nicht mal Python/Ruby als "unterstützt" aufgeführt werden wobei ich die ensprechende Interpreter doch einfach installieren könnte.


Gruß,
Fabian


----------



## Thallius (13. Jun 2016)

Du entwickelst ja nicht auf dem produktiv Server. 

Also kannst du genauso entwickeln wie sonst auch. Jeder Entwickler hat seine Entwicklungsumgebung lokal und holt sich seine Dateien aus dem repository. Es gibt überhaupt keinen Unterschied zu einem einfachen Client Programm.

Gruß

Claus


----------



## stg (13. Jun 2016)

expensne hat gesagt.:


> wie der Titel schon sagt bezieht sich meine Frage auf das Zusammenarbeiten für ein Teamprojekt. Für normale Softwareanwendungen habe ich schon mit Git und Smartgit gearbeitet, allerdings würde ich gerne wissen wie man sowas für Webandwendungen durchführt.


Ganz genau so. Wo das Produkt nachher liegt / ausgeführt wird, spielt für die Entwicklung ja nur eine Untergeordnete Rolle.



> Wenn die Anwendung auf einem Server liegt, gibt es dann ähnliche Programm wie Smartgit zum synchronisieren um direkt auf dem Server zu arbeiten?


Man arbeitet doch niemals auf dem Produktiv-Server?! Du sprichst von Git, da arbeitet jeder lokal bei sich und nix anderes.




> Oder erstellt man einfach ein Git Repository auf dem Server?


Dazu gibt es keinen Grund.


----------



## expensne (14. Jun 2016)

Gut das man nicht direkt auf dem Server arbeitet bei richtigen Anwendungen ist mir schon bewusst.
Der Server soll bei mir nur eine Testumgebung sein daher frage ich mich ob man nicht direkt auf dem Server arbeiten kann. Es geht mir u.a. um Php, damit ich mir eben keinen localen Server installieren muss um dinge zu testen wollte ich mir einen kleinen Webhosting Server mieten und einfach direkt dadrauf arbeiten.

Kommt mir umständlich vor für solche Zwecke. Aber wenn man das absolut nicht macht auch gut. 

Gruß,
Fabian


----------



## Thallius (14. Jun 2016)

Du wirst nicht immer erst nach jedem kleinen Tippfehler die Datei neu per FTP hochladen wollen um sie dann zu testen oder?

Und einen lokalen Wamp, Mamp, Xamp oder wie sie auch immer heissen zu installieren dauert ungefähr 5min.


----------



## expensne (14. Jun 2016)

Thallius hat gesagt.:


> Du wirst nicht immer erst nach jedem kleinen Tippfehler die Datei neu per FTP hochladen wollen um sie dann zu testen oder?
> 
> Und einen lokalen Wamp, Mamp, Xamp oder wie sie auch immer heissen zu installieren dauert ungefähr 5min.



Naja hab keine Erfahrung mit Php also im Prinzip schon, nicht nach jedem Tippfehler aber oft. Daher auch meine Frage um direkt auf dem Server zu arbeiten.

Das das kein Aufwand ist mir local einen zu installieren ist mir auch bewusst.


Gruß,
Fabian


----------



## Thallius (14. Jun 2016)

Wo ist dann der Vorteil auf einem externen Server zu arbeiten?


----------



## stg (14. Jun 2016)

Das ist übrigens eine rhetorische Frage 

Aber um das Gespräch mal ein bisschen in eine andere Richtung zu lenken:
Normalerweise ist es so, dass du auf der geteilten Testumgebung auch eine Kopie des Git Repositories liegen hast. Dort läuft dann irgendein passender Dienst, der (in regelmäßigen Abständen, oder aber auch einfach auf Anfrage) aus den sourcen das Projekt baut, Tests fährt und bei bestandenen Tests eventuell auf einen Web- oder Anwendungsserver einspielt.
Das ist allerdings als Ergänzung zu verstehen und ersetzt nicht die vollständige lokale Entwicklungsumgebung inkl Server.


----------



## expensne (14. Jun 2016)

Thallius hat gesagt.:


> Wo ist dann der Vorteil auf einem externen Server zu arbeiten?


Keine, aber es war ja auch nur eine Frage ob es Möglichkeiten dazu gibt, nicht ob es sinnvoll ist. 



stg hat gesagt.:


> Das ist übrigens eine rhetorische Frage
> 
> Aber um das Gespräch mal ein bisschen in eine andere Richtung zu lenken:
> Normalerweise ist es so, dass du auf der geteilten Testumgebung auch eine Kopie des Git Repositories liegen hast. Dort läuft dann irgendein passender Dienst, der (in regelmäßigen Abständen, oder aber auch einfach auf Anfrage) aus den sourcen das Projekt baut, Tests fährt und bei bestandenen Tests eventuell auf einen Web- oder Anwendungsserver einspielt.
> Das ist allerdings als Ergänzung zu verstehen und ersetzt nicht die vollständige lokale Entwicklungsumgebung inkl Server.


Nach sowas suche ich, hast du da zufällig einen Namen zur Hand?


----------



## Thallius (14. Jun 2016)

Für so etwas brauchst du aber einen Server und kein Webhosting.

Und bevor Du Dich jetzt auf die Suche machst nach einem möglichst billigen VServer oder sowas, solltest Du Dir klar sein, dass wenn z.B. Du in Deiner Applikation auch nur eine personenbezogene Date erfasst, Du Dich strafbar machst wenn der gemietet Server im Ausland steht. Weiterhin must Du Dich selber um ein vernünftiges Backup System kümmern. Oder was passiert sonst mit deinem Repository und allen Sourcen etc wenn der Server ausfällt? Was ist mit dem Recht an den Daten auf dem Server? Viele kostenlose Anbieter halten sich das Recht vor die Daten auf den Servern zu nutzen etc.

Wenn Du nicht in der Lage bist eine eigene Hardware aufzusetzen, dann würde ich tunlichst die Finger davon lassen.

Gruß

Claus


----------



## dayaftereh (14. Jun 2016)

Such mal nach Continuous Integration oder Continuous Delivery. Als CI Server kannst du dir mal den Jenkins anschauen. Vielleicht Hilfe es dir bzw ist das was du suchst.

Kannst dein Webanwendung im Build Prozess auch in einen Docker Container packen, dann kann man ihn einfacher Deployen.


----------



## expensne (14. Jun 2016)

Thallius hat gesagt.:


> Für so etwas brauchst du aber einen Server und kein Webhosting.
> 
> Und bevor Du Dich jetzt auf die Suche machst nach einem möglichst billigen VServer oder sowas, solltest Du Dir klar sein, dass wenn z.B. Du in Deiner Applikation auch nur eine personenbezogene Date erfasst, Du Dich strafbar machst wenn der gemietet Server im Ausland steht. Weiterhin must Du Dich selber um ein vernünftiges Backup System kümmern. Oder was passiert sonst mit deinem Repository und allen Sourcen etc wenn der Server ausfällt? Was ist mit dem Recht an den Daten auf dem Server? Viele kostenlose Anbieter halten sich das Recht vor die Daten auf den Servern zu nutzen etc.
> 
> ...


Das sind natürlich valide Argumente soweit habe ich noch garnicht gedacht. Danke!



dayaftereh hat gesagt.:


> Such mal nach Continuous Integration oder Continuous Delivery. Als CI Server kannst du dir mal den Jenkins anschauen. Vielleicht Hilfe es dir bzw ist das was du suchst.
> 
> Kannst dein Webanwendung im Build Prozess auch in einen Docker Container packen, dann kann man ihn einfacher Deployen.


Danke, werd mich mal ein wenig schlau machen.


----------

