ไปที่เนื้อหา


JackY

เป็นสมาชิกตั้งแต่ 14 Dec 2006
ออฟไลน์ ใช้งานล่าสุด Dec 09 2009 02:56 PM
-----

กระทู้ที่ฉันเริ่ม

[.NET] :: Develop Persistent Framework

09 October 2007 - 07:58:09 AM

หลังจากห่างหายไปนานครับ กลับมาคราวนี้ก็มาพร้อมกับความรู้ใหม่ๆครับ
สืบเนื่องมาจากตอนนี้ผมกำลังพัฒนา Framework เพื่อใช้กับงานที่บริษัท
ซึ่งออกแบบระบบเป็น Object แต่ติดตรงที่ถ้าผมมีการเพิ่ม property ลง
ไปใน object ก็ต้องมานั่งแก้ SQLStatement ตอนสั่งให้ object บันทึก
ค่าลงในฐานข้อมูล เลยไปค้นหาข้อมูลใน CodeProject
มีคนเขียน persistent โดยการ map attribute เข้ากับแต่ละ property
แล้วเอาไปยัดใส่ stored procedure เลยปิ๊งไอเดียมาเขียนเป็น framework
ของเรา แบบของเราดีกว่า ยอมรับครับว่าลอกบางอย่างมา แต่บางอย่างก็คิดเอง
ไว้ผมจะมา post หลักการและ code เอาไว้ เผื่อมีเซียน VC# มาดูจะได้มาช่วย
optimize หุหุเล่นง่ายเลยนะ ไปล่ะค้าบ

เคยรู้สึกบ้างมั้ยว่าทำไม Exe ของเดลไฟมันใหญ่จัง

02 May 2007 - 03:39:52 PM

เหตุผลก็เพราะว่า เดลไฟ ได้รวมเอา Runtime Library ไปอยู่ในตัว EXE ด้วยนั่นเอง ยิ่งโปรแกรมใครที่แปะ Component แบบวิลิสมาหลาล่ะก็ หุหุ EXE ท่านจะมีขนาดมหึมาเลยทีเดียว เพราะว่าไปดึงเอา library มาเก็ยไว้เยอะมาก

แล้วหนทางแก้ล่ะ การ compact ก็เป็นอีก solution นึงที่น่าสนใจ แต่เรามีวิธีที่ดีกว่าทำให้ Exe เราเหลือขนาดไม่ถึง 50K หุหุ แถมเรายังเอา Exe มา Compact ก็ยิ่งทำให้มันเล็กลงไปอีกได้นะ และวิธีการนั้นก็คือการใช้ BPL(Boland Package Library) นั่นเอง และวิธีการของเราก็คือ เราจะสร้าง Project ที่ไม่มีการ Add Form ลงไปเป็นสามาชิกเลย นั้นหมายความว่า exe เรานั้นจะไม่มี form ทำให้ขนดของมันเล็กลงนั่นเอง

แล้วเราจาเอาฟอร์มที่ใช้งานมาแสดงจากไหนล่ะ แต่นๆๆๆๆแต๊น ก็เอาไปเก็บไว้ใน BPL ไง วิธีการก็ไม่ยาก แค่เรา New Project ใหม่ แล้วแทนที่จะเลือกเป็น Application ธรรมดา ก็เปลี่ยนเป็น Package เท่านั้นเอง แล้วเราก็ทำการ New Form ได้เหมือนการเขียน App ทั่วไป แต่ต่างกันที่เราไม่สามารถรัน Package ได้โดยตรงนั่นเอง แต่ต้องให้ App มาเรียก BPL ของเราครับ

หุหุ หลายคนคงน้ำลายหก เอาไว้ Rep หน้าจามาโพสวิธีการโหลด BPL และ เรียกใช้ พร้อมทั้งการสร้าง Project ให้สามารถเรียก BPL ได้นะครับ

วันนี้เอาไว้แค่นี้ก่อน