środa, 4 sierpnia 2010

Kilka słów na temat planowania aplikacji i wybranych technologii.

Ja już wcześniej wspominałem będę tworzył rozbudowany system forum. Można spytać dlaczego akurat forum skoro jest ich pełno? Głównie dlatego że już od dosyć dawna miałem w planach napisanie właśnie takiego projektu ale jakoś nie potrafiłem się zebrać i zacząć pisać. Konkurs był właśnie takim impulsem do rozpoczęcia.

Główne środowisko w którym będę pisał:
- Visual Web Developer 2010 Express
- Microsoft Sql Server 2008 Express

Technologie wykorzystane:
Kolejna rzeczą jaka bym chciał poruszyć to kilka słów na temat wybranych technologi do tworzenia tego projektu:
- ASP.NET MVC 2 : Tutaj sprawa była dosyć prosta ponieważ zdecydowałem się napisać ten projekt na platformie .NET to miałem do wyboru ASP.NET Webforms i właśnie MVC. Osobiście nigdy nie przypadło mi do gustu styl i sposób programowania w webforms. Wiele problemów powodował np brak bezpośredniego się wpływu na generowany kod, utrudniona mozliwosci stosowania wzorcow projektowych co powodowalo trudniejsze testowanie aplikacji.
- NHibernate : Przejdźmy teraz do kwestii ORM-ów. Brałem pod uwagę 2 NHibernate i Entity Framework. Po dogłębnym przeanalizowaniu ich możliwości i sposobu tworzenia w nim projektów uważam ze Entity Framework nie dorównuje NHibernate w aktualnej wersji. Natomiast ostatnio zaczęły pojawiać się wersje CTP EF-a tzw Code-First i muszę przyznać ze zapowiada się dosyć dobrze. Możliwe ze przyszłe wersje dorownaja NHibernate. Jedynym problemem w Nhibernate jest słabszy LINQ provider niz w EF aczkolwiek mam zamiar uzyc do tego projektu wersji alpha Nhibernate która niedawno się ukazała. W tej powinien być poprawiony. Będzie co testowac :)
- Automapper : Tutaj to niema co dyskutować. Nic bardziej nie ułatwia życia programisty jak automatyczne mapowanie np. z obiektow DTO na obiekty domenowe. Do tego celu służy właśnie ta biblioteka.
- Microsoft Unity Container : Jako mój kontener IoC wybrałem Unity. Głównie z powodu żę dosyć długo już go używam i odpowiada mi sposób jego konfiguracji i prostota używania.
- MVC Extensions : W tej bibliotece znajduje się wiele przydanych narzędzi które mogą ułatwić/pomoc w projektowaniu aplikacji jak np. Bootstrapping, Globalne filtry etc. Więcej na ten temat pewnie będę opisywał w czasie projektowania aplikacji.

Ta lista może systematycznie się powiększać w miarę rozwoju projektu. Na razie to tyle. W następnym wpisie postaram się już przybliżyć ogólna strukturę projektu i oficjalnie opublikować źródła(na razie głownie puste:)) na codeplex.

2 komentarze:

reVis pisze...

Przy okazji ASP MVC istotne jest której wersji używasz. Przypuszczam, że 2, a może 3?

Krzysztof Hrabia pisze...

Faktycznie przeoczylem to juz poprawiam. Bede uzywal wersji numer 2.

Prześlij komentarz