Category dotnet

[.NET] ประกาศให้โลกรู้ว่า Method นี้ Class นั้น Obsolete ตกยุคแล้ว !!!

Update 2024-12-10จาก Code เล็กๆ เมื่อวันเวลาผ่านไป มันก็เติบโตขึ้น ผ่านการตัดต่อพันธุกรรมมาอย่างโชกโชน พร้อมกับภาระหน้าที่อันยิ่งใหญ่ แต่บาง Class บาง Method มันไม่ตอบโจทย์ทางธุรกิจแล้ว มันควรจะถูกกำจัดไปซะ แต่ Code มันบางส่วนมันใช้อยู่ เราจะทำอย่างไร เพื่อให้ทีม Develop ที่พัฒนาด้วยกัน เปลี่ยนไปเรียกใช้ Class หรือ Method ใหม่แทน !!! ทางแรก เราอาจจะประกาศแจ้งให้ในทีมทราบ แต่บางครั้งอาจจะมีหลงลืมบ้าง เพื่อป้องกันปัญหาระยะยาวทำแบบ Java ดีกว่า ตัว Java มันมีบอกว่า Code ส่วนไหนที่เลิกใช้ (deprecated) ไปแล้วครับ โดยในตัว…

[C#] ทำไม int / int แล้วไม่มีทศนิยมหละ

พอดีผมได้ Port Code ในส่วน Business Logic อันนึงจาก VB6 มาเป็ C# แทน เพราะดูแล้วเขียนใหม่น่าจะรีด Performance ได้ดีกว่าครับ หลังจากผมใช้เวลาไปประมาณ 1 เดือน ในการยก Code ขึ้นมา Complile ผ่านนะ แต่ Run แล้ว ประกอบกับ UnitTest แล้วผลลัพธ์ผิด พอลอง Debug เข้าไปดูแล้วพบว่า C# int หาร int ได้ 0 VB6 ได้ค่าทศนิยมมาครับ ถึงตอนนี้เราต้องไปดูที่ C# Specification ครับ…

[C#] Pass By ?

Blog ตอนที่แล้ว ผมได้กล่าวสรุปไปแล้ว ว่าภาษา Java มีการส่งข้อมูล Pass by Value อย่างเดียว คราวนี้มาอีกภาษาที่ผมใช้ในการทำงานบ้าง C# จากโลกของ .NOT เฮ้ยย .NET ครับ  ซึ่งผมได้เขียน Code โดยปรับจาก Java ในบทความก่อน ดังนี้ ครับ namespace TestCSharpPassby { class Program { public static void Main(string[] args) { Company company = new…

[.NET] Set Visual Studio ให้ Break All Error

ถ้าใครเคยใช้พวก Feature อย่าง VB6 (เก่าไปหน่อย) มันมี Feature นึง ที่มันเจ๋งมากครับ ในมุมของผม “Break All Error” ถ้า Debug Code แล้ว Error อะไร มันมาชี้ไปบรรทัดที่มีข้อผิดพลาดให้ครับ กลับมาที่ฝั่งของ .Net บ้าง ตัว Visual Studio ตอนแรกจะไม่เปิดให้ทำครับ เพราะ อยากให้เขียน try – catch ให้ เรียบร้อยมากกว่าครับ แต่ถ้าต้องการใช้จริงๆ สามารถเปิดได้ครับ โดยมีวิธีการ ดังนี้ แล้ว Common Language…

[Nunit] เริ่มต้น Test กับ Tools ตัวใหม่

.NET Core

ช่วงหยุดยาว 4 วันตามธนาคาร 16-17-18-19 เดือนกรกฏาคม ปี 59 ผมก็ไม่ได้ไปไหนหรอก อยู่บ้าน เผางานเหมือนเดิมครับ แม้ว่า Blog ตอนก่อนหน้าจะบอกว่า Project จบแล้ว แต่งานยังเหลือครับ หรือที่เรียกว่า End-Phrase (จำเค้ามานะ เดี๋ยวปีหน้าถ้าได้ต่อ โท จะมา Update ใหม่) โดยวันนี้ผมใช้ Test Tools ตัวใหม่ ปกติผมใช้ตัว JUnit ถ้าเป็นฝั่ง Java แต่ถ้าเป็นฟาก .Net ใช้ตัว Test ที่ Build-in มาให้ของ Visual…

[.Net] เซมารู ช๊อกกา เอา Java มาเขียน DOT NET กัน Go! Go! Let’s Go! Rider

จริงๆน่าจะมีหลายๆคน Review แล้วมั้ง สำหรับผมอยากลองของใหม่ๆ เพราะกำลังเขียน Blog ตอนใหม่ที่ต้องใช้ C# อยู่ครับ ผมเลย ลง Rider  ซะเลย พอได้ยินชื่อทำไมนึกถึง คาเมนไรเดอร์ ไม่รู้ 5555 Semaru Shocker!! Akuma no gundan ….. Go! Go! Let’s Go! IntelliJ Rider สำหรับตัว Rider เป็น IDE ที่พัฒนาโดย jetbrains ครับ หลายคนอาจจะไม่รู้จักกัน แต่ถ้าพุดถึง IDE IntelliJ ของฝั่ง Java ที่ทำให้หลายคนลบ Eclipse ทิ้ง และส่วนเสริม MS…

String .Equals() vs ==

two pigeon perched on white track light + equal

พอดีเมื่อวันพฤหัสก่อน เห็นน้องที่ทำงานใช้ Operator == ในการตรวจสอบว่า String เป็นอันเดียวกันไหม แต่ผมเห็นแล้วรู้สึกแปลกๆ มันควรใช้ Method Equals() มากกว่าครับ ใน Blog ตอนนี้ผมแสดงความแตกต่างของ .Equals() กับ == โดยผมยกตัวอย่างเฉพาะในภาษา Java และ C# ที่ผมใช้งานหลักอยู่ครับ – JAVA – C# จาก Code ทั้ง 2 แบบ เราจะเห็นความแตกต่างกันของ String นะครับ (ตามตัวอย่างของ C# และ Java นะครับ)…

[.NET] ปัญหาราวๆ กับตัวเลขจอมแสบ

หากได้ทำงานเกี่ยวกับระบบด้วยการเงินแล้วเนี่ย ตัวเลขสำคัญมากนะครับ ปัญหาของผมเกิดจากการพัฒนาระบบงานบน .NET ด้วย C# แล้วต้องไปเทียบตัวเลขกับ ระบบงานที่เป็น VB6 แล้วปรากฏว่า มันหายไป 0.01 เลขปริศนาที่หายไป แต่ฝ่ายบัญชีไม่ยอมมมมมม ถ้าหายไปสัก 50 ล้าน มันยังหาได้ง่ายกว่าเลย แล้วใครหละที่เป็นโจร ? จริงแล้วมันเป็นปัญหาที่สะสมมานานตั้งแต่ของ VB6 ที่มีการปัดทศนิยมเศษ 5 แปลกๆ ทำให้ทีมที่ทำระบบเดิมในยุคนั้นมีการ Custom Function ขึ้นมาแก้ปัญหาจุจิกนี้ โดยเฉพาะครับ ซึ่งมีแนวคิดว่าเจอ 5 ปัดขึ้น สำหรับแนวคิดนี้นิยมใช้ในการบัญชี การเงินครับ หลังจากดู Legacy Code เรามาดูอัลกอริทึมที่ VB6…

[C#] พัฒนาระบบได้ โดยไม่จำเป็นต้องลง DevExpress

DevExpress เป็น Tools ที่ช่วยให้การพัฒนาฝั่ง UI ง่ายๆครับ แต่มันแพง ถ้าทีมเรามี Dev กันหลายๆคน จำเป็นไหมที่ต้องลง DevExpress หมดทุกเครื่อง คำตอบ คือ ไม่จำเป็นครับ (ไม่ใช่ให้ไปลงเถื่อนนะครับ) แต่เราสามารถแก้ไขปรับเปลี่ยนนิดหน่อย เพื่อให้ Dev คนอื่นๆที่ไม่ได้ต้องมาแก้ UI เช่น จัดการกับ Business Logic หรือ จัดการกับ Database สามารถทำงานได้ครับ โดยการแก้ไฟล์ licenses.licx ให้เป็นไฟล์เปล่าๆ ใน Project Main ของเราครับ

ลองวัดดวง Upgrade จาก Windows 8.1 ไปเป็น Windows 10

หลังจากที่ผมได้ใช้ Windows แท้ 5555 หลังจากใช้เถื่อนเพื่อการศึกษา พอมีข่าว Windows 10 ผมคิดว่าจะรอให้มีคนใช้ไปสักพักก่อนแล้วค่อย Upgrade แต่ดันน้องของผมดันกด Update ให้ 5555 มันก็เลยเป็นที่มาของ Blog ตอนนี้ครับ หลังจาก Upgrade มีอะไรที่ดีขึ้น หรือมีอะไรที่แย่ลง ลองมาดูกันครับ เริ่มต้นด้วยส่วนที่แย่ๆ กันก่อน โปรแกรมในกลุ่มยุค VBุ6 (ไม่รู้จะถีบไปให้ใช้ .NET หรือป่าว) มีปัญหากับภาษาไทย บางครั้งแสดง เป็นภาษาต่างด้าว โปรแกรมทำงานได้ช้าลงชัดเจนครับ ไม่แน่ใจว่าตัว Windows 10 มี Process อะไรที่มาครอบทำให้ App เก่ารุ่นพ่ออย่าง VB6…