Copyright © 2003-2009
By Suthep Sangvirotjanaphat
  Mobile: 089-967-2200, 081-915-7816
Phone: 0-2992-4877   Fax: 0-2992-4878
Fast Contact Us

GreatFriends.Biz Community

Custom Search
Copy เพื่ออ้างอิงถึงข้อความนี้:
 MESSAGE #116362 (อ่าน 999 ครั้ง)

Blog:Learning By Doing [ I am a Coder ]

Tags: Web, C#, Blog, Article

Learning By Doing [ I am a Coder ]

Introduction
     พอดีช่วงนี้ยุ่งเลยไม่ค่อยได้แวะเข้ามา GF สักเท่าไหร่  ตอนนี้เริ่มว่างก็เลยกลับมาเขียน
Blog ดีกว่า ประเด็น คือ Blog อันเก่าของผมมันตกไปไหนต่อไหนแล้ว เลยขอเขียนใหม่
ไม่อยากไปขุดมัน :P  แต่ผมเอา Link แปะไว้เผื่อ อาจพอเป็นประโยชน์บ้างครับ ตามนี้
Dev All In One :)
Dev All In One V2 :)
 
สำหรับ บางบทความที่มีบางท่านขอมา ผมขอติดไว้ก่อนนะครับ
ไว้ผมจะมาเขียนให้ครับ ^^ หรือบางทีทักเอ็มมาไม่ได้ตอบ
ต้องขอโทษด้วยครับ เพราะผมมักจะออน ทิ้งไว้แล้วไม่อยู่อะครับ :)
 
   เนื่องจากผมไม่ได้ใช้ Blog ฟรี เพราะกะว่าจะลองทำเองดู โดยใช้ เอเอสพีดอทเน็ต
แต่ก็ แพลนมานาน จน นิ่งๆๆไป  ตอนนี้เลยว่าจะลองเขียนสักตั้งดู ศึกษาไป เขียนไป
มันจะเสร็จใหม เนี่ย *-* แล้วจะเอาที่ได้ศึกษา มาเขียนเป็นบทความฝากไว้ที่นี่ก่อนครับ   
 
สุดท้าย ก็ต้องบอกว่า อย่าไปหวังอะไรมากกับ Blog นี้นะครับ
สิ่งที่ผมเขียน ก็จะเขียนใน Style ผมครับ อย่าคิดมาก  
ส่วน ถ้าชอบ หรือ ไม่ชอบ ยังไงสามารถ แสดงความเห็น ได้ที่ มุมบนขวา นะครับ
 
By tapeza๕๕๕ ++
 


tapeza555 วันที่ส่ง: 12 พ.ย. 52 16:59 GMT+7
วันที่ปรับล่าสุด: 3 ก.พ. 53 13:49 GMT+7
REPLY #1 (116829)
Blog: My First Site - Dotnetdd.Com
 
    หลังจากที่เห็นหลายๆคนมีเว็บของตัวเอง เช่น
พี่ nas - www.aspnetthai.com
คุณ aekram43  - www.dotnetdiff.net
คุณ NeoMatrix (มั้ง :P) - http://www.majoygun.com
และของท่านอื่นอีกมากมาย *-*
 
 ผมก็เลยว่าจะลองทำเองดูบ้าง  มาตอนนี้ก็ค่อยๆ เริ่มเขียน และศึกษาไปด้วยในตัว( Learning by doing ) 
 รู้สึกจะไม่ใช่ง่ายๆๆ เลยแฮะ  แต่ช่างมันทำไปเรื่อยๆๆไม่รีบ :P
 อาจจะมีบางคนถามว่า  แล้วทำไม่ต้องทำเองด้วย ไม่ใช้ของฟรี เค้าทำดีกว่าเราอีก
 
ประเด็น ก็คือ ผมอาจจะเขียนบทความ .net ก็เลยคิดว่าเอาสิ่งที่ทำและศึกษามาเขียนก็น่าจะดี
เขียนใน style ของตัวเองเท่านั้นเองครับ ซะใจดี :P
 
มาเข้าเรื่องเกี่ยวกับ Dotnetdd.Com ดีกว่า
   สิ่งที่ผมตั้งใจไว้สำหรับ Dotnetdd.Com คือ รวบรวมเกี่ยวกับการพัฒนาเว็บไซต์ไว้ในนี้ เพราะ
ผมรู้สึกว่าทำไมต้องไปเข้าหลายๆๆ เว็บเพื่อหาข้อมูลด้วย บางเว็บก็อธิบายการทำเว็บ 2.0 ,Css
บางเว็บก็วิธีการทำ Unit Testing , หรือบางเว็บก็เขียนเกี่ยวกับ jQuery *-*
หรือการใช้ ASP.NET สำหรับคนเพิ่งหัดเขียน แล้วก็ บลาๆๆๆ  อีกมากมาย
เข้ามันที่เดียวนี่แหละจบ
 
    สำหรับการพัฒนาเว็บ  dotnet + ดีดี ผมค่อนข้างจะใส่ใจทุกรายละเอียดเลยทีเดียว ..
ตั้งแต่การออกแบบ Software Architecture ( มั่วไปวันๆ )หรือแม้กระทั่งหน้า UI
ที่สำคัญ คือ อยากให้มันใช้ง่ายๆ ไม่ต้องคิดมาก ไว้จะเอามาเขียนเป็นบทความครับ..
เล่นเอาเหงื่อตกเลย  ทำๆๆ รื้อๆๆ
 
   จริงๆแล้วผมก็ไม่ค่อยจะมีความสามารถสักเท่าไหร่ โดยเฉพาะ เรื่องการ Design หน้าจอ
หรือ Graphics นี่ อาศัยว่าใช้หลักการ Copy & Development เอาครับ
แล้วเอาทำใน Style ที่ผมชอบซะมากกว่า
 
นี่เป็นตัวอย่างของ Logo ของ Dotnetdd.Com ครับ Style การทำก็ได้มาจาก www.amazon.com 
 
ที่หน้า Home Page
 
 
ที่หน้าอื่นๆ เมื่อเอา Mouse ไปวางที่  Logo จะเป็นแบบรูปด้านล่างนี้ 
เพื่อให้ ผู้ใช้เกิดความรู้สึกว่ามันคลิ๊กได้นะ แล้วมันจะกลับไปหน้า Home
ซึ่งผู้ใช้หลายๆคนเอง ก็ยังไม่รู้ด้วยซ้ำว่าจริงๆแล้วเวลาคลิ๊ก Logo
มันสามมารถกลับไปหน้า Home ได้ ซึ่งตรงนี้ผมก็ว่ามันเจ๋งดีครับ
 
 Style การทำแบบนี้เอามาจาก หนังสือ คลิก ไม่ต้องคิด ! Don't Make Me Think
ซึ่งค่อนข้างนานแล้ว ไม่รู้ยังมีขายอยู่ใหม ลองไปซื้ออ่านดูครับ :)
 
 
เอาแค่นี้พอเป็นน้ำจิ้มก่อนละกัน ขี้เกียจเขียนแล้ว
 
ปล.
  - ตอนนี้กำลังเขียนบทความนึงที่จะใช้กับ Dotnetdd ไว้เสร็จแล้วจะมา Post ไว้ครับ
  - อ่อ Msn ผมโดนบล๊อกอะครับ เข้าไม่ได้ แต่ถ้าตอนดึกๆๆ ที่อยู่บ้านก็คัยมาได้ครับ ถ้าอยู่นะ*-*
 ** ท้ายสุด..อย่าไปหวังอะไรมากครับ ทำตามอารมณ์ + ตอนว่าง  
 
By tapeza555
I-am-a-coder


tapeza555 วันที่ส่ง: 25 พ.ย. 52 13:36 GMT+7
วันที่ปรับล่าสุด: 25 พ.ย. 52 13:36 GMT+7
REPLY #2 (118969)
ปัดฝุ่น Blog นี้ซะหน่อย ... เอาเว็บนี้เป็น Index ชี้ไปยัง Article เก่า-ใหม่ ผมละกัน
 
ตอนนี้แผนการ dotnetdd ก็ไม่คืบหน้า *-* ขี้เกียจมากไปหน่อย
แต่ไม่เป็นไรครับ ตอนนี้ก็กำลังทำการ สร้างในส่วนของ Infrastructure อยู่ ..
 
เริ่มต้นด้วยการ Build Fluent API เอาไว้ใช้เอง เข้าไปดู Code ได้ตาม Link
ด้านล่างนี้ครับ
 
Article : My code is readable!!
 
 
อ่อ แล้วใครสนใจ หรือ อยากได้ Article อะไร ถ้าผมพอจะมีความรู้
อยู่บ้าง ก็จะลองมาเขียนแล้วมาคุยกันครับ แต่อย่าหวังมากครับ
เขียนตามอารมณ์ *-* ไปหละครับ ..แว่บ
 
 
by:tapeza555
"Low profile , high profit"
 


tapeza555 วันที่ส่ง: 28 ม.ค. 53 18:36 GMT+7
วันที่ปรับล่าสุด: 28 ม.ค. 53 18:36 GMT+7
REPLY #3 (118986)

ถ้ามี hosting แล้วไม่ลองใช้ DOT NET Nuke แก้ขัดระหว่างพัฒนา app ไปก่อนละครับ

 
ว่าแต่ signature คราวนี้โดนใจมาก


jnithi วันที่ส่ง: 29 ม.ค. 53 09:17 GMT+7
วันที่ปรับล่าสุด: 29 ม.ค. 53 09:17 GMT+7
REPLY #4 (119144)
Blog: Plain Old CLR Object (POCO)

  ขอบคุณครับพี่ jnithi ที่แนะนำ แต่ตอนนี้แบบว่าขี้เกียจสุดๆ   ยังไงผมจะลองดูครับ..

 

    วันนี้ไม่รู้จะเขียนอะไร ก็เลยมาเขียนเกี่ยวกับ POCO ซะหน่อยดีกว่า ว่ามันมีที่มาที่ไปยังไง

จริงๆ  POCO ก็ไม่มีอะไรมากมาย แต่เพราะชื่อมันนี่เองที่ทำให้เรา งง กับมัน  มาเริ่มกันเลยครับ...   
 

     ประเด็นมันเริ่มต้นเมื่อเราต้องการจะออกแบบ Architecture ของโปรแกรมเรา

ให้แยกออกเป็น Layer ต่างๆ ตามที่คุ้นเคยก็คงหนีไม่พ้น 3-Layer

Presentation เรียกใช้ Business และ Business เรียกใช้ Data Access แบบนี้

 

 

 Focus to Business Logic Layer

     ปกติหากเราออกแบบในส่วนของ Business  เราสามารถทำได้เป็น 3 แบบ (Domain Logic Patern ) ดังนี้

      1.  Transaction Scripts
      2.  Domain Model
      3.  Table Module
 
***ref : Pattern of Enterprise Appication Architecture (PoEAA)
 **ซึ่งผมไม่ขอพูดเกี่ยวกับรายละเอียดของแต่ละตัวใน Blog นี้ครับ ไว้ค่อยคุยกันนอกรอบ...
 
เรามาดูที่ Domian Model   ซึ่งหากเราออกแบบ Class เพื่อมาใช้กับระบบหนึ่งๆ สมมุติ ระบบการสั่งซื้อสินค้า
เราก็อาจจะ Design Class ได้ประมาณด้านนี้ 
 
  Domain Model
 
 
นั่นคือ Class ของเราก็จะเป็นเหมือนตัวแทนบอกเล่าเรื่องราวของระบบนั้นๆ
แล้ว POCO มันเป็นยังไง มาดูกันตามด้านล่างนี้ครับ..
เราสามารถสร้าง Class Order ได้โดยการเขียนขึ้นมาเอง หรือไม่ก็ใช้ EF/LINQtoSQL ในการทำ Domain Class
ก็ได้แบบนี้
 
POCO (เขียนเอง)
 
public class Order : EntityBase<Order ,int>{   
        public DateTime OrderDate {get;set;}
        public Customer OrderedBy {get;set;}
         ....
}
 
No POCO  (ใช้ EF(VS 2008 ) ช่วย Gen จาก DataBase )
 
[global::System.Data.Objects.DataClasses.EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Orders")]

[global::System.Runtime.Serialization.DataContractAttribute(IsReference=true)]

[global::System.Serializable()]

public partial class Orders : global::System.Data.Objects.DataClasses.EntityObject

{ 

        [global::System.Data.Objects.DataClasses.EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]

        [global::System.Runtime.Serialization.DataMemberAttribute()]

        public int OrderID{

            get { return this._OrderID; }

            set {

                    this.OnOrderIDChanging(value);

                    this.ReportPropertyChanging("OrderID");

                    this._OrderID = global::System.Data.Objects.DataClasses.StructuralObject.SetValidValue(value);

                    this.ReportPropertyChanged("OrderID");

                    this.OnOrderIDChanged();

            }

     }

    private int _OrderID;

    partial void OnOrderIDChanging(int value);

    partial void OnOrderIDChanged();

}

 
จากข้างบน เรามาหาคำจำกัดความของ POCO กันดีกว่า
 
" POCO ก็คือ การที่   Class ธรรมดาๆ ที่ใช้ในการอธิบายเกี่ยวกับระบบที่เราพัฒนา
โดยไม่ไปผูกติดกับวิธีการ   Persistence Data นั่นเอง "  
 
ซึ่งส่วนตัวผมชอบ POCO นะ ^^
แล้วมันดียังไง ?
  - ทำให้เราสามารถเปลี่ยนวิธีการ Implement ในส่งของ Persistence โดยจะกระทบกับตัว Domain Class น้อย
  - ทำให้ Code ดูไม่ยุ่งเหยิง ปรับแต่งเพิ่มเติมก็ทำได้ง่ายขึ้น เทสง่ายขึ้น
 
 
    สำหรับชื่อ POCO นั้นอย่างที่บอกไปในตอนต้นว่า ชื่อมันไม่ค่อยจะสื่อสักเท่าไหร่ เนื่องจากว่า
ที่มามันเลียนแบบ Java ที่ใช้คำว่า POJO จนต่อมาภายหลัง ในหนังสือ Applying Domain-Driven Design and Patterns
ของ Jimmy Nilsson ก็ได้ใช้คำว่า Persistence Ignorance (PI) แทนครับ..โอเคค่อยดีขึ้นมาหน่อย
 
    ผมก็คงขอจบไว้แค่ตรงนี้กันครับ สุดท้ายมันอยู่ที่เราเลือกใช้ซะมากกว่า  แต่ประเด็นที่ผม
เขียนเพื่อให้เราได้ทราบถึงว่า มันเป็นยังไง ถึงแม้ตอนนี้เราจะยังเขียนแบบธรรมดาๆ และยังไม่ได้ใช้มันเลยเลยก็ตาม..
 
 
ปล.
    - เห็นมีคน Request บทความ Design Pattern , EF กันเพียบเลย
 แต่ไม่มีคนเขียน   ไว้เดี๋ยวผมว่างจะลองไปเล่น แล้วมาเขียนดูครับ 
   - พอดีผมไปอยู่ ดาวนาแม๊คมา(ไม่ค่อยได้ตาม Technology 55+) เลยไม่ได้ศึกษา EF เลย เพิ่งจะรู้ไม่นานนี้เอง
ว่ามันใช้ได้กับ VS 2008 SP1    แต่ที่ผมเข้าใจนะครับ EF ที่มานี้ยังไม่สามารถทำ POCO ได้ครับ
ต้องรอ EF4 ของ VS 2010 ยังไงผมว่าไปศึกษาตรงนั้นเลยจะดีกว่า ได้ไม่เปลืองแรงครับ
  
 *และเหมือนเคย Comment กันได้เลยครับ ไม่รู้ผมเข้าใจตรงไหน ผิดหรือเปล่า จะได้แก้ให้ถูกต้องครับ
 เพื่อเป็นประโยชน์สำหรับผมและคนอ่านด้วย ผมเองก็ไม่ค่อยมีความรู้อะไรหรอกครับ เรามาแชร์ๆ กันดีกว่า
 
by tapeza555

"หากนิยามความสำเร็จด้วยคำว่า perfect โลกนี้ก็คงมีแต่คนล้มเหลวเท่านั้น!!"

 



tapeza555 วันที่ส่ง: 3 ก.พ. 53 13:49 GMT+7
วันที่ปรับล่าสุด: 3 ก.พ. 53 13:49 GMT+7

ตอบข้อความ/ร่วมแสดงความคิดเห็น

กรุณา Sign In / เข้าสู่ระบบ เพื่อโพสต์หรืออ่านข้อความ
ยังไม่ได้สมัครสมาชิก? Sign Up / สมัครสมาชิกใหม่
8 ก.ย. 19:59
Online: 136