ควรใช้ 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.