1. Windows Application
ส่วนของ BL ก็ควรจะอยู่ที่เดียวกับโปรแกรมครับ เวลาติดต่อก็ติดต่อได้หลายทาง
อย่างง่าย ๆ เลยก็คือสั่งผ่าน SQL Pass-Through สั่งให้
Store Procedure ใน Database ของ Server ทำงาน
2. Web Application ถ้าจะใช้ VFP ในการพัฒนา ก็คงต้องออกแรงหน่อยครับ
(เท่าที่ทราบมาใช้ Foxisapi.dll ไม่แน่ใจผิดหรือถูกต้องขออภัยครับ)
ส่วนของ BL ก็ควรจะอยู่ที่เดียวกับ Server ครับ
ทั้ง Win. App. และ Web
App. นั้นส่วนของ DAL อาจจะเป็น Store Procedure และ Trigger
เกาะอยู่กับตัว Database เลยก็ได้ จะช่วยให้ทำงานเร็วขึ้น
หรือจะเขียนเป็น dll ที่อยู่บนเครื่องเดียวกับ Database
ก็ได้ครับ
อันนี้ขอเพิ่มเติมหน่อยนึงครับ
ข้อด้อยของ Win. App.
1. การเข้าถึง จะต้องมีเครือข่ายที่เชื่อมต่อถึงกัน ถ้าอยู่นอกสถานที่จะใช้โปรแกรมไม่ได้
2. การดูแลจัดการยุ่งยาก เช่น ต้องลงโปรแกรมตามจำนวนไคล์เอนท์ที่ใช้งาน
เมื่อมีการแก้ไขโปรแกรมก็ต้องตามแก้ทุกเครื่อง
Web App. สามารถแก้ข้อด้อยของ
Win. App. ขอเพียงติดต่อผ่านอินเตอร์เน็ทได้ และโดยตัวของ
Web App. เองจะทำงานในลักษณะ Client/Server อยู่แล้ว
ข้อเสียของ Web App.
1. ทำงานในลักษณะ Synchronous คือถ้าคลิกแล้วจะต้องรอตอบกลับ
ในระหว่างรอก็จะทำงานอื่นไม่ได้
2. มี Time out คือถ้า Server ทำงานและส่งผลลัพธ์กลับมาไม่ทัน
ก็จะแจ้งเป็น error จะพบปัญหามาในกรณีที่มีฐานข้อมูลขนาดใหญ่ขึ้นเรื่อย
ๆ
ไมโครซอฟท์เองรู้จุดนี้ก็เลยแก้ปัญหาโดยเสนอแนวทางการเขียนโปรแกรมเป็นไว้
2 แบบ คือ
1. .Net Remoting ลักษณะจะเป็นเหมือนกับเกมส์ออนไลน์ สามารถกำหนด
port ที่ใช้ในการติดต่อได้
2. Web Service ซึ่งจะได้กล่าวถึงต่อไป
ข้อดีของ Web Service
1. ทำงานในลักษณะ Asychronouse ได้ คือถ้าคลิกแล้วยังไม่ได้ผลกลับมา
ในระหว่างนั้นสามารถทำงานอย่างอื่นได้ เมื่อได้รับผลจึงกลับมาทำงานต่อ
จึงไม่เกิด time out
2. ต้องการความเร็วในการเข้าถึงต่ำ ทำให้สามารถติดต่อผ่านสายโทรศัพท์
14.4 kbs ได้ (ปัจจุบันคงไม่มีแล้วล่ะครับ)
3. ติดต่อผ่าน http ซึ่งเป็นโปรโตคอลตัวเดียวกับที่ใช้ในบราวเซอร์
ทำให้วิ่งผ่าน Proxy ได้ ไม่ติดต่อปัญหาการบล็อกของไฟล์วอลล์
เพราะปกติจะเปิดให้ http ผ่านเข้าออกอยู่แล้ว (ไม่เหมือนกับ
.Net Remoting ที่ใช้ TCP ทำให้ต้องเปิด port ของไฟล์วอลล์
จึงจะผ่านได้)
Web Service พูดง่าย
ๆ ก็คือ การเขียนโปรแกรมแบบ Windows ที่สามารถเรียกฟังก์ชั่นข้ามเครื่องได้
ซึ่งในการพัฒนาโปรแกรมแบบนี้นั้น ส่วนของ Interface จะพัฒนาโดย
VFP, VB, etc. ได้ ส่วนของ BL จะอยู่บน Server (ผมใช้
VB.Net ในการพัฒนาส่วนนี้) ส่วนของ DAL ก็ไม่ต้องมีการแก้ไขครับ
ใช้ Database อะไร ก็เขียน Store Procedure บน Database
ตัวนั้น หรือจะเขียนเป็น dll ก็ได้ครับ (ใช้ VB.Net อีกนั่นแหล่ะ)
ถ้าจะแสดงเป็นรูปก็คงเป็นดังนี้ครับ
Interface<---------------------->Business
Logic<---------------------->Data Access Layer
VFP,VB,Delphi, etc. VB.Net VB.Net หรือ Database
ในส่วนของ VFP เอง ไม่ทราบว่าเวอร์ชั่นใหม่
ๆ สามารถพัฒนาเป็น BL หรือ DAL ของ Web Service ได้หรือป่าว
เพราะยังไม่มีเวลาลองครับ สมาชิกท่านใดมีเคยลองก็ช่วยแสดงความคิดเห็นด้วยครับ
อยากทราบเหมือนกัน