Delphi工程组织的困惑:DLL?BPL?该如何解决

Delphi工程组织的困惑:DLL?BPL?
目前在开发一个系统,构想是一个把主界面做成exe,其他的功能模块都封装在dll中,但是在实现过程中遇到很多的问题,尤其在封装窗体是晕头转向,

今天看到很多文章提到DLL封装会有很多问题,尤其是有数据库控件的时候,

想请教大家,使用delphi开发程序,一般都如何来编排框架(C/S结构),是否有相关的资料,有人说使用bpl,不过对这个实在是不了解,还望大家帮忙指点一下啊,

------解决方案--------------------
DELPHI本身带的BPL就很好啊,共享内存。当然如果不处理数据库连接这些话,用DLL更加通用些。
毕竟BPL是DELPHI特有的东西。
------解决方案--------------------
如果用DLL那么就用接口,IUnknown那些
------解决方案--------------------
BPL是DELPHI特有的一种DLL,特点是内存共享,对于数据库方面的程序有很大优势。
同时分发时采用 BUILD WITH RunTime Packages 可以将EXE程序变小很多。
------解决方案--------------------
这里有一篇关于BPL的资料,可以去看看。应该不难理解。
http://dn.codegear.com/article/27178