สำหรับงานวันนี้จัดที่ Agoda@CTW โดยหัวข้อที่จดไว้มี 2 เรื่อง ดังนี้
From Tedious to Automated: Let AI Agents Clean Up Your .NET Code Reviews
Speaker Aram Pokmanee
- Why AI Automated Code Reviews
Speaker พบปัญหา Context Switching โดนขัดจังหวะไปทำอย่างอื่น เช่น Meeting หรือ Code Feature ไปทำอย่างอย่าง เช่น อยู่ Merge Request ที่ส่งไปมี Comment เด้งมา 30 อัน ซึ่งมันมีผลกับ Productivity เพราะ
- Lost Focus - ประมาณ 20-45 นาทีหลุดไป ตอนกลับมาทำงานเติม ต้องมาจูนกันก่อน
- Reduce Productivity
- Exceeding Cognitive Capacity - พอสมองเราทำงานเยอะๆ มันส่งผลกับ Code เข้า เช่น Bug เพิ่มขึ้น หรือ เขียน Case ไม่ครบ
- AI in Coding
สำหรับอันนี้ยุคแรก 201x - 2020 จะเป็นการ suggest syntax ถัดมาหน่อยหลัง มีตัว Auto Complete หลังจาก ChatGPT เปิดตัวมา 2022 จะมีตัว GitHub Copilot
ช่วง 2023-2024 จะเป็นยุค IDE + AI อย่าง Cursor + Windsurf หรือแม่แต่ App อื่นๆอย่าง Figma มี AI จนมาถึงตอนนี้ยุค Agentic Coding
- Solution
จากเดิมที่เราต้องมา Manual จัดการ Comment ที่ละอัน เรายกให้ AI มันจัดการไป ตามรูปเลย

โดยมีวิธีการ 2 แบบ
📌 Old way เอา Code จาก Merge Request Copy Paste + Prompt ไปถาม AI ผ่าน Chat
📌 AI Agent IDE + MCP

ส่วนประกอบแต่ละอัน
- AI IDE มีหลายตัวที่ลอง Claude Code / Cursor / VS Code + Copilot / Windsurf โดยแต่ละเข้ามีวิธีเชื่อม MCP Server ต่างกันไป
- อย่างตัว VS Code เอง มีปรับเหมือนกันนะ VS Code ออกเวอร์ชัน 1.101 รองรับ MCP เชื่อมต่อ LLM กับแหล่งข้อมูลภายนอก - GitLab MCP Server เอามาจากอันนี้ https://github.com/zereight/gitlab-mcp
- mcp เหมือน connector เชื่อม AI กับสิ่งที่เราสนใจ เคสนี้เชื่อม GitLab กับ IDE ที่มี LLM
- mcp มันมีคนทำหลายค่าย ถ้าเป็น Official ปลอดภัยระดับนึง แต่ถ้าเป็น Open Source จะเข้าตำรา ใครเอาไปใช้ต้องรับผิดชอบด้วย เพราะ อาจจะเจอปัญหา Prompt Injection หรือ เอาข้อมูลส่วนตัวของเราไปด้วย ก่อนใช้ควรดูก่อนข้างในเขียนอะไร - GitLab API ถ้าใครสนใจอย่างเพิ่ม ผมมี Blog นะ ลองใช้ GitLab REST AP
จากนั้นเป็นการเล่าประสบการณ์แล้วว่าลองใช้เป็นยังไง แยกเป็น 2 กลุ่ม
Prompt: Please fixed this MR <LINK TO MERGE REQUEST>
- Claude Code - command line ไว และ visualize ลำบาก
- กลุ่ม IDE Cursor / VS Code + Copilot / Windsurf ใช้งานได้ Model หลากหลาย และ Visualize ได้ดี แต่ตอนใช้งานต้องเลือกส่วนราคา แต่ละตัวจะจ่ายกัน แบบเหมาๆ หรือ ได้ xxx request / เดือน ถ้าเกินจะเป็น pay as you go
นอกจากนี้ ถ้าเรามี Coding Style / Coding Standard ต้องสร้าง Context File บอก AI ให้มันเอาข้อมูลส่วนนี้ไปประกอบการ Review ด้วย https://github.com/colthreepv/llm-context
What's New in .NET 10 - Why .NET 10 is a game changer
Speaker Jose Barbosa
สำหรับ dotnet 10 ที่จะเปิดตัว Long Term Support (LTS) ในปลายเดือน NOV 25 นี้มีอะไรเด่นๆบ้าง
- runtime
📌 Array interface method devirtualization - เมื่อก่อนตอนเราเขียน foreach เวลา Loop จริงตัว JIT มันทำ Virtual Call แอบไปทำ for แบบเดิมอีกที มันต้องมีการ Check Bound ค่าขอบเสมอ ตอนนี้ตัว JIT ทำได้ในตัวแล้ว เลยเร็วขึ้น
static int Sum(int[] array) { int sum = 0; for (int i = 0; i < array.Length; i++) { sum += array[i]; } return sum; }
ก่อน net10 code แบบนี้จะ perf ดีสุด
static int Sum(int[] array) { int sum = 0; IEnumerable<int> temp = array; foreach (var num in temp) { sum += num; } return sum; }
ก่อน net10 code แบบนี้จะทำให้ Virtual Call แอบไปทำ for แบบ แต่ใน net10 ตัว JIT ลดขั้นตอน แล้วทำเหมือนกับ Code for ปกติได้แล้ว เลย Performace ดีขึ้น
📌 Stack Allocation of Arrays of Value Types
- NET9 ตัว JIT สามารถจองพื้นที่ stack ลดการใช้ GC Pointer สำหรับสร้าง object ทำให้ทำงานได้เร็ว
- NET10 เพิ่มความสามารถ stack allocation of small, fixed-size arrays of value types
- libraries
📌 .NET 10 libraries Enchangement มีหลายตัวตามรูปเลยทั้งในส่วน Certificate / Data / Compression / JSON เป็นต้น

- SDK
📌 Removal of unnescessary-framework provide package reference เอาข้อที่ไม่จำเป็นออก พบ Lib ลดลง Attack Surface ลดลงเพิ่ม Security และ Performance
📌 Pruning of Framework-Provided Package References ตัว nuget lib อันไหนไม่ได้ใช้งานจริง ตอน Run NuGet Audit มันจะเอาออกไปจาก Code Base เราเลย มันจะช่วยลดเวลา Build / Disk ที่ใข้ / เวลาในการดูแล เช่น ต้องมาไล่แก้ Security เป็นต้น
- ASP.NET Core
📌 OpenAPI3.1 Support
Key Changes:
- Nullable properties no longer use nullable: true
. Instead, they now use a type
keyword with an array that includes null
.
- Removal of
, which is now replaced by OpenApiAny
JsonNode
.
- Serving OpenAPI in YAML Format
📌 The [ProducesResponseType] attribute เพิ่ม description เอาไว้ใส่คำอธิบาย API ให้ชัดเจน
[HttpGet(Name = "GetWeatherForecast")] [ProducesResponseType<IEnumerable<WeatherForecast>>(StatusCodes.Status200OK, Description = "Optional Field for add more detail for you api")] public IEnumerable<WeatherForecast> Get()
- Blazor
📌 QuickGrid RowClass Parameter
📌 Blazor Script Optimization - มองถูกมองเป็น embedded resources ใน ASP.NET มันเลยทำพวก Compression / Caching ได้ด้วย
- EF Core 10 (EF10)
📌 query translation Key Improvements
- Translation support for DateOnly.ToDateTime(TimeOnly)
- Optimized handling of consecutive LIMIT operations
- Performance improvements for Count operations on ICollection<T>
📌 ExecuteUpdateAsync now supports regular lambda expressions
- C# 14
📌 New field Keyword
- Before - code เยอะ
private string _msg; public string Message { get => _msg; set => _msg = value ?? throw new ArgumentNullException(nameof(value)); }
- After
public string Message { get; set => field = value ?? throw new ArgumentNullException(nameof(value)); }
📌 Implicit Conversions for Span<T> and ReadOnlySpan<T>
📌 Unbound Generic Types in nameof
สำหรับเรื่อง dotnet10 ระหว่างเขียนไปเจอ blog ที่สรุปดีเลย ขอแปะไว้ด้วยครับ
นอกจากนี้คุณ Jose Barbosa นำเสนอ project MapCrud ช่วยการทำ API ง่ายครบทุก Verb ครับ + Doc (OpenAPI Format) แบบ FastAPI
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.