Skúsenosti s ASP.NET, prvá reálna aplikácia (blog)
Technológia ASP.NET a celkovo platforma .NET ma vždy lákala a zaujímala aj napriek tomu, že momentálne pracujem ako PHP+SQL programátor. Prednedávnom dostala firma, s ktorou spolupracujem ,zaujímavý projekt; vytvoriť blog o Windows Vista. Podmienkou bolo, že blog musí bežať na platforme .NET. Chcem sa preto podeliť s mojimi skúsenosťami s vývojom webových aplikácií na platforme .NET, hlavne o rozdieloch medzi ASP.NET a PHP z hľadiská vývojára.
Prvotným nápadom (od klienta) bolo použiť Comunity Server ; riešenie, na ktorom beží napríklad aj MySpace.com . Toto riešenie bolo podľa môjho názoru až príliš robustné a nepotrebné pre obyčajný blog, klienta však od neho našťastie upustil kvôli vysokej cene za licenciu.
Mojou prvotnou úlohou teda bolo nájsť pre projekt (bez akejkoľvek poskytnutej špecifikácie) .NET CMS, ktoré by sme na to použili, muselo však byť zadarmo (kvôli minimalizácií nákladov, ako to často býva). Skúšal som DotNetNuke a Umbraco . Sľubnejšie vyzeralo Umbraco s Blog Starter Kit, problémom však bola nízka prispôsobiteľnosť, ktorá by projektu určite vadila, veď práve kvôli prispôsobiteľnosti prešla firma už veľmi dávnu z Drupalu na vlastné CMS.
Rozhodol som sa preto vyvinúť jednoduchý blog sám, od základov s tým, že to je to v podstate jediná možnosť pre projekt a hlavne budem konečne pracovať s (subjektívne) lepšou technológiou ako je PHP na ozajstnom projekte. Odhadovaný čas vývoja bol 2-3 dni pri nasledujúcich požiadavkách.
Užívateľská časť:
- kategórie článkov
- články
- komentáre
- RSS
Administračná časť
- správa kategórií
- upload obrázkov pre články
- správa článkov vrátane wysiwyg editora
- vkladanie obrázkov cez wysiwyg editor
Začal som administračnou častou, ktorej väčšiu časť som vytvoril čisto deklaratívne, bez jediného riadku kódu, čo by v PHP naozaj nebolo možné. Jediná časť administrácie, ktorá si vyžadovala programovanie bol upload fotiek do databázy a ich zobrazovanie. Prihlasovanie do administrácie som realizoval taktiež pomocou .NET mechanizmov úplne bez programovania.
S klientskou časťou to bolo podobné ako s administračnou, jediným problémom bolo stránkovanie výpisov, keďže MS SQL nepodporuje stránkovanie typu LIMIT x OFFSET y. Pomohol však trik s vnorenými dopytmi .