Category dotnet

[C#] Use-Case การใช้งาน Named Pipe เชื่อม VB6 กับ .NET

จาก blog 2 ตอนก่อนหน้า เพื่อนๆ น่าจะเข้าใจ Named Pipe คือ อะไร ? VB6 กับ .NET โดยใช้ Named Pipe ทำได้อย่างไร ใน Blog นีัขอแชร์ Use-Case จริง ที่ใช้งานครับ เพราะคงเอา Code มาแปะทั้งหมดไม่ได้ครับ เผื่อจะเป็น Idea ให้กับคนที่ต้องพัฒนาระบบงานเก่าๆ เอาไปใช้ได้ครับ โดยการพัฒนาของผมจะเป็น 2 Step ซึ่งมีอธิบายต่อไปครับ จุดที่ 1 @Client VB6 <->…

[.NET] Blank WinForms and Error The designer cannot be shown because the document for it was never loaded

Visual Studio

อาการ เมื่อ Double Click ไฟล์ UI ใดๆ ไม่มีอะไรเกิดขึ้นได้หน้าจอว่างๆ และถ้าพยายามไป View Code ของ UI ขึ้น Error ดังรูป การแก้ไข ปิด Code ของเรา และ Visual Studio ก่อนครับ ลบ Folder .vs ออกไป (ปกติ Folder .vs มันซ่อนอยู่ ต้องไปกำหนดใด้มันแสดงด้วย) ทดสอบเปิด Code ใหม่อีกครั้งครับ

[C#] Named Pipe เชื่อม VB6 กับ .NET

จาก Blog ตอนที่แล้วที่ผมได้อธิบาย Named Pipe ไปว่า ได้ลองนำเทคนิคนี้มาใช้เพื่อแก้ปัญหาของ Legacy System ใน Blog นี้เป็นการขยายความเพิ่มเติม ทำไมใช้ Named Pipe เป็นเทคโนโลยีที่รองรับทั้ง VB6 และ .NET ไม่อยากไปพัฒนาโมดูลใหม่ๆบน VB6 แล้ว เพราะติดปัญหา Maintain ยาก ทำ Unit Test ไม่ได้ด้วย ไปกับเทคโนโลยีใหม่ๆยาก ไม่รองรับมาตรฐานความปลอดภัยใหม่ๆ VB6 ส่งไป .NET ติดปัญหาอะไรไหม ? ปัญหาภาษาไทย ตัว VB6 มันไม่รู้จัก…

[C#] เชื่อม Process ด้วย Named Pipe

blog ตอนนี้เป็นการอธิบาย Named Pipe ที่ผมได้เลือกเอามาใช้แก้ปัญหาของ Legacy System โดยผมแยกเขียนเป็น 2-3 blog Pipe คือ อะไร ? วิธีการหนึ่งที่ใช้เปิดให้ตัว Process มันสามารถสื่อสารกันได้ โดยมีศัพท์ทางการ Inter-process communication (IPC) สำหรับ IPC มีวิธีการ Implement ได้หลายแบบ ยกตัวอย่าง เช่น File : Process A เขียน TextFile แล้วรอให้อีก Process มาอ่าน Shared memory Message…

Chocolatey ต่างกับ NuGet อย่างไร

สำหรับผมแล้ว ในฐานะที่เป็น DEV จะรู้จักคุ้นเคยกับ NuGet ตัวจัดการ Package สำหรับ .NET ในการพัฒนา Application ครับ จำเป็นต้องมี .NET Runtime ถึงจะทำงานร่วมกันได้ แต่หลังจากได้ลอง Windows 11 กับ Visual Studio 2022 ผมได้รู้จักกับ Tools อีกตัวที่ DEV .NET ควรจะรู้จักครับ นั้น คือ chocolatey โดยเจ้า chocolatey เหมือนเป็นตัวที่ On-Top จาก NuGet อีกที โดยเข้ามาช่วยให้สามารถใช้…

[.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 นั้นเองครับ โดยมี…