3 Stimmen

Einrichtung der Web-Entwicklung

Ich bin gerade dabei, eine komplette Web-Entwicklungsumgebung einzurichten. Im Moment gibt es zwei Entwickler, einen für die Backend-Programmierung (C#, .NET) und einen für die Frontend-Entwicklung (HTML, CSS, XSLT).

Jeder hat eine Installation von MS Visual Studio 2008 und einen gemeinsamen Quellcode über Visual Source Safe 2005. Sie checken beide Dateien aus und entwickeln lokal.

Ich habe einen Testserver eingerichtet, auf dem der zusammengeführte und getestete Code schließlich landen soll, und dieser Server sollte immer die "richtige" Version sein.

Alle 3 Installationen nutzen die gleichen Datenbanken.

Ich denke, dass dieses Setup ein wenig skalierbar sein sollte, da ich mich auf mehr Entwickler vorbereite, aber wir haben ziemlich viele Probleme mit der Dateisynchronisierung und dem einfachen Zugriff für schnelle Änderungen. Oft müssen wir einige Layouts und Designs ziemlich schnell ändern und enden damit, dass wir Dateien manuell auf den Testserver kopieren (ich möchte keine .NET/C#-Code-Dateien auf dem Webserver haben), und die Website schlägt fehl :-(

Wir verwenden ein Standard-CMS, um unsere gesamte Frontend-Arbeit zu erstellen, und es verlangsamt die Dinge wirklich, wenn dies in den Source-Safe aufgenommen wird.

Ich möchte, dass alle unsere Frontend-Arbeiten vollständig von unserem Backend-Code getrennt werden, damit es einfach ist, Änderungen vorzunehmen.

Wir möchten z. B. ein paar Änderungen am Design vornehmen und es schnell in unserer Produktionsumgebung einsetzen, ohne uns Gedanken über den .NET-Code zu machen.

Gibt es etwas, das ich übersehe, oder was ist die beste Praxis für die Einrichtung einer Web-Entwicklungsumgebung?

Ich freue mich auf Hilfe/Erfahrung :-)

/Thomas

1 Stimmen

Wie kann das Frontend unabhängig vom Backend sein? Was zeigt das Frontend an, wenn es nicht vom Backend-Code ausgegeben wird?

0 Stimmen

Was ich mit unabhängig meine, ist, dass das Frontend-Layout normalerweise keine Logik hat, und wenn die Daten/Logik vom Backend geliefert werden, möchte ich, dass es einfach ist, Designänderungen leicht zu machen. Z.B. mit einem XSLT-Rendering aus den Daten.

0 Stimmen

"Wir möchten ein paar Änderungen am Design vornehmen und es schnell in unserer Produktionsumgebung einsetzen, ohne uns Gedanken über den .NET-Code zu machen. "Abstraktion ist der Designbegriff, der mir in den Sinn kommt. Die Trennung von Design und Implementierung.

5voto

orip Punkte 69138

Sie sollten sich wahrscheinlich ein leistungsfähigeres Versionskontrollsystem zulegen. SVN hat eine großartige Werkzeugunterstützung (einschließlich AnkhSVN et VisualSVN für die Integration von VS2008), und verteilte Versionskontrollsysteme wie Mercurial, Git oder Bazaar bieten Ihnen noch mehr Optionen zum Preis einer viel grundlegenderen Toolunterstützung.

Sie brauchen vielleicht eine einfache Verzweigung, und die Verwaltung der relevanten Ressourcen mit dem Versionskontrollsystem wird viel einfacher, wenn Sie sie einfach in die Produktion einbringen können (d.h. "svn up" ausführen).

0voto

Mathias F Punkte 15112

Ich kann Ihnen nicht mit Informationen über den Umgang mit CMS-Inhalten helfen, aber ich habe ein paar Buildserver eingerichtet oder benutzt.

Nachdem ich in vielen Projekten mit Visual Source Safe und in einigen mit Team Foundation Server gearbeitet habe, halte ich mich davon fern, wenn ich kann.

Unser aktueller Buildserver besteht aus Nant-Skripten, die den Quellcode aus einem Subversion-Repository auschecken. Der Build selbst wird von MSBuild durchgeführt. Das Ergebnis des Builds wird dann in Stage und Production kopiert.

Es sollte eine einfache Möglichkeit geben, Datenbankänderungen von der Entwicklung in die Phase und Produktion zu übertragen. Wir haben ein Werkzeug ( http://www.codeplex.com/ScriptDB ), die die dev-Datenbank skriptet. Das Ergebnis wird in Subversion eingecheckt. Im Protokoll von Subversion ist leicht zu erkennen, was sich geändert hat.

0voto

Dónal Punkte 180956

Alle 3 Installationen nutzen die gleichen Datenbanken.

Dies scheint eine schlechte Entscheidung zu sein. Wenn dev1, dev2 und test alle dieselbe Datenbank verwenden, wie kann dann dev1 mit der Änderung des Schemas experimentieren, ohne dev2 und test zu beeinträchtigen (vorausgesetzt, der Code für die Arbeit mit dem experimentellen Schema ist noch nicht eingecheckt).

Außerdem wird die DB zu einem Single Point of Failure, d. h., wenn jemand versehentlich eine wichtige Tabelle löscht/abschneidet, kommt die gesamte Arbeit zum Erliegen.

Idealerweise sollte jede Umgebung ihre eigene DB haben. Wenn Sie eine unfreie DB wie Oracle verwenden, können Sie es sich vielleicht nicht leisten, jeder Umgebung einen eigenen Server zu geben, aber zumindest sollte jede Umgebung ihr eigenes Schema haben.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X