Kapan menggunakan PHP atau ASP.NET? [Tutup]

46

Saya telah bekerja secara luas dalam mengembangkan aplikasi web menggunakan PHP dan ASP.NET, tetapi salah satu pertanyaan yang selalu saya tanyakan kepada pelanggan adalah apakah akan maju dengan situs web php atau situs web asp.net.

Jadi tentu saja hal pertama yang terlintas dalam pikiran adalah menjawab pertanyaan seperti ini:

PHP adalah open-source dan ASP.NET dari Microsoft.

Biasanya setelah sesuatu seperti itu dikatakan pelanggan memiliki wajah kosong di sana. Rupanya fakta bahwa satu adalah open source dan yang lainnya tidak benar-benar mengganggu mereka. Dan untuk alasan yang baik, karena ketika saya pertama kali mendengarnya, itu tidak banyak memberi tahu saya.

Saya tahu dari bekerja dengan keduanya bahwa masing-masing memiliki perbedaan mereka ketika datang ke pengembangan situs web.

Pertanyaan saya adalah apa perbedaan antara ASP.NET dan PHP sejauh ini

  1. fitur
  2. Keamanan
  3. Dapat Diperpanjang
  4. Kerangka kerja
  5. Waktu Pengembangan Rata-rata

Saya mencoba menyusun daftar fakta untuk dapat dibandingkan dengan pelanggan sehingga pilihan berdasarkan informasi pada platform pengembangan yang tepat dapat dibuat.

Edward
sumber
7
Saya telah menggunakan keduanya, saya pikir Visual Studio dan ASP.NET jauh lebih kuat. IDE sendiri yang memenangkan hati saya.
The Muffin Man
7
PHP akan selalu memiliki titik lemah bagi saya karena itu adalah bahasa pemrograman web pertama saya ... tetapi setelah 2 tahun ASP.NET C # tidak ada cara saya bisa kembali .... Visual Studio IDE luar biasa!
Dal
Ya saya berharap php akan memiliki semacam IDE utama, tapi saya kira itu akan membunuh semangat PHP menjadi open source. Jelas faktor yang perlu dipertimbangkan.
Edward
2
6. Biaya selama masa proyek?
VirtuosiMedia
@VirtuosiMedia faktor penting lain yang tidak saya sebutkan.
Edward

Jawaban:

39

Fitur , Keamanan , dan Perluasan akan lebih kurang sama. Apa yang bisa dilakukan dengan PHP dapat dilakukan dengan ASP.NET.

Kerangka Kerja - Sekali lagi, ketika datang ke fitur kerangka kerja, itu akan kurang lebih sama. Namun, karena lebih spesifik daripada bahasa itu sendiri, Anda ingin mempertimbangkan:

  • Apa yang paling nyaman bagi pengembang Anda. Pengetahuan = efisiensi .
  • Pada basis proyek per proyek, satu kerangka kerja dalam satu bahasa mungkin lebih cocok secara alami daripada kerangka kerja dalam bahasa lain. Menjadi lebih spesifik daripada bahasa itu sendiri berarti suatu kerangka kerja tidak bisa membantu tetapi cocok untuk beberapa tugas dan kurang cocok untuk yang lain.

Waktu Pengembangan Rata-Rata - Waktu pengembangan rata-rata Anda untuk proyek yang sangat kecil mungkin lebih baik dengan PHP karena host web sangat mudah ditemukan dan mesin dev sangat mudah diatur. Namun, dengan apa pun yang lebih besar, selama Anda memiliki pengembang yang baik, atau sudah siap untuk keduanya, itu mungkin akan menjadi pencuci.


Pertimbangan utama yang harus Anda buat adalah tumpukan teknologi apa yang ingin dikaitkan oleh klien Anda untuk maju. Keduanya tidak tercampur dengan baik (mudah) dengan yang lain. Mereka mungkin memiliki pengembang yang akrab dengan satu atau yang lain.

  • Jika klien Anda menyukai gagasan terhubung ke Microsoft, maka pergi dengan ASP.NET. Beberapa klien akan lebih nyaman dengan dukungan di masa depan, peningkatan, dll. Dengan MS.

  • Jika mereka menyukai gagasan open source dan server Linux, gunakan PHP . Ini mungkin menarik bagi beberapa klien karena transferabilitas host web, perangkat lunak bebas, dll.

Dan terakhir, jika mereka tidak peduli, maka pergi dengan apa yang paling Anda sukai . Tidak banyak yang lebih dari itu.

Nicole
sumber
8
+1 untuk "Pertimbangan utama yang harus Anda buat adalah tumpukan teknologi apa yang ingin dikaitkan oleh klien Anda untuk maju."
Sistem Henti
percabangan keamanan tidak ada sumber daya untuk melihat kinerja setiap platform?
Edward
3
@loyalpenguin - itu adalah pertanyaan dalam dirinya sendiri. Saya tidak yakin apa yang Anda maksud dengan "bagaimana kinerja setiap platform", tetapi jika Anda berbicara tentang celah keamanan platform (yang hampir selalu cepat ditambal) itu adalah yang paling sedikit dari kekhawatiran Anda. Sebagian besar, setiap bahasa sama "aman" dengan pengembang yang menulis kode.
Nicole
Poin bagus. Hanya satu pertanyaan terakhir Bagaimana saya bisa keluar dari pertanyaan yang lebih aman?
Edward
@loyalpenguin ketika saya mengatakan itu adalah pertanyaan yang berbeda, maksud saya pertanyaannya adalah "Apakah masalah keamanan platform menjadi penyebab utama kekhawatiran dalam aplikasi web? Jika demikian, bagaimana cara menganalisis yang memiliki riwayat yang lebih baik di antara berbagai platform, seperti PHP, ASP.NET, Java, Ruby on Rails, dll? " Bagi saya, saya tidak begitu yakin bahwa itu sebenarnya adalah penyebab besar kekhawatiran.
Nicole
29

Hanya untuk memberikan latar belakang tentang apa yang mendasari jawaban saya, saya telah melakukan pengembangan PHP secara profesional selama 6+ tahun, saya telah bermain-main dengan ASP.NET MVC selama sekitar 3-4 bulan terakhir, dan saya telah melakukan C # pemrograman selama sekitar pemrograman PHP.

Bagi saya ini lebih merupakan argumen PHP vs C # daripada argumen PHP vs ASP.NET.

Fitur / Perpanjangan
Saya pikir ASP.NET menang di sini dan ini lebih karena kemampuan untuk menggunakan bahasa seperti C #. C # adalah bahasa yang jauh lebih baik daripada PHP yang mendukung OO. Saya juga orang yang lebih suka bahasa yang diketik secara statis (bahkan berpikir dengan C # 4.0, saya percaya bahwa Anda dapat melakukan variabel yang diketik secara dinamis). Satu-satunya hal yang dimiliki PHP lebih dari C # sejauh fitur bahasa adalah parameter opsional tetapi itu adalah hal lain yang telah ditambahkan dalam C # 4.0 (tidak yakin seberapa baik kerjanya karena saya belum mencobanya).

Keamanan
Saya mungkin akan mengatakan bahwa itu adalah mencuci antara keduanya. Saya pikir keduanya memiliki fungsionalitas untuk membantu keamanan, tetapi pada akhirnya tugas programmer untuk memastikan aplikasi mereka aman.

Kerangka Kerja
Yah PHP tampaknya memiliki kerangka kerja yang lebih utama (CakePHP, Codeigniter, Symfony, Zend Framework) dan banyak kerangka kerja lain yang lebih kecil dari ASP.NET. ASP.NET memiliki 2 kerangka kerja utama dari Microsoft, WebForms (sepotong omong kosong) dan ASP.NET MVC (alasan saya mulai masuk ke pengembangan ASP.NET). Sementara PHP memiliki lebih banyak kerangka kerja, saya menemukan bahwa kerangka kerja ASP.NET MVC 3 lebih baik daripada kerangka kerja PHP mana pun.

Waktu Pengembangan Rata-Rata
Saya pikir untuk proyek yang lebih kecil, waktu pengembangannya jauh lebih baik di PHP, tetapi seiring dengan bertambahnya ukuran proyek Anda, C # lebih baik dalam hal ini.

Biaya
Beberapa yang harus diangkat adalah biaya. PHP menang dengan mudah di depan ini. Meskipun Anda dapat menjalankan ASP.NET di Mono di Linux, ia datang dengan masalah sendiri.

Jika Anda melakukan proyek kecil hingga menengah dan / atau biaya merupakan faktor, PHP menang. Jika Anda melakukan proyek skala besar, saya akan memilih ASP.NET w / C # & ASP.NET MVC.

ryanzec
sumber
3
Formulir Web memang memiliki manfaat. Misalnya, ribuan kontrol siap pakai untuk membangun aplikasi web dengan cepat merupakan nilai tambah untuk menjual pelanggan saya di situs web.
Edward
1
Saya setuju dengan @ryanzec WebForms bukan omong kosong dan sebagus ASP.NET MVC dari perspektif yang berbeda. Saya telah menggunakan kerangka ASP.NET MVC sejak Pratinjau 2 dari versi pertama di lingkungan komersial. Saya juga telah menggunakan WebForms selama 7+ tahun terakhir. Terlebih lagi, Anda tidak dapat memperdebatkan biaya lagi untuk ASP.NET, Microsoft menyediakan alat gratis, sekarang itu lebih baik daripada yang ditawarkan PHP. Microsoft juga menyediakan versi gratis dari SQL Compact dan SQL Server. Hosting pihak ketiga untuk .NET dapat dibandingkan dengan Linux saat ini.
Nickz
Meskipun saya akan setuju bahwa biaya hosting ASP.NET telah menjadi lebih baik, saya masih dapat menemukan VPS LAMP Hosting yang lebih murah, jauh lebih mudah daripada VPS Windows hosting.
ryanzec
Juga to the point tentang WebForm, mengatakan itu omong kosong mungkin keras, itu hanya bukan cangkir teh saya. Memang benar Anda bisa mendapatkan hal-hal lebih cepat tetapi Anda setelah Anda mencoba melakukan sesuatu di luar apa yang disediakan untuk Anda dari komponen atau setelah Anda apa yang sangat memodifikasi komponen yang ada, itu secara eksponensial lebih sulit. Juga seluruh cara sistem bekerja dengan postback dan hal-hal sepertinya terlalu kikuk untuk pengembangan web. Saya lebih suka ASP.NET MVC karena memberi saya pengontrol 100% dari apa yang dibuat dan cocok untuk pengembangan web jauh lebih baik menurut saya.
ryanzec
8

PHP vs ASP.NET seperti membandingkan apel dan jeruk, ada yang ditargetkan untuk solusi yang berbeda.

PHP adalah kerangka kerja yang lebih cocok untuk skala kecil, solusi start-up. PHP akan berjalan atau Linux, windows tanpa persyaratan terlalu banyak. Microsoft ASP.NET adalah kerangka kekuatan industri, yang memiliki segala yang dapat Anda bayangkan dan banyak lagi. ASP.NET sangat kaya fitur lingkungan out-of-the-box. Banyak yang akan berpendapat ASP.NET itu mahal, yang merupakan kasus beberapa tahun yang lalu tetapi tidak lagi. Pertama alat ini gratis (edisi ekspres), opsi database gratis (SQL Compact atau SQL Server 2005 atau di atas Express). Beli Hosting sekarang sangat murah, jadi pertanyaannya bukan mana yang lebih baik tetapi apa yang cocok dengan solusi Anda. Secara pribadi saya lebih suka ASP.NET, tapi itu karena saya bekerja di lingkungan perusahaan di mana fleksibilitas dan skalabilitas sangat penting sehingga solusi menentukan kerangka kerja.

Satu hal yang sangat penting adalah bahasa apa yang paling Anda kuasai? Ini harus menjadi faktor terakhir dalam keputusan.

Jika tujuan Anda meyakinkan klien, maka asp.net adalah pilihan yang lebih baik. Nama perusahaan besar yang mendukung bahasa membuat klien merasa nyaman. Dalam hal ini opsi terbaik adalah (Microsoft) ASP.NET dan (Oracle) Java JSP.

EDIT: Kaya fitur - ASP.NET menyediakan dua alternatif untuk membangun situs web WebForms dan pendekatan MVC. Karena terpisah dari kerangka NET. Anda harus memiliki fitur yang sangat kuat misalnya WF (alur kerja), DLR (dynamic Language Runtime), Linq Paralel, Linq, perutean, berbagai bentuk manajemen status data: HTTPContext, ViewState, Runtime Cache, halaman cache output, tiga jenis implementasi sesi InProc, State dan SQL Server. ASP.NET menerapkan berbagai bentuk keamanan misalnya Penyedia Keanggotaan dan Penyedia Peran. Saya tidak ingin memasukkan PHP, tetapi ASP.NET berada di liga yang berbeda.

Nickz
sumber
5
Saya selalu mendengar itu sebagai alasan, bahwa "Microsoft = Mahal" itulah sebabnya saya belajar PHP terlebih dahulu. Tetapi saya harus setuju bahwa itu bukan masalahnya lagi.
Edward
Ya, lapangan bermainnya cukup merata sekarang, sulit untuk mengetahui bahasa yang digunakan hari ini.
Nickz
Apa sebenarnya yang dimaksud dengan "kerangka kekuatan industri" berarti ? "Segala sesuatu yang dapat Anda bayangkan dan lebih banyak lagi"? "Sangat kaya fitur lingkungan out-of-the-box"? Bagaimana ASP.NET hal-hal ini, dengan cara yang bukan PHP? Sampai Anda menjelaskannya, ini hanya bahasa periklanan Microsoft.
Nicole
tujuan desain - php awalnya berdiri untuk halaman rumah pribadi dan dirancang untuk membuat server sederhana scripting mudah. asp.net dibangun untuk bersaing dengan java sebagai solusi tingkat perusahaan. php telah mengasimilasi banyak fitur selama bertahun-tahun, tetapi "fitur penempelan" ini membusuk dalam ketidakkonsistenan bahasa dan keanehan platform. saya sering menggunakan php, tetapi itu dan dirancang untuk menjadi bahasa web, bukan platform pemrograman tujuan umum
bunglestink
6

Setelah bekerja secara ekstensif dengan keduanya, Anda sudah tahu bahwa jawabannya akan berbeda tergantung pada masalah dan klien. Dalam arti yang sangat umum:

  • PHP sangat bagus untuk proyek yang perlu dikerjakan dengan anggaran terbatas. Misalnya, Anda tidak akan terkena biaya lisensi database besar.
  • ASP.NET sangat bagus untuk proyek-proyek yang membutuhkan jenis dukungan dan budaya pengembang yang disediakan Microsoft.

Jika Anda menyusun daftar fakta untuk klien Anda, dasarkan pada apa yang Anda ketahui. Penelitian Anda, tidak peduli seberapa bias temuan Anda, tidak masalah untuk mendapatkan poin-poin Anda.

Fred Wilson
sumber
8
Ini agak mengganggu saya ketika. Net secara otomatis dikaitkan dengan "biaya lisensi database besar." Anda tentu harus tahu bahwa. Net dapat berinteraksi dengan cukup beragam RDBMS, gratis dan tidak, dan tentu saja PHP, gratis dan tidak (dan tidak seperti Microsoft adalah satu-satunya RDBMS yang populer dengan biaya lisensi besar).
quentin-starin
3
Belum lagi versi Express dan SQL Server Web memiliki biaya lisensi yang jauh lebih enak (gratis dalam kasus Express).
quentin-starin
Maaf, tidak dimaksudkan untuk irk. MS sepertinya menjual lebih baik sebagai setumpuk penuh dan saya mengasumsikan mesin DB lebih besar daripada Express.
Fred Wilson
1
Tidak tersinggung, saya hanya melihat asosiasi yang dibuat cukup sering.
quentin-starin
1
@loyalpenguin: Dalam pengalaman saya, jarang menemukan mesin penyimpanan yang tidak didukung di .Net. Saya tidak dapat berkomentar apakah ini benar dengan PHP atau tidak.
quentin-starin
1

Kontrol .net jauh lebih baik daripada apa yang dapat Anda temukan dengan platform PhP. Lihatlah Infragistics misalnya, apa yang setara dengan LAMP?

Totor
sumber