Friday, September 28, 2007

ปีนไปให้ถึงจุดหมาย

อ่านหัวข้ออย่าพึ่งแปลกใจ ไม่ใช่อะไรหรอกครับ เป็นชื่อโครงการที่ผมแปลเองจากคำว่า Rampup เป็นโครงการของไมโครซอฟท์ครับ เป็นการเรียนรู้ Visual Studio 2005 ผ่านอินเตอร์เน็ต ชื่อเต็มๆ คือ MSDN Rampup

ฟรี ครับ

น่าสนใจมากๆ เลยนะครับ มีหลายระดับตามประสบการณ์ของแต่ละคน ตั้งแต่
  • Aspiring Developer
  • Java Developer
  • Microsoft Visual Basic 6 Developer
  • Microsoft Visual 2002/2003 Developer

ผมสมัครระดับ Aspiring Developer ล่ะ เอากันตั้งแต่แบเบาะดีที่สุด จะได้เนื้อหาแน่นปึก แหะ แหะ --'

สมัครเรียนได้ที่นี่เลยครับ http://msdn2.microsoft.com/en-us/rampup/default.aspx

Friday, September 14, 2007

ใช้ภาษาไทยเขียนโปรแกรม

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

แต่ปรากฏว่า ไม่มี error ใดๆ ใน source code ของ VS2005 แถมยังคอมไพล์ผ่านอีกด้วย เอาละครับนึกอะไรสนุกขึ้นมาทันที ลองมากดูโค้ดด้านล่างนี้กันดีกว่า


Public Class ลูกค้า
Private _ชื่อ As String
Public Property ชื่อ As string
Get
return _ชื่อ
End Get
Set (value As String)
_ชื่อ = value
End Set
End Property

Private _นามสกุล As String
Public Property นามสกุล As string
Get
return _นามสกุล
End Get
Set (value As String)
_นามสกุล = value
End Set
End Property
End Class


จากคลาสข้างต้นชื่อ "ลูกค้า" เป็นคลาสที่ประกอบด้วย Property "ชื่อ", "นามสกุล" และเราสามารถเรียกใช้งานได้ดังนี้


Dim ลูกค้าคนหนึ่ง As New ลูกค้า
ลูกค้าคนหนึ่ง.ชื่อ = "สมชาย"
ลูกค้าคนหนึ่ง.นามสกุล = "ใจดี"


โดยสามารถใช้งานได้ผ่านตัว Intellisence ของ VS2005 IDE ได้ตามปกติเสียด้วย
และผมก็ลอง bind เข้าไปกับ DatagridView ดูปรากฏว่าเวิร์คครับ


Dim กลุ่มลูกค้า As New List(Of ลูกค้า)
Dim ลูกค้าคนหนึ่ง As New ลูกค้า
ลูกค้าคนหนึ่ง.ชื่อ = "สมชาย"
ลูกค้าคนหนึ่ง.นามสกุล = "ใจดี"
กลุ่มลูกค้า.Add(ลูกค้าคนหนึ่ง)
DataGridView1.DataSource = กลุ่มลูกค้า




แล้วผมก็กลับไปเปิด VB 6 ขึ้นมาลองเล่นบ้าง ก็ใช้ภาษาไทยเขียนโปรแกรมได้เช่นกันครับ แต่ตัว Intellisence ของ VB 6 ไม่สามารถอ่านไทยได้ครับ ส่วนเครื่องมือและภาษาอื่นๆ ต้องไปลองกันเองนะ ใครได้ผลยังไงบอกให้รู้ด้วยนะครับ

--NooM--

Tuesday, September 11, 2007

การสร้าง Class เพื่อใช้กับ VS2005

ใน VS2005 เราสามารถสร้าง Class Diagram เพื่อสร้าง Class และ diagram ได้พร้อมๆ กัน มีประโยชน์โดยสามารถลดเวลาระหว่างการ design และ code ได้อย่างมาก เพราะสามารถ design ไปพร้อมๆ กับการ code ได้

และด้วยความสามารถใหม่ของ VS2005 ทำให้เราสามารถ binding Object เข้ากับ DataControl ของ .NET ได้ โดยผ่าน ObjectDataSoure control ใหม่เพียงแค่คลิกไม่กี่คลิก

เช่น หากผมมี class ชื่อ customer ดังนี้


Public Class Customer

    Sub New()
        MyBase.New()
        CustomerID = ""
        CustomerName = ""
        CustomerSurname = ""
        Status = CustomerStatusEnum.Pending
    End Sub

    Private _customerID as string
    Public Property CustomerID as string
       Get
            return _customerID
       End Get
       Set(value as string)
           _customerID = value
       End set
    End Property

    Private _customerName as string
    Public Property CustomerName as string
        Get
            return _customerName
        End Get
        Set (value as string)
            _customerName = value
        end Set
    end property

    Private _customerSurName as string
    Public Property CustomerSurName as string
        Get
            return _customerSurName
        End Get
        Set (value as string)
            _customerSurName = value
        end Set
    end property
   
    Private _status as CustomerStatusEnum
    Public Property Status as CustomerStatusEnum
        Get
             return _status
        End Get
        Set (value as CustomerStatusEnum)
             _status = value
        End Set
    End Property
end class


เราสามารถนำ class นี้ไป bind กับ DataGridView ได้ แต่ต้องทำให้เป็น collection class ก่อนโดยสร้าง

แบบที่ 1


Public Class Customers
    Private _customers as List(Of Customer)
    Public Property Customers as List(Of Customer)
        Get
            return _customers
        End Get
        Set (value as List(Of Customer)
            _customers= value
        end Set
    End Property
End Class


หรือจะสร้าง class collection ที่สืบทอดมาจาก List Class เลยก็ได้ครับ

แบบที่ 2


Public Class Customers
    Inherits List(Of Customer)
       ' ไม่ต้องเขียน code อีก
End Class


แบบที่ 2 จะดีหน่อยตรงที่เวลาเขียนโปรแกรมไม่ต้องอ้างถึง property อีก เช่น
    การเรียกใช้แบบที่ 1

        Dim custs as New Customers
        custs.Customers.Add(New Customer)

    การเรียกใช้แบบที่ 2

        Dim custs as New Customers
        custs.Add(New Customer)


ถ้าเรา view ดูใน diagram จะแสดงรูปคล้ายๆ กับรูปนี้ครับ


จากนั้นผมสร้าง Form ขึ้นมาเพื่อเรียกใช้งาน Class และ bind เข้า DataGridView ครับ โดยวาง DataGridView ไว้บน form จากนั้นเขียนโค้ดดังนี้


    Private custs As New Customers

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles MyBase.Load
        Dim cust As New Customer

        cust.CustomerID = "1"
        cust.CustomerName = "NooM"
        cust.CustomerSurname = "DeV"
        cust.Status =
CustomerStatusEnum.Active

        Dim cust1 As New Customer
        cust1.CustomerID = "2"
        cust1.CustomerName = "YourName"
        cust1.CustomerSurname =
"YourSurname"

        custs.Add(cust)
        custs.Add(cust1)

        DataGridView1.DataSource = custs
    End Sub


ทดลอง run จะได้ผลลัพท์ดังรูปครับ
ถ้าสังเกตดีๆแล้ว จะเห็นว่า Property ที่เป็น Enum นั้น DataGridView สามารถแสดงชื่อจาก Enum ได้อีกด้วย จากรูปด้านบนคือ column ชื่อ Status ครับ มันแสดงสถานะ Active และ Pending ให้เลยด้วย เจ๋งไหมล่ะครับ

ไม่ยากเลยใช่ไหมครับ

--NooM--


Wednesday, September 5, 2007

เปลี่ยน Template

ผมได้เปลี่ยน Template จากเดิมที่ใช้ของ New Blogger Template เป็น Template ชื่อ GlossyBlue Blogger Template ซึ่งได้ link มาจาก blog ของคุณ iake อีกทีใน post นี้ครับ http://iake.blogspot.com/2007/05/25-itheme-for-new-blogger.html และก็ปรับแต่งนิดหน่อยเท่านั้นเอง

GlossyBlue ตัวนี้ค่อนข้างพร้อมในส่วนของ Recent posts, Recent Comments ที่เราไม่ต้องทำอะไรมากเลย เพียงแต่แปะ javascript ลงไปเท่านั้น

แล้วก็ปรับรูปในส่วน Header นิดหน่อยครับ เพราะมันมีรูปดินสออยู่ข้างหน้า Header text เหมือนรูปด้านล่างนี้ ผมจึงขออนุญาตเอาออกครับ

เอาออกได้โดยการไป Edit HTML และ ลบโค้ดนี้บรรทัดนี้ครับ

background: url(http://newbloggertemplates.googlepages.com/glossyblue-header-icon.gif) no-repeat;

ก็จะได้ Header text เปล่าๆ ไม่มีรูปดินสอมากวนใจแล้วครับ


ปล.ในส่วนของ Recent Readers ขอเวลาผมศึกษาก่อนครับว่ามันจะขึ้นมาได้อย่างไร

Beauty and the Beast Unit


ผมเป็นแฟนเกมส์ซีรี่ย์ Metal Gear Solid (MGS) เล่นมาทั้ง 3 ภาค และตอนนี้กำลังรอคอยภาคใหม่ล่าสุดซึ่งจะออกใน PS3 ครับ

วันนี้ได้เข้าไปเยี่ยมชมใน http://www.gconsole.com มาครับเพื่อ update ข่าวสารเกมส์ใหม่ๆ เห็นคำนี้แล้วตกใจครับ "Beauty and the Beast Unit" ผมขอแปลเองเป็นไทยว่า "หน่วยรบอสูรกายที่สวยงาม"

มันเป็นบอส (Boss) ของ MGS 4 ครับ ฟังชื่อแล้วสยองครับ เป็นบอสหญิงทั้งนั้นเลย แต่ดูไม่ออกครับว่ามีความสวยตรงไหน (สยองซะมากกว่า)

ลองมาดูกันครับว่าแต่ละนางมีรูปร่างหน้าตายังไงกันบ้าง

Crying Wolf


Raging Raven



Laughing Octopus


Screaming Mantis


เป็นไงกันบ้างครับ "สวยลากไส้" กันทั้งนั้นเลย

Monday, September 3, 2007

สัมมนา MSDN - Thailand REMIX 07

ไมโครซอร์ฟ ประเทศไทย จัดงานสัมมนาในหัวข้อ MSDN - Thailand REMIX 07
วันที่ 26 กันยายน 2550 ณ โรงแรมเชงกรีล่า

งานสัมมนาครั้งนี้ได้แบ่งออกเป็น 2 ส่วน คือ
  • Web Development
  • Web Design
รายละเอียดดูได้ที่นี่ครับ http://www.microsoft.com/thailand/msdn/thairemix07/agenda.aspx

สงสัยต้องใช้วิชาแยกร่างแบบนารุโตะ

Sunday, September 2, 2007

เริ่มต้นกับ WCF

ผมได้ทำตัวอย่างการเขียนโปรแกรม WCF อย่างง่ายๆ มาให้ลองกันดูครับ
เมื่อคุณมี VS2005 ที่ติดตั้ง .NET Framework 3.0 แล้วก็เริ่มได้เลยครับ

เริ่มต้นกับ WCF

--NooM--