Tag c sharp

[.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 แบบก้าวกระโดดครับ ห่างกันตั้ง 7 เวอร์ชัน นอกจาก API ที่ถูกยกเลิก(Deprecate) แล้ว มันยังมี API ที่เพิ่มเติมเข้ามา ซึ่งมันไม่ได้บอกตอน Compile หรือตัว Tool ที่ Check Compatibility ไม่สามารถตรวจสอบได้ครอบคลุมครับจึงเป็นที่มาของปัญหา เมื่อ Export ข้อมูลใน Grid มาเป็นไฟล์ Excel คอมม่า ( , ) หาย และไม่แสดงเป็นตัวเลข ปัญหาของเรื่องนี้ T__T แนวทางการแก้ไขปัญหา…

[C#] GetHashCode() ไม่เท่ากับ Equals() นะ !!!

ช่วงนี้เห็น Rule นึงที่ SonarQube มันแจ้งเตือนมาครับ “Equals(Object)” and “GetHashCode()” should be overridden in pairs ตัว Message มันหมายความว่าอย่างไรกันนะ หลังจากลองดูคำอธิบายอันนี้จะเป็นในมุมของ Security ครับ เค้าตั้งสมมติฐานว่า ถ้า เอาง่ายๆ ถ้า A และ B เรียก Equals() แล้วได้ true เมื่อไปเรียก GetHashCode() ควรจะได้ค่าเท่ากันครับ ที่ใช้คำว่าควรจะ เพราะจริงๆต้องบอกว่าสอดคล้องกันไปในทางเดียวกันมากกว่า เพราะ อันนี้เป็นคำอธิบายในมุมของ Security นะครับ มาดูในของ…

[C#] ให้ Log4net เขียน Log แยกตาม Process Id ของ Application

Ref https://pixabay.com/th/การวิเคราะห์-ข้อมูล-นวัตกรรม-3088958/

จาก Blog ตอนก่อนของ Site ได้ Deploy ตัว .Net App ไว้ที่ Windows Server ไว้ที่ Drive C: แล้วให้ User Remote เข้ามาใช้งานครับ แต่พอเวลามีปัญหามันดัน Write Log ไม่ได้ครับ เพราะ Application ทุกตัวที่ที่รันขึ้นมา ดันเขียน Log ลงไปที่ Path และไฟล์ชื่อเดียวกันครับ ทำให้ User สามารถเปิดโปรแกรมใช้งานได้แค่ 1 Instance เท่านั้นครับ เมื่อทาง Dev ต้องการหาสาเหตุของ…

[C#] มาดูกันว่า User Remote เข้ามาเปิดใช้ Application จากเครื่องไหน

C# Logo

ก่อนอื่นมาดูปัญหากันก่อนครับ ว่าทำไมถึงต้องไปไล่ดูว่า มีการ Remote จากเครื่อง User เพื่อมาใช้งาน Application ที่ติดตั้งบนเครื่อง Server หรือป่าว ? เพราะ IT ของลูกค้า อยากรู้ว่ามีใครใช้งานในระบบบ้าง แล้วใช้งานที่เครื่องไหน แต่บังเอิญว่ารอบนี้ ตัว Application ที่พัฒนาถูกไปติดตั้งบรเครื่อง Windows Server พอ User Remote เข้ามาใช้งาน ปรากฏว่าระบบลง Log และ Active User มาจากเครื่อง Serer ที่เป็น Windows Server ทั้งหมดเลยครับ โดยคำสั่ง C# ที่ใช้ดึงว่าเครื่องที่…

[Dapper] Query Parent-Child อย่างไร ?

หลังจากลองทำ Framework ที่เอา Dapper เป็น ORM ครับ ตอนนี้ก็ติดปัญหาว่า เราจะดึงข้อมูลที่อยู่ในรูปแบบ Parent-Child กันอย่างไรครับ โดยผมมีรายละเอียด ดังนี้ โจทย์ที่ผมต้องการ คือ เวลา Query ข้อมูลจาก Table Corporateaction แล้ว ให้มันดึงข้อมูลของ Table ลูก CorporateDetail ขึ้นมาให้หมด โดยการ Query เพียงคร้งเดียวเท่านั้นครับ POCO Class ของผม มีโครงคร่าวๆ ดังนี้ครับ Query ที่ผมเขียนไว้ Code ในส่วนของ Data Access…

[C#] Arithmetic Overflow กับคำสั่ง checked และ unchecked

พอดีช่วงนี้ลองทวนสอบ เพื่อเตรียมสอบ Cert MCSD App Builder ของ Microsoft ครับ แล้วบังเอิญไปเจอ keyword อันนึงที่ กูรเขียน Code มาหลายปี ไม่เคยได้ยินเลย checked และ unchecked ครับ โดยก่อนเข้าไปรู้ว่า 2 คำนี้ มันมีความหมายอย่างไรใน C# เรามารู้จักกับ Exception ชนิดหนึ่งกันก่อนดีกว่าครับ Arithmetic Overflow/Underflow คือ อะไร ? สำหรับคอมพิวเตอร์เวลามันทดอะไรบางอย่าง เราจะเก็บที่หน่วยความจำ แล้วที่นี่ในการเขียนโปรแกรมตอนที่เราจะทดค่าต่างๆนั้น มันมีภาชนะให้เก็บหลายรูปแบบ ซึ่งพื้นฐานของคอมพิวเตอร์มาจากคณิตศาสตร์ การที่เราจะเก็บอะไรลงภาขนะ แต่ละแบบ มันมีข้อจำกัด…

[C#] How to Get property name from object

งานของผมใช้ Dapper แล้วปัญหามันมีอยู่ว่าตอนสร้าง predicate(เงื่อนไข) มันต้องเอาชื่อ Property ไป Where ทำให้มันมีความเสี่ยงมาก ถ้าแก้ชื่อ Property แล้ว Refactor ไม่ครบครับ ผมเลยทำ Helper มาเพื่อช่วยให้มันไป Get ชื่อ Property จากตัว Object ซะเลยครับ ได้มาเป็น Update 2019-05-23 จากแบบที่สอง เราสามารถใช้ nameof ได้เลยครับ ตัวอย่าง ตามนี้เลย แถม Code สั้นกระชับด้วย สำหรับถ้าใครอยากอ่าน Step การ Research ของผม…

[C#] มาใช้ HtmlAgilityPack ดึงข้อมูลจากเว็บ

ตอนที่ผมเขียน Blog น่าจะเป็นช่วงปลายปี 2016 นะครับ พอดีวันนี้เหลือเวลาอีก 2-3 ชั่วโมงจะเลิกงาน ผมเลยลองทำ Project ง่ายๆ ดูครับ โดยดึงข้อมูลจากเว็บ เกี่ยวกับข้อมูลพื้นฐานของหุ้นนะครับ ก่อนที่จะทำ สิ่งที่ตต้องทำลอง Research Library ดูก่อนครับ ว่ามีอะไรช่วยได้ไหม เท่าที่ดูมี Library ที่เหมาะสม ดังนี้ครับ ถึงเวลาเริ่มทำ ลองมาดูวิธีใช้ HtmlAgilityPack ดึงกว่า ลองใช้งานจริง Source Code สรุปสิ่งที่ได้ทำ

[C#] Guidelines for Exception Handling

หลังจากเขียน Code ในการทำงานมาหลายปี พอดีเจอบทความนึงที่น่าสนใจ ผมเลยทำความเข้าใจ และสรุป เกี่ยวกับ Exception ดังนี้ครับ Exception คือ อะไร ? Exception คือ การแจ้งข้อมูลข้อผิดพลาดที่เกิดขึ้น จากการทำงานของระบบครับ มันมีกลุ่มที่เราสามารถจัดการเองได้ ใช้ Try Catch เข้าช่วย หรือจัดการไม่ได้เลยพวกกลุ่ม Error Guidelines for Exception Handling – Catch only the exceptions that you can handle. เวลาเขียน Code ใน…