Próbuję zbudować własny CMS dla siebie i moich klientów. System będzie wykorzystywany głównie w małych witrynach internetowych < 10 stron. W przypadku większego projektu najprawdopodobniej wykorzystam istniejący system (MojoPortals, Umbraco, Kooboo). Powodem, dla którego chcę mieć własny system, jest to, że mam pełną kontrolę, a także dlatego, że istniejące systemy są w większości nadęte funkcjami, których i tak nie wykorzystam w przypadku mniejszych projektów. Uczę się także Asp.net Mvc, więc jest to drugi powód do zbudowania własnego systemu.Asp.net Mvc: Tworzenie prostej cms
Oto niektóre z systemów próbowałem (niektóre bardziej niż inne):
Ten, który mi się podobał, to MojoPortals. Głównie ze względu na system lewy-prawy-prawy + moduły.
Więc moim celem jest stworzenie systemu, w którym można tworzyć strony, a każda strona będzie zawierała lewy, środkowy i prawy symbol zastępczy dla modułów. Moduły będą bardzo proste (Text, HTML, Image). System musi również być łatwy do wdrożenia i ponownego użycia.
Już zacząłem pracować nad moim systemem.
Przedmiotem strona wygląda tak:
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; }
}
Przedmiotem Moduł wygląda tak:
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; }
}
Tak moim zdaniem wygląda: www.codepaste.com
Później będę pewnie dodać obiekt strony internetowej zawierający informacje, który widok (szablon) zostanie wyświetlony.
Pytania, które mam w tej chwili dotyczą głównie widoku. Widok, który łączyłem, ma pewien podstawowy kod, który najpierw sprawdza lokalizację modułu, a następnie pokazuje wszystkie informacje o module we właściwej lokalizacji. Chciałbym, aby ta część była łatwa do ponownego wykorzystania. Tak więc pomyślałem o zrobieniu silnie wypisanego częściowego widoku, który robi lewy, prawy i środkowy materiał. Również w przypadku modułów myślałem o użyciu częściowych widoków i renderowania poprawnej części określonego typu moduleType. Więc tekst będzie miał częściowy, html będzie miał jeden i tak dalej. Nie jestem pewien, czy to właściwa technika.
Czy powinienem używać częściowego widoku do obsługi lewego, środkowego i prawego materiału i używać częściowych widoków do załadowania modułów?
Jeśli ktoś ma inne informacje na temat budowy modułów lub technik/struktur, z których mogę korzystać, to byłoby naprawdę świetnie.
Z góry dzięki, Pickels.
Moja rada to nie przeszkadzało - używać Umbraco (które mogą być dostosowane do być bardzo proste). Wysiłek tworzenia i utrzymywania nawet pozornie prostego CMS jest duży i to przed nieuniknionym przyszłym pełzaniem. Co się dzieje, gdy ktoś chce przywrócić poprzednią wersję treści? Czy twój schemat może sobie z tym poradzić? –
Świetne pytanie. Dzięki! – Shimmy