บทความ

ภาพประกอบหน้าปกภาษา C# เร็วกว่า ภาษา JAVA บทความ

ภาษา C# เร็วกว่า ภาษา JAVA

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

มีอะไรใหม่ใน .NET Core 3 และ C# 8 : Read only member

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

กลุ่มของ .NET

Framework ของไมโครซอฟท์ที่ใช้ชื่อทางการค้าว่า .NET (ดอนเน็ต) มีหลายแบบหลายเวอร์ชั่น รวมแล้วไม่ต่ำกว่าสามสิบแบบ อย่างที่ได้เรียนให้ทราบไปแล้วในบทความ .NET Core คืออะไร แม้จะมีจำนวนมาก แต่ทั้งหมดก็อาจถูกจัดประเภทออกเป็นกลุ่มใหญ่ ๆ ได้ 4 กลุ่มคือ • .NET Framework • .NET Core • .NET Native • .NET Standard
ภาพหน้าปกเทคนิคทำสไลด์ นำเสนออะไรก็ผ่านใน 3 นาที บทความ

เทคนิคทำสไลด์...นำเสนออะไรก็ผ่านใน 3 นาที

การนำเสนอต่อผู้บริหารขององค์กรของเราเอง เพื่อให้ผู้บริหารตัดสินใจอนุมัติโครงการหรือมาตรการของเรา การนำเสนอแบบนี้ มักใช้เวลาไม่กี่นาที ซึ่งเป็นการนำเสนอข้อมูลหรือข้อเท็จจริงเป็นหลัก จึงไม่ใช้อารมณ์ร่วมเป็นตัวชูโรง เนื่องจากอาจทำให้ความน่าเชื่อถือของเราลดลง และเสียเวลาผู้บริหารนั่นเอง
รูปภาพปกบทความLive Presentation ฟีเจอร์ใหม่ PowerPoint Online สามารถแชร์ ส่งต่อสไลด์แบบสดๆ ผ่าน QR-Code ได้แล้ว บทความ

PowerPoint Online สามารถ Share สไลด์แบบสดๆ ผ่าน QR-Code ได้แล้ว

Microsoft Education ได้เปิดเผยลูกเล่นใหม่ใน PowerPoint เวอร์ชั่นออนไลน์ เป็นการนำเสนอสไลด์แบบสดๆ แล้วแชร์ผ่านอินเตอร์เน็ตด้วยการสแกน QR Code ทำให้เราส่งต่อสไลด์ ไปยังคอมพิวเตอร์ มือถือ อุปกรณ์ปลายทางต่างๆ ที่ต้องการชมสไลด์ของเราได้อย่างง่ายดาย
ภาพประกอบการอ่าน Query Execution Plan ตอนที่ 2 บทความ

การอ่าน Query Execution Plan ตอนที่ 2

ก่อนหน้านี้ บทความ การอ่าน Query Execution Plan ตอนที่ 1 เป็นการปูพื้นฐานเกี่ยวกับชนิดของการแสดงผล Compiled Plan (Query Execution Plan ที่ถูกเลือกจากกลไก Query Optimization แล้ว) ทั้งแบบ Estimated และ Actual และตัวอย่างการสร้างและปรับแต่ง Index ชนิด Covering Index กันไปแล้ว สำหรับ การอ่าน Query Execution Planตอนที่ 2 นี้ ผู้เขียนจะเจาะไปที่ตัวดำเนินการที่พบบ่อย รวมถึงความรู้เกี่ยวกับโครงสร้างตารางแบบต่าง ๆ กัน
.NET Core คืออะไร บทความ

.NET Core คืออะไร

.NET Core มีองค์ประกอบหลายส่วน อาทิ ตัว run time ชื่อ CoreCLR ซึ่งเป็นตัวrun time ที่มีทุกอย่างครบสมบูรณ์เช่นเดียวกับตัว run time CLR ใน .NET Framework ของ Windows หน้าที่ของมันคือทำตัวเป็น virtual machine เพื่อ Run และดูแลโปรแกรมที่เขียนไว้เพื่อให้ทำงานใน .NET
Realtime Dashboard ด้วย Power BI บทความ

Power BI Realtime Dashboard

Power BI Realtime Dashboard เป็นการนำเอา Power BI Report มาแสดงผลแบบ Realtime ไม่ต้องรอ Sync ข้อมูลใด ๆ เมื่อ User ทำการ Input ข้อมูลก็จะแสดงผลได้ทันที โดยใช้ความสามารถของ Microsoft Power Platform โดยในกรณีศึกษานี้
Function Excel A to Z บทความ

Excel Functions A to Z รวมสูตร 26 สูตร พร้อมวิธีใช้งาน และ ตัวอย่าง ให้เข้าใจได้ง่าย ๆ

สูตรคำนวณ Excel มีทั้งหมด 26 สูตร พร้อมวิธีใช้งาน และ ตัวอย่าง ให้เข้าใจได้ง่าย ๆ 26 สูตร AVERAGE, BAHTTEXT, COUNTA, DATE, EOMONTH, FV, GETPIVOTDATA, HYPERLINK, INDEX, LEN, MID, NOW, OFFSET, PROPER, QUOTIENT, RIGHT, SUM, TEXTJOIN, TRIM, UPPER, VLOOKUP, WEEKNUM, WORKDAY.INTL, XLOOKUP, YEAR, Z.TEST
Generalized Async Return Types บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Generalized Async Return Types

คุณสมบัติ “การทำให้ค่าส่งกลับของ Async กว้างขึ้น” (Generalized Async Return Types ย่อ GART) เป็นคุณสมบัติใหม่ของภาษา C# 7.0 ที่ช่วยให้การส่งค่ากลับจาก Method แบบ Async ไม่จำเป็นต้องมีชนิดข้อมูลเป็น Object อย่างแต่ก่อน เดิมทีการส่งค่ากลับจากmethodแบบAsyncเป็นได้แค่ task, task<T> หรือไม่ก็ void ซึ่งไม่ดีเพราะการเป็น task เป็น Reference Type การใช้งานมันจะเกิดการจองที่หน่วยความจำสำหรับ object หรือที่เรียกว่า boxing ที่เราต้องการหลีกเลี่ยงเพราะจะทำให้เกิดปัญหาคอขวด
การดู Critical Path ของโครงการ ใน Microsoft Project บทความ

การดู Critical Path ของโครงการ ใน Microsoft Project

ปัญหาหนึ่งที่ผู้จัดการโครงการพบบ่อย ๆ ก็คือ ระหว่างที่ดำเนินโครงการ มีงานบางงานมีปัญหาเกิดขึ้น เช่นวัตถุดิบมาช้ากว่าที่คาดการณ์ไว้ หรือพนักงานต้องการลาในวันทำงาน ผู้จัดการโครงการจะตัดสินใจแก้ปัญหาอย่างไร หากอนุมัติไปแล้วงานที่เกี่ยวข้องกับวัตถุดิบหรือพนักงานดังกล่าวจะเสร็จช้ากว่ากำหนด จะทำให้วันเสร็จสิ้นของทั้งโครงการต้องเลื่อนไปหรือไม่ ซึ่งก็จะมีผลต่อค่าปรับและความน่าเชื่อถือขององค์กรในอนาคต ปัญหาในลักษณะนี้สามารถป้องกันได้ โดยการพิจารณาว่างานที่เกิดปัญหาขึ้นอยู่ใน Critical Path หรือไม่
การดูค่าใช้จ่ายโครงการแยกตามเดือนด้วย Microsoft Project บทความ

การดูค่าใช้จ่ายโครงการแยกตามเดือนด้วย Microsoft Project

โครงการขนาดใหญ่มักมาพร้อมกับงานย่อย(tasks)จำนวนมาก และมีการกำหนดการใช้งานทรัพยากรที่หลากหลาย ไม่ว่าจะเป็นวัตถุดิบ คน หรือค่าใช้จ่ายอื่น ๆ และแน่นอนว่าผู้จัดการโครงการต้องนำข้อมูลเหล่านี้มาใช้ในการตัดสินใจและแก้ปัญหาได้อย่างรวดเร็ว โปรแกรม Microsoft Project เป็นโปรแกรมที่ถูกสร้างขึ้นเพื่ออำนวยความสะดวกให้กับผู้จัดการโครงการขนาดใหญ่โดยเฉพาะ ซึ่งสิ่งที่สำคัญที่สุดในโครงการคงหนึไม่พ้นการควบคุมและบริหารค่าใช้จ่ายให้อยู่ภายใต้งบประมาณที่ได้กำหนดไว้
การอ่าน Query Execution Plan ตอนที่ 1 บทความ

การอ่าน Query Execution Plan ตอนที่ 1

บทความนี้ต่อจากบทความ “เตรียมพร้อมก่อนอ่าน Execution Plan” หากผู้อ่านเปิดมาเจอบทความแล้วยังไม่ได้อ่านบทความแรกผู้เขียนแนะนำให้อ่านก่อน เพราะจะได้ทราบถึงขั้นตอนการประมวลผลคิวรี่ว่ามีกลไกเช่นไร สำหรับบทความนี้ผู้เขียนจะใช้ 2 เครื่องมือเป็นหลักคือ Microsoft SQL Server Management Studio (SSMS) และ Sentryone Plan Explorer หากผู้อ่านต้องการทำตามตัวอย่างในบทความ ก็สามารถหาดาวน์โหลดได้จาก https://www.sentryone.com/plan-explorer
Switch Statement with Pattern Matching บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Pattern Matching ด้วยคำสั่ง Switch

ในภาษา C# เวอร์ชัน 7.0 การตรวจสอบเพื่อการจับคู่รูปแบบ (Pattern Matching: PM) ด้วยคำสั่ง if และ switch ได้รับการพัฒนาให้ดียิ่งขึ้น ยืดหยุ่นกว่าเดิม เขียนโค้ดได้สะดวกขึ้น แต่เดิมการทำ PM ด้วยหลักวัตถุวิธีเราจะสร้างคลาสฐานเป็นแบบ “abstract” จากนั้นจะใช้กรรมวิธีสืบคุณสมบัติเป็นคลาสลูกหลาย ๆ แบบตามต้องการ ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลจะถูกผนึกไว้เป็นหน่วยเดียวกัน ซึ่งเป็นการ “เชื่อมแน่น” (tight coupling) ในกรณีที่เราต้องการการ “เชื่อมหลวม” (loose coupling) เราจะแยก ส่วนเก็บข้อมูลและโค้ดเพื่อจัดการข้อมูลออกจากกัน จากนั้นทำ PM ด้วยคำสั่ง if และ switch ซึ่งหากมีรูปแบบจำนวนวนมาก โค้ดจะยืดยาวเยิ่นเย้อ
ภาพหน้าปกบทความ เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose บทความ

เปลี่ยนชื่อเดือนภาษาไทยให้เป็นชื่อเดือนภาษาอังกฤษใน Microsoft Access ด้วยฟังก์ชัน Choose

กลุ่มฟังก์ชัน Program Flow นั้นมี 3 ฟังก์ชันในหมวดหมู่นี้ ได้แก่ 1. ฟังก์ชัน IIF แนวทางการใช้เหมือนฟังก์ชัน IF ใน MS Excel 2. ฟังก์ชัน Switch 3. ฟังก์ชัน Choose จะกล่าวถึงกันในบทความนี้ค่ะ
รูปแสดงหัวข้อ App ไม่ค้างตอนอ่านไฟล์ใหญ่ บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : App ไม่ค้างตอนอ่านไฟล์ใหญ่

.NET Core version ที่ออกใหม่ก็จะใช้งานกับภาษา C# version ใหม่สุดได้ .NET Core version ปัจจุบันคือversion 2.1 สนับสนุนภาษา C# version 7.1 ส่วนversionต่อไปคือ 3.0 จะสนับสนุนภาษา C# version 8.0 ในหัวข้อนี้เราจะมาดูตัวอย่างการเขียนโค้ด การทำงานกับซิปไฟล์ (zip file) ด้วยภาษา C# ใน.NET Core ว่าเหมือนหรือแตกต่างกับการเขียนภาษา C# ใน .NET Framework หรือไม่อย่างไร
สูตรคำนวณหามูลค่าเงินตามเวลาในอนาคต ด้วยฟังก์ชั่น FV บทความ

สูตรคำนวณหามูลค่าเงินตามเวลาในอนาคต ด้วยฟังก์ชั่น FV

ใน Microsoft Excel มีความสามารถในการคำนวณด้านการเงิน (Finance Functions) มากมาย ไม่ว่าจะเป็นการคำนวณ PV, PMT, IRR, FV, NPER, NPV เป็นต้น ซึ่งบทความในวันนี้จะแนะนำสูตรสำหรับการหามูลค่าเงินในอนาคต หรือ Future Value (FV) กันครับ
เตรียมพร้อมก่อนอ่าน Execution Plan บทความ

เตรียมพร้อมก่อนอ่าน Execution Plan

มีคนถามเข้ามาพอสมควรเวลาที่ผู้เขียนแสดง Query Execution Plan และวิเคราะห์ประสิทธิภาพให้ฟัง ทั้งในหลักสูตรที่ผู้เขียนบรรยายหรือสรุปผลประสิทธิภาพให้ลูกค้าฟัง ส่วนใหญ่อยากทราบว่ารายละเอียดของแต่ละตัวดำเนินการที่แสดงหมายถึงอะไร ผู้เขียนก็อยากจะเล่ามันทุกตัวแต่บางครั้งมันเล่ายากมาก เพราะหลายๆ ตัวต้องรู้ถึงโครงสร้างตารางทั้งแบบ Rowstore และ Columnstore ต้องรู้ถึงโครงสร้าง Indexes ทั้งแบบ Rowstore และ Columnstore เช่นกัน อีกทั้งยังต้องเข้าใจลำดับการประมวลผลของคำสั่ง เข้าใจถึงการเกิด Parallelism จิปาถะไปหมด ผู้เขียนขอเริ่มจากการทำความเข้าใจขั้นตอนการประมวลผลคิวรี่กันก่อนดีกว่า
บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : การทำงานกับซิปไฟล์ (zip file)

.NET Core version ที่ออกใหม่ก็จะใช้งานกับภาษา C# version ใหม่สุดได้ .NET Core version ปัจจุบันคือversion 2.1 สนับสนุนภาษา C# version 7.1 ส่วนversionต่อไปคือ 3.0 จะสนับสนุนภาษา C# version 8.0 ในหัวข้อนี้เราจะมาดูตัวอย่างการเขียนโค้ด การทำงานกับซิปไฟล์ (zip file) ด้วยภาษา C# ใน.NET Core ว่าเหมือนหรือแตกต่างกับการเขียนภาษา C# ใน .NET Framework หรือไม่อย่างไร
ภาพหน้าปกบทความ การใช้ Socket Class เพื่อส่งและรับข้อมูลกับ Server  HTTP บทความ

การใช้ Socket Class เพื่อส่งและรับข้อมูลกับ Server HTTP ใน .NET Core 2 และ C# 7

สำหรับบทความนี้จะกล่าวถึงคุณสมบัติที่ถูกปรับปรุงใหม่ของภาษาซีชาร์ป 7.0 และ .NET Core 2.0 ในประเด็นที่เกี่ยวข้องกับการสื่อสารข้อมูลในเครือข่าย
Best Practice Microsoft SQL Server 2019 บทความ

ตั้งค่าตาม Best Practice ทันทีตั้งแต่ตอนติดตั้ง Microsoft SQL Server 2019

ผู้เขียนติดตาม Microsoft SQL Server 2019 จาก Community Technology Previews (CTPs) จนตอนนี้ออก Release Candidate (RC) แรกออกมาแล้ว สิ่งหนึ่งที่ผู้เขียนพอใจมากคือมีการตั้งค่าระดับ Instance ตาม Best Practice ที่ควรจะเป็นให้ตั้งแต่ตอนติดตั้งเลย ดังนี้
การดูต้นทุนโครงการด้วย Microsoft Project บทความ

การดูต้นทุนโครงการด้วย Microsoft Project

โครงการขนาดใหญ่ มักมีความซับซ้อนอยู่ภายใน ไม่ว่าจะเป็นงานย่อย(tasks)จำนวนมาก ทรัพยากร (resources) ที่เกี่ยวข้องหลากหลาย ซึ่งบาง task อาจมีการดำเนินงานทับซ้อนกัน และเรียกใช้งาน resources มี model การคิดค่าใช้จ่ายที่ซับซ้อน เช่น ค่าล่วงเวลาและราคาที่เปลี่ยนไปตามช่วงเวลา
ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 14 บทความ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 14

ในตอนที่แล้วผู้เขียนพูดถึงเรื่องการเจาะจงอินเตอร์เฟส ซึ่งมีไว้เพื่อแก้ปัญหาในกรณีที่คลาสหนึ่งคลาสสืบคุณสมบัติจากอินเตอร์เฟสสองตัว และอินเตอร์เฟสสองตัวนั้นมีเมธอดชื่อเดียวกันและมีซิกเนเจอร์ตรงกัน จะมีผลให้อินเตอร์เฟสทั้งสองเรียกไปยังเมธอดเดียวกัน ในตอนนี้หัวข้อนี้จะพูดถึงการสร้างสมาชิกของอินเตอร์เฟสสองตัวแบบเจาะจงบ้าง
เก่งโค้ดงาน Business Intelligence ตอนที่ 7 บทความ

เก่งโค้ดงาน Business Intelligence ตอนที่ 7

ในภาษาเอ็มเราสามารถเขียนคิวรีที่อ้างถึงคิวรีอื่นเป็นซอร์สได้ ยกตัวอย่างเช่น สมมติว่าเรามีเวิร์กชีตในโปรเกรมเอ็กซ์เซลซึ่งมีตารางอยู่สองอัน ตารางชื่อ Sales และ ตารางชื่อ Product
การแสดงวันเวลาปัจจุบันแบบอัตโนมัติทุก 1 วินาทีบนฟอร์ม บทความ

การแสดงวันเวลาปัจจุบันแบบอัตโนมัติทุก 1 วินาทีบนฟอร์ม

ถ้าเราต้องการให้ วันเวลาปัจจุบันแสดงบน Form โดยที่ไม่ต้องเขียน code เราสามารถทำได้ใช้ Calulate Control โดยกำหนด Property ที่ Control Source ของ Textbox Control Source
หน้าปกบทความ Backward Compatibility (การเข้ากันได้ย้อนหลัง) ของ API บทความ

Backward Compatibility (การเข้ากันได้ย้อนหลัง) ของ API

บทความตอนนี้พูดถึง Backward Compatibility ของ API ซึ่งคนโค้ดควรรู้และระมัดระวังเมื่อใช้งาน Framework ที่ออก version ใหม่กับ source code เก่าหรือ binary ที่ Compile ไว้กับ version เก่า หรือเมื่อเขียน library ใช้งานเอง เช่น ปัญหา Reference Types ที่ไม่เกี่ยวข้อง parameter แบบ Reference Types กับแบบที่ค่าเป็น null ไม่ได้ parameter ทางเลือก (Optional parameters) และ ปัญหาเรื่องความเข้ากันได้ย้อนหลังในระดับ source code และ binary เมื่อมีการทำ method overload กับ Type ที่เป็น Generic
การสืบค้นตามช่วงเวลา บทความ

การสืบค้นตามช่วงเวลา

นี่ก็เป็นอีกหนึ่งบทความใน “ซีรีย์คิวรี่ตามคำขอ” เพราะได้รับคำถามมา ก่อนอื่นผู้อ่านพบว่ามีผู้พัฒนาจำนวนไม่น้อยเก็บข้อมูล datetime เป็น string เพราะอาจไม่ชำนาญในการจัดการข้อมูล datetime เลยสตาฟมันไว้ในรูปแบบ string แทน ซึ่งกลายเป็นภาระในการสืบค้นเพราะเมื่อต้องการนำมาใช้ประโยชน์ก็ต้องหาทางสกัดข้อมูลจาก string มาเป็น datetime ก่อนอยู่ดี
การหาวันเริ่มต้นและวันสุดท้ายของเดือนปัจจุบัน บทความ

การหาวันเริ่มต้นและวันสุดท้ายของเดือนปัจจุบัน

บทความนี้ผู้เขียนขอเรียกเป็น “ซีรีย์คิวรี่ตามคำขอ” เพราะผู้เขียนได้รับการสอบถามถึงการสืบค้นวันสุดท้ายของเดือนปัจจุบัน ทั้งที่ Microsoft SQL Server นั้นมีฟังก์ชั่น EOMONTH (End of Month) มาตั้งแต่เวอร์ชั่น 2012
พัฒนาการณ์ของ Query Store บทความ

พัฒนาการของ Query Store

ตั้งแต่ได้เขียนบทความ “รู้จัก Query Store บน SQL Server 2016” เอาไว้ก่อนหน้านี้ แล้วได้เว้นช่วงไปพอสมควร ปัจจุบัน Microsoft SQL Server ใกล้จะออกเวอร์ชั่น 2019 ในเร็ววันนี้ มาดูกันว่า Query Store เปลี่ยนไปจากเดิมมากแค่ไหนกัน
บทความ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 13

ข้อดีอีกอย่างหนึ่งของภาษาซีชาร์ปคือการมีสิ่งที่เรียกว่า อินเตอร์เฟส (Interface) ซึ่งทำหน้าที่เหมือนเป็นสัญญาหรือข้อตกลงว่าคลาสใด ๆ จะมีพฤติกรรมอย่างไร อินเตอร์เฟสมีประโยชน์หลายอย่าง เช่นช่วยให้ออกแบบเพื่อลดความผูกแน่นระหว่างออพเจกต์ และเพิ่มคุณลักษณะการการเชื่อมกันอย่างหลวม ๆ ซึ่งเป็นคุณสมบัติอันพึงประสงค์เพราะจะช่วยให้ออพเจ็กต์มีความยืดหยุ่นมากขึ้น