|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
|
2017/1/23 18:17:35 |
标题: |
|
加入我的收藏 |
楼主: |
我第一次接触Delphi大概在1995年,那时候是Delphi 3,尝试后非常惊讶,有如果高效好用的开发工具。封装性比VB好,面向对象方面的特性和VC++差不多。我喜欢严谨的东西,PASCAL的语法之严谨大家都有目共睹,很长时间里PASCAL都是学习计算机专业的必修课吧?!
1996年第一次去澳洲出差,是给中国银行悉尼分行实施一个项目。那时候在国内有听说过红帽子,就知道是个类似UNIX的操作系统,在悉尼街上看到有卖红帽子的正版光碟,就买了一套3张,35澳元。从那时起就朦朦胧胧种下了开源的情怀,虽然那时候还不知道开源这个概念。
我给自己开发的第一套MIS系统是在1997年夏天基于Delphi 3.0。那时候大家提到的C/S架构都是指客户端直接连数据库的那种模式。但是我觉得这个模式非常不适合管理,因此那时就自己尝试去做一个真正的应用服务器,中间通过TCP/IP链接。遇到需要访问数据库的时候,需要服务器端根据SQL访问数据库后的结果集进行打包,然后传递到客户端解包,在客户端写到BDE本地数据库里,再由客户端访问使用。虽然处理速度没有Delphi自己的ClientDataset快,但是用得还是比较顺利。
中间用Delphi 5.0把原MIS升级过一次。在IT业多年看到的事实:使用开源的公司发展越发展越好,在Windows底下的公司都是能生存就不错了。因此在去年,决心要把服务器移植到Linux下。应用服务器不去重新自己开发,而是选用nginx+PHP,这样的架构即可以做自己的WEB服务器,又可以做应用服务器。客户端的每一个请求都以HTTP的方式POST到服务器,服务器接收到数据后分派到不同的服务程序。
在客户端通过indy的TIdHttp控件把请求内容POST到一个URL: fconn.post(client.apphost+'/ebrequest.php?appid='+inttostr(fappid),stream1,stream2);
服务器ebrequest.php,接收到客户端的请求后,分派给不同的服务程序。
服务器端中转程序php extension用gcc开发,后面的服务器程序则用的lazarus。服务器端的服务程序进行编号,一个服务为一个函数。如:
比如第六个服务 openquery_6是个专门接收客户端SQL语句,并返回数据集的服务。程序逻辑简单:
1)接收客户端的请求SQL要素:FieldList, TableList, Condition, Order, Group,Having,Limit等 2)访问数据库并获得数据集 3)保存数据集到服务器端的临时文件filename中,并把filename返回客户端 4)客户端通过filename获取该数据集。
这样就把应用服务器建立在了WEB服务器上,既然本身就是WEB服务器,开发HTML5之类的应用就不在话下了。最近做的一个应用,就是两者的结合:1)提供给各围棋棋社一个客户端的EXE软件,用以记录到店棋友时间及消费情况;2)通过微信公众号围棋部落,棋友可以查看自己的消费情况和在店棋友情况。
其中第二部分就是基于HTML5的微信公众号应用。比如棋社列表,php的中转程序非常简单,就十几行代码:
在php中指名调用package 10的第142服务。lazarus的服务程序如下:
基于Linux上的lazarus应用平台差不多开发了一年,开发的应用既有客户端模式的,如内蒙古电力电网数据查询客户端,也有完全基于HTML5的WEB应用,如内蒙古电力调度控制中心、市场信息、围棋部落、鲜蔬超市等微信公众号。总体感觉上,lazarus功能已经够用,稳定性够强。以前在windows上经常出来的莫名其妙问题全部消失,linux能够7X24小时为客户提供稳定的服务。
有兴趣的朋友欢迎扫描微信群二维码加入讨论!
----------------------------------------------
- |
作者: |
|
2017/1/23 18:47:53 |
1楼: |
1996出差...大哥今年高寿了?
----------------------------------------------
My Delphi will go on, and on.
|
作者: |
|
2017/1/23 19:02:30 |
2楼: |
基于Linux上的lazarus应用平台差不多开发了一年?是全职开发吗? 如果全职开发一年没有碰到大问题,那这个工具可以算是生产力工具了。
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
|
2017/1/23 19:12:49 |
3楼: |
to dede3000:嗯,40多啦
to nevergrief:用的挺好的,当然也有弱点,比如不能像windows下的bpl包装,要包装成so比较难。
----------------------------------------------
-
|
作者: |
|
2017/1/23 19:16:08 |
4楼: |
lazarus在centos下不支持汉字录入,然后我都要在其他编辑器中修改后再拷贝过来,有点麻烦。
----------------------------------------------
-
|
作者: |
go_on (go_on) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/1/23 21:41:00 |
5楼: |
先在win下开发,再重新编译到centos不行吗?
----------------------------------------------
-
|
作者: |
|
2017/1/23 21:51:59 |
6楼: |
没有这样试过。主要有些函数库用gcc开发的share object,有用到一些开源类库,移到windows下要用啥mingw等玩意,会累死人。
----------------------------------------------
-
|
作者: |
|
2017/1/23 22:18:38 |
7楼: |
delphi的还是老人忧居多啊。 @ fausten lazarus在osx下输入中文也有问题,后来又有其它问题,所性直接卸载了
----------------------------------------------
一个热爱delphi的人,Golang GUI库。 --我的博客--
|
作者: |
star5 (星五) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/1/23 23:15:54 |
8楼: |
精神上支持一下,这样的项目越多越好,大家一起发展。
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
|
作者: |
|
2017/1/24 9:41:08 |
9楼: |
是啊,大家一起努力。到时我在微信群里公布些源码,大家一起研究
----------------------------------------------
-
|
作者: |
|
2017/1/24 10:03:49 |
10楼: |
哈哈,我用lazarus+nginx+PHP去开发服务器端MIS和微信公众号,应该是前无古人,后无来者。
----------------------------------------------
-
|
作者: |
|
2017/1/24 10:18:34 |
11楼: |
第一、大家有什么技术问题可以拿来在群里讨论,大家一起解决;第二、我已经在开源入门了,我考虑一下怎么在微信群里带大家也一起入门遨游。
----------------------------------------------
-
|
作者: |
|
2017/1/24 17:40:10 |
12楼: |
@fausten 在linux下处理过pdf和图像吗?最好是大容量的,有这样的第三方插件没有?
----------------------------------------------
-
|
作者: |
|
2017/1/24 18:56:03 |
13楼: |
没有处理过,能否用libreoffice转pdf ?
图像要做什么处理? GD什么的可以吗?
----------------------------------------------
-
|
作者: |
akay (akay) |
★☆☆☆☆ |
-
|
普通会员 |
|
2017/1/24 22:56:43 |
14楼: |
我的做法跟楼主差不多,也积累了好多年了。 我的服务,可以是C++,pascal, php, tuxedo实现,php也是中转。我可以在windows上编译调试后,再port到linux,服务器端支持windows/linux/unix 比如C++写的服务,我可以在C++Builder上调试通过后,拿到unix上重新编译就可以。
----------------------------------------------
-
|
作者: |
|
2017/1/25 9:54:11 |
15楼: |
之前的windows平台做了十多年,转到linux上才1年多。现在新做的项目都会用linux上的服务器。
----------------------------------------------
-
|
作者: |
msfm (清洁工) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/1/25 10:34:50 |
16楼: |
我直接转行 游戏服务器了
----------------------------------------------
-
|
作者: |
chro (chro) |
★☆☆☆☆ |
-
|
普通会员 |
|
2017/1/25 11:51:59 |
17楼: |
个人意见,楼主的思路指出了一个delphier的重要前进方向。 论坛上的讨论,以delphi为本的多,以delphier为本的太少
----------------------------------------------
-
|
作者: |
|
2017/1/27 3:51:56 |
18楼: |
给大家看下开源有多伟大,右边为真是照片,使用opencv,就十几行代码,可以进行矩形矫正自动生成左边的图像,方便我进行自动数子。
----------------------------------------------
-
|
作者: |
|
2017/1/27 3:52:21 |
19楼: |
上面图像的转换源码我发在微信群里。
----------------------------------------------
-
|
作者: |
|
2017/1/27 3:54:33 |
20楼: |
要进入微信群请扫码:
----------------------------------------------
-
|
作者: |
|
2017/1/27 16:19:22 |
21楼: |
@go_on:可以使用codetyphon,在windows下编译for linux的代码
----------------------------------------------
-
|
作者: |
|
2017/1/27 22:58:02 |
22楼: |
就是想脱离windows,能不用windows的地方尽量不用。
找到编译opencv 3.2的方法: 1)git clone https://github.com/opencv/opencv.git 2)mkdir build cd build cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr .. make -j4 sudo make install
这样能编译成功opencv 3.2
----------------------------------------------
-
|
作者: |
|
2017/1/28 12:00:44 |
23楼: |
今天早上把php升级到最新的7.1.1
----------------------------------------------
-
|
作者: |
|
2017/1/29 11:24:13 |
24楼: |
----------------------------------------------
-
|
作者: |
|
2017/1/29 11:25:09 |
25楼: |
----------------------------------------------
-
|
作者: |
|
2017/1/29 11:26:04 |
26楼: |
----------------------------------------------
-
|
作者: |
|
2017/1/29 11:26:22 |
27楼: |
奇怪贴不了了?
----------------------------------------------
-
|
作者: |
|
2017/2/4 12:55:56 |
28楼: |
@fausten 为啥php extension要用gcc,用lazarus不行吗?是担心它的内存管理吗? lazarus不是提供了cmem单元
----------------------------------------------
软件是什么,相信很多人都说不清。
|
作者: |
|
2017/2/4 13:16:38 |
29楼: |
忘了php不支持fpc 我只是想问楼主有没有用lazarus的内存管理器做linux?
----------------------------------------------
软件是什么,相信很多人都说不清。
|
作者: |
|
2017/2/4 19:28:20 |
30楼: |
lazarus的内存管理用的是自带的。php支持c++,然后通过c++调用的fpc写的share object。
----------------------------------------------
-
|
作者: |
|
2017/2/4 19:29:16 |
31楼: |
@hawke2e: 网上真找不到php extension用fpc写的,可能不支持吧?
----------------------------------------------
-
|
作者: |
|
2017/2/6 23:37:36 |
32楼: |
二维码失效了
----------------------------------------------
-
|
作者: |
|
2017/2/7 8:43:29 |
33楼: |
失效了!我想进群!
----------------------------------------------
-
|
作者: |
siaosa (siaosa) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2017/2/8 8:02:37 |
34楼: |
新版的delphi 10.2已经可以编译出可以在linux下运行的程序了.
----------------------------------------------
-
|
作者: |
|
2017/2/10 13:05:49 |
35楼: |
研究了一周了,fpc调用java程序,目前测试jdk5,jdk6,jdk7没有问题,jdk8报告非法地址访问,继续......。个人觉得java开源的东西太多可以选择,可以提高开发效率,还有一些语法特性,混合编程感觉开发工具类软件是我目前的首选。
https://en.wikipedia.org/wiki/Delphi_(programming_language)#Early_Borland_years_.281995.E2.80.932004.29
----------------------------------------------
-
|
作者: |
|
2017/2/10 13:16:46 |
36楼: |
说一下群号吧,你的二维码过期了。扫不了了
----------------------------------------------
火鸟
|
作者: |
|
2017/2/10 22:21:27 |
37楼: |
在IDE免费,开源的库和框架如此丰富的今天,作为RAD的delphi还有啥优势? 在delphi跟其它免费IDE比较没有任何优势的前提下,delphi还有啥理由不免费? 在不应该收费的前提下,它还继续收如此之高的价格,而且收了这么多年,这不是垂死挣扎吗? 建议坛主开辟LAZARUS板块。反正delphi必死,何不给delphier创造点生机?!
----------------------------------------------
软件是什么,相信很多人都说不清。
|
作者: |
|
2017/2/11 23:39:18 |
38楼: |
wac1104:加我微信号christopherli,我拉你进群。
----------------------------------------------
-
|
|