แสดงบทความที่มีป้ายกำกับ Development แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Development แสดงบทความทั้งหมด

วันศุกร์ที่ 4 กรกฎาคม พ.ศ. 2557

Developer Tip #Paging With SQL

ใครๆก็จะมีปัญหาเกี่ยวกับการ Query จำนวนแถวมากๆ มักเป็นปัญหาเสมอๆเพราะข้อมูลมันเยอะถ้าแค่ 5-10 แถวมันยังไม่มากแต่ล่อไปสัก 10000 แถวชักเริ่มปัญหาเกิดขึ้น เวลา Query ทั้งหมด
วันนี้ผมไปเจอมาเกี่ยวกับการทำ Paging สำหรับ SQL Server 2008 และ 2012 ครับ
ลองไปดูกันนะครับ
--VIEWING THE PAGE "2" WITH 5 ROWS
DECLARE @PageNumber AS INT, @RowspPage AS INTSET @PageNumber = 2SET @RowspPage = 5
SELECT * FROM (             SELECT ROW_NUMBER() OVER(ORDER BY ID_EXAMPLE) AS NUMBER,                    ID_EXAMPLE, NM_EXAMPLE, DT_CREATE FROM TB_EXAMPLE               ) AS TBLWHERE NUMBER BETWEEN ((@PageNumber - 1) * @RowspPage + 1) AND (@PageNumber * @RowspPage)ORDER BY ID_EXAMPLE

Query ข้างต้นสำหรับ SQL Server ที่ไม่ใช่ 2012 นะครับ (แต่ 2012 ก็ใช้ได้นะครับ)
แต่สำหรับเวอร์ชั่น 2012 จะมีเพิ่มขึ้นมาทำให้ง่ายขึ้นนิดหน่อยครับ
--CREATING A PAGING WITH OFFSET and FETCH clauses IN "SQL SERVER 2012"
DECLARE @PageNumber AS INT, @RowspPage AS INTSET @PageNumber = 2SET @RowspPage = 10 
SELECT ID_EXAMPLE, NM_EXAMPLE, DT_CREATEFROM TB_EXAMPLEORDER BY ID_EXAMPLEOFFSET ((@PageNumber - 1) * @RowspPage) ROWSFETCH NEXT @RowspPage ROWS ONLY;

สำหรับ Version 2012 ได้มี Offset เข้ามาทำให้การทำงานง่ายขึ้นอีกขั้นนึง และยังได้ประสิทธิภาพที่ดีกว่าการใช้ ROW_NUMBER อีกด้วย สามารถดูเพิ่มเติมได้ที่นี่ครับ
http://social.technet.microsoft.com/wiki/contents/articles/23811.paging-a-query-with-sql-server.aspx

ขอบคุณ
http://social.technet.microsoft.com/wiki/contents/articles/23811.paging-a-query-with-sql-server.aspx
ครับ

วันจันทร์ที่ 26 พฤษภาคม พ.ศ. 2557

ASP.NET MVC(C#) ตอน 1

ASP.NET MVC(C#)
ตอนที่ 1 รู้จัก MVC
MVC ย่อมาจาก Model – View – Controller 3 ตัวนี้ มีความหมายและหน้าที่ของมัน
Model คือ ส่วนสำหรับใช้ติดต่อฐานข้อมูล ส่วนใหญ่ Developer จะใช้เก็นคำสั่งพวกก Insert,Update,Delete, Select ลงใน Folder นี้โดยแยกเป็น Class สำหรับติดต่อฐานข้อมูลโดยเฉพาะและ Object ที่ใช้สำหรับ Insert สู่ ตารางต่างๆ โดยส่วนตัวตรงนี้ผมชอบผลักให้ไปกับ Entity Framework เพราะทำให้การ Manage ง่ายดี

View คือ ส่วนสำหรับหน้าจอแสดงผล ใน ASP.net MVC ที่ใช้ RAZOR จะเป็น .cshtml ใน Visual Studio จะไม่มีหน้า Design ให้เหมือนกับ Web Form

Controller คือส่วนของการเชื่อมเพื่อแสดงผลระหว่าง Model และ View โดยใน ASP.net MVC จะอยู่ใน Folder Controller และสามารถ Add Controller ได้เลย ภายใน Controller จะมี Action อยู่ภายใน แต่ละAction จะเชื่อมต่อกับ View 1 View
 อ่านเพิ่มเติมได้ ที่นี่

MVC คือ Pattern หนึ่งในการดีไซน์และพัฒนา Software โดยส่วนใหญ่จะเน้นการพัฒนาผ่านบนเว็บ MVC ไม่ได้ถูกจำกัดแค่อยู่บน .NET เท่านั้นแต่สามารถใช้ได้กับหลายภาษา เท่าที่ผมรู้ก็จะมี PHP ที่มี Framework MVC จำนวนมาก JAVA ก็ไม่น้อย และ.NET ที่มี .NET Framework คอย Provide ไว้ให้

ASP.net Web Form VS ASP.NET MVC
Topic
Web Form
MVC
โครงสร้าง Solution
มีแค่ Designer กับ C#
มี 3 แบบคือ Model, View, Controller
รูปแบบภาษา
ใช้ได้ทั้ง VB.net แล C#.net
ใช้ได้ทั้ง VB.net แล C#.net
การติดต่อฐานข้อมูล
ไม่จำกัด Tool ขึ้นอยู่กับ Tool ที่ใช้กับ .net ได้
ไม่จำกัด Tool ขึ้นอยู่กับ Tool ที่ใช้กับ .net ได้ แต่ว่าโดยส่วนใหญ่จะเก็บไว้ที่ Folder Model
Html Design
มีหน้า HTML Design ให้ใน Visual Studio
ไม่มีหน้า Designer สำหรับ HTMLให้
การ Include File
จะต้องสร้างเป็น user Control(.asmx) แล้วลากเข้ามาใส่ในดีไซน์
สามารถสร้างเป็น Shared หรือ Partial จากนั้น ใส่คำสั่งในการ Include เข้ามาได้ ตาม Syntax
ASP.NET CONTROL FORM
สามารถลากวางใช้ จากหน้า  Designer ได้เลย
สำหรับ MVC ไมโครซอฟฟท์ จัดให้หลายชุดคำสั่งมากและง่ายต่อการดึงมาใช้ แต่ต้องพิมพ์เอา
Javascript Ajax
เขียนปกติ
เขียนปกติ
Ajax Tookit
มีให้
ไม่มีให้
เวลาในการพัฒนาสำหรับเริ่มใหม่
Bad
Normal
เวลาในการพัฒนาสำหรับผู้เป็น .Net WebForm
Fast
Normal
หลาย Developer
Bad
Good
การวาง Pattern ในการพัฒนา
ยาก
ง่าย สาเหตุเพราะ มี Pattern พื้นฐานได้ส่วนนึง แค่ตั้งชื่อและติดต่อฐานข้อมูลให้พร้อม
RESTful Service
No
Yes
ViewState
Yes
No
ViewBag
No
Yes
Performance
Good
Normal
Server Support ในไทย
มีครบทั่วเพราะเป็นพื้นฐาน
ต้องสอบถามบางที่
Learning Curve
Normal
Good
Upgrade Version
Easy
Easy
นี่คือเปรียบเทียบเบื้องต้น จากประสบการณ์ในการพัฒนาโดยตรงและหาข้อมูลเพิ่มเติมครับ
สาเหตุที่ต้องพัฒนาด้วย MVC

  1.  ข้อได้เปรียบสำหรับเริ่มโปรเจคใหม่คือ Pattern ในการพัฒนาที่ชัดเจนกว่า Web Form กับการวาง Pattern แบบ Model, View, Controller เปรียบเสมือนการวาง ครบเป็น Module ที่ง่ายต่อการ จัดการพัฒนาหลายๆคนพร้อมกับ
  2.   ยืนหยุ่นกับ Developer มาก ทำให้การพัฒนาเร็ว และแม้จะไม่ชำนาญด้านการพัฒนาสำหรับ .Net ก็สามารถจัดการส่งต่อให้ผู้เชี่ยวชาญได้ง่าย
  3.  หากวาง Style ในการเขียนและตั้งชื่อตัวแปร แล้ว ผู้ต่อนั้นง่ายมาก
  4. เรียนรู้ง่ายและไว
  5. สามารถ Plug กับ Pattern อื่นได้ง่ายเช่น Repository, Invention of Control หรือ อื่นๆ
  6. เขียน RESTful Service ได้ดี ง่ายต่อการเขียนติดต่อกับ Cross Platform
สามารดูเพิ่มเติมได้ ที่นี่
ลิงค์เพิ่มเติมสำหรับ Asp.net MVC
http://sinosoi.wordpress.com/2011/07/14/asp-net-mvc-01-%E0%B8%A1%E0%B8%B1%E0%B8%99%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/

http://www.microsoft.com/thailand/msdn/ASPNET_MVC3_HTML5_Vol1.aspx