PHP vs. ASP.NET

0

Witam Webmasterów!

Co Waszym zdaniem jest: 1 lepsze (i dlaczego?) 2. bardziej przyszłościowe 3. wydajniejsze i bezpieczniejsze:

PHP czy ASP.NET ?

W ASP.NET podoba się możliwość korzystania z kilku języków (C#, VB,...) i fajne środowisko VS (wszystko w jednym). Minusy to drogi hosting i trudniej dostępny, ale przede wszystkim drogi. Mało użytkowników i gorsze wsparcie.

W PHP pisze się łatwiej, jest więcej użytkowników (i książek, tutoriali). Tani hosting i ciekawe frameworki (kohana, cakephp, zend, symfony,...).

Nie wiem co wybrać ? ;) Co lepsze ? Wydajniejsze/bezpieczniejsze i bardziej przyszłościowe ?

Zapraszam do dyskusji!

Der.

0

Dzięki za link!

Znalazłem takie zestawienia:

http://www.chords.pl/blog/index.php/2008/07/jaka-technologie-wybrac-aspnetczyphp/

http://www.pcworld.pl/pojedynek/47.html

http://articles.sitepoint.com/article/v-php-top-6-reasons-use-net

Mam jeszcze pytania:

Czy dla ASP.NET są frameworki, jak dla PHP (cakephp, symfony, zend,...)?

W jakiej technologi jest ta strona: http://www.samar.pl ?
Czy to jest J2EE, PHP, ASP.NET ?? (czy coś innego może). Podejrzałem kod, ale za nic nie mogę rozpoznać :(

Czy znacie jakieś gotowe CMS-y, nie tylko OpenSource na ASP.NET ???

Edit: znalazłem trochę - na wiki jest: http://pl.wikipedia.org/wiki/Por%C3%B3wnanie_system%C3%B3w_CMS

Kentico, Umbarco, N2CMS czy http://axcms.net/ - tylko który jest dobry? I czy dorównują Joomli / Drupalowi ?

Dzięki! Der.

0

Wydajesz się obeznany w open source'wych technologiach. Po co ci ASP.NET? Wszystko co da się zrobić w ASP.NET da się zrobić w innych technologiach. Jednoznacznej odpowiedzi na pytanie co jest lepsze nikt Ci nie udzieli - to jest kwestia preferencji i wiedzy. Do realizacji projektu wybierz to na czym się znasz, to będzie wyznacznikiem jego sukcesu.

I jeszcze jedno

Jeśli decydujesz czego się nauczyć w celach zarobkowych to słuszna jest prawda: Duże korporacje wybierają jako platformę Micro$oft.

0
Der1 napisał(a)

Mało użytkowników i gorsze wsparcie.

Mało użytkowników czego? ASP.NET, hostingów, stron?
Słabe wsparcie czym się objawia?

Czy dla ASP.NET są frameworki, jak dla PHP (cakephp, symfony, zend,...)?

Jest .NET Framework. Możesz tworzyć aplikacje typu WebForms i MVC. Jakich innych frameworków oczekujesz, co one miałyby dać?

W jakiej technologi jest ta strona: http://www.samar.pl ?
Czy to jest J2EE, PHP, ASP.NET ?? (czy coś innego może). Podejrzałem kod, ale za nic nie mogę rozpoznać :(

Mi to wygląda na Word 2000.

0
javauser napisał(a)

Wydajesz się obeznany w open source'wych technologiach. Po co ci ASP.NET? Wszystko co da się zrobić w ASP.NET da się zrobić w innych technologiach. Jednoznacznej odpowiedzi na pytanie co jest lepsze nikt Ci nie udzieli - to jest kwestia preferencji i wiedzy. Do realizacji projektu wybierz to na czym się znasz, to będzie wyznacznikiem jego sukcesu.

Rozumiem, będe musiał się zapoznać z obydwoma z grubsza i wybrać sam.

OpenSource znam bardzo pobieżnie, dlatego mogę powiedzieć, że zaczynam od zera. I jak każdy kto zaczyna od zera myślę co wybrać i co jest przyszłościowe.

I jeszcze jedno

Jeśli decydujesz czego się nauczyć w celach zarobkowych to słuszna jest prawda: Duże korporacje wybierają jako platformę Micro$oft.

Ja myślę o polskim podwórku, W Polsce nadal rządzi PHP. Ale widzę że zainteresowanie ASP,NET rosnie, bo sporo dużych, nowych stron powstaje w ASP.NET.

0

@somekind:

Słabe wsparcie - mam na myśli mniej użytkowników, mniejszą społeczność i mniej źródeł wiedzy w tym temacie.

Sorry, rzeczywiście jest ASP.NET MVC. Chodziło mi o rozdzielenie kodu ASP.NET od strony (HTML), a nie o same frameworki.

Z Wordem 2000 to rozumiem żart ? :)

0
Der1 napisał(a)

Ja myślę o polskim podwórku, W Polsce nadal rządzi PHP.

W dziedzinie stron - wizytówek dla firm pewno tak. Do tego jeszcze nasza-klasa. A poza tym?

Ale widzę że zainteresowanie ASP,NET rosnie, bo sporo dużych, nowych stron powstaje w ASP.NET.

Masz jakiś przykład?

Słabe wsparcie - mam na myśli mniej użytkowników, mniejszą społeczność i mniej źródeł wiedzy w tym temacie.

Są blogi, fora, książki, tutoriale, jest MSDN - nie wiem czego więcej można oczekiwać?

Sorry, rzeczywiście jest ASP.NET MVC. Chodziło mi o rozdzielenie kodu ASP.NET od strony (HTML), a nie o same frameworki.

Kod ASP.NET (plik aspx) to plik XML, w którym zawarty jest standardowy kod XHTML oraz znaczniki kontrolek ASP.NET przekształcane na XHTML i JS. Logikę operacji zaś obsługuje się w kodzie C#/VB w plikach behind powiązanych z plikami aspx. Więc o jakie rozdzielenie chodzi?

0

Jakiś przykład?

Wczoraj widziałem dwie-trzy duże motoryzacyjne portale (np. http://www.autoinfo.pl/ ) i paręnaście innych dużych stron.

Co do rozdzielenia kodu i frameworków.

Myślałem o wzorcu MVC (model-widok-kontroler) jak to ma miejsce w frameworkach dla PHP. Ale widzę teraz, że jest też coś takiego jak ASP.NET MVC i MVC 2 (pewnie coś podobnego, nie wiem).

0

Jeżeli chcemy zrobić szybko aplikację internetową tak, że GUI może być stosunkowo proste, to z powodzeniem możemy użyć technologii intraweb. Zresztą, bardzo zaawansowane GUI też można w tym robić, ale szczególnie szybko robi się aplikację przy prostszym GUI. Projektowanie GUI dla portali społecznościowych może być na tyle złożone, że dosłownie zatrudnia się do tego pomocnika-grafika komputerowego. Tu jest przykład prostej aplikacji internetowej w intraweb:
http://gry-planszowe.waw.pl/files/warcaby_angielskie.html

0
Mariusz Jędrzejowski napisał(a)

Jeżeli chcemy zrobić szybko aplikację internetową tak, że GUI może być stosunkowo proste, to z powodzeniem możemy użyć technologii intraweb. Zresztą, bardzo zaawansowane GUI też można w tym robić, ale szczególnie szybko robi się aplikację przy prostszym GUI. Projektowanie GUI dla portali społecznościowych może być na tyle złożone, że dosłownie zatrudnia się do tego pomocnika-grafika komputerowego. Tu jest przykład prostej aplikacji internetowej w intraweb:
http://gry-planszowe.waw.pl/files/warcaby_angielskie.html

Cienkie GUI wyszło graficznie, no i kod się nie validuje...

0
Der1 napisał(a)

W jakiej technologi jest ta strona: http://www.samar.pl ?

Strona napisana jest bardzo prawdopodobnie w perlu.

0

Strona napisana jest bardzo prawdopodobnie w perlu.

Może i tak, ale szukali do pracy ludzi w Java / J2EE

0
Der1 napisał(a)

Wczoraj widziałem dwie-trzy duże motoryzacyjne portale (np. http://www.autoinfo.pl/ ) i paręnaście innych dużych stron.

Myślałem bardziej o większych przykładach, w stylu np. portal Orange albo serwis transakcyjny mBanku.

Myślałem o wzorcu MVC (model-widok-kontroler) jak to ma miejsce w frameworkach dla PHP. Ale widzę teraz, że jest też coś takiego jak ASP.NET MVC i MVC 2 (pewnie coś podobnego, nie wiem).

ASP.NET MVC to Microsoftowy framework. Są też alternatywne, np. Castle MonoRail czy Vici MVC.

0
Demonical Monk napisał(a)
Mariusz Jędrzejowski napisał(a)

Jeżeli chcemy zrobić szybko aplikację internetową tak, że GUI może być stosunkowo proste, to z powodzeniem możemy użyć technologii intraweb. Zresztą, bardzo zaawansowane GUI też można w tym robić, ale szczególnie szybko robi się aplikację przy prostszym GUI. Projektowanie GUI dla portali społecznościowych może być na tyle złożone, że dosłownie zatrudnia się do tego pomocnika-grafika komputerowego. Tu jest przykład prostej aplikacji internetowej w intraweb:
http://gry-planszowe.waw.pl/files/warcaby_angielskie.html

Cienkie GUI wyszło graficznie, no i kod się nie validuje...

Jak pisałem, to jest tylko przykład. Od projektowania GUI są graficy komputerowi a ja jestem koderem a nie grafikiem. Najczęściej zleca się szablon strony grafikowi, który projektuje piękny układ strony i w nim robi miejsce na standardowe elementy jak pola tekstowe. Można też szablon kupić gotowy. Kod, jeśli jakiś analizator html pokazuje błędy, jest nieistotny, o ile strona działa. Widziałem że analizator pokazywał błędy na stronach dużych firm i nikt się tym nie przejmował. To co jest dobre to to, że intraweb jest kompilowany a nie skryptowy i dlatego działa błyskawicznie. Również dostajemy olbrzymią pomoc od automatycznego generatora html, który wykonuje 95% kodowania strony internetowej jako front-end aplikacji. Intraweb jest dostępne dla języków C i Delphi.

0
Der1 napisał(a)

Sorry, rzeczywiście jest ASP.NET MVC. Chodziło mi o rozdzielenie kodu ASP.NET od strony (HTML), a nie o same frameworki.

ASP.NET MVC realizuje klasyczne webowe MVC - rozdziela całkowicie (oprócz fragmentów widoku) kod logiki "biznesowej" od kodu strony HTML-owej. I do tego nie używa tych kontrolek i masz pełną kontrolę nad wynikowym kodem HTML. ASP.NET MVC 2 to druga wersja ASP.NET MVC ;-)

ASP.NET WebForms też rozdziela kod logiki od wyglądu strony przez pliki "code behind" + opiera się na fajnym zdarzeniowym programowaniu. Kontrolki, zdarzenia, wrzucanie na formę, jak przy tworzeniu aplikacji okienkowej. Piekielnie wygodne i produktywne, kod HTML jaki z tego wychodzi jest obrzydliwy.

javauser napisał(a)

Wydajesz się obeznany w open source'wych technologiach. Po co ci ASP.NET? Wszystko co da się zrobić w ASP.NET da się zrobić w innych technologiach. Jednoznacznej odpowiedzi na pytanie co jest lepsze nikt Ci nie udzieli - to jest kwestia preferencji i wiedzy.

Prawda. Nie da się jednoznacznie powiedzieć "to i to jest lepsze". Musisz spojrzeć i się przekonać, może ci się spodoba. Bardzo długo byłem programistą PHP, a ASP.NET MVC jest dla mnie bardzo ciekawe i fajne.

javauser napisał(a)

Jeśli decydujesz czego się nauczyć w celach zarobkowych to słuszna jest prawda: Duże korporacje wybierają jako platformę Micro$oft.

Albo Oracl€ (kiedyś $un) i jego Java. Kiedyś była tutaj dyskusja na ten temat.

Strona samar.pl jest napisana prawdopodobnie w Javie (J2EE). Przynajmniej tak bym wnioskował po różnych klasach samarapp.eus.panels - takie Javowe nazewnictwo ;-)

0

Mam wrażenie że aplikacje w ASP.NET są sporo szybsze. Nie wiem jak z bezpieczeństwem i z odpornością na błędy.

0
Ktos napisał(a)

Strona samar.pl jest napisana prawdopodobnie w Javie (J2EE). Przynajmniej tak bym wnioskował po różnych klasach samarapp.eus.panels - takie Javowe nazewnictwo ;-)

Antwort-Header
Date Mon, 07 Jun 2010 1329 GMT
Server Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8g mod_perl/2.0.4 Perl/v5.10.0
Expires Thu, 19 Nov 1981 0800 GMT

Bynajmniej Apache uzywa Modul mod_perl z tego co widac.

0
Ktos napisał(a)

opiera się na fajnym zdarzeniowym programowaniu

Fajne, póki nie trzeba debugować. ;)

feniulas napisał(a)

Mam wrażenie że aplikacje w ASP.NET są sporo szybsze. Nie wiem jak z bezpieczeństwem i z odpornością na błędy.

To raczej zależy od programisty, nie technologii. Od niej zależy tylko jak łatwo/trudno coś wykonać.

0

Ja byłem zmuszony sytuacją micro$oftową :) w firmie (durna dyrekcja myśląca że M$ nie da im sie zawalić skoro płacą) i robię w .NET (WinForms) a ostatnio ASP.NET.
Chodzi o dostęp do danych a więc takie tam jak DataSet, DataGridView (GridView w ASP), itp.
I teraz zasadnicze pytanie do użytkowników PHP: jak w PHP dobijać się do baz danych - mam na mysli np. taką siatkę danych gdzie mogę np. edytować i zapisać rekord nie przeładowując strony? Czy to jakies karkolomne zadanie (w PHP) czy też są jakieś standardowe (nie komercyjne) kontrolki jak ów GridView w ASP?
Mówiąc "nie komercyjne" nie myślę tez o samodzielnie wykonanych.
A druga rzecz - czy taki kod PHP da się debugować?

Aha. W sprawie ładowania danych: w ASP.NET (jak i w ogólnie w NET) mamy do dyspozycji klasy z przestrzeni System.Data takie jak DataSet, DataTable, DataRelation, itp. Można do takiej DataTable załadowac dane np z tabeli bazy danych, połaczyć taki obiekt z siatką (GridView) i wykonywać różne czynności na takim obiekcie od czasu do czasu wywołując zapis do bazy. Mechanizmy same sobie generują odpowiednie (sparametryzowane od strony .NET) kwerendy SELECT, UPDATE, DELETE, INSERT. Tak więc programista (poza szczególnymi przypadkami) nie wnika nawet w sposób komunikacji między swoim programem a bazą danych. Czy w PHP też można się oprzeć o takie mechanizmy?

0

Ja już wolę PHP niż te pieprzone DataSety. Fuj...

@Demonical - waż słowa, bo póki co, to w PHP więcej dzieci pisze.

0
somekind napisał(a)

Ja już wolę PHP niż te pieprzone DataSety. Fuj...

@Demonical - waż słowa, bo póki co, to w PHP więcej dzieci pisze.

Tylko dlatego, że powstała masa tutoriali, książek i jeszcze nie wiem czego do PHPa. Jest popularny, to dzieci w nim piszą, generalnie nie widzę takiego problemu jak "dzieci w nim piszą" - chyba, że chodzi o strefę zleceń... Ale nie o tym temat.

0

Ale w "komponentach" jakiś problem widocznie widzisz. Dziwi mnie bardzo, jeśli faktycznie do PHP nie ma jakiś bibliotek realizujących wspólne elementy GUI. Przecież to zwiększa produktywność programisty, a co za tym idzie zmniejsza koszt systemu.

0

Tak sobie czytam i co chwila łapię się za głowę...
Nie można tak po prostu porównywać PHP z ASP.NET ponieważ PHP to język (do którego możemy zastosować framework, z puli wielu frameworków) a ASP.NET to środowisko, na które składa się wiele języków i wiele bibliotek. Najwyżej, można by pokusić się o porównywanie jakiegoś frameworka PHP z ASP.NET, albo porównywać składowe technologii.

Powiedziawszy powyższe:
To prawda że framework .NET posiada wiele przydatnych klas między innymi do przezentacji/edycji danych. Frameworki PHP również zazwyczaj posiadają klasy wspomagające pracę na danych. Programista o średniej znajomości .NET i średniej znajomości PHP (mam na myśli jakiś framework, a nie sam język) stworzy szybciej taką "Data driven" aplikację w .NET niż w PHP - przede wszystkim dlatego, że klasy .NET mają już swoje domyślne GUI.
Ale: widzieliście kiedyś kod HTML/JS jaki jest wygenerowany przez takie gotowe kontrolki .NET? - masakra, a zabawa zaczyna się dopiero kiedy aplikacja ma "chodzić" nie tylko na jedynej słusznej przeglądarce IE - powodzenia w debugowaniu tego "czegoś" co .NET tak sprawnie wygenerował (dla "opornych": mam na myśli kod HTML/JS).
Ktoś wspomniał o mechanizmie MasterPage w .NET, tak, tak super sprawa ze w .NET 2.0 (czyli od 2005) MS pomyślał i wprowadził... tyle że w PHP "include" można zrobić od kiedy? MVC w .NET? również super sprawa - .NET 3.5 (czyli 2008) a PHP od kiedy?

BTW. Żeby nie było - ja w pracy używam .NET - ale to nie moja decyzja :).
EDIT: Co do popularności PHP i wykorzystania języka do dużych projektów: http://developers.facebook.com/blog/post/358

0
marcinsvr napisał(a)

Nie można tak po prostu porównywać PHP z ASP.NET ponieważ PHP to język (do którego możemy zastosować framework, z puli wielu frameworków) a ASP.NET to środowisko, na które składa się wiele języków i wiele bibliotek.

Wydaje mi się, że PHP to cała technologia do tworzenia aplikacji WWW, podobnie jak ASP.NET. Poza tym, że jest językiem programowania posiada swoją bibliotekę funkcji, zapewnia obsługę baz danych, żądań i odpowiedzi HTTP, ciasteczek, emulację sesji... czyli to co ASP.NET Nie jest tak?

Ale: widzieliście kiedyś kod HTML/JS jaki jest wygenerowany przez takie gotowe kontrolki .NET? - masakra,

Kod jest koszmarny, ale użytkownika ani klienta to nie obchodzi. Pierwszemu ma się fajnie klikać, drugi chce funkcjonalności szybko i tanio. Rozmiar markupu w aplikacjach intranetowych nie ma większego znaczenia.
Nie ma się co dziwić - albo rapid albo porządnie.

a zabawa zaczyna się dopiero kiedy aplikacja ma "chodzić" nie tylko na jedynej słusznej przeglądarce IE

Z tym mają problem chyba tylko ludzie, którzy liczą, że bez znajomości XHTML, JS i przede wszystkim CSS można stworzyć aplikację www. A dobrze napisać CSS trzeba dla każdej strony bez względu na technologię w jakiej powstała.

MVC w .NET? również super sprawa - .NET 3.5 (czyli 2008) a PHP od kiedy?

Nie w 2008, tylko w kwietniu 2009. Ale co z tego, że M$ swojego oficjalnego zrobił wtedy? Były przecież już wcześniej inne frameworki.

0
somekind napisał(a)

Wydaje mi się, że PHP to cała technologia do tworzenia aplikacji WWW, podobnie jak ASP.NET. Poza tym, że jest językiem programowania posiada swoją bibliotekę funkcji, zapewnia obsługę baz danych, żądań i odpowiedzi HTTP, ciasteczek, emulację sesji... czyli to co ASP.NET Nie jest tak?

ASP.NET - http://pl.wikipedia.org/wiki/ASP.NET
PHP - http://pl.wikipedia.org/wiki/PHP

Szanowny kolego, radzę najpierw sprawdzać a dopiero potem pisać co Ci się wydaje :).

0

Czyli PHP nie ma żadnych wbudowanych funkcji? Nie ma też np. tablic superglobalnych $_POST, $_GET, $_SESSION, $_COOKIE?
W takim razie dziękuję za wyjaśnienie, nie mam więcej pytań.

BTW. Ten temat już dawno powinien być w Off-topic...

0
somekind napisał(a)

Czyli PHP nie ma żadnych wbudowanych funkcji? Nie ma też np. tablic superglobalnych $_POST, $_GET, $_SESSION, $_COOKIE?
W takim razie dziękuję za wyjaśnienie, nie mam więcej pytań.

BTW. Ten temat już dawno powinien być w Off-topic...

No cóż, jeżeli dla Ciebie szanowny Kolego wyznacznikiem są funkcje wbudowane i tablice to aż się boję zapytać czym wg Ciebie jest np. C++ :)
Zgadzam się z punktem drugim, Off-topic.

0

Napisałeś, że nie można porównywać PHP z ASP.NET. Ja odpisałem, że można, bo są dla siebie konkurencyjne i zawierają wspólne mechanizmy wykorzystywane w aplikacjach WWW.
Podważ to, a nie robisz z siebie mędrca podając linki do Wikipedii. :D

0

Wolisz rzeźbić każdy widok danych oddzielnie niż skorzystać z mechanizmow? W .NET (nie ASP) robiłem sobie wlasny mechanizm, ktory działal mi bez durnego RAD (Rapid Application Destruction). Z wykorzystaniem owych DataSetow, adapterów itp. Przymierzałem się do PHP i Javy ale jakoś bez zapału i w konsekwencji bez skutku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1