บทความ Excel, Access, SQL Server, ASP.NET, Windows, Database, IT
การ Migrate ฐานข้อมูลจาก Microsoft SQL Server Database Engine ไปยัง Azure SQL Database ในหลายรูปแบบ
ผู้เขียนได้รับการสอบถามเกี่ยวกับการ Migrate ฐานข้อมูลจากที่ใช้อยู่ ใน Microsoft SQL Server (On-premise) ขึ้นไปไว้บน Azure SQL DB ยากไหม ทำได้อย่างไร และมีข้อควรคำนึงอะไรไหม เริ่มต้นจาก George Huey และ Wade Wegner ได้โพสต์ SQL Azure Migration Wizard ลงใน CodePlex ในปี ค.ศ. 2009 ซึ่งเป็นแหล่งรวมโปรเจค Open Source ของ Microsoft (ปัจจุบัน CodePlex ถูกยุบไปรวมไว้ใน github แล้ว) และไม่พัฒนาต่อตั้งแต่ปี 2014 ซึ่งเครื่องมือตัวนี้สามารถ Migrate ได้ทั้งโครงสร้างฐานข้อมูล (Schema) และข้อมูล (Data)

การสร้าง User Defined Function ใน Microsoft SQL Server
ผู้เขียนค่อนข้างแปลกใจเมื่องาน SQL Server Community Thailand ครั้งที่ 12 ซึ่งเป็นครั้งแรก ที่จัดแบบ Live ตามสถานการณ์ COVID-19) ผู้เขียนแสดงตัวอย่างเกี่ยวกับการสร้าง User Defined Function ให้กับผู้เข้างานดู มีคน CHAT มาบอกว่าไม่เคยรู้มาก่อนเลยว่า Microsoft SQL Server สามารถสร้าง Function ได้ รู้แต่ว่าสามารถสร้าง Procedure ได้เพียงเท่านั้น และเนื่องจากผู้เขียนได้เขียนถึง Stored Procedure ไปในครั้งก่อน เลยเป็นโอกาสต่อเนื่องที่จะเขียนถึง Function กันบ้างเพื่อไม่ให้น้อยหน้ากัน ก่อนอื่นทั้ง Procedure และ Function ก็เป็นโปรแกรมย่อยกันทั้งคู่ และจะถูกสร้างเป็น Database Object ในฐานข้อมูล ผู้ใช้ที่ได้รับอนุญาตจะสามารถใช้งานได้ เช่นเดียวกับบทความ Stored Procedure ที่ไม่ลงรายละเอียดการสร้าง Step-by-Step เป็นบทความเชิงวิจารณ์เสียมากกว่า หากผู้อ่านสนใจสามารถอ่าน Book Online จากทาง Microsoft หรือสะดวกฝึกอบรมหลักสูตร Microsoft SQL Server Database Development ผู้เขียนก็ยินดีต้อนรับครับ

มีอะไรใหม่ใน .NET Core 3 และ C# 8 : Stackalloc ซ้อนนิพจน์
เริ่มตั้งแต่ C# 8 และ .NET Core 3.0 ถ้าผลลัพธ์ของนิพจน์ stackalloc มีชนิดข้อมูลเป็นแบบ System.Span หรือ System.ReadOnlySpan เราสามารถใส่นิพจน์ stackalloc ซ้อนไว้ภายในนิพจน์อื่น ๆ ได้

รู้จักกับ Stored Procedure ใน Microsoft SQL Server
คำอธิบายที่ง่ายที่สุดสำหรับ Stored Procedure ก็คือ “การรวบรวมชุดคำสั่ง T-SQL เข้าด้วยกัน แล้วจัดเก็บเป็น Object ไว้ในฐานข้อมูล ผู้ใช้ที่มีสิทธิ์สามารถเรียกใช้งาน Stored Procedure ได้" โดยชุดคำสั่งที่รวบรวมเข้าด้วยกัน

ภาษา C# และภาษา CIL เป็นมาตรฐานสากล รับรองโดยองค์กร ISO และ ECMA
ภาษา C# และภาษา CIL เป็นมาตรฐานสากล รับรองโดยองค์กร ISO และ ECMA โดยข้อกำหนดจำเพาะ (specification) ของภาษา C# ปรากฏในเอกสารที่รับรองโดย ISO และ ECMA เอกสารนี้ (ECMA-334 และ ISO/IEC 23270) เป็นอกสารหนาหกร้อยหน้า พรรณนาถึงข้อกำหนดของภาษา C# โดยละเอียดทุกแง่มุม เป็นเอกสารที่เปิดให้สาธรณะชนดาวน์โหลดมาอ่านได้โดยอิสระ

ตัวอย่างการสร้าง รายงาน COVID19 Update ด้วย Power BI Report
ข้อมูลหลายๆ ข้อมูลที่เราสามารถนำมาจาก Internet ได้ อย่าง Worldometer.info เป็นเว็บไซต์ที่รวบรวมข้อมูลและมีการ Update อยู่เป็นประจำ แต่รายงานที่มีอาจจะยังไม่ตอบโจทย์ โดยหากเราต้องการข้อมูลจากเว็บไซต์ แต่มาแสดงผลด้วย Visualization ตามที่เราต้องการสามารถทำได้ด้วย Power BI ครับ (พร้อมไฟล์ให้ Download)

ข้อดีของภาษา C# : Auto-property initializers
ภาษา C# สร้างความอุ่นใจในการใช้งานตัวแปร เพราะคอมไพเลอร์จะกำหนดค่าเริ่มต้นให้ตัวแปรโดยอัตโนมัติ ขณะที่บางภาษา เช่น C ไม่มีหลักประกันเช่นนี้

มีอะไรใหม่ใน .NET Core 3 และ C# 8 : String Interpolation
.NET Core 3 ได้รับการปรับปรุงเรื่อง "การหาค่าของ string" (string interpolation) เมื่อใช้ร่วมกับสัญลักษณ์ $ และ @ โดยอนุญาตให้การประเมินค่าของ "การระบุอย่างตรงตามที่เขียน" (interpolated verbatim strings) สามารถกำหนดลำดับได้ทั้ง $@"..." และ @$"..." แปลกจากเวอร์ชันก่อนหน้านี้ที่เขียนได้เพียง $@"..." เท่านั้น สัญลักษณ์ $ ทำหน้าที่ระบุว่า string ที่ตามมาอาจมีการสอดแทรกค่าที่ตัวแปลภาษาจะต้องนำไปถอดความก่อนจะดำเนินการอย่างอื่นกับมันต่อไป โดยค่าดังกล่าวอาจเป็นเพียงค่าจากตัวแปรหรือซับซ้อนกว่านั้น เช่นเป็นนิพจน์ และมีได้มากกว่าหนึ่งค่า การหาค่าของ string ทำได้โดยหาค่าของนิพจน์เหล่านั้นแล้วแปลงมันให้เป็น string เสียก่อนจึงจับรวมกับ string ที่แวดล้อม การใช้สัญลักษณ์ $ เพื่อทำการหาค่าของ string เริ่มมีใน C#6 แต่การให้กำหนดลำดับได้ทั้ง $@"..." และ @$"..." เพิ่งจะเริ่มมีใน C#8

ภาษา C# เร็วกว่า ภาษา JAVA
จากการทดสอบโดยใช้โปรแกรมวัดความเร็ว (benchmark) พบว่า application ที่พัฒนาด้วยภาษา C# มีประสิทธิภาพสูงกว่า application เดียวกันที่ถูกพัฒนาโดยใช้ภาษา Java การวัดความเร็วของตัวภาษาเองล้วน ๆ เป็นสิ่งไม่มีความหมาย เพราะเหมือนกับพูดว่าภาษาไทยหรือภาษาอังกฤษอันไหนเร็วกว่ากัน แต่การวัดความเร็วของapplication ที่ถูกพัฒนาด้วยภาษาใดภาษาหนึ่งเปรียบเทียบกันสามารถทำได้ ผลลัพธ์ที่ได้จะส่อให้เห็นประสิทธิภาพของตัวแปลภาษาและ runtime ของภาษานั้น ๆ

มีอะไรใหม่ใน .NET Core 3 และ C# 8 : Read only member
ใน C# version ก่อนหน้านี้จะใส่ตัวเปลี่ยนแปลงเพิ่มขยายลักษณะ readonly ให้แก่สมาชิกแบบ methodของ struct ไม่ได้ จำต้องใส่ไว้ที่ส่วนประกาศของ struct ซึ่งมีความละเอียดน้อยกว่า ดังนั้น บทความนี้จะกล่าวถึง สมาชิกแบบอ่านได้เท่านั้น
