Tag .Net

[C#] Array Spread 

จริงๆเรียกว่าลองมาทวนๆ JavaScript แล้วมีงงๆกับ Array Spread นิดหน่อย เลยลองดูจาก Doc จาก Spread syntax (…) – JavaScript | MDN (mozilla.org) สรุปแตก Element ข้างในออกมาให้ตัวย่อยสุด ตัวอย่างของ Javascript ก็ตาม ด้านล่างนี้เลย ดูมีประโยชน์ดี แล้ว C# มันมีไหม คำตอบเพิ่งมีตอนปีที่แล้วใน C#12 ครับ Pattern คล้ายกับของ JS เลย ใช้ตัว ตัวอย่างตามนี้เลย แล้วถ้ามาลองตัวอย่างที่ตัวอย่างใน Spread syntax…

[NET6] Error System.NotSupportedException: No data is available for encoding 874 …

.NET Core

หลังจากทดสอบ E2E Test เจอว่า Service ที่ Export Text File จะพบ Error เต็มๆว่า System.NotSupportedException: No data is available for encoding 874. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. สาเหตุ NET6 (Encoding Windows-874) Reference

[C#] ลองใช้งานตัว DebuggerDisplayAttribute

.NET Core

หลายครั้ง เราอยากดูค่าของ Property ต่างๆ ใน Object ที่สนใจ เมื่อก่อนเราต้องมาไล่ดูทีละตัว ซึ่งมันไม่สะดวกเลยครับ ตามรูปด้านล่างเลย หรือ ถ้า Advance ขึ้นมาหน่อยใช้วิธี Override ToString() เอาครับ ซึ่งมันตอบโจทย์ระดับนึง แต่ถ้าเราต้องการใช้ ToString() ในเคสอื่นๆหละมันไม่จะไปขัดกับตอนแรกที่ทำ เพื่อจะ Debug ครับ DebuggerDisplayAttribute พระเอกของเราครับ เจ้าตัว DebuggerDisplayAttribute เอามาช่วยให้เราดูค่าของ property ที่ใช้ประจำได้สะดวกขึ้น โดยเพิ่ม Attribute นี้ที่หัวของ Class และกำหนด Property + Expression ที่ต้องการแสดงครับ…

TCP + JSON บน Windows7 แล้ว JSON แหว่งง

.NET Core

วันนี้เจอเคสแปลกครับ น้องที่อยู่ Onsite แจ้งว่าตัว VSTO Office Add-ins ที่ Run บน Windows 7 เจอ Error ไม่สามารถ Deserialize JSON ได้ครับ สำหรับผมเอ๊ะ มันมีอะไรผิดไปหว่า จำได้ว่าตอน Migrate .NET6 ตัว ตัว VSTO Office AddIns ผมได้ทดสอบบน Windows 8.1 / 10 / 11 เรียบร้อยตาม Environment ที่ลูกค้าแจ้งสามารถทำงานได้ครับ แต่ทว่าดันมีเคสเกิดขึ้นกับ Windows…

บันทึกการแก้ไขปัญหา SonarQube Analysis .NET(C#) ทำงานนานน

ต้นเรื่อง ตอนแรกไปซนดู Monitor ของ VM แต่ละตัว แล้วพบว่าทำไม VM ที่มี SonarQube Docker ใช้ CPU / RAM นานปิดปกติ เลยเข้าไปตรวจสอบข้างใน SonarQube พบว่า background analysis task ทำงานนานมากกก ทำไมมันใช้เวลาเพิ่มขึ้นขนาดนั้นนนนนน สิ่งที่แรกสงสัยเลย Size ของ Code ที่เข้ามาเพิ่มครับ ตัว SonarQube มันจะใช้เวลาตรวจตามไฟล์ใหม่ที่ส่งเข้ามาครับ ตอนนี้ลองเข้าไปที่ Measures > Size > New Lines โอ้วเจอไฟล์แปลกที่…

dockerfile สำหรับ .NET6 + DB2

จดไว้ก่อน เพราะ documentation ของ DB2 ในส่วนนี้มันไม่ค่อยดีครับ และตัว Library ของมันเอง มีความ Unique ด้วยตัวมันเองอีกครับ ใช้ alpine ไม่ได้นะ DB2 Environment Full dockerfile ตรง Reference บางอันดูไม่เกี่ยวกับ .NET นะ แต่มันมีอธิบายเรื่อง DB2 ผมเลยเอามา Reference ด้วยนะ Reference

dockerfile สำหรับ jenkins ที่ build . NET Core3 / .NET6

หลังจากวันเจ้าตาก65 ตัดสินใจ Merge Code เข้าเส้นหลักไปแล้ว ขอแปะ dockerfile ของ Jenkins ที่ใช้ build .NET Core3 และ .NET6 เผื่อต้องกลับหาใหม่ครับ .NET Core3 .NET6 อ๋อ หลายคนอาจจะสงสัยว่าทำไมไม่ใช้งาน Multi-Stage Build ไปเลย Storage มันไม่พอครับ เวลามีหลายๆ Build เพราะตอน Build มัน Pull Image Build ลงมาชุดนึง + Restore Dependency เลยทำ multi-Stage…

Rebuild COM Interop DLL ด้วย VS2022 เจอ Runtime Error 3001 แต่ VS2019 ทำงานได้

ช่วงนี้ผมได้กลับไปช่วยดู DLL เก่าตัวนึงครับ ทำไว้มานาน 8-9 ปีแล้ว โดยเจ้า DLL ตัวนี้ เป็นตัว COM Interop ที่เอาไปให้ตัว VB6 ไป Reference ใช้งาน หน้าที่มันจะประมาณว่า VB6 ส่งคำสั่งไปให้ .NET มันทำงาน แล้วตัว .NET ได้ Result มาเป็น DataTable แล้วหน้าที่ตัว COM Interop ทำหน้าที่แปลง DataTable มาเป็น VB6 Recordset ครับ //อันนี้เดี๋ยวว่างๆจะเขียน Blog อีกอธิบายการทำงานอีกที…