Category dotnet

[.NET] Merge DOTNET Test Report

จาก Blog ตอนก่อนที่ได้นำเสนอไปว่า ตัวคำสั่ง dotnet test มันมี Tool ช่วยสร้าง HTML Report นะ แต่ถ้าเราไปจะไล่เปิด Report ของแต่ละ DLL มาดู ไม่น่าจะไหวครับ ผมเลยมี Idea ทำ Utility เล็กๆ ขึ้นมาเพิ่มช่วย Merge Summary ของ Test Report หลายๆ ไฟล์มารวมกันครับ How to use Command Template -inputpath : path ที่รวม…

[.NET] DevExpress Grid เพิ่ม Built-In Check Column

วันนี้มาจดสิ่งที่ได้ Research มานะครับ เพราะได้ Requirement ว่า อยากให้ทำในลักษณะมี Check Box Column ครั้นจะเพิ่ม Property ใน DTO แต่มันใช้แค่ UI อย่างเดียว มันก็ดูไม่จำเป็น ผมเลยลองดูๆในตัว Winform Grid ของ DevExpress ว่ามันมี Feature นี้ไหม สรุปว่ามีครับ เปิดใช้งาน Built-In Check Column เปิดหน้า Grid ที่ต้องการเลือก Run Designer ครับ ตัว Visual Studio…

[.NET] ออก HTML Test Report ของ dotnet

หลายคนอาจจะเจอปัญหาว่าเขียน Test ไปแล้ว ทำรายงานสรุปอย่างไรให้มันใช้ต่อได้ง่าย และมีข้อมูลสรุป โดยถ้าในยุคก่อนๆ ถ้าจะสร้าง html report จาก CI/CD มันมีขั้นตอนยุ่งยาก ให้ Test Generate File ในรูปแบบ .trx / .xml จากนั้นหา Tool จาก GitHub – danielpalme/ReportGenerator มาแปลงให้เป็นรูปแบบ html ครับ ตัว dotnet เองก็มีนะ คำสั่ง dotnet test มันมีให้ระบุ Report เป็น html ด้วยครับ…

[.NET] Cannot load Counter Name data because an invalid index หรือ Category does not exist

หลังจากลองเอา Desktop App ที่เป็น Fluent Design ลองใช้งานจริง พอแค่เปิด App เท่านั้นแหละ เจอ Exception เลยครับ 5555 Cannot load Counter Name data because an invalid index หรือ Category does not exist ท้าวความถึงที่มาของปัญหา Error ตรงนี้มันเกิดมาจากไหนหละ หลังจากลองสีบจาก Code แล้วพบว่า มีการเก็บข้อมูล Performance ของ App นั้นเองครับ โดยมี…

[C#] Automate Control.InvokeRequired Code pattern

spaghetti code, DRY

Blog นี้จริงๆ แล้วเป็นการนำ Blog ที่เขียนค้างตอนปี 2014 (ช่วงที่อยู่กับ Project ที่ได้ แต่บ่น 555) มาเขียนต่อให้จบครับ แม้ว่าตอนนี้แนวทางการพัฒนาระบบเป็นแนว Web Application แล้ว แต่ยังมีงานบางส่วนที่ยังเป็น Desktop Application ครับ ปัญหา เวลาจัดการงานด้าน UI มักจะเจอปัญหาที่เจอประจำเลย InvalidOperationException Cross-thread operation not valid. Control accessed from a thread other than the thread it was…

[.NET] Add UI เข้ามา แต่ View Designer ไม่ได้

Visual Studio

สำหรับวันนี้เป็นสรุปแนวทางปัญหาที่น่าจะเจอกันสำหรับคนที่ทำ Desktop App / Windows Forms App บน Visual Studio กันครับ ว่าบางที่ Add UI เข้ามาเพิ่ม แล้วเจอปัญหาว่า ถ้าอยากจะแก้ UI ต้องลงทุน เข้าไปแก้ Code แต่ที่จะออกแบบผ่านตัว Designer ได้ครับ ปัญหา Add UI เข้ามา แต่ View Designer ไม่ได้ สาเหตุ การแก้ไข – วิธีที่ 1: Exclude ไฟล์ที่มีปัญหาออกไป แล้ว…

[POWERSHELL] เขียน Script ส่งเมล์กันครับ

multi coloured wooden mailbox mounted on door

เนื่องจาก Service เดิมที่ใช้ส่งเมล์แจ้งเตือนเรื่อง Build เกิดปัญหา เลยถือโอกาศปรับจากเดิมที่เป็น exe ของ vb6 ที่ไม่รองรับ Security ใหม่ๆ มาใช้เป็น PowerShell ให้ส่งเมล์ผ่าน Gmail แทนครับ ซึ่งมันเอาไปผูกกับ Jenkins ได้สะดวกด้วย เลยขอมาสรุปขั้นตอน และ Script ที่ใช้งาน เตรียมตัว Google Account ที่ทำ App Password เรียบร้อย ถ้าใครยังไม่ทำสามารถศึกษาจาก Blog ผมได้ครับ ติดตั้ง PowerShell ให้เรียบร้อย (ปกติมันลงมาพร้อมกับ Windows )…

[.NET] dotnet pack -c release เพิ่ม .pdb ลงในเข้าไปใน Package

blur close up code computer

จาก Blog ตอนก่อน ได้มีการอธิบายการทำ Nuget Package ใช้ในบริษัทกันไปครับ และสอน Debug Nuget Package ที่ Build ไปครับ หลังจากที่ Build Server ได้ Update Visual Studio เป็นเวอร์ชัน 16.10.3 พบว่าคำสั่ง dotnet pack มีปัญหาครับ ของเดิม เมื่อกำหนด –include-source –include-symbols แม้ว่า Build Dll แบบ Release ตัวไฟล์ Symbol (.pdb) และ…

[POWERSHELL] มาตรวจว่า Windows ที่ใช้งานอยู่รองรับ TPM ด้วย Power Shell

powershell

หลังจากเปิดตัว Windows 11 ไป หลายคนอาจจะเจอปัญหาว่า นอกจาก Tool ที่มีคนทำมาแล้วเนี่ย หากเราจะลองเขียนเอาบ้าง เพื่อเอาไปประยุกต์ เช่น เก็บข้อมูลเครื่อง Client มาวิเคราะห์ว่ารองรับการใช้งาน TPM ไหม (หากสนใจ เรื่อง TPM + Secured Boot ผมมีสรุปไว้ใน Blog นี้ครับ) ตัว Power Shell เป็นทางออกนึงที่ช่วยให้เราสามารถเขียน Script เพิ่มเติมลงไปด้วยครับ Power Shell สำหรับตรวจสอบว่า Windows ที่ใช้งานอยู่รองรับ TPM คำสั่ง get-tpm เป็น…

[DB2] เมื่อ DateTimeOffSet ของ C# ไม่สามารถจัดเก็บตรงๆได้ใน DB2

IBM DB2

พอดีได้เข้ามาชวยแก้ปัญหาของน้องในทีมครับ เนื่องจากไปเจอว่า Library ที่ตั้ง Schedule ของ C# มันต้องการ Parameter ที่เป็น DateTimeOffSet แต่ DataType นี้ มีนดันใช้งานได้กับ MS SQL Server เท่านั้นครับ กลับมาดูที่ DateTimeOffSet ดีกว่า มันเก็บอะไรบ้าง โดยแบ่งได้ 2 ส่วนครับ DateTime พวก วันที่ และเวลา หรือ ถ้ามองโดยทั่วไป คือ TIMESTAMP ครับ OffSet พวก TimeZone บอกโซนเวลา เช่น…