回 帖 发 新 帖 刷新版面

主题:[原创]谈谈我的新中间层组件与技术

我的兴趣一直是VFP在互联网上的应用,但VFP要开发互联网的应用,就必须解决VFP实时操作互联网服务器上数据库(表)的技术难题。 现在,这个问题我已经很好地解决了,下面,我介绍一下我的技术方案与思路,大家探讨一下技术,但是各位网友可不要向我要源代码。

一、服务器端的方案

    考虚到可能要在虚拟主机上部署,因此,我采用asp.net 2.0(VB.net)来开发,采用asp.net2.0还因为它有现成的压缩解压缩的类,可用来压缩传输数据,大大提高远程select数据的速度。 开发的源文件是一个.aspx文件与web.config文件,然后编译成DLL文件,在实际部署时,只有一个DLL文件与一个web.config文件,连.aspx文件都不需要了。

    数据库的连接串在web.config里设置,可以设置多个数据库连接串。凡是可以用ADO连接的数据库(表),这个中间层都可以支持,已知的有 MsSQL、MDB、DBC、DBF等。

    我的中间层技术关键就是服务器端的技术,开发测试费了我很大的精力,听说.net编译的DLL与EXE是可以反编译的,为了保护我的知识成果,将来我会想办法加密或用其他语言重写它的。

二、客户端的方案

    为了保护中间层客户端代码不被反编译,我用VB6将客户端的代码写成COM组件,客户端所需的文件只有三个,COM(DLL)文件、VB运行库文件和Gzip.DLL文件。

    VFP的程序只要使用这个客户端的COM,就可以实现操作互联网服务器上的数据库(表)了。下面是例子:

ovbCOM = CREATEOBJECT("vbcomSQL.sqlforVFP")

ovbCOM.ca = CREATEOBJECT("CursorAdapter")

ovbCOM.aspx = "http://zxs4785.vicp.net:88/vfpnet.aspx"

ovbCOM.DBname = "DBF"

cSQLInsert = "insert into Tel (号码) values ('66784567')" + chr(7) + "insert into Tel (号码) values ('13976572568')"

if ovbCOM.IsOnLine()

?ovbCOM.EXCUTESQL(cSQLInsert)

endif

**** 运行到这里,就在tel表里添加两条记录了。


cSQL = "Select * from tel" + chr(7) + "select * from 目录表"

if ovbCOM.IsOnLine()

?ovbCOM.BSelectSQL(cSQL,"tel,ml")

endif

*** 运行到这里,就在VFP里生成 tel 和ml两个临时表了。

回复列表 (共10个回复)

沙发

没有人对VFP互联网应用有兴趣吗?

板凳

有兴趣,但不是很懂... ...

3 楼

这方面的确挺专业的,大多数foxer都了解不多。

4 楼

都做成asp了,直接用浏览器操作就是了,还要VFP干嘛?

5 楼

服务器端不是使用了asp或aspx就是网页的,我是用它来做中间层,实现操作数据表的。

6 楼

好帖子,有高度,顶一下。

7 楼

[quote]好帖子,有高度,顶一下。
[/quote]

8 楼

嗯,其实我是想知道,怎么连接到你的目标数据库。
没看见连接语句。
我都不了解连接参数的具体意义。

9 楼

连接字符串是在服务器端的web.config中设置的,在此并没把web.config的内容贴出来,所以你就没看到。

VFP客户端只要指定http与数据库名称(在Web.config中定义的),就可以远程直接操作数据库了。

这种方式看起来风险极大,因此我设计了安全认证的措施,关于安全认证的帖子请看

[讨论]安全认证的思路http://bbs.pfan.cn/post-317909.html

10 楼

唉!!!!想弄懂啊!!
可对我难度高了点!!
现阶段是如何有效连接!安全先放放吧!!
要安全,VFP好像不是很合适!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册