Category dotnet

[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 ไม่ได้ สาเหตุ ตอนที่ Add UI เข้าไป ไม่ได้กดผ่านเมนู Add >…

[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 บอกโซนเวลา เช่น…

[.NET] MSBUILD error MSB4236: The SDK ‘Microsoft.NET.Sdk’ specified could not be found.

C# Logo

เครื่อง Build Jenkins ของ .NET หลังจาก Build เสถียรมาได้พักใหญ่ๆ หลังย้าย Code มาใช้ Git แล้ว วันนี้มี Error จากเครื่อง Build แจ้งมา ดังรูปครับ พอเข้าไปดู Console Log ของ Jenkins ระบบแจ้ง Error มา ดังนี้ครับ “D:\01GITMAIN\DSApp-Dev.sln” (Clean target) (1) -> “D:\01GITMAIN\DS.Admin.UI\DS.Admin.UI-Dev.csproj” (Clean target) (101:5) -> “D:\01GITMAIN\DS.Admin.DTO\DS.Admin.DTO.Standard.csproj” (GetTargetFrameworks…

[.NET] DevExpress เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข

สำหรับปัญหานี้เป็นปัญหาที่ท้าทาย และหาข้อสาเหตุของปัญหายากมากครับ เนื่องจากที่บริษัทได้ Upgrade ตัว DevExpress แบบก้าวกระโดดครับ ของเดิมเวอร์ชัน 13.1 ชองใหม่เวอร์ชัน 20.2 ห่างกันตั้ง 7 เวอร์ชัน นอกจาก API ที่ถูกยกเลิก(Deprecate) แล้ว มันยังมี API ที่เพิ่มเติมเข้ามา ซึ่งมันไม่ได้บอกตอน Compile หรือตัว Tool ที่ Check Comparability ไม่สามารถตรวจสอบได้ครอบคลุมครับจึงเป็นที่มาของปัญหา เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย…

[.NET] แก้ปัญหา Build แล้ว Error Your project file doesn’t list ‘win’ as a “RuntimeIdentifier”

blur close up code computer

Blog ตอนนี้ยังเป็น Blog ที่สรุปหลังปรับ Framework ขององค์กรครับ จาก Blog ก่อนหน้าที่ Error “The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located” คราวนี้มาเจอ Error ใหม่ ที่มันกวนตีนกว่าเดิมครับ เพราะ มันเป็นบ้าง ไม่เป็นบ้าง และถ้า Build ผ่านตัว Visual Studio ไม่เจอนะ…

[.NET] แก้ปัญหา Build แล้ว Error The build is configured to run SonarQube analysis

blur close up code computer

หลังจากปรับ Framework ของบริษัทให้เป็น .NET Standard เรียบร้อยแล้ว เมื่อทดสอบ Build ผ่านตัว Jenkins เกิด Error ดังนี้ The build is configured to run SonarQube analysis but the SonarQube analysis targets could not be located ภาพรวมของ SonarQube Analysis นะครับ ต้องเข้าใจก่อนนะครับ ว่าการวิเคราะห์ Code ของ SonarQube จริงๆ…