Wednesday, July 22, 2009

Dlaczego istnieje ASP.NET MVC ?

Od wczoraj jestem "szczęśliwcem". Szczęśliwcem ponieważ mam możliwość (a dokładniej nie mam wyboru) programować w ASP.NET 3.5 w VS 2008.
Szczerze mówiąc - pogubiłem się. Chodzi o to, że niby ASP.NET jest jedno a jednak mówi się o ASP.NET Server-Side, ASP.NET AJAH, ASP.NET AJAX, ASP.NET AJAX + jQuery i nie wiem czy jest coś jeszcze ... ah tak ! Mówi się o ASP.NET MVC ... i to wszystko razem ! powoduje, że się totalnie gubię.

Chciałbym zacząć tworzyć stronę w czymś nowym... nowoczesnym, w czymś co jest obecnie na topie. Jednak obecnie już nie wiem co jest na topie i w co warto inwestować swoje zasoby. Który z tych wszystkich ASP przetrwa próbę czasu.

Wiem jak działa ASP.NET jako taki. Pisanie eventów do elementów witryny przeciągniętych z toolbox-ów. To było to udoskonalenie pozwalające oddzielić warstwę logiki od prezentacji. No i wszystko pięknie ... do momentu gdy nie spotkałem się z informacją, że istnieje ASP.NET MVC... Dlaczego?! zapytałem sam siebie. Czyżby innowacyjna na skalę całej sieci architektura tworzenia witryn internetowych Microsoftu miała okazać się ostatecznie źle zaprojektowaną ? Po co komu kontrolery i modele skoro wszystko można robić na elementach świetnie integrującymi się z bazami danych?

Szczerze mówiąc tak jak od 2 dni próbuję ogarnąć ten chaos tak mogę powiedzieć jedno. Na początku byłem pod ogromnym wrażeniem, że taktyka znana mi z VB 6: przeciągnij, kliknij dwa razy, zaprogramuj - działa również w wypadku witryn internetowych. Szybko, miło przyjemnie - syfiaście od strony źródła witryny, ale trudno.
I teraz nagle (na to wygląda) okazuje się, że (zgaduję - ale przecież z jakiś przyczyn powstało ASP.NET MVC) taka metoda tworzenia witryn jednak nie jest taka świetna ? Wprowadza się MVC ?

Obecnie wymaganie mam jedno: chciałbym stworzyć 99.99 AJAXową aplikację internetową w ASP.NET korzystając z maximum bajerów, które tam napchali. Jeżeli ktoś wie które ze wszystkich wybrać - byłbym wdzięczny.

5 comments:

mekto said...

Zdecydowanie polecam Ci ASP.NET MVC, w szczególności jeśli to będzie strona oparta w dużej mierze na AJAX.
Standardowe ASP niesie ze sobą zbyt dużo ograniczeń. Mimo, że kontrolki łatwo się przeciąga i prawie od razu widać rezultat, to jednak jeśli chcesz już dostosować kontrolkę do własnych potrzeb to już tutaj może nie być tak kolorowo. Więcej będziesz kombinował niż pisał konkretną funkcjonalność strony. Ponadto pary kod źródłowy strony i kod html strony (np. Start.cs i Start.aspx) też stanowią bardzo duże ograniczenie. Swobodny routing url choć jest możliwy to jest on skomplikowany i nieprzyjazny.
To są chyba główne minusy typowego ASP, z tego też względu przyjąłem ASP MVC jako błogosławieństwo.
Zresztą, znając Pylons opanujesz MVC w góra dwa dni. Pozdrawiam.

Johny JKJK said...

Dzięki za radę :] Właśnie się zastanawiałem o co kaman.
Ponieważ sprawz jest pilna najpierw przepiszę kropka w kropkę projekt na ASP.NET (bo jest w 1.1). To już będzie duży plus. A potem jeżeli będzie jakieś tarcie na styku technologii - przebuduję na ASP MVC

Adam said...

Coś musi być na rzeczy, skoro w świecie PHP twórcy komponentowego i zorientowanego na zdarzenia PRADO (w stylu ASP albo Delphi) porzucili projekt i stworzyli Yii Framework z klasycznym MVC.

Może to wynika z tego, że MVC stał się wytrychem w aplikacjach web i mówiąc architektura web myślimy o MVC? Pomijając to, ze MVC niespecjalnie pasuje to web...

Johny JKJK said...

Dzięki za rady. Okazało się, że MVC też szalenie kuleje. Nie znalazłem możliwosci robienia w nim jakis ciekawszych zapytań w stylu JOINów, podzapytań itd... Ogółem - niedobrze.

Anonymous said...

Jeżeli coś tu kuleje, to na pewno nie MVC. Zapytania, podzapytania - co to ma wspólnego z MVC jako takim? Mówisz o warstwie dostępu do bazy danych, która może być w aplikacja ASP.NET MVC dowolna.