มาแปลง Console App ให้เป็น .NET Tools (NuGet)

.NET Tools คือ อะไร แปลง Console App ให้เป็น .NET Tools (NuGet) Prerequisite: CS Project ต้องเป็นรูปแบบใหม่ที่มากับ .NET Standard ครับ ถ้า .NET Framework แบบเดิมๆ ทางที่ดีแนะนำให้ขยับเป็น .NET LTS ครับ โดยผมใช้ Project ที่ทำมานานหลายปีแล้ว pingkunga/MergeDOTNETTestReport มาเป็นตัวอย่างที่ลองแปลง Console App ให้เป็น .NET Tools ขั้นตอนการแปลง Console App ให้เป็น .NET Tools เริ่มจากใน Visual Studio คลิกขวาที่ Project เลือก Properties เข้ามาในส่วน Package ครับ นำ .NET Tools ที่ได้ไปติดตั้ง กรณีที่ Publish ขึ้น nuget.org หรือ local repository อย่างตัว nexus เป็นต้น แล้วคร้บ กรณีที่เอา NuGet Tools ไปติดตั้งเอง ให้เอา Package ไปที่ Path ของเครื่องที่ต้องการติดตั้ง เช่น เอาไปไว้ใน “D:\06Utility\nupkgForBuild” เป็นต้น สำหรับการใช้งานเหมือนเดิมครับ เรียกชื่อ Package ตรงๆ เหมือน exe ได้เลย ไม่ต้องมากังวลว่าต้องกำหนด Path ผิดด้วย ลง Tools แบบ –global เรียกได้ทุกจุดครับ ^__^ Reference

2023 การเปลี่ยนแปลง

สำหรับปีนี้แบบว่ามีหลายเรื่องเปลี่ยนแปลงเยอะมาก หัวข้อหลักน่าตามนี้ โลกขยับเคลื่อนด้วยการบ่นลง Social อย่างปีก่อน ผมจะบ่นเรื่อง Merge เป็นพิเศษ เพราะไม่มีใครอยาก Merge กัน ใช้ Git กันมา 3 ปี ++ และ ประชุมหลายรอบ หาคนไม่ได้สุดท้ายต้องจิ้มคนมาจัดการ แต่ไม่วาย มาตรฐานของเราไม่เท่ากัน กว่าจะทำให้ได้มาตรฐานเดียวกัน บ่นลง Social แหละ จะได้คุยกันใน บ ได้ ตอนอยู่ไม่ทำกัน เรื่องของเรื่องมีน้องในทีมออก เมื่อก่อนสิ่งที่ทำกัน ตอนน้องเค้าอยู่พยายามจะให้น้องเค้าเป็นสารานุกรมเคลื่อนที่ แทนที่จะจดว่าปัญหาแก้ยังไง ถามซ้ำไปแหละ จนได้ Blog KM มันควรสร้างตอนที่ยังอยู่ ไม่ใช่มาสร้างตอนที่จะลาออกไป (Blog นี้น่าจะตรง Inner ของหลายๆคน ปกติ Facebook ผมจะร้าง แต่ทว่าอันนี้ Like เยอะ ไม่มีแชร์ 555 น่าจะเยอะสุดในปี 2023 เลย 555) มันดูแปลกเหมือนกันนะ คุย / ตามกันมาหลายปีไม่ได้ แต่การขยับโดยใช้ Social มันดันเร็วขึ้น เหตุผล เพราะกลัวลูกค้าเห็น ยอมรับมันไม่ดีกับตัวเราด้วย แต่เราโอเคจริงๆเหรอที่อยู่กันแบบนี้ งาน ส่วนตัวคิดว่า NET8 อาจจะไม่มาทำ/เก็บกวาด เรื่อง dotnet โดนด่ามาตั้งแต่ปี 2015-2016 น่าจะเริ่มโดนช่วงนี้แหละ และ ทำแล้วพังบ้างอะไรบ้าง แต่มันไม่ใช้เราทำทุกเคสโว้ย อันนี้ Key เลย เหมือนเอาเป็นตัวแทนด่าเฉยๆมากกว่า แล้วมันแรงขึ้นทุกรอบด้วย งานช่าง หลังจากช่วยเก็บงานตัวเอง งานด่วนที่ไม่ได้เกิดจากตัวเองเกือบ 95% ++ มาหลายปี พอปีนี้โวยวาย 555 ได้เวลาคิดมาเลยกลับมาทำงานช่างเล็กๆน้อย เช่น อุด โป๊ว ทาสีนิดหน่อยครับ ก็มีจด Blog ไว้ด้วย…

รีวิว The Cloud Camp รุ่นที่ 1 ของ JumpBox

Blog นี้มา Review และ Recap The Cloud Camp รุ่นที่ 1 ครับ รูปแบบการเรียน 14 Week / 14 หัวข้อ โดยจะแบ่งเป็น คหสต ผมชอบ Model การเรียนแบบนี้ มันไม่อัดจนเกินไป มีเวลาย่อย และทำความเข้าใจในแต่ละเรื่อง มีเวลาให้เอ๊ะๆ ลองทำ ลองติด ลองมั่วก่อนเฉลย 5555 //เคยเจอแบบที่เร็วกว่านี้ แล้วธาตุไฟเข้า แตกไปตามๆกัน หัวข้อที่เรียน เริ่มตั้งแต่ Intro Cloud Native > Agile > Container > Docker Family > K8S > CI/CD > Observability และเชิญคนนอกมาลองเล่าประสบการณ์ ผมมีลองจดเล็กๆน้อยๆ ครบบ้าง ขาดบ้าง มาครับ เผื่อเอาไปประกอบการตัดสินใจ เออทำไม 14 Week เขียน Blog ได้ 15 อัน 555 คหสต มาลองเรียน จุดเด่นการสอนของค่ายนี้ ทำให้เห็นภาพว่า แต่ละ Action มันเกิดอะไรบ้าง และ ลองทำ ลองงงๆกับมันสักพัก Session Onsite สำคัญจริงๆ เหมือนกันเวลามาลองแบบมีคนช่วย Guide ถ้าไม่ได้ มีต่อให้ถามใน Discord นะ และ Discuss กันในนั้นแหละ ปิดท้ายมีลองทำ Project เล็กๆ อยากลอง Stack อะไรก็ได้เลย แล้วแต่ความอยาก ติดอะไรลองถามทีมงาน JumpBox ได้ และตอนท้ายเราได้เห็น Architecture…

[NET6] Error System.NotSupportedException: No data is available for encoding 874 …

.NET Core

หลังจากทดสอบ E2E Test เจอว่า Service ที่ Export Text File จะพบ Error เต็มๆว่า System.NotSupportedException: No data is available for encoding 874. For information on defining a custom encoding, see the documentation for the Encoding.RegisterProvider method. สาเหตุ NET6 (Encoding Windows-874) Reference

The Cloud Camp Week#15 (NET Aspire / How to Build OBS / Project Pitch)

สัปดาห์นี้ทาง Jumpbox มีเชิญ Speaker เข้ามาเล่า+แบ่งปันประสบการณ์ให้คนที่เรียน Cloud Camp รอบนี้ โดยมีหัวข้อ ดังนี้ Introduction to NET Aspire – Old-Way – New-Way – ปรับยังไง Coupling & Cohesion สามารถดูได้จาก Blog ผมครับ Cohesion VS Coupling | naiwaen@DebuggingSoft ใช้ได้ตั้งแต่ Class > Microservice เลย – dotnet aspire ความเห็นส่วนตัว ข้อดี มันมีของให้พร้อม UI / Backend / Resiliency + Observability เลย อยากได้ Stack ไหนเขียน Code เอา เช่น อยากได้ RabbitMQ ก็ Add มาเดียวตอนรันมันไปทำ Infra ให้ – คำถาม ปิดท้ายและ เรามีการออกแบบวิธีเทคนิคเพื่อมาแก้ไขปัญหา แต่การแก้ไขปัญหานั้น ก็จะมีปัญหาใหม่ตามมาเช่นกัน ดังนั้นให้เราเลือก สิ่งที่เหมาะสมให้กับ architecture ของเรา Resource: T-T-Software-Solution/dotnetaspire (github.com) / Slide / .NET Aspire overview How to Build an Observability System for Microservice – ตอน Design App สิ่งที่ต้องทำ – observability stack Key -…

How to get output from dotnet test

.NET Core

dotnet test command, it runs by default in quiet mode (–verbosity quiet) To get some output from the adapter, run it in normal mode, by setting the verbose option to normal / detail In verbosity normal / detailed will show pass test and execution time for each test. Reference

The Cloud Camp Week#14 (Recap + Q&A)

รูปจาก Bing AI

Week นี้ Recap + Q&A ผมมีจดๆไว้ สรุปมาดังนี้ Architecture 1. คือตอนนี้เจอเคสที่ว่า service บางตัวต้องอยู่แยกnodeกับ service อื่น เพื่อไม่ให้ทั้งระบบพัง เช่น api service อยู่แยกกับ document service อยากรู้ว่าเมื่อไหร่ควรแยกหรือร่วม พวก criteria Ans ดูก่อนว่า App Host ที่ไหน VM / Container / Serverless ถัดมาจะแยก หรือร่วมกัน ต้องวัดให้ชัดก่อนว่า ตัว App นั้นๆ ใช้ Resource ไปเท่าไหร่ ทำ Observability ให้มี Metric ออกมา เช่น Resource Consumption / จำนวน Request ที่เข้ามา / Connection ที่ถืออยู่ เป็นต้น พอวัดได้แล้ว เราเอา Metric นั้นมากำหนดเงื่อนไข ใช้ Resource ให้คุ้มค่า ในจำนวน Node ที่น้อยสุด ถ้าเป็น K8S ในกรณีที่ Resource Request / Limit + Readiness Probe แล้วตึงมือ ถึงเริ่มขยับไปใช้ Node อื่น โดยการทำ HPA เพื่อ Scale นั้นเอง Observability 1. ตอนที่เราเรียนวันเสาร์ได้ลองเอา พวก log, metric, trace ยิงตรงไป display กับอีกวิธีนึงคือไป stamp ลง…

Alfresco: Edit in Microsoft Office problem not working

Currently I am using Alfresco Community 6.2. When I am trying to Edit a document by using “Edit in Microsoft Office” link. It is opening Microsoft Office, but due to some problems appear such as Root Cause Solution For Office 2010: For Office 2013: For Office 365 Note: BasicAuthLevel possible value are 0 – Basic authentication disabled1 – Basic authentication enabled for SSL connections only2 – Basic authentication enabled for SSL and for non-SSL connections Reference