Category dotnet

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

black and white piano keys

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

[C#] ถ้า GroupBy โดยใช้หลาย Property แล้วห้ามใช้ตัวแปรชนิด var หละ

C# Logo

จาก Blog ตอนก่อนหน้า [C#] ถ้า GroupBy แล้วห้ามใช้ตัวแปรชนิด var มารับหละ ? ตัวอย่างที่ผมได้ยกไปเป็นการ Group By โดยใช้เพียง 1 Property เท่านั้นครับ แต่ใช้ชีวิตจริง มีการใช้งานมากกว่า 1 Property ครับ ยกตัวอย่าง เช่น ก่อนปรับ : มีการใช้งาน 2 Property ครับ ได้แก่ ValueDate และ CashSecurityGroupCode ซึ่งมีชนิดข้อมูลเป็น DateTime และ String ตามลำดับครับ ถ้าเราจะเล่นมุกเดิมใน…

[C#] ถ้า GroupBy แล้วห้ามใช้ตัวแปรชนิด var มารับหละ ?

หลายองค์กรมีตัว Coding Standard เพื่อเป็นแนวทางในการเขียน Code ให้มีระเบียบ ไปในทีศทางเดียวกันครับ ใครๆก็สามารถมาอ่าน Code นั้นได้ครับ แล้วที่นี้ ถ้ามีการประกาศว่า ถ้ามี List<Object> แล้ว GroupBy ห้ามใช้ตัวแปรขนิด var มารับ จะทำอย่างไรหละ ? อ้าว Copy Pattern จาก Stack Overflow มา ทำอย่างไรดี !!! ทุกปัญหามีทางแก้ไขได้ครับ จากโจทย์ ถ้ามี List<Object> แล้ว GroupBy ห้ามใช้ตัวแปรขนิด var มารับ ลองมาดูตัวอย่าง…

[.NET] มา Debug ตัว NuGet Package กันครับ

C# Logo

หลังจากบทความก่อนหน้าที่ได้สอนว่าทำอย่างไรถึงได้ NuGet Package มาใช้งานกันเอง หรือ ใช้ภายในองค์กรแล้วครับ คราวนี้ผมมาสอนว่าถ้ามันเกิดปัญหาจริงๆ แล้วเราจะต้องเข้ามา Debug ตัว NuGet Package ที่ใช้ต้องทำอย่างไรบ้างครับ ทำไมต้อง Debug ตัว NuGet Package เพราะ Bug อาจจะเกิดจาก Nuget Package เอง เพราะต้องการศึกษาการทำงานของ Library เอามาใช้ Project ในรูปแบบ Nuget Package มารู้จักกันก่อนว่า NuGet Package แบบไหนถึงจะ Debug ได้ ต้องมีไฟล์ Symbol ซึ่งถูกจัดเก็บในรูปแบบของไฟล์…

[.NET] กำหนดให้ Visual Studio รู้จักกับ NuGet Server ครับ

จากบทความก่อนหน้าตอนนี้ทุกท่านน่าจะรู้รายละเอียด และวิธีการนำ Library ของมาทำเป็น NuGet Package แล้วครับ คราวนี้มาทำให้ Visual Studio รู้จักกับ NuGet Server ที่เพิ่มมาครับ โดยมีขั้นตอน ดังนี้ เปิด Visual Studio เข้ามาเมนู Tool > Options > NuGet Package Manager ในส่วน Package Sources จากนั้นกำหนดค่าตามขั้นตอนดัานล่างเลยครับ หมายเลข 1 : กด + เพื่อเพิ่ม NuGet Repository ใหม่ครับ…

[.NET] ทำ NuGet ใช้เองภายในองค์กร

หลายคนอาจจะสงสัยในเมื่อ Source Code เป็นของเราเองทำไมต้องทำเป็น Nuget Package ด้วยหละ มันมีเหตุผลของมัน ดังนี้ครับ จัดการได้ง่าย และสะดวกแก่การติดตาม เพราะ แยกเป็นเวอร์ชันอย่างบชัดเจนครับ ติดตั้งได้ง่าย แทนที่จะเอาไฟล์ .dll มาอ้างอิงใน Project หลัก เราสามารถอ้างอิงตัว Nuget Package แทนครับ และเมื่อมีเวอร์ชันใหม่ เราสามารถใช้ Nuget Package Manager จัดการ Update เวอร์ชันได้ทั้ง Solution เลยครับ แยกส่วน ทำให้สามารถทดสอบในระดับย่อย (Unit Test) ได้ง่ายครับ ถ้าจะทำ NuGet…

[PowerShell] มาทำ Line Notify แจ้งข้อมูลคุณภาพของ Code กันดีกว่าครับ

powershell

จริงๆต้องบอกว่าทุกปัญหามันเริ่มต้นจากความขี้เกียจแหละครับ และช่วงหลังๆสำหรับหน่วยงานต่างๆ การตรวจสอบคุณภาพของ Source Code ตอนนี้มันถูกจัดไปเป็นเงื่อนไขหนึ่งใน TOR แล้วครับ มันเลยเป็นที่มาของ Blog นี้ครับ หลังจากที่ผมได้ตั้ง SonarQube เพื่อมาตรวจสอบคุณภาพ Code กันแล้ว ปัญหาที่พบ ไอ้ที่มันแหกกฏไปต้องทำอย่างไร ? ทำใจ อยู่ที่เรียนรู้ อยู่ที่ยอมรับมัน และจัดทีมมาแก้ไขมันครับ ตรงนี้ต้องมี Automate Test ประกบเสมอนะครับ แล้วของใหม่ที่กำลังเพิ่มขึ้นเรื่อยจะคุมอย่างไร แจ้งทีม ทำ Line Notify ขึ้นมาครับ เป็นที่มาของ Blog นี้เลยครับ ทำไมต้องมี Line Notify ในเรื่องของ…

[PowerShell] Convert Hyper-V .VHD เป็น .VHDX และ Optimize ขนาดของ Disk

สำหรับการแปลง VHD ไปเป็น VHDX และทำการลดขนาดของ Disk (Shink เป็นไปได้แนะนำให้ทำใน Mode Offine ครับ) โดยใน ฺBlog นี้สอนแบบ Offline ด้วยโดยมีขั้นตอน ดังนี้ จัดการไฟล์ VM ของ VHD เดิมให้เรียยร้อยก่อน อาทิ เช่น ลบไฟล์ที่ไม่จำเป็น ทำการ Disk Clear พื้นที่ Disk CD เข้าไป Path ที่มีไฟล์ vhd แปลงไฟล์ VHD ไปเป็น VHDX ด้วยคำสั่ง…

[PowerShell] แก้ไขไฟล์ App.config ใน Jenkins Pipeline

powershell

หลังจากทำมี Tools ที่ กำหนดค่าที่เดียว แต่สามารถใช้งานไปได้ทุก Application แล้ว (Universal Configuration) แต่ทำไมคนอื่นถึงไม่ค่อยใช้งานกัน เราก็ถึงบ้างอ้อทันที อ๋อขี้เกียจไปแก้ app.config หรือ web.config นั้นเอง ด้วยความที่ระบบมันมี Base 3 สำหรับลูกค้า 3 กลุ่ม แต่ใช้ Code ชุดเดียวกันนะครับ มันจึงต้องมีการเตรียมค่าตั้งต้นกันก่อนนั้นเองครับ อาทิ เช่น Base AMC / INS ตัว Application อ่านค่าจาก HKEY_LOCALMACHINE Base TSY ตัว Application…

[VS] Uninstall Visual Studio 2017

อยากลง Visual Studio 2019 แต่ติดว่าเครื่องเก่ามีเวอรชัน 2017 อยู่ อยากจะล้างให้สะอาดสามารถทำตามขั้นตอนได้ ดังนี้ครับ เปิด Command Line แบบ Administrator cd เข้าไปที่ Path “C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\layout\” run installcleanup.exe ผลที่ได้ โดยตัว Tools ของ MS จะช่วย Delete ข้อมูลของ Visual Studio โดยมีรายละเอียดการลบ ดังนี้ C:\ProgramData\Microsoft\VisualStudio\15.0 C:\ProgramData\Microsoft\VisualStudio\Packages %appdata%\Microsoft\VisualStudio\15.0* %appdata%\Microsoft\VisualStudio\Packages…