OKblog

ASP vs. PHP

Čtvrtek, 9. června 2005 19.59 Web

Tento článek je určen předevąím pro ty, co se jeątě nerozhodli, kterou z těchto dvou moľností si vybrat, ale můľe se hodit i těm zkuąenějąím, ovąem spíą jen pro přehled.

Teoretické srovnání

Předem připomenu, ľe ASP není skriptovací jazyk. Je to technologie (jako třeba .NET a jeho podmnoľiny VB.NET, C#.NET atd.). Stejně jako .NET můľete ASP psát ve více jazycích. Mezi dva nejpouľívanějąí patří VBScript (v tom píąu já a budu ho pouľívat ke srovnávání) a JScript (serverová obdoba klientského JScriptu, syntaxe je podobná Céčku a potaľmo i PHP).

Tohle je hlavní věc, proč mám ASP rád. Zastánci PHP tvrdí, ľe ASP funguje jen na serverech Microsoftu (IIS, PWS), ale není to pravda. Apache (pro Linux) má modul pro ASP. Zatím jsem jej ale nezkouąel. Otázka je, jak tam funguje.

Syntaxe

Podíváme se na jednoduchý příklad funkce IF. ASP:


Dim intA, intB
intA = 1
intB = 2
If intA = intB Then
Response.Write intA + intB
Else
Response.Write intA & „ se nerovná “ & intB
End If

A teď v PHP:


$a = 1;
$b = 2;
if ($a == $b) {
echo $a + $b;
}
else {
echo $a . „ se nerovná “ . $b;
}

Snad jsem to napsal správně :D Jistě, existují i jiné zápisy (i kratąí), ale pro srovnání to stačí. Na první pohled jde vidět, ľe v ASP se trochu více napíąete, ale zase získáte přehlednějąí kód. PHP je zase plné sloľených závorek a taky byste neměli zapomínat na středníky. ASP je tedy o něco tolerantnějąí.

Závěr

Samozřejmě nikomu ASP nenutím, je to jen pro demonstraci. Hlavně, prosím, nechoďte s argumenty typu: ASP je od Microsoftu, proto je na nic. Rozhodnutí je na vás.

předchozí další


Související články

Komentáře (25)

 
čtvrtek, 9. června 2005 21:21:01

Haha, mně tedy přijde (z těchto dvou příkladů) jednodušší PHP (dělám v PHP, ASP neznám). ;-)
Ale jde o dva druhy zápisu programování a programování samotného…

 
čtvrtek, 9. června 2005 21:56:03

Mě tedy příjde PHP také lepší. :)

 
pátek, 10. června 2005 14:41:59

Přijde vám jednodušší, protože děláte v PHP ;) Pro ASP jsem použil čistý kód se všemi náležitostmi jako je deklarování proměnných (Dim) a jejich fiktivní tipování (intX), protože v ASP jsou proměnné vždy netypové – slouží to k přehlednosti. Jediná věc, na kterou jsem zapomněl, je Option Explicit…

 
pátek, 10. června 2005 18:21:31

Sice jsem nikdy nic neprogramoval, ale to PHP mi přijde lepší. Vůbec nevím, co to v tom ASP píšeš, přijde mi to mnohem složitější než PHP

 
pátek, 10. června 2005 19:51:14

Acci: A umíš anglicky? Protože z toho se to dá dobře odvodit. Ono to PHP vypadá opticky jednodušeji. Navíc tenhle příklad není ještě moc složitý – představte si takové připojení k databázi a výpis údajů :D

 
pátek, 10. června 2005 22:34:25

xergic: Angličtina, to se jí? :))

 
pátek, 10. června 2005 23:37:07

Ondro, už jsem viděl Stopařova průvodce po galixii, je to super. Byl jsem v Praze v multi kině. Prostě bomba fiml. :) Pak pokecáme na Trill. ;)

 
sobota, 11. června 2005 10:29:30

Acci: Jo :]

 
čtvrtek, 23. června 2005 16:48:31

xergic: :-D to je taky jednoduche, neni na tom nic slozityho

 
čtvrtek, 30. června 2005 23:55:22

asp.net je špatné protože je od mrkvosoftu a jak je známo tak již zmíněná společnost neposkytuje žádné zdrojové kódy :( tudíš asp na Apache je sice možné, ale autor ho bez původních zdrojových kódů nemůže nikdy napsat tak dobře jako je v IIS. Navíc kdyby byl Mrkvosoft co k čemu tak do IIS přidá podporu PHP, které Open Source je.

 
pátek, 1. července 2005 14:52:54

um.Trip: Pravda, ale přece si nebude dělat konkurenci… Podle mě stačí použít reverzní inženýrink a cosi se z toh vytvořit dá. Je ale jasné, že to nikdy nebude jako originál.

 
neděle, 10. července 2005 22:28:44

ASP je supr, nejde tu přidat komentář ;-) Ne, ale fakt, zdá se na pohled složitější … třeba to není pravda, ale mě příjde PHP jednodušší, hlavně víc opticky oddělený.

 
neděle, 10. července 2005 22:29:56

Ha, komentář bez PHP kódu to pustilo … Nic proti, ale nejsem si jistej, jestli ten tvůj systém escapuje při zápisu do db… :/

 
neděle, 17. července 2005 21:31:49

tark: Ano, dá se říct, že escapuje… Z komentáře jsou odstraněny všechny HTML tagy i jakýkoli jiný kód mezi špičatými závorkami ;) Teda doufám…

 
sobota, 23. července 2005 15:31:38

Tohle IMHO neprojde:

<?php
$a = abc;
$d = def;
?>

 
sobota, 23. července 2005 15:32:29

Takže to fakt neescapuje.. Když jsem v tom příkladu měl stringy ohraničený apostrofama/uvozovkama, tak mi to házelo chybu…

 
úterý, 26. července 2005 15:02:04

mně přijde PHP mnohem lepší, stačí mnohem kratší a jednoduší kódy, dobrý příklad je odesílání mailu, ale hlavní výhoda je jednoduší ladění a to v tom smyslu, že PHP můžu ladit v pohodě na vlastním (lokálním) počítači, stačí mi apache, mysql a php (vše zahačo a pro všechny systémy), no teoreticky bych mohl ladit lokálně i ASP ale kdo má doma (hlavně legálně) WindowsServer 2003, MS IIS a MS SQL?

 
středa, 27. července 2005 10:23:11

Leni Reifestahl: A kde myslíš, že ladím ASP já? U babičky? :D Ne, fakt mám legální MS Win2k a IIS5.0, ale jako DB mám mySQL4.něco ;)
tark: Heh, díky za testování, tohle musím opravit ;)

 
neděle, 4. května 2008 19:55:14

no, musim rict ze kdysi davno sem delal hodne ve VB, a kdyz sem se dal na php, hned se mi php zdalo lepsi, zadny then, end if, jednoduchy slozeny zavorky a vedel sem vsechno co sem potreboval. ASP ani VB nemam rad protoze je od mrkvosoftu :) . Buh zehnej starymu dobrymu C++ :)

 
pátek, 27. března 2009 18:54:02

Ježiš marjá, to je reakce, nemám to rád, protože je to od Microsoftu. Kdo tohle napíše, je opravdu dle mého debil. Zkusil si někdo ze zde přítomných fandů *nixu a PHP napsat i jednoduchou CRUD aplikaci v PHP? Třeba tabulku co bude zobrazovat data z databáze, s možností mazání a editace. Tak začátečník v PHP si napíše do tabulky horu odkazů typu a href="delete.php?id=", chytřejší bude posílat serveru požadavky JavaScriptem. Ale přesto pořád musíte psát připojení k DB, while cyklus pro opakování řádků tabulky a pokud byste chtěli něco jako každej lichej řádek barevnej jinak než sudej, tak strávíte další hodinu psaním nesmyslné hory kódu. Tak tohle je PHP. A teď ASP.NET. Máte databázi. Natáhnete na stránku prvek SqlDataSource či ObjectDataSource, Visual Web Developer či Visual Studio si samo vygeneruje connectionString, pomocí intuitivního wizardu si vyberete, co vlastně chcete z které tabulky, vygenerujete si potřebnou WHERE klauzuli, INSERT, UPDATE a DELETE a klepnete na potvrdit. Pak šoupnete do stránky prvek GridView, nastavíte DataSourceID na váš ***DataSource, napíšete si potřebné ItemTemplate a AlternatingItemTemplate pro sudé a liché řádky, případně zaškrtnete pár políček a můžete spouštět. ASP.NET si samo napíše odkazy volající JavaScriptem server, veškeré mazání, updatování se odehrává samo, nemusíte napsat ani řádku kódu a vše to běží čtyřikrát rychleji než šneč&#2

 
pátek, 27. března 2009 18:55:27

Krindapána, tady vidíte schopnost PHP, Některé znaky to zakóduje do HEXa reprezentace a odešle jen půlku příspěvku. Oh thanks, great Microsoft, for ASP.NET!

 
pátek, 27. března 2009 21:09:33

[21] Haf: Jaké PHP? Tenhle blogovací systém je napsaný v ASP (ne ASP.NET!).

A pokud jde o tu chybu, je to tím, že ASP převádí při HTMLencode diakritiku a další znaky na hexa entity. Bohužel zrovna vyšel limit znaků v příspěvku doprostřed entity… Takže je spíš problém v tom, že příspěvěk je moc dlouhý…
O chybě vím a opravím ji v další verzi.

P.S.: Víte, že reagujete na téměř čtyři roky starý článek? ;)

 
neděle, 5. dubna 2009 11:38:37

[20] Haf: Hm, takze ASP.net = programovani pro debily? Jak Visual Basic? 90% kodu si naklikam? Ehm ehm.. Navic z hlediska ekonomickeho si dost dobre rozmyslim, zda utratim za HW (nenazrany win server) + SW (m$ Win server) utratim o par tisic nebo zda pouziju stare (bohate dostacujici) zelezo a prdnu na nej nejakou distribuci linuxu…

Navic, vice programatoru webovych aplikaci naleznes v radach php -> je jich vice -> jsou levnejsi, lepe dostupnejsi.

[21] Haf: Ztrapneni? Viz. post od xergice..

[22] xergic: sorry, nedalo mi to, musel jsem si zareagovat :P

 
pondělí, 3. srpna 2009 16:23:58

[23] Anonymous_: jako starej msckar samozrejme souhlasim, je nas mene a jsme lepe placeni;)

 
pátek, 21. srpna 2009 13:08:41

výše uvedená PHP konstrukce se dá zapsat i bez závorek takto:

$a = 1;
$b = 2;
if ($a == $b)
echo $a + $b;
else
echo $a . „ se nerovná “ . $b;


nebo v případě více výrazů:

if($a == $b):
echo $a;
echo $a + $a;
else:
echo $b;
echo $b + $b;
endif;

Takže to s tou větší nepřehledností nebude zase tak žhavě :)

K tomuto článku již není možné přidávat komentáře.