2009-09-05 8 views
5

自分自身と私のクライアントのために私自身のCMSを構築しようとしています。このシステムは主に小さなウェブサイト< 10ページに使用されます。より大きなプロジェクトでは、既存のシステム(MojoPortals、Umbraco、Kooboo)を使用する可能性が最も高いです。私が自分のシステムを必要とするのは、私が完全にコントロールできるようにすることと、既存のシステムが大部分が小規模なプロジェクトには使用しない機能で膨らんでいるからです。私はAsp.net Mvcも学習しているので、それが私自身のシステムを構築するもう一つの理由です。Asp.net Mvc:シンプルなCMSを作成

これらは私が(他のものよりいくつかの詳細)を試みたシステムの一部であります

すぐに気に入ったのはMojoPortalsでした。主にleft-middle-right + modulesシステムのためです。

私の目標は、ページを作成できるシステムを持つことです。各ページには、モジュールの左、中央、右のプレースホルダがあります。モジュールは非常に基本的です(テキスト、HTML、画像)。システムは、展開と再利用が容易でなければなりません。

私は既にシステムで作業を始めました。

ページオブジェクトは、次のようになります。

public class Page 
{ 
    public int PageID { get; set; } 
    public string Name { get; set; } 
    public string Description { get; set; } 
    public string Title { get; set; } 
    public IEnumerable<Module> Modules { get; set; } 
} 

モジュールのオブジェクトは、次のようになります

public class Module 
{ 
    public int ModuleID { get; set; } 
    public string ModuleTitle { get; set; } 
    public string ModuleType { get; set; } 
    public string ModuleLocation { get; set; } 
    public Dictionary<string, string> ModuleValues { get; set; } 
} 

これは私のビューがどのように見えるかです: www.codepaste.com

後、私はおそらく追加されますビュー(テンプレート)が表示される情報を保持するウェブサイトオブジェクトです。

私が現時点で持っている質問は主に視点です。私がリンクしているビューには、モジュールの場所を最初に確認し、正しい場所にすべてのモジュール情報を表示する基本的なコードがあります。私はその部分を簡単に再利用できるようにしたいと思います。だから私は、左、右、中のものを行う強く型付けされた部分的なビューを作ることを考えました。また、モジュールについては、部分的なビューを使用して特定のmoduleTypeの正しい部分をレンダリングすることを考えていました。したがって、テキストは部分的になり、HTMLは1つのようになります。これが正しい技術なのかどうかはわかりません。

左、中央、右のものを処理するために部分的なビューを使用する必要があり、モジュールをロードするために部分的なビューを使用しますか?

誰かが私が使用できるモジュールベースのCMSまたは技術/構造を構築することに関する他の情報を持っていれば、それも本当に素晴らしいでしょう。

ありがとうございました。Pickels。

+0

私のアドバイスは気にしないだろう - (非常に簡単なものに調整することができる)Umbracoを使用しています。一見シンプルなCMSを作成し維持する努力は大きく、それは避けられない将来のクリープの前にあります。以前のバージョンのコンテンツにロールバックしたい場合はどうなりますか?あなたのスキーマはこれに対処できますか? –

+0

大きな質問です。ありがとう! – Shimmy

答えて

0

はい、これが最適です。 cssを使用して各テンプレートに「構造ベース」を設定し、すべてのモジュールが独自のビューを正しいテンプレートセクションにロードするようにします。テンプレートには、会社のロゴや物を表示する共通のヘッダーの下にトップメニューがあります。モジュールに関する情報とテンプレートのトップセクションについての情報をデータベースに挿入します(テンプレート構造についてデータベースにテーブルを作成して、各ページに関連するすべてのモジュールをどこに置くかをシステムに認識させる必要があります)。システムは、すべてのページリクエストに必要なモジュールを適切な位置に取得し、その場所に独自のビューをロードします。

は、あなたが私の文章を理解してほしい:)

+0

あなたが書いたことを本当に理解できませんでした。 – Pickels

+0

基本的には、要求された各ページの構造ベースを使用してあなたのコントローラ/モデルをロードし、構造内にあるセクションごとにモジュールを関連付けるようにします。 – yoda

関連する問題