ช่วงนี้โดนไซโคหนัก เพื่อนก็ชวน บรรยายสรรพคุณซะเยอะแยะ ชีวิตจะง่ายขึ้น มีอนาคต บลาๆๆ
HR ที่โทรมา 90% ถามว่าเขียน .NET เป็นไหมจ๊ะ? อยากได้ด่วนๆๆๆ จ่ายเยอะน้าจ๊ะ โหยเจ๊ อยากไปอยู่ แต่ตูเขียน PHP เฟ้ย .NET อะเคยเขียนสัมัยเรียนนู้น รู้แหละว่ามันแจ่ม แต่ให้ตูเขียนตอนนี้ก็รื้อเยอะเลย 55
ไม่ตั้งกระทู้เพื่อล่อเป้านะ คือแค่อยากจะถามเพื่อนพี่น้องใน Blognone ว่ามีใครอยู่สาย .NET บ้าง มันโอเคไหม คือผมเขียน PHP มาตลอด ไม่รู้หรอกหรอกว่าโลก .NET มันสวยงามอย่างไร มาแชร์ให้ฟังหน่อย
ถ้าอายุยังน้อยอยากทำอะไรก็ทำครับ
ถ้าพูดถึงความไว และง่ายในการเขียนเนี่ย .NET เขียนง่ายกว่า PHP เยอะ ลูกเล่นเยอะมาก แถมเดี๋ยวนี้ Dynamic สุดๆ เครื่องมือที่ Support มีเยอะมากมาย จนหาตรงไหนก็เจอ
FREE FOR ALL
ผมไม่เคยใช้ PHP จริงจังนะครับ แต่ก็เคยอ่านหนังสือเล่นๆ เคยเขียนจริงแต่ .NET และเนื่องจากยังเป็นแค่เด็ก ม.4 จึงไม่เคยเขียนเพื่อทำงานจริงจัง เคยแต่เขียนช่วนงานของพ่อแม่เท่านั้น
การเขียน ASP.NET นั้น มีลักษณะต่างจาก PHP อย่างมหาศาล อะไรที่เคยทำตรงไปตรงมาใน PHP กลับต้องอ้อมๆไปใน ASP.NET แต่ถ้าเข้าใจแล้ว มันก็จะสะดวก และใช้งานง่ายกว่ามาก
นอกจากนี้ ASP.NET แบบ Web Form ก็เสนอแนวคิดอย่างเรื่องที่การที่หน้า ต่างๆมีลักษณะ เป็น stateๆ มี อีเวนต์ต่างๆ บางครั้งมันก็ดูจะสะดวกกว่า PHP ที่มันออโต้ให้เยอะ แต่ไม่ตรงไปตรงมาเหมือน PHP ลักษณะที่ออกมาทำให้การทำงานของเว็บไซท์มีลักษณะคล้ายกับ โมเดล Event Based แบบ Windows Application อย่างมาก ทั้งที่จริงๆแล้วโมเดลการทำงาน ของ Website ดั้งเดิมแตกต่างกว่ากันมาก
สำหรับ MVC Form ของ ASP.NET ก็สามารถใช้งานได้ง่ายตรงไปตรงมาดี ไม่ออโต้มากแบบ Web Form ยืดหยุ่นแต่ก็สะดวกในเวลาเดียวกัน แต่ผมเข้าใจว่ายังมีผู้ใช้งาน ASP.NET MVC จริงจังไม่มากเหมือน Web Form
อีกเรื่องที่สำคัญคือ (ใน IIS) PHP จะรันโค้ด ก็ต่อเมื่อเซิร์ฟเวอร์เรียกไฟล์ที่ตรงกับเงื่อนไขบางอย่างเช่น เป็น *.php แต่ ASP.NET มี Scope การทำงานในระดับ Server คือ มันทำงานตลอดแม้ จะไม่มี request เข้า หรือ request นั้น ไม่ได้เรียกไฟล์ ที่เป็น .aspx .ashx ทำให้สร้างคลาส HttpModule ได้ ซึ่งผมรู้สึกว่าสำคัญมาก
อีกเรื่องที่ผมถือว่าดีที่สุด คือ ตัว syntax ที่ C# ดูหรูหราสวยงามกว่าเยอะ ดูมีความ OOP มากกว่า (ผมไม่ได้บอกว่า PHP ไม่เป็น OOP นะ แต่ผมต้องการบอกว่า OOP ของ C# ดูสวยงามกว่า) ทุกสิ่งต้องดำรงในคลาส ทุกคลาสต้องดำรงใน namespace ไม่มีอะไรที่โผล่มาอย่างเลื่อนลอย ทำให้เขียนโค้ดได้เป็นระเบียบรัดกุมกว่า ย้อนกลับมาอ่านโค้ดสะดวกกว่า
PHP and C# are different ... PHP is a fully scripting language while C# is absolute not scripting. They has its own pro and cons.
I heard that ASP.NET app deployment is PITA in reality. while PHP you can just copy the script over to the server and it works right away.
PS. I'm C++ :)
การติดตั้งตัวเว็บของ ASP.NET กับ PHP ไม่ได้ต่างกันหรอกครับ ก็ใช้วิธีก๊อบปี้ไฟล์ไปวางตำแหน่งที่ควรอยู่เหมือนกันครับ โดยตัวผมเองเวลาติดตั้งให้ลูกค้าก็จะใช้วิธี Zip โฟลเดอร์ไว้ก่อน แล้วค่อยไปวางแทนที่ไฟล์เดิม
สำหรับผมการติดตั้งเว็บมันไม่มีอะไรยุ่งยากหรอกครับ จะยุ่งก็ตอนจะอัพเกรด DB ของลูกค้ายังไงซะมากกว่า
โหน้องเก่งมาก อนาคตวงการเรามาแล้ว
ม.4 พี่ยังกะโหลกะลา เล่น Counter อยู่เลย
ยอมรับครับว่า .NET สำหรับเมืองไทยในขณะนี้ไปได้สวย
เพราะจะหา Admin ติดตั้ง Windows ง่ายกว่า Linux เยอะ
แต่ขณะนี้เรากำลังเข้าสู่ AEC การแข่งขันกำลังจะสูงขึ้น รวมทั้ง วันที่ 1 มกราคมนี้ ค่าแรงขั้นต่ำจะเพิ่มขึ้นเป็น 300 บาท ทั่วประเทศ SME เล็ก ๆ จะหายไปมาก หรือ ขนาดเล็กลงมาก ๆ อาจเหลือแค่ Home Office การเปลี่ยนแปลงย่อมเกิดขึ้น ...เพื่อความอยู่รอด
ผมแนะนำ เน้นพัฒนา Web App แบบ RIA : Rich Internet Application ด้วย HTML5, CSS3 & JavaScript ทั้ง On-Line และ Off-Line ในฝั่ง Client เพื่อทำงานแบบ Cross-Platform ได้ทั้งบน SmartPhone, Tablet และ Desktop สามารถแทน Java - XML UI บน Android, Objective-C บน iOS และ XAML หรือ WinForms บน Windows ได้อย่าง ...สบาย ๆ ครับ
ส่วนการพัฒนาบนฝั่ง Server ควรเป็น Business Logic เท่านั้น ควรเน้น Java EE หรือ C++ Concurrency เพื่อรองรับ MPP : Massively Parallel Processor ในการยกระดับธุรกิจไทย แข่งขันกับตลาดโลกให้ได้ เข้าสู่ระบบ Cloud Computing จริง ๆ ไม่ใช่ แค่ Cloud แบบ Hosting เท่านั้น ครับ
สำหรับ PHP, JSP, Servlet & ASPT.NET มันควรเป็นแค่ Event / Control หรือ สื่อกลางระหว่าง View หรือ Web App กับ Module หรือ Business Logic เท่านั้น ไม่ใช่ทำทุกอย่าง ในโลกแห่ง e-Commerce มันต้องใช้ Server ช่วยกันหลาย ๆ เครื่อง และ ควรกระจายไปหลาย ภูมิภาค เพื่อกระจายข้อมูล สำหรับ Backup / Mirror ลด Data Transfer ลดความเสี่ยงจากภัยพิบัติต่าง ๆ ซึ่ง Linux เป็นต้นทุนที่ประหยัดกว่า และ สามารถ Customize ได้ตามต้องการ ...ได้ง่ายกว่า
.NET ต้องบอกว่าเป็น Web App แบบ ASP.NET หรือ Desktop App ด้วยครับ ความแตกต่างมันต่างกันหลักๆ
แต่ปัญหาที่ผมเขียน PHP คือในตอนเริ่มต้นแรกๆคือ ASP [สมัยนั้นยังเป็น ASP ธรรมดา ไม่ใช่ ASP.NET] หา Host ยากครับ เลยเริ่มหัดที่ PHP เลย และหลังจากนั้นพอ ASP.NET ออก ยิ่งหา Host ยากเข้าไปใหญ่ ... ก็เลยจับ PHP มาตลอด
เคยลอง ASP.NET ด้วย C# แค่ Local ที่เครื่องตัวเอง ... เมื่อนานมาแล้ว แต่สนับสนุนให้ศึกษาครับ
เพราะเครื่องมือปัจจุบันมันเอื้อกว่าแต่ก่อนมาก สมัยก่อน Visual Studio Express, MSSQL Express ไม่มี มีแต่ตัวเสียตังส์ ตอนนี้ลอง Load มาใช้ก็โอเคดี ... [แต่ใช้สำหรับ Desktop App นะ, Web App นี่ทำด้วย PHP จนติดไปแล้ว]
ตอบจากมุมมอง sysadmin ...
เขียนง่ายครับ แต่จะทำให้รับ load ได้เยอะๆนี่ลืมไปได้เลย (ยกเว้นจะรวยจัด ใช้เงินแก้ปัญหา)
ทำไมถึงคิดว่า .NET รับ Load ได้น้อย(ที่ Hardware เท่ากัน)ครับ
ผมใช้ asp.net mvc ทำ website www.unigang.com เป็น web การศึกษา ปกติจะมีผู้เข้าชมประมาณ 45k - 50k uip , pv 140k - 170k server ก็ไม่ได้หรูหราอะไร intel quad core ram 8 gb
ถ้าพูดถึง load เยอะๆ วันประกาศผลเข้ามหาวิทยาลัย 7 พ.ค. 2012 มีผู้เข้าชม 122k uip , pv 580 k
และในวันนั้นผมทำระบบค้นหาข้อมูลผู้ได้รับการคัดเลือกเข้ามหาวิทยาลัย ไม่ใช่แค่เข้ามาอ่านเฉยๆ ผมว่ามันก็ตอบโจทย์ผมได้แล้วนะครับ มันคงขึ้นอยู่กับความถนัดส่วนบุคคล ถ้าว่ากันในตามปกติแล้ว code ที่ compile แล้วย่อมเร็วกว่า code ที่ยังไม่ได้ compile ครับ แต่เรื่องความเร็วมันคงมีปัจจัยอีกเยอะแยะเข้ามาเกี่ยวข้อง
ส่วนหนึ่งเพราะ MVC ด้วยแหละครับ
ถ้า Old school แบบ Web Forms นี่ผมว่าเหนื่อยกว่าจะทำให้รองรับ Load ได้เท่านี้
ใช้ ASP.NET ชีวิตมันก็ง่ายขึ้นนะเธอ แต่ผมเขียนทั้งสองภาษาหนักพอกันครับ ง่ายไปคนละแบบ ก็ยังชอบ ASP.NET อยู่ดี มัน Debug ง๊ายง่าย
ง่ายในการพัฒนา เข้าใจง่าย ลูกค้าชอบ เป็นที่ต้องการในตลาด ... แต่กิน Resource และไม่ค่อย flexible เท่า PHP กับ Java เขียนแล้วต้องรันบน Windows เท่านั้น ต้องใช้ IIS เท่านั้น ต้อง ... เท่านั้น (อีกมากมาย)
อันนี้เถียงเลยทดสอบผ่าน xps4 server บน Linux มาแล้ว ทำงานเร็วกว่าบน Windows อีก
คำตอบของข้า คือ ประกาศิต
Tools พลังสูง, Dev ง่าย สร้างงานได้เร็วกว่า (เมื่อเทียบกับ Java)
ข้อสำคัญคือเข้ากับ IE ได้ดีเป็นปี่เป็นขลุ่ย เหมาะกับการเขียนงานให้ Enterprise ที่ยึดติดกับ IE เป็นหลัก
ข้อเสียก็มีอยู่คือความง่ายของมัน แฝงไว้ด้วย overhead เยอะ ตัวอย่างเช่นการทำ Ajax ด้วย AjaxControlToolkit กับการเขียน Ajax เอง ความเร็วต่างกันมหาศาล ทำให้เมื่อขยาย scale ของ app ให้รองรับผู้ใช้เยอะขึ้นจะเป็นอะไรที่น่าปวดหัวมาก (แล้วตามมาด้วยวิธีที่คุณ lancaster บอกคือใช้เงินแก้ปัญหาด้วยกันอัด HW เข้าไปเยอะๆ)
หลักๆก็ประมาณนี้ ส่วนตัวผมว่าเป็นภาษาที่ควรรู้และทำเป็นในระดับหนึ่งติดตัวไว้ครับ หางานง่าย
จริงหราาาา
ปวดหัวกับมันจะตายไอ้เจ้า AjaxControlToolKit เนี่ย พออัดสคริปต์ไปเยอะๆ event เต็มหน้า control เป็นร้อย นี่ง่อยครับ เปิดหลายหน้าสคริปต์ค้าง ได้ข้อมูลผิดทำงานผิดเพียบ ยิ่งขยายยิ่งเน่า T T แต่มาทางนี้แล้วก็ลำบากต่อไป
ผมหมายถึงเขียน Ajax เองมันทำงานได้เร็ว + scalable กว่าใช้ AjaxControlToolkit น่ะครับ
อาจจะเขียนไม่เคลียร์ไปหน่อยครับ
จริงๆแล้วผมชอบเขียน ajax ด้วยตนเองมากกว่า สะดวกกว่า ควบคุมได้เต็มที่กว่า
ใช้ปกติเลยครับ ไม่เอา Ajax ล่ะ ไม่งั้นง่อย
คำตอบของข้า คือ ประกาศิต
มันเลือกใช้เครื่องมือได้ครับ
คิดว่าอันไหนไม่ดีก็เลือกใช้สิ่งที่ดีกว่า
ใช้ jQuery หรือ อะไรก็ได้ (ผมใช้ jQuery ตลอด :D )
ใช้เงินแก้ปัญหานี่คิดกันไปเองมากกว่า
และเดี๋ยวนี้มันไม่ได้เข้ากับ IE โดยเฉพาะนะ
(ถ้า visual studio รุ่นแรกๆน่ะใช่เวลากด Debug มันจะเข้า IE ตลอด เซ็งมาก )
เว็บจะรองรับ web browser ตัวไหน หรือจะรองรับหมด มันอยู่ที่โปรแกรมเมอร์ เขียนยังไงมากกว่า
ทำเถอะครับ จะได้ไม่เป็นภาระลูกหลาน
โอกาสได้เงินดีกว่า PHP แน่ PHP รับจ็อบเสริมดีกว่าครับถ้าเป็นอยู่แล้ว
PHP งานง่ายๆมันเข้ามาเยอะครับ
.NET งานส่วนใหญ่ค่อนข้างมั่นคงนะ
ทุกวันนี้ผมทำแต่ .NET มา 6-7 ปี มันไม่ยากอะไรมากหรอกครับ Tool (Visual Studio) มันทำให้ชีวิตง่ายขึ้นเยอะ
แต่จะแนะนำว่าเป็นทุกภาษา ทุกแพลตฟอร์ม ดีสุดละ ฮ่าๆ
ให้ผมไปทำ android ios bb php java ผมก็ทำได้นะ
Senior .NET มาตอบแล้ว ภาระลูกหลานหรอครับ ไม่รู้จะเป็นหรือเปล่า เพราะต้องหาภรรยาก่อน 55
ตอนเขียน ASP.NET ครั้งแรก : โอ้โห โลกเรามีของแบบนี้ด้วยหรอนี้ เหมือนเด็กเจอของเล่นใหม่ ยิ่งเสพยิ่งสนุกและหมกหมุน
.NET มันดีอย่างตรงที่ว่าเขียนด้วยภาษาได้หลายภาษา แต่ผมถนัด VB.NET (เพราะผมเริ่มมาจาก VB6 VBA)
ฟังก์ชันบางอย่างผมเขียนเองไม่ไหว หรือซับซ้อนเกินไปต้อง ให้คนที่เก่งกว่าเขียนให้ (ส่วนใหญ่จะเป็น C#) ก็ยังสามารถมาใช้ร่วมกันได้
สำหรับ Web Forms เป็นอะไรที่ใช้ง่ายดีครับ แต่ทำอะไรซับซ้อนได้ยาก
แต่ถ้าเป็น MVC 3 อันนี้ในส่วนของ View แทบจะไม่ต่างจาก HTML Code เลย ซึ่งเวลาทำงาน ผมแบ่งหน้าที่ให้คนที่ออกแบบหน้าตา ที่เป็น HTML ทำส่วน View ได้เลย โดยสอนวิธีเขียนเพิ่มนิดหน่อย ไม่ต้องเรียนรู้ภาษา VB.NET หรือ C# เลย ก็สะดวกดีครับ
และธุรกิจส่วนใหญ่ที่เจอมา จะนิยม ASP.NET กันซะมากครับ เพราะ PHP เค้าบอกว่ามันดูไม่ค่อยปลอดภัย ตรงนี้ผมก็สงสัยว่ามันไม่ปลอดภัยยังไง เพราะผมไม่ได้เขียน PHP เลยไม่ทราบ แต่ก็เออ ออ ห่อหมกตามลูกค้านั่นแหละครับ ลูกค้าคือพระเจ้า ฮ่า ๆ อีกอย่างก็ในเมื่อเป็น .NET อยู่แล้วผมจะไปเถียง ก็ไม่ได้ประโยชน์อะไร
PHP ในเบื้องต้นทำให้ปลอดภัยได้ด้วยการใช้ Framework ครับ ส่วนขั้นสูงกว่านั้นก็ขึ้นอยู่ความเทพของคนเขียนล้วนๆครับ
แต่ถ้าเขียนแบบ From Scratch นี้ช่องโหว่เพียบแน่นอน ต่อให้เทพแค่ไหนก็ตาาม 55
สุดท้าย .net ก็จะเริ่มเข้าหาสามัญด้วย MVC ครับ
ลืมไปหมดเลยว่า control คืออะไร viewstate
คืออะไร จำได้แต่ C# กับ HTML
โอโห ตัว lnw มาแชร์เพียบ เปิดกะลาเลยตู
ลองเล่นๆที่ w3schools แล้วชอบมาก ตอนกลางวันเขียน PHP ตกค่ำมาเล่น .NET+C# เหอะๆ
เขียนแบบ Web Page รู้สึกไม่ต่างกับ PHP เท่าไหร่ เข้าใจง่าย พอขยับมา MVC เริ่มงงๆบ้าง อารมณ์ว่าไม่คุ้นกับ Libraries ของมัน ต้องดู Ref เอา แต่มองแล้วเออ Syntax มันคลีนดีหวะ ทั้ง Razor และ C#
แต่ปัญหาคือในไทยส่วนใหญ่เขายังไม่ใช้ Razor นิ เขายังใช้ <% %> อยู่เนอะ รวมไปถึงเขียนแบบ Web Form ด้วย ว่าแล้วก็หยิบหนังสือสมัยเรียนมาดูสักหน่อย 55
Razor ในทีมผมก็ยังนับว่าเป็นอะไรที่ใหม่มาก ๆ เหมือนกัน Dev ส่วนใหญ่ก็ถนัดแต่ Web Forms
วันนี้จะไปเข้าเทรน MVC 4 กับทาง Microsoft เนี่ยครับ ไปกันทั้งทีมเลย
กลับกันแฮะ ผมทำ ASP.NET มาหลายปี พอมีโอกาสได้มาจับ Yii+Bootstap ของฝั่ง PHP แทบจะลืม ASP.NET ไปเลยครับ งานหลายอย่างง่ายชึ้นเยอะ (แต่ถ้าให้เขียน PHP โดยไม่ใช้ Framework คงไม่เอาด้วย) ส่วนตัวแล้ว ASP.NET มีดีที่ Tools ครับ ส่วน ASP.NET MVC+Razor เป็นอะไรที่เยี่ยมมากครับ
ถ้าได้ตาม ของใหม่ๆ อย่าง .NET Framework 3.5
LINQ นี้ทำให้ลืม For ที่เวลาจะหาค่าบางอย่างใน Array ไปเลย
var q = from p in list
where p == 100
select p;
ใช้แล้วติดงอมแงม ถึงขึ้นไม่อยากต่อ DB ยี้ห้ออื่น เพราะมันใช้ LINQ to SQL ไม่ได้ Y_Y
พอ .NET Framework 4.0
parallel for ไอ้ลูปที่หนักๆ วนทำงานแล้วมันช้า จัดไป ไว้เหมือนโกหก ฮาๆๆ
ตอนเรียนทำโปรเจคจบ php แต่ได้มีโอกาสมาทำงานด้าน .NET ครับ
ตอนแรกอ่ะชอบ php มากกว่า แต่พอได้ทำ .NET ไปนาน ๆ เลิกแตะ php ไปเลย มันเยี่ยมกว่าจริง ๆ (แต่ก็อยู่ที่ลักษณะของงานด้วยครับ) เรียนรู้ไว้หลาย ๆ ภาษาไม่เสียหาย คนอื่นทำได้เราก็ต้องทำได้สิครับ :)
ในมุมมองคนจ้างoutsource จ้างงานหรือฟรีแลนซ์
ผมจะจ้างคนเขียนphp เดี๋ยวนี้phpหมดครับ ไม่ว่าจะเว็บapp, wordpress, joomla, magento, หรือแอพหรือเกมที่รันผ่านfacebook apiต่างๆก็ต้องPHPหมด