Blog (45)
Komentarze (703)
Recenzje (0)

Django, Zend czy ASP.NET?

@DraqunDjango, Zend czy ASP.NET? 10.05.2013 18:00

Nie posiadam za wiele czasu na pisanie ale przyszła pora aby odświeżyć blog.

W trakcie ostatnich kilku miesięcy piszę bardzo dużo kodu. W trakcie tych miesięcy przyszło mi zająć się webdeveloperką więc musiałem poznać parę technologii i wykonać w nich pracę. Oczywiście technologie te a w zasadzie nazwy frameworków znajdują się tytule. Każdy z tych frameworków jest napisany w innym języku więc musiałem do swoich umiejętności dorzucić znajomość C# aby wykorzystywać ASP.NET i od niego zacznę.

ASP.NET

ASP.NET jest frameworkiem, który pozwala wykorzystując język C# i XAML na pisanie witryn internetowych. Można w nim pisać kod na 2 rożne sposoby. Pierwszy z nich to taki misz-masz w jakim programowało się kiedyś, kiedy MVC nie był zbyt często zaprzęgany. Osobiście ten styl pisania mi bardzo nie odpowiada więc ja pisałem z użyciem MVC. Jako, że ASP.NET był ostatnim frameworkiem z trzech powyższych jaki się uczyłem po stworzeniu projektu i obadaniu układu folderów, plików i nazewnictwa poczułem się jak ryba w wodzie.

I to było ostatnie dobre wrażenie z pracy w tym frameworku. Problem zaczął się wtedy gdy miałem podpiąć PostgreSQL'a. Okazało się, że nie jest to takie proste. Ściągałem miliony bibliotek, które miały umożliwić mi pracę i dopiero po całym dniu udało mi się podłączyć bazę. Myśląc, że już będzie z górki nie wiedziałem co mnie dalej czeka. Okazuje się, że stworzenie logowania jest katorgą 3 dni zajęło mi rozszyfrowanie działa mechanizmu logowania i napisanie klasy, która będzie dziedziczyć po MembershipProvider. Wszelkie inne kontrolki jakie serwuje mi Visual także nie chcą współpracować co w sumie mnie cieszy. Nigdy nie byłem fanem programowanie poprzez drag and drop. Jednakże IMO XAML nie jest wcale taki fajny jak to fanboye C# go opisują. Ostatecznie nakład pracy na moją witrynę jest o wiele większy niż ludzi, którzy zamiast PSQL korzystają z MS SQL Server. Natomiast posiadam o wiele większą kontrolę nad kodem. Jak widzę miny ludzi, którzy próbują załatać jakiś bug a programowali właśnie za pomocą drag and drop to mi się śmiać chce.

Dodam jeszcze, ze na moim laptopie z W7, 2GB ram, proc Pentium Dual Core 2.0GHz Visual Studio w wersji Professional muli jak diabli. Po prostu środowisko to ma kosmiczne wymagania, ale dzięki temu przestałem narzekać na Eclipse.

Django

Django jest frameworkiem do języka Python. Witryny pisane w tym frameworku mają narzuconą strukturę MVC (a w zasadzie jej odmianę o wdzięcznym skrócie PAC) jednakże nie widać tego na pierwszy rzut oka. Plik odpowiedzialny za bycie kontrolerem nazywa się Views, pliki widoków siedziały w folderze templates (bo w najnowszej wersji samemu sobie wybieramy folder lub jego brak). Jedynie plik model.py mówi czym faktycznie jest. Osobiście uważam, że dla początkujących webdeveoperów Django nie jest najlepszym wyborem.

Pracując z Django spędziłem 3 dni na zrozumienie całego mechanizmu działania formularzy. Nie jest on najprostszy szczególnie jak trzeba korzystać dodatkowo z jakichś aplikacji wspomagających ich tworzenie.

Mówiąc o aplikacjach warto wspomnieć, że do pracy na witrynie można zaprząc inne już gotowe aplikacje napisane w Pythonie. Jest to na pewno duży plus jednak trzeba przebrnąć przez plik settings.py, w którym trzeba dodać masę wpisów, które nie zawsze są do końca dla mnie jasne.

Jeśli chodzi o pliki widoków należy dodać, że aby dynamicznie tworzyć w nich jakieś akcje należy wykorzystywać język, który przypomina ten w Jinja 2. Osobiście uważam, że lepiej byłoby aby twórcy opracowali sposób na wstawki Pythonowe tak jak można to robić z PHP w Zend czy C# w ASP.NET.

Zend Framework 1.12

Wiem, że mamy już wersją 2 tego frameworka, jednakże nie mam czasu na naukę jego. Zend jest to framework do języka PHP i tak jak Django czy ASP.NET wykorzystuje on MVC. Struktura katalogów dla początkującego programisty może wydawać się bezsensowna ale uważam, że jak się z nią człowiek oswoi to cała ta struktura ma ręce i nogi. Dodatkowo nazwa folderu w pełni oddaje jego zastosowanie przez co nie ma wątpliwości do czego on służy (a nie jak wspomniany pliczek Views.py w Django).

Jeśli chodzi o Zenda bardzo fajnie został rozwiązany problem z plikami widoku. Musza one się nazywać tak jak metoda go wywołująca więc od razu wiadomo co gdzie jest (w ASP.NET też tak to działa).

Największą wadą Zend'a wg wielu programistów jest sztywność tego frameworka co mi bardzo pasuje. Po prostu pewne rzeczy są narzucone przez co nie muszę się martwić o wiele rzeczy np. walidację url'i ponieważ url zawsze wygląda w sposób adresserwer/kontroler/akcja/nazwaparametru/parametr. No ale tak już ten świat jest stworzony, że nie dogodzi się wszystkim.

Podsumowanie

Jeśli chodzi o pracę, jeśli nie będzie przymusu pisania stronki w ASP.NET to na pewno nigdy nie sięgnę po ten framework. Wydaje się on nieprzyjazny dla ludzi, którzy wolą pisać niż upuszczać kontrolki. Dodatkowo podłączenie do niego innej bazy danych niż MS SQL Server jest męczarnią a zrobienie mechanizmu logowania to nie lada wyczyn dla nawet bardzo dobrych programistów.

Co do Django to nie polecałbym go osobom zaczynającym z webdevelopingiem. Osobiście jeśli nie będę miał narzuconego języka/frameworka mam zamiar pisać witryny właśnie z użyciem Django ale to dlatego, że Python po prostu mi pasuje. Ma on swoje wady i zalety ale programistów Pythona po prostu nie ma dużo i jest to nisza, w której świetnie się czuję.

Co do Zend'a to jest to dobry framework do nauki MVC. Pisze się w tym bardzo szybko, jednak nie jestem zwolennikiem PHP. Nie wiem jak w wersji drugiej jednak w pierwszej najbardziej przeszkadzało mi w Zendzie sposób budowania formularzy z użyciem Zend_Form. Dodanie własnego atrybutu do niektórych kontrolek jest po prostu niemożliwe bez przeciążania metod klasy kontrolki. W takich przypadkach po prostu zamiast babrać się w PHP zaprzęgałem do pracy JS aby uzyskać cel.

A czy wy pracowaliście z tymi frameworkami? Jakie są wasze wrażanie z pracy?

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.