私はC#.NETでデスクトップアプリケーションを書くのに慣れています。どこにバージョン管理下にある素敵な小さなソリューションフォルダがありますか?だからいつでも、どんなコンピュータであれ、私のソフトウェアのどのバージョンをコンパイルしたいのかチェックして、私のプログラムの作業コピーを持っています。ウェブサイトの作成/展開/管理方法を学ぶにはどうすればよいですか?
私は、ファイルとデータがより分散しているウェブサイトの開発を検討しています。私はASP.NETを使用していますが、実際は私の質問はより一般的で、どのWebサイトのフレームワークにも適用できます。
私は自分のウェブサイト、バージョン管理サーバー、そしてユーザーが見る実際のライブウェブサイトの開発の間の適切なワークフローを理解しようとしています。明らかに、これはウェブサイトのタイプと規模に応じて大きく変わることがありますが、私はかなり単純なサイトだけを考えています。私はちょうどこのもので始めることになっています。
下の図は私の現在のアイデアです。サイトのすべてのソースファイルは、ローカルコンピュータにチェックアウトするSubversionサーバーに保存されます。私のローカルコンピュータには、サイトの開発に使用するローカルデータベースがあります。次に、別のテストデータベースを指す、ホステッドサーバー上のテストバージョンに公開します。このテストデータベースは、定期的にライブデータベースのコピーに置き換えられます。
すべてうまくいけば、ライブデータを指し示すサイトのベータ版に公開します。ユーザーはベータ版をチェックアウトしてフィードバックを提供することができます。最後に問題がなければ、ライブサイトのソースファイルが更新されます。
これは理にかなっていますか?これがどのように改善できるかについて誰かからコメントがありますか?このような種類のワークフローを開発する際に、良い本やオンラインチュートリアルはありますか?
また、実際にはわからないことの1つは、データベースの実際のスキーマの変更を管理する方法です。私は、ホスト上のTestとLiveのデータベースを更新するために使用できるSQLスクリプトを生成することができる各バージョンについて説明します。しかし、すべてのバージョンのすべての更新SQLスクリプトを目的のバージョンまで実行しなくても、自分のサイトの任意のバージョンの新しいデータベースを簡単にセットアップできるようにしたいと思います。 NHibernateやSubsonicのようなORMを使用する最良のソリューションは私のコードから直接私のデータベーススキーマを生成することができますか?
ありがとう、これは本当に多くの助けになります。あなたは私がやろうとしていることをやっているように聞こえます。私がレポにコミットしている開発者以外の開発者については心配する必要はないので、私にとってはもっと簡単になりますが。しかし、私はまだ、ローカル、ベータ、およびプロダクションの間のDBスキーマへの変更をどのように管理するかについて100%確信していません。 –