ควรใช้ PHP หรือ ASP.NET เมื่อใด [ปิด]


46

ฉันได้ทำงานอย่างกว้างขวางในการพัฒนาเว็บแอปพลิเคชันโดยใช้ PHP และ ASP.NET แต่หนึ่งในคำถามที่ฉันถามลูกค้าอย่างต่อเนื่องคือการก้าวไปข้างหน้ากับเว็บไซต์ php หรือเว็บไซต์ asp.net

ดังนั้นสิ่งแรกที่นึกถึงคือการตอบคำถามเช่นนี้:

PHP เป็นโอเพ่นซอร์สและ ASP.NET มาจาก Microsoft

โดยปกติหลังจากสิ่งที่กล่าวว่าลูกค้ามีหน้าตาเปล่า ๆ เห็นได้ชัดว่าความจริงที่ว่าหนึ่งเป็นโอเพนซอร์สและอื่น ๆ ที่ไม่ได้ทำให้พวกเขากลัว และด้วยเหตุผลที่ดีเพราะเมื่อฉันได้ยินครั้งแรกมันไม่ได้บอกอะไรมากมาย

ฉันรู้จากการทำงานกับทั้งคู่ว่าแต่ละคนมีความแตกต่างกันเมื่อมาถึงการพัฒนาเว็บไซต์

คำถามของฉันคือความแตกต่างระหว่าง ASP.NET และ PHP เท่าที่

  1. คุณสมบัติ
  2. ความปลอดภัย
  3. Extendability
  4. กรอบ
  5. เวลาในการพัฒนาโดยเฉลี่ย

ฉันกำลังพยายามรวบรวมรายการของข้อเท็จจริงเพื่อให้สามารถเปรียบเทียบกับลูกค้าเพื่อให้ตัวเลือกที่มีข้อมูลบนแพลตฟอร์มการพัฒนาที่เหมาะสมสามารถทำได้


7
ฉันใช้ทั้งสองอย่างฉันคิดว่า Visual Studio และ ASP.NET นั้นแข็งแกร่งกว่านี้มาก IDE คนเดียวชนะฉันได้มากกว่า
The Muffin Man

7
PHP มักจะมีจุดอ่อนสำหรับฉันเพราะมันเป็น lanaguage การเขียนโปรแกรมเว็บครั้งแรกของฉัน ... แต่หลังจาก 2 ปีของ ASP.NET C # ไม่มีทางที่ฉันจะกลับไป .... Visual Studio IDE นั้นยอดเยี่ยม!
Dal

ใช่ฉันหวังว่า php จะมี IDE หลักบางอย่าง แต่ฉันเดาว่าจะฆ่าวิญญาณของ PHP ที่เป็นโอเพนซอร์ส ปัจจัยที่จะต้องพิจารณาอย่างแน่นอน
Edward

2
6. มีค่าใช้จ่ายตลอดอายุโครงการ
VirtuosiMedia

@VirtuosiMedia อีกปัจจัยสำคัญที่ฉันไม่ได้พูดถึง
Edward

คำตอบ:


39

รูปแบบและบริการ , การรักษาความปลอดภัยและExtendabilityเป็นไปได้มากขึ้นหรือน้อยเหมือนกัน สิ่งที่สามารถทำได้ด้วย PHP สามารถทำได้ด้วย ASP.NET

Frameworks - อีกครั้งเมื่อมันมาถึงคุณสมบัติของ frameworks มันจะมากหรือน้อยเหมือนกัน อย่างไรก็ตามการมีความเจาะจงมากกว่าภาษานั้นคุณจะต้องพิจารณา:

  • สิ่งที่นักพัฒนาของคุณพึงพอใจที่สุด ความรู้ = ประสิทธิภาพ
  • ในแต่ละโปรเจคโดยเฟรมเวิร์กหนึ่งในหนึ่งภาษาอาจเหมาะกับธรรมชาติมากกว่าเฟรมเวิร์กอื่น การมีความเฉพาะเจาะจงมากกว่าภาษานั้นหมายถึงกรอบงานไม่สามารถช่วยได้ แต่จะเหมาะกับงานบางอย่างและไม่เหมาะกับคนอื่น

เวลาในการพัฒนาโดยเฉลี่ย - เวลาในการพัฒนาโดยเฉลี่ยของคุณสำหรับโครงการขนาดเล็กอาจจะดีกว่าด้วย PHP เนื่องจากโฮสต์เว็บนั้นง่ายต่อการค้นหาและพัฒนาเครื่องเพื่อให้ติดตั้งได้ง่าย อย่างไรก็ตามหากมีสิ่งใดที่ใหญ่กว่าตราบใดที่คุณมี devs ที่ดีหรือมีการตั้งค่าไว้อย่างใดอย่างหนึ่งก็อาจจะเป็นการล้าง


ข้อควรพิจารณาหลักที่คุณควรคำนึงถึงคือเทคโนโลยีใดที่ลูกค้าของคุณต้องการเชื่อมโยงกับการดำเนินธุรกิจในอนาคต ไม่ผสมกันได้อย่างง่ายดาย (กับ) อื่น ๆ พวกเขาอาจมีนักพัฒนาที่คุ้นเคยกับอย่างใดอย่างหนึ่ง

  • หากลูกค้าของคุณชอบแนวคิดที่จะเชื่อมต่อกับ Microsoft ให้ไปที่ASP.NET ลูกค้าบางรายจะมีความสะดวกสบายมากขึ้นเกี่ยวกับการสนับสนุนในอนาคตอัพเกรดและอื่น ๆ ด้วย MS

  • หากพวกเขาชอบความคิดของโอเพนซอร์สและเซิร์ฟเวอร์ลินุกซ์ไปกับPHP สิ่งนี้อาจเป็นที่สนใจของลูกค้าบางคนเนื่องจากความสามารถในการถ่ายโอนของโฮสต์เว็บซอฟต์แวร์ฟรี ฯลฯ

และสุดท้ายถ้าพวกเขาไม่สนใจแล้วไปกับสิ่งที่คุณมีความสะดวกสบายมากที่สุดด้วย ไม่มีอะไรมากไปกว่านั้น


8
+1 สำหรับ "การพิจารณาหลักที่คุณควรทำคือเทคโนโลยีใดที่สแต็คไคลเอ็นต์ของคุณต้องการเชื่อมโยงกับการก้าวไปข้างหน้า"
ระบบดาวน์

การแยกออกจากการรักษาความปลอดภัยไม่มีทรัพยากรที่จะดูว่าแต่ละแพลตฟอร์มมีประสิทธิภาพอย่างไร
Edward

3
@loyalpenguin - เป็นคำถามในตัวของมันเอง ฉันไม่แน่ใจว่าสิ่งที่คุณหมายถึงโดย "วิธีการที่แต่ละแพลตฟอร์มได้ดำเนินการ" แต่ถ้าคุณกำลังพูดถึงช่องโหว่ความปลอดภัยของแพลตฟอร์ม (ซึ่งเกือบจะได้รับการแก้ไขอย่างรวดเร็ว) นั่นคือสิ่งที่คุณกังวล ส่วนใหญ่แต่ละภาษาจะ "ปลอดภัย" เหมือนกับนักพัฒนาที่เขียนรหัส
นิโคล

จุดที่ดีเพียงแค่คำถามสุดท้ายที่ฉันจะออกจากคำถามที่มีความปลอดภัยมากขึ้นแล้ว?
Edward

@loyalpenguin เมื่อฉันบอกว่ามันเป็นคำถามที่แตกต่างฉันหมายถึงคำถามคือ "ปัญหาด้านความปลอดภัยของแพลตฟอร์มเป็นสาเหตุสำคัญที่ทำให้เกิดความกังวลในเว็บแอปหรือไม่ถ้าใช่ฉันจะวิเคราะห์ได้อย่างไรว่ามีประวัติที่ดีกว่าในแพลตฟอร์มต่างๆเช่น PHP, ASP.NET, Java, Ruby on Rails เป็นต้น " สำหรับฉันฉันไม่แน่ใจว่าจริง ๆ แล้วเป็นสาเหตุใหญ่สำหรับความกังวล
นิโคล

29

เพียงเพื่อให้พื้นหลังเกี่ยวกับสิ่งที่ฉันอ้างอิงคำตอบของฉันฉันได้ทำการพัฒนา PHP อย่างมืออาชีพสำหรับ 6 ปีฉันได้เล่นกับ ASP.NET MVC ประมาณ 3-4 เดือนล่าสุดและฉันได้ทำ C # การเขียนโปรแกรมประมาณตราบเท่าที่การเขียนโปรแกรม PHP

สำหรับฉันนี่เป็นอาร์กิวเมนต์ PHP vs C # มากกว่า PHP vs ASP.NET หนึ่ง

คุณสมบัติ / ความสามารถในการขยาย
ฉันคิดว่า ASP.NET ชนะที่นี่และนี่เป็นเพราะความสามารถในการใช้ภาษาเช่น C # C # เป็นภาษาที่ดีกว่า PHP ด้วยการสนับสนุน OO ฉันยังเป็นคนที่ชอบภาษาที่พิมพ์แบบคงที่ (แม้แต่คิดกับ C # 4.0 ฉันเชื่อว่าคุณสามารถทำตัวแปรที่พิมพ์แบบไดนามิก) สิ่งเดียวที่ PHP มีมากกว่า C # รวมถึงคุณสมบัติทางภาษาคือพารามิเตอร์ที่เป็นตัวเลือก แต่นั่นเป็นอีกสิ่งที่เพิ่มเข้ามาใน C # 4.0 (ไม่แน่ใจว่ามันใช้งานได้ดีเท่าที่ฉันยังไม่ได้ลอง)

ความปลอดภัย
ฉันอาจจะบอกว่ามันเป็นการล้างระหว่างทั้งสอง ฉันคิดว่าทั้งคู่มีฟังก์ชั่นการใช้งานเพื่อช่วยในเรื่องความปลอดภัย แต่ท้ายที่สุดแล้วมันก็เป็นหน้าที่ของโปรแกรมเมอร์ที่จะทำให้แอพพลิเคชั่นของพวกเขาปลอดภัย

กรอบงาน
PHP ดูเหมือนว่าจะมีเฟรมเวิร์กหลักจำนวนมาก (CakePHP, Codeigniter, Symfony, Zend Framework) และเฟรมเวิร์กขนาดเล็กกว่า ASP.NET มาก ASP.NET มีเฟรมเวิร์กหลัก 2 ตัวจาก Microsoft, WebForms (ชิ้นส่วนของอึ) และ ASP.NET MVC (เหตุผลที่ฉันเริ่มเข้าสู่การพัฒนา ASP.NET) ในขณะที่ PHP มีเฟรมเวิร์กเพิ่มขึ้นฉันพบว่าเฟรมเวิร์ก ASP.NET MVC 3 นั้นดีกว่าเฟรมเวิร์ก PHP ใด ๆ

เวลาในการพัฒนาโดยเฉลี่ย
ฉันคิดว่าสำหรับโครงการขนาดเล็กเวลาในการพัฒนาจะดีขึ้นมากใน PHP อย่างไรก็ตามเมื่อโครงการของคุณเติบโตในขนาด C # จะปรับขนาดได้ดีขึ้นในเรื่องนี้

ค่าใช้จ่าย
บางอย่างที่ควรนำมาเป็นค่าใช้จ่าย PHP ลงมือชนะในส่วนนี้ ในขณะที่คุณสามารถเรียกใช้ ASP.NET บน Mono ใน Linux ได้ แต่ก็มีปัญหาของตัวเอง

หากคุณกำลังทำโครงการขนาดเล็กถึงขนาดกลางและ / หรือค่าใช้จ่ายเป็นปัจจัยหนึ่ง PHP ชนะรางวัล หากคุณกำลังทำโครงการขนาดใหญ่ฉันจะเลือก ASP.NET w / C # และ ASP.NET MVC


3
แบบฟอร์มบนเว็บมีประโยชน์อย่างไร ตัวอย่างเช่นการควบคุมจำนวนมากที่พร้อมใช้งานสำหรับการสร้างแอปพลิเคชันเว็บอย่างรวดเร็วเป็นข้อได้เปรียบในการขายลูกค้าของฉันบนเว็บไซต์
Edward

1
ฉันเห็นด้วยกับ @ryanzec WebForms ไม่ใช่เรื่องไร้สาระและทำได้ดีเช่นเดียวกับ ASP.NET MVC จากมุมมองที่แตกต่างกัน ฉันใช้กรอบ ASP.NET MVC ตั้งแต่ดูตัวอย่าง 2 เวอร์ชันแรกในสภาพแวดล้อมเชิงพาณิชย์ อีกทั้งฉันเคยใช้ WebForms ในช่วง 7 ปีที่ผ่านมา นอกจากนี้คุณไม่สามารถโต้แย้งค่าใช้จ่ายอีกต่อไปสำหรับ ASP.NET, Microsoft ให้เครื่องมือฟรีตอนนี้ดีกว่าสิ่งที่ PHP เสนอ นอกจากนี้ Microsoft กำลังจัดหา SQL Compact และ SQL Server รุ่นฟรี บุคคลที่สามที่โฮสต์สำหรับ. NET สามารถเทียบได้กับ Linux ในปัจจุบัน
Nickz

ในขณะที่ฉันจะยอมรับว่าค่าใช้จ่ายในการโฮสต์ ASP.NET ดีขึ้นฉันยังคงสามารถหา VPS LAMP Hosting ที่ถูกกว่าได้ง่ายกว่า VPS Windows โฮสติ้ง
ryanzec

นอกจากนี้จนถึงจุดที่เกี่ยวกับ WebForm การพูดว่าเป็นเรื่องไร้สาระอาจจะรุนแรงมันไม่ใช่แค่ถ้วยชาของฉัน มันเป็นความจริงที่คุณสามารถทำสิ่งต่าง ๆ ได้เร็วขึ้น แต่เมื่อคุณพยายามทำบางสิ่งนอกสิ่งที่ให้ไว้กับคุณจากส่วนประกอบหรือเมื่อคุณจะแก้ไขส่วนประกอบที่มีอยู่อย่างหนักมันจะยากขึ้นอย่างมาก อีกทั้งวิธีการที่ระบบทำงานร่วมกับการโพสต์และสิ่งต่าง ๆ ดูเหมือนว่าจะเป็นเรื่องที่ลำบากสำหรับฉันในการพัฒนาเว็บ ฉันชอบ ASP.NET MVC เพราะมันให้ตัวควบคุม 100% กับสิ่งที่ฉันสร้างขึ้นและเหมาะสำหรับการพัฒนาเว็บไซต์ในความคิดของฉัน
ryanzec

8

PHP vs ASP.NET เปรียบเสมือนการเปรียบเทียบแอปเปิ้ลและส้ม

PHP เป็นเฟรมเวิร์กที่เหมาะสมยิ่งขึ้นสำหรับโซลูชันขนาดเล็กและสตาร์ทอัพ PHP จะรันหรือ Linux, windows โดยไม่มีข้อกำหนดมากเกินไป Microsoft ASP.NET เป็นกรอบความแข็งแกร่งทางอุตสาหกรรมซึ่งมีทุกสิ่งที่คุณสามารถจินตนาการและอื่น ๆ อีกมากมาย ASP.NET เป็นคุณสมบัติที่มีสภาพแวดล้อมที่หลากหลายมาก หลายคนแย้ง ASP.NET ว่ามีราคาแพงซึ่งเป็นกรณีเมื่อไม่กี่ปีก่อน แต่ไม่อีกต่อไป เครื่องมือแรกนั้นฟรี (รุ่นด่วน) ตัวเลือกฐานข้อมูลนั้นฟรี (SQL Compact หรือ SQL Server 2005 หรือสูงกว่า Express) ซื้อโฮสติ้งตอนนี้ราคาถูกมากดังนั้นคำถามไม่ได้ดีไปกว่านี้ แต่สิ่งที่เหมาะสมกับโซลูชันของคุณ โดยส่วนตัวแล้วฉันชอบ ASP.NET แต่นั่นเป็นเพราะฉันทำงานในสภาพแวดล้อมขององค์กรที่ความยืดหยุ่นและความยืดหยุ่นเป็นสิ่งสำคัญมากดังนั้นโซลูชันจึงกำหนดกรอบงาน

สิ่งสำคัญอย่างหนึ่งคือภาษาใดที่คุณเก่งที่สุด นี่ควรเป็นปัจจัยสุดท้ายในการตัดสินใจ

หากเป้าหมายของคุณคือการโน้มน้าวใจลูกค้าแล้ว asp.net เป็นตัวเลือกที่ดีกว่า การสนับสนุนภาษาชื่อ บริษัท ใหญ่ทำให้ลูกค้ารู้สึกสะดวกสบาย ในกรณีนี้ตัวเลือกที่ดีที่สุดคือ (Microsoft) ASP.NET และ (Oracle) Java JSP

แก้ไข:คุณสมบัติที่หลากหลาย - ASP.NET มีทางเลือกสองทางในการสร้างเว็บไซต์ WebForms และวิธีการ MVC เนื่องจากนอกเหนือจาก. NET Framework คุณต้องใช้ฟีเจอร์ที่ทรงพลังเช่น WF (เวิร์กโฟลว์), DLR (Dynamic Language Runtime), Parallel Linq, Linq, การจัดเส้นทาง, การจัดการสถานะข้อมูลในรูปแบบต่างๆ: รายการ HTTPContext, ViewState, Runtime Cache, หน้า แคชเอาต์พุต, การใช้เซสชันสามประเภทที่ต่างกัน, InProc, State และ SQL Server ASP.NET ใช้รูปแบบความปลอดภัยต่าง ๆ เช่นผู้ให้บริการสมาชิกและผู้ให้บริการบทบาท ฉันไม่ต้องการใส่ PHP แต่ ASP.NET อยู่ในลีกอื่น


5
ฉันมักจะได้ยินว่าเป็นข้ออ้างว่า "Microsoft = แพง" ซึ่งเป็นเหตุผลที่ฉันเรียนรู้ PHP ก่อน แต่ฉันต้องยอมรับว่าไม่ใช่เรื่องจริงอีกต่อไป
Edward

ใช่สนามเด็กเล่นยังค่อนข้างตอนนี้มันยากที่จะรู้ว่าภาษาใดที่จะใช้ในวันนี้
Nickz

"กรอบความแข็งแกร่งทางอุตสาหกรรม" หมายถึงอะไร? "ทุกสิ่งที่คุณสามารถจินตนาการและอื่น ๆ "? "มีสภาพแวดล้อมที่หลากหลายเต็มไปด้วยคุณสมบัติ" ASP.NET เป็นสิ่งเหล่านี้อย่างไรในแบบที่ไม่ใช่ PHP? จนกว่าคุณจะอธิบายว่านี่เป็นเพียงภาษาโฆษณาของ Microsoft
นิโคล

เป้าหมายการออกแบบ - php เดิมเป็นหน้าแรกของส่วนตัวและได้รับการออกแบบมาเพื่อให้การสคริปต์เซิร์ฟเวอร์อย่างง่ายเป็นเรื่องง่าย asp.net ถูกสร้างขึ้นเพื่อแข่งขันกับจาวา ee เป็นโซลูชันระดับองค์กร php ได้หลอมรวมฟีเจอร์มากมายในช่วงหลายปีที่ผ่านมา แต่ฟีเจอร์นี้ "การแก้ไข" การทำลายล้างในภาษาที่ไม่สอดคล้องกันและความแปลกประหลาดของแพลตฟอร์ม ฉันใช้ php บ่อยครั้ง แต่เป็นและได้รับการออกแบบมาให้เป็นภาษาเว็บไม่ใช่แพลตฟอร์มสำหรับการเขียนโปรแกรมทั่วไป
bunglestink

6

เมื่อทำงานกับทั้งสองอย่างคุณรู้อยู่แล้วว่าคำตอบจะแตกต่างกันไปขึ้นอยู่กับปัญหาและลูกค้า ในความหมายทั่วไปมาก:

  • PHP เหมาะสำหรับโครงการที่ต้องใช้งบประมาณ ตัวอย่างเช่นคุณจะไม่ได้รับผลกระทบกับค่าธรรมเนียมใบอนุญาตฐานข้อมูลขนาดใหญ่
  • ASP.NET นั้นยอดเยี่ยมสำหรับโครงการที่ต้องการการสนับสนุนและวัฒนธรรมนักพัฒนาที่ Microsoft ให้ไว้

หากคุณกำลังรวบรวมรายการของข้อเท็จจริงสำหรับลูกค้าของคุณขึ้นอยู่กับสิ่งที่คุณรู้ งานวิจัยของคุณไม่ว่าการค้นพบของคุณจะลำเอียงแค่ไหน


8
มันทำให้ฉันรำคาญเมื่อ. Net ได้รับการเชื่อมโยงโดยอัตโนมัติกับ "ค่าธรรมเนียมใบอนุญาตฐานข้อมูลขนาดใหญ่" แน่นอนคุณต้องรู้ว่า. Net สามารถเชื่อมต่อกับ RDBMS ได้หลากหลายไม่เสียค่าใช้จ่ายและแน่นอนว่า PHP สามารถทำได้ฟรีและไม่ (และไม่ใช่ว่า Microsoft เป็น RDBMS ที่นิยมเพียงแห่งเดียวที่มีค่าธรรมเนียมใบอนุญาตจำนวนมาก)
quentin-starin

3
ไม่ต้องพูดถึงว่า SQL Server เวอร์ชัน Express และ Web มีค่าธรรมเนียมการออกใบอนุญาตที่น่าพอใจอย่างมาก (ฟรีในกรณี Express)
quentin-starin

ขออภัยไม่ได้หมายถึงการ irk MS ดูเหมือนว่าจะขายดีกว่าในฐานะสแต็คเต็มรูปแบบและฉันก็สมมติว่าเครื่องยนต์ DB ที่ใหญ่กว่า Express
Fred Wilson

1
ไม่ได้ถ่ายเป็นการส่วนตัวฉันแค่ดูเหมือนจะเห็นสมาคมที่ทำค่อนข้างบ่อย
quentin-starin

1
@loyalpenguin: จากประสบการณ์ของฉันมันเป็นเรื่องยากที่จะค้นหาเครื่องมือจัดเก็บข้อมูลที่ไม่ได้รับการสนับสนุนใน. Net ฉันไม่สามารถแสดงความคิดเห็นว่าสิ่งนี้เป็นจริงกับ PHP หรือไม่
quentin-starin

1

.net ควบคุมดีกว่าที่คุณสามารถหาได้ด้วยแพลตฟอร์ม PhP ดูที่ Infragistics เช่นอะไรคือสิ่งที่เทียบเท่าสำหรับโคมไฟ?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.