Požadované vlastnosti

Navrhovaný CMS systém by měl splňovat následující požadavky:

  1. Jednoduchá tvorba šablon a uživatelských skinů – Je třeba navrhnout systém, kde bude možné vytvořit šablonu pro budoucí obsahové stránky jako klasickou plnohodnotnou HTML stránku, při jejímž návrhu bude možné uplatnit moderní postupy a nic nebude bránit vytvořit vizuálně atraktivní webovou prezentaci. Je také třeba vytvořit jasně zdokumentovaný systém tříd v rámci kaskádových stylů, s jehož znalostí bude schopen webový designér naskinovat  tento systém bez nutnosti zásahu do ASP.NET kódu. Je také vhodné, aby v systému mohlo existovat více šablon připravených designérem a uživatel si při tvorbě obsahové stránky vybere šablonu s rozložením, které mu bude vyhovovat. Cílem tohoto systému naopak není dát uživateli úplnou volnost v tvorbě své vlastní webové prezentace. Uživatel bude mít velikou míru volnosti, ale v mezích, které určí designér.
  2. Jednoduchá rozšiřitelnost základní funkcionality – Je třeba navrhnout systém, který bude schopen pracovat s velice různorodým obsahem. Toho lze dosáhnout 2 způsoby. Jedna z možností je do systému naimplementovat podporu pro veliké množství druhů obsahu – správa článků, fotoalba, multimediální přehrávač, diskuze, hlasování a další. Pokud bychom se, ale vydali touto cestou, je pravděpodobné, že by se při implementaci dala přednost kvalitnímu zpracování práce se známým obsahem na úkor budoucí rozšiřitelnosti. Tento způsob realizace by byl velice nevýhodný ve chvíli, kdy by zákazník potřeboval podporu nového druhu obsahu a my bychom museli modifikovat samotný systém, který by na to nebyl připraven. Jsem přesvědčen, že by dříve nebo později tato situace nastala. Druhý způsob je vytvořit systém, který bude umět efektivně pracovat s jednotlivými dílčími moduly, které budou uchovávat daný uživatelský obsah úplně nezávisle na jádru CMS systému. V tomto případně by potom obsahová stránka byla tvořena instancemi jednotlivých modulů, které by si vnitřně uchovávaly dané uživatelský obsah. Samotné jádro by se potom staralo jen o správu dostupných modulů, správu obsahových stránek a instancí jednotlivých modulů.
  3. Přehledná administrace – Z vlastní zkušenosti tomuto bodu přikládám velikou důležitost, neboť se počítá s tím, že se systémem budou pracovat i běžní uživatelé. Považuji za klíčové udělat administraci přímočarou, aby se daly editovat informace, které spolu souvisí bez nutnosti procházet celou administraci, jak to mu je v jiných CMS systémech, které jsem porovnával v rámci této bakalářské práce. Pro tvorbu uživatelského rozhraní by bylo vhodné využít jQuery UI a celé rozhraní postavit tak, aby vyžadovalo při práci co nejméně postbacků, které jsou velice pomalé, když se musí načítat celá stránka. Velice zajímavá myšlenka je nevytvářet pro editaci obsahu na webu speciální oddělené administrační rozraní, ale umožnit uživateli provádět základní editaci obsahu přímo v prostředí klientské části webové stránky. Uživatel by díky tomuto mohl svou webovou prezentaci procházet jako běžný návštěvník, fungovala by klasická navigace po webu a ve chvíli kdy narazí na údaje, které chce změnit, tak by měl možnost jedním klinutím je začít editovat.
  4. Optimalizace pro vyhledávače – Systém by měl podporovat správu META informací o stránce. Dále by pak měl nabízet kvalitní správu URL na webu. Myšlenka je taková, že systém by měl umožnit vytvořit obsahovou stránku na libovolné URL adrese v rámci dané domény. Bude tedy třeba kvalitně implementovat URL routing.
  5. Platforma pro tvorbu webových aplikací – Navrhovaný CMS systém by neměl sloužit jen jako jednoduchý a přehledný systém na správu základního obsahu v prostředí webové stránky, ale měl by při tvorbě nových komponent umožnit naplno využít možností podkladových technologií, na kterých je postaven. Současně by principy použité při realizaci toho systému neměly bránit jeho nasazení pro aplikace jako diskuzní fórum, eshop, složitý redakční systém a podobně. Je tedy třeba systém navrhnout tak, aby jeho architektura umožňovala i toto univerzální nasazení.
  6. Přehledná implementace – Systém by měl být naimplementován formou přehledných modulů. Hranice modulů by měly být definovány jasně i v databázovém úložišti.
     

Můj postoj k CMS

Tvorbou webových aplikací se zabývám již několik let. Za tu dobu jsem si v praxi stihl vyzkoušet celou řadu technologií spojených s webovými aplikacemi a vytvořil jsem celou řadu webových prezentací pro různé společnosti nebo organizace.


Každý projekt měl svá specifika, ať už v přístupu zákazníka, nebo jeho konkrétních požadavcích. Jednu věc však měly tyto projekty společnou – podstatná část kódu se pravidelně opakovala. Ale díky nevhodnému návrhu a špatné znovupoužitelnosti jednotlivých komponent, které jsem vytvořil a používal, jsem zbytečně ztrácel čas opakovanou implementací funkčnosti, která již byla někdy implementována.
 

Z toho důvodu jsem si zvolil jako bakalářskou práci Modulární CMS systém a v rámci které chci navrhnout nový model CMS systému. Ten vychází z možností, které nativně poskytuje ASP.NET, rozšiřuje je a vytváří řešení, které možné upravit podle potřeb zákazníka.
Hlavní výhodou navrhovaného CMS systému bude možnost snadného přizpůsobení požadavkům zákazníka díky jednoduché tvorbě nových komponent, za předpokladu dodržení základních doporučení.