ไม่ได้อัพหลายวันมีเรื่องหลายเรื่องที่เกิดขึ้น บางครั้งถ้าเราแยกความรู้สึกได้ในคนคนเดียวก็คงจะดี งานก็เยอะมากจริงๆ จนไม่มีเวลาทำอย่างอื่นเลย เราเกิดมาเพื่อสิ่งนี้จริงๆ
บ่นเสร็จเรียบร้อยแล้ววันนี้จะมาพูดถึงการทำ pre compilation ในเวบ 2.0 สืบเนื่องจากประทับใจเป็นการส่วนตัวที่ความสามารถมากกว่า เวบ 1.1 เสียอีก ในการทำ pre compilation นั้นก็หมายถึง เมื่อเวลาที่เราสร้าง project หนึ่ง project ออกมาแล้วเมื่อเราต้องการนำเวบ project นั้นขึ้นไปไว้บน server เราต้องทำการ deployment project ให้สามาถรันได้เหมือนที่อยู่ในฝั่ง local แต่ถ้าใครได้ใช้ Web Developer 2005 Express จะไม่มี feature ในการ deploy project ซึ่งความจริงแล้วเราสามารถนำ file ทั้งหมดขึ้นไปใว้บน server รวมทั้ง source code ทั้งหมดที่เรามี ซึ่งไม่ใช่เรื่องดีเลยที่เราจะทำเช่นนั้น เพราะเวลาที่มีการเรียกใช้หน้าเวบจะมีการ compile ใหม่ทุกครั้งทำให้ประสิทธิภาพไม่ดีเท่าที่ควร ยิ่งถ้าเป็น hosting ที่เราไปเช่าไว้ก็เสี่ยงต่อการนำ source code ไปทิ้งไว้ เป้าหมายในการทำ pre compile นั้นก็คือ "no source code"
การทำ precompile สามารถทำได้หลายวิธีแต่วิธีที่จะพูดถึงในวันนี้ก็คือก็ใช้ความสามารถของ aspnet_compiler.exe ซึ่งมาพร้อมกับ Framework 2.0 เหมาะกับการนำไปใช้ในเวบ Web Developer 2005 Express เป็นอย่างยิ่งaspnet_compiler นั้นสามารถ compile project ที่เป็น visual directory ซึ่งต้องอยู่ภายใต้ server ที่เป็น iis aspnet_compiler จะไปทำการตรวจสอบในmeta dataของiis ว่ามีvisaul directoryอยู่จริงหรือไม่แล้วcompileออกมาตามtarget pathที่เรากำหนดไว้ หรือ เราจะcompile project folderภายในต้องมีfileนามสกุล.aspx,.ascx.vb,.csซึ่งในเวบ2.0นั้นจะมีการสร้างfolderมาให้ก็คือApp_Code มีไว้เก็บ code ที่เป็น .vb หรือ .cs App_Dataมีไว้เก็บfile databaseขั้นตอนในการทำpre compileมีดังต่อไปนี้
บ่นเสร็จเรียบร้อยแล้ววันนี้จะมาพูดถึงการทำ pre compilation ในเวบ 2.0 สืบเนื่องจากประทับใจเป็นการส่วนตัวที่ความสามารถมากกว่า เวบ 1.1 เสียอีก ในการทำ pre compilation นั้นก็หมายถึง เมื่อเวลาที่เราสร้าง project หนึ่ง project ออกมาแล้วเมื่อเราต้องการนำเวบ project นั้นขึ้นไปไว้บน server เราต้องทำการ deployment project ให้สามาถรันได้เหมือนที่อยู่ในฝั่ง local แต่ถ้าใครได้ใช้ Web Developer 2005 Express จะไม่มี feature ในการ deploy project ซึ่งความจริงแล้วเราสามารถนำ file ทั้งหมดขึ้นไปใว้บน server รวมทั้ง source code ทั้งหมดที่เรามี ซึ่งไม่ใช่เรื่องดีเลยที่เราจะทำเช่นนั้น เพราะเวลาที่มีการเรียกใช้หน้าเวบจะมีการ compile ใหม่ทุกครั้งทำให้ประสิทธิภาพไม่ดีเท่าที่ควร ยิ่งถ้าเป็น hosting ที่เราไปเช่าไว้ก็เสี่ยงต่อการนำ source code ไปทิ้งไว้ เป้าหมายในการทำ pre compile นั้นก็คือ "no source code"
การทำ precompile สามารถทำได้หลายวิธีแต่วิธีที่จะพูดถึงในวันนี้ก็คือก็ใช้ความสามารถของ aspnet_compiler.exe ซึ่งมาพร้อมกับ Framework 2.0 เหมาะกับการนำไปใช้ในเวบ Web Developer 2005 Express เป็นอย่างยิ่งaspnet_compiler นั้นสามารถ compile project ที่เป็น visual directory ซึ่งต้องอยู่ภายใต้ server ที่เป็น iis aspnet_compiler จะไปทำการตรวจสอบในmeta dataของiis ว่ามีvisaul directoryอยู่จริงหรือไม่แล้วcompileออกมาตามtarget pathที่เรากำหนดไว้ หรือ เราจะcompile project folderภายในต้องมีfileนามสกุล.aspx,.ascx.vb,.csซึ่งในเวบ2.0นั้นจะมีการสร้างfolderมาให้ก็คือApp_Code มีไว้เก็บ code ที่เป็น .vb หรือ .cs App_Dataมีไว้เก็บfile databaseขั้นตอนในการทำpre compileมีดังต่อไปนี้
1.เข้าถึงfile aspnet_compiler.exeรูปด้านล่าง
2. พิมพ์
aspnet_compiler -p"c:\mywebsite\" -v /c:\deploy3. เข้าไปดู folder target ที่เรากำหนดไว้ คือ c:\deploy\bin ปรากฏดังรูปด้านล่าง
จะเห็นว่าการทำ pre compile นั้นเราจะได้ target file ที่เป็น file assemplies (dll file) ภายใน folder deploy จะมีเฉพาะ fileaspx ,html ,config file ,image ... file อื่นๆ ที่เป็น .vb .cs จะโดน compile ให้อยู่ในรูป
aspx --> .compiled ภายในเป็น xml file บอกถึง ชื่อ file ที่อ้างอิงกันในแต่ละfile
App_Code -->assemplies (dll file) และ .compiled
.vb หรือ.cs ที่เป็น file separateกับaspx -->ขึ้นต้นด้วย App_Webซึ่งเป็น assemplies (dll file)
ถ้าเปิด file aspx ดู จะไม่มี source code html .ให้เห็น แต่จะมี ข้อความ
This is a marker file generated by the precompilation tool, and should not be deleted!
เค้าบอกว่า ห้ามลบ file นี้เด็ดขาด
เอาล่ะครับเราก็ได้ file ทั้งและพร้อมที่จะส่งขึ้นไปยัง server ตาม concept การทำ pre compile ก็คือ .. "no source code"
ปล.
- fixednames ใช้เมื่อต้องการ update file assemply เดิม
-d ใช้เมื่อต้องการ compile พร้อมทำการ debuging บอก line number ที่ compile
-f ใช้เมื่อต้องการ re-write folder targetตัวเดิม
2. พิมพ์
aspnet_compiler -p"c:\mywebsite\" -v /c:\deploy3. เข้าไปดู folder target ที่เรากำหนดไว้ คือ c:\deploy\bin ปรากฏดังรูปด้านล่าง
จะเห็นว่าการทำ pre compile นั้นเราจะได้ target file ที่เป็น file assemplies (dll file) ภายใน folder deploy จะมีเฉพาะ fileaspx ,html ,config file ,image ... file อื่นๆ ที่เป็น .vb .cs จะโดน compile ให้อยู่ในรูป
aspx --> .compiled ภายในเป็น xml file บอกถึง ชื่อ file ที่อ้างอิงกันในแต่ละfile
App_Code -->assemplies (dll file) และ .compiled
.vb หรือ.cs ที่เป็น file separateกับaspx -->ขึ้นต้นด้วย App_Webซึ่งเป็น assemplies (dll file)
ถ้าเปิด file aspx ดู จะไม่มี source code html .ให้เห็น แต่จะมี ข้อความ
This is a marker file generated by the precompilation tool, and should not be deleted!
เค้าบอกว่า ห้ามลบ file นี้เด็ดขาด
เอาล่ะครับเราก็ได้ file ทั้งและพร้อมที่จะส่งขึ้นไปยัง server ตาม concept การทำ pre compile ก็คือ .. "no source code"
ปล.
- fixednames ใช้เมื่อต้องการ update file assemply เดิม
-d ใช้เมื่อต้องการ compile พร้อมทำการ debuging บอก line number ที่ compile
-f ใช้เมื่อต้องการ re-write folder targetตัวเดิม
No comments:
Post a Comment