... o ASP.NET C# nie mówiąc nikomu.
Bolączki początkującego w ASP.NET
Może to bolączki początkującego programisty a może rozpieszczenie. Nie wiem. Wiem jedno - ASP.NET to "pain in the ass". Ale od początku.
Interfejs stworzył kolega. Tyle wiem o tym jak to się robi. Mu się udało. Ja miałem zacząć wypakowywać go treścią z bazy danych. To co oferuje C# w tym zakresie jakoś nie zachwyca. Zacząłem od tworzenia zapytań w "stringu" i podpinania pod kontrolkę. No i działało... Kiedy już byłem zadowolny ... przypomniałem sobie o SQLInjection :/ Oczywiście funkcji do escapowania nie zaświadczysz w tak nowoczesnym języku jak C#.
Zaświtała mi myśl, aby zobaczyć czy może nie warto (póki czas) przerzucić się na MVC. Składnia SQLowata wbudowana w język programowania fajna, ale totalnie biedna. Bez joinów nie pakuję się w tą zabawę.
Wróciłem więc do zwykłego ASP.NET. Skoro już muszę w tym programować to może stworzę sobie fajną abstrakcję dla bazy danych. Zleciała mi na tym większość dnia. Niestety wybrałem ślepą uliczkę. Tylko dlaczego tak cudowne środowisko jak Visual Studio nie powiedziało mi, że wybierając na target SqlDataReader nie uda mi się go podpiąć jako DataSource do GridView z paginowanie. Nie wiem. A może po prostu nie wiedziało. Tak więc w cudowny sposób stanąłem z gotową, ładną acz kompletnie nieużyteczną klasą do obsługi bazy danych i straconymi 10 godzinami roboczo godzin. Dobrze, że chociaż mi za nie zapłacą.
Maszyna czasu - wskazówka cofa się
Mój dzisiejszy dzień i w ogóle całe programowanie w ASP.NET przypominają mi młodość. Czasy, w których nie wiedziałem co to framework. Czas, w którym wymyślało się koło na nowo. Czas, w którym tworzyło się mnóstwo autorskich rozwiązań.
W ASP.NET to nieunikonione. Nie jeżeli choć troszkę próbujemy dorównać wygodzie oferowanej przez takie technologie jak Django, Pylons, Symfony czy "Drupal Framework". A chyba nie umiem już zaakceptować faktu, że "coś jest źle zrobione".
Pomimo braku wygodnych i dobrze przemyślanych mechanizmów nie natrafiłem na jakiś wysyp "gotowców", które ułatwią Ci życie w sieci. A szkoda. Klasa do porządnej obsługi bazy danych by się przydała. Obecnie - wygląda to dziwnie.
Przyglądając się technologiom stosowanym w ASP.NET mam wrażenie, że tym co tam się znalazło rządziła "burza mózgów". 30 pomysłów, które po prostu zaimplementowano a potem zaczęto się zastanawiać jak to ma razem działać. I coś tam "sklecono". Szalenie niewygodne, nieelastyczne i dziwnie niskopoziomowe.
Pokolenie RuPy
Możemy kłócić się całymi latami o wyższość jednej technologii nad drugą. Idealizować Scalę, krytykować Pythona za niekonsekwencję, Rubego za "abstrakcję". Jednak po dzisiejszym dniu mam to po raz kolejny w nosie. W każdym z tych języków tworzenie witryn to bajka. Żal mi całych mas ludzi, którzy myślą, że ASP.NET to szczyt możliwości. Zarazem zaczynam z każdą chwilą doceniać każdy kolejny projekt, który przyjdzie mi tworzyć z użyciem, którejkolwiek z tych technologii.
Wszystkim, którzy cierpią na bezsenność z powodu wymyślania argumentów na korzyść/niekorzyść jakiegoś języka programowania - daję receptę. Zaprojektujcie w ASP.NET system newsów z komentarzami i bazą użytkowników. Spróbujcie zabezpieczyć aplikację przed XSS, CSRF, SQLInjection z użyciem C# i zróbcie to równie ładnie jak w Python'ie czy Ruby'm. Efekt - gwarantowany: "No more tears".
Podsumowanie
Część artykułów robiących wielkie halo wokół Iron Ruby i Iron Python to mydlenie oczu. Odniosłem kiedyś wrażenie, że Microsoft "robi łaskę", że implementuje te dwa świetny języki na swojej platformie. Może być tylko inaczej. MS idzie po najniższej linii oporu. Stara się zapewnić, godne porządnego, szanującego się programisty, (sic!) środowisko. Środowisko, które zacznie zbliżać się możliwościami do obecnych trendów. Jednak moim zdaniem jeszcze daleko do tego. Oczywiście. Elastyczność Ruby'go i Python'a będzie biła na głowę C# w każdym miejscu i usprawni tworzenie witryn o 150%. Jednak dopiero zastosowanie frameworków znanych ze świata CPython'a czy CRube'go sprawi, że będzie to opcja do rozważenia.
Prawda jest taka, że Microsoft ma problem. Ten problem nazywa się IIS. Jak widać doszli do wniosku, że jedynym wyjściem z niego to zrobić działające z nim implementacje tego co dobre. Oby tylko nie "ulepszyli" całości po swojemu robiąc z genialnych technologii kolejną, której nie da się używać.
P.S. Autor podkreśla na koniec, że w ASP.NET programuje bardzo krótko i negatywne zdanie o technologii może wynikać ze słabej znajomości języka.
Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts
Wednesday, July 29, 2009
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.
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.
Subscribe to:
Posts (Atom)