标签: intraweb

Delphi Web和Web服务开发目前有哪些选择

我正在玩Delphi.我的大多数桌面开发的是.NET中完成的,并嵌入了C.系统我已经做了一些Web开发的回报率和Python的(Django的,CherryPy的)我有兴趣参加的裂缝在项目,这将是一个Web服务( REST或SOAP)具有本机客户端和Web客户端.

因为我最近被重新激发学习德尔福,我很好奇的选择是构建Web服务和Web客户端与德尔福.大多数Delphi文档都有点过时,但到目前为止我发现了这些选择:

  • 的DataSnap
  • 接近网页
  • 和WebBroker
  • IntraWeb的
  • RemObjects的Data Abstract和RemObjects SDK

我觉得WebSnap已经死了,但其他技术仍在开发中.是否有关于调查哪种技术的指导?

ps我意识到Delphi并不是一个非常受欢迎的网页开发选择,但我很想尝试,因为我一直在学习VCL.

delphi intraweb datasnap

14
推荐指数
4
解决办法
5846
查看次数

如何使用Windows登录凭据对用户进行身份验证?

如何让Intraweb XI应用程序使用其Windows登录凭据对用户进行身份验证?该应用程序在Windows服务器上作为服务运行.

我们只需要允许网络用户访问我们的一些Intraweb应用程序.

delphi authentication intraweb

14
推荐指数
1
解决办法
6287
查看次数

Delphi 中 IntraWeb 的替代品?


如果我想在 Delphi 中编写一个简单但有意义的网络服务器,IntraWeb for Delphi 有其他选择吗?

delphi intraweb

6
推荐指数
1
解决办法
1万
查看次数

如何在运行时隐藏组件?

使用IntraWeb 14.1和Delphi Berlin,我正在创建一个IWRegion像这样的框架:

 Page := TFrame.Create(Self);
 Page.Parent := UserSession.Body_Region;
Run Code Online (Sandbox Code Playgroud)

其中,UserSession.Body_Region;作为decleared Body_Region: TIWRegion;UserSessionUnit通过该区域从形式到形成在运行时,一切工作正常.

问题是我想隐藏UserSession.Body_Region在运行时加载的Frame,UserSession.Main_Body_Region.Component[0];但是我无法做到.

我尝过了

(UserSession.Main_Body_Region.Component[0] as TFrame).hide;
Run Code Online (Sandbox Code Playgroud)

要么

(UserSession.Main_Body_Region.Component[0] as TFrame).Visible:= false;
Run Code Online (Sandbox Code Playgroud)

但它不起作用!也没有错误!

有没有其他方法这样做或我错过了什么?

delphi intraweb

6
推荐指数
1
解决办法
302
查看次数

用于 Web 皮肤/主题的 VCL?

有人为 Intraweb/VCL for Web 创建了皮肤/主题包装吗?

网格等的默认外观非常过时。

任何信息表示赞赏。

delphi skins vcl themes intraweb

4
推荐指数
1
解决办法
1129
查看次数

使用VCL作为Web(intraweb)作为向传统非分层(2层)Delphi win32应用程序添加Web界面的技巧确实有意义吗?

我的团队正在维护一个巨大的Client Server win32 Delphi应用程序.它是一个客户端/服务器应用程序(胖客户端),它使用DevArt(SDAC)组件连接到SQL Server.

业务逻辑经常"被困"在Component的事件处理程序中,无论如何,通过一定程度的重构,可以将业务逻辑移动到公共单元中(这项工作的很大一部分已经在重构期间完成了......维护遗留应用程序的人别写的非常令人沮丧,但这是一项非常普遍的工作).

现在有一个Web界面的请求,当然我有几个选项,在这个问题中我想关注VCL for web(intraweb)选项.

我们的想法是为客户端/服务器应用程序和Web应用程序使用公共代码(相同的pas文件).我听说很多人将遗留应用程序从delphi迁移到intraweb,但在这里我也试图保留Thick客户端.

这个想法是使用通用代码,可能会用一些编译器指令来编写特定的代码:

{$IFDEF CLIENTSERVER}
  {here goes the thick client specific code}
{$ELSE}
  {here goes the Intraweb specific code}
{$ENDIF}
Run Code Online (Sandbox Code Playgroud)

然后另一个问题是"迁移计划",假设我有300个功能,在第一个版本中,我将只在Web应用程序中提供50个.如何跟踪它?我在想(ab)使用Delphi接口来处理这个问题.例如,对于用户身份验证,我可以在过程中移动所有相关代码并声明如下界面:

type
  IUserAuthentication= interface['{0D57624C-CDDE-458B-A36C-436AE465B477}']
    procedure UserAuthentication;
  end;
Run Code Online (Sandbox Code Playgroud)

通过这种方式,当我在两个应用程序(胖客户端和Intraweb)中实现IUserAuthentication接口时,我知道该功能已被"移植"到Web上.无论如何,我不知道这种方法是否有意义.我制作了一个原型来模拟整个过程.它适用于"Hello world"应用程序,但我想知道它是否对大型应用程序有意义,或者这种接口的想法只会适得其反并且会适得其反.

我的问题是:这种方法有意义吗?(接口的想法只是一个额外的想法,它不像上面描述的通用代码部分那么重要)它是一个可行的选择吗?

据我所知,这取决于很多类型的应用程序,无论如何我是CRM/Accounting域中的通用,并且单个安装上的并发用户数通常小于20,峰值为50.

额外评论(更新):我问这个问题是因为我没有n层应用程序,所以我认为Intraweb是拥有一个与胖客户端有共同代码的Web应用程序的唯一选择.在我的特定情况下,从Delphi代码开发Web服务是没有意义的,所以我可以选择使用ASP.NET编写Web界面(复制业务逻辑),但在这种情况下我无法利用公共代码.简单的方法.是的我可以使用dll,但我的代码不适合.

sql-server delphi intraweb devart 2-tier

4
推荐指数
1
解决办法
2247
查看次数

Delphi XE2中的IntraWeb 12的数据库,会话和持久性

我正在使用IntraWeb应用程序搜索有关数据库连接的信息(在我的案例中为Firebird).

我特别需要知道在带有LockDataModule函数的TDataModule上使用数据库或使用UserSessionUnit上的数据库所涉及的差异.例如,如果没有用户使用服务器,我需要将数据库完全断开连接,并且最多连接30个用户.

我可能最糟糕的是必须连接到一些旧的paradox数据库,我需要一个可以处理它的结构(我知道我必须生成一个基于WebApplication.AppID来处理会话的文件夹).最糟糕的是......

提前感谢您提供给我的任何信息或有用链接^^

delphi session intraweb delphi-xe2

4
推荐指数
1
解决办法
3615
查看次数

Intraweb可以运行65,536个并发会话吗?

我试图使用intraweb建立一个繁忙的社交网站的网络链接.

Intraweb为每个会话创建临时文件夹以存储临时文件,这些文件会在会话到期时自动删除.

如果托管在Win 32上,则限制为65,536个文件夹 - 这意味着只能进行65,000个并发会话.

有没有办法关闭临时文件创建或允许在intraweb中更多的并发会话?

delphi session caching file intraweb

3
推荐指数
1
解决办法
1860
查看次数

使用ADO在IntraWeb上初始化错误

已经在Evil Exchange上被问过,但一如既往没有帮助.我今天遇到这个问题:

使用IntraWeb创建独立Web应用程序时,当我尝试在浏览器中测试我的应用程序中的会话时,我在IDE中遇到此异常:

$ 7C812A6B的首次机会异常.消息'CoInitialize尚未被调用'的异常类EOleSysError.处理WebContactManager.exe(1112)

如果我在IDE异常对话框中单击"继续",浏览器本身就会显示:

200好的

...而不是我主表单上的控件.

当我将ADO替换为其他数据库组件(如dbExpress或BDE)时,似乎不会发生此错误.

这个错误告诉我什么,我该如何解决?

(注意我使用的是"VCL for the Web"IntraWeb组件,内置于D2007).

在此先感谢您的帮助!

delphi ado intraweb

3
推荐指数
1
解决办法
5067
查看次数

在运行时更改 Intraweb IWFrame

我有一个简单的 IntraWeb 测试项目,我的 Unit1 有一个包含 3 个区域的 IWform:页眉、正文和页脚,如下所示:

type
  TIWForm1 = class(TIWAppForm)
    Body_Region: TIWRegion;
    Header_Region: TIWRegion;
    Footer_Region: TIWRegion;
  public
  end;

implementation

{$R *.dfm}


initialization
  TIWForm1.SetAsMainForm;

end.
Run Code Online (Sandbox Code Playgroud)

我的Unit2和Unit3是一个IWFrame,它们只有一个按钮,如下所示:

type
  TIWFrame2 = class(TFrame)
    IWFrameRegion: TIWRegion;
    Button1: TButton;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

implementation

{$R *.dfm}

end.
Run Code Online (Sandbox Code Playgroud)

单元3与单元2相同

现在,我可以在设计时将框架从工具板拖放到该区域,从而轻松地将框架分配给主体区域。

问题是如何在运行时将其更改为unit3 Frame?

如果我尝试将其添加到这样的类型部分

type
  TIWForm1 = class(TIWAppForm)
    Body_Region: TIWRegion;
    Header_Region: TIWRegion;
    Footer_Region: TIWRegion;

    MyFram2: TIWFrame2; // added here

    procedure IWAppFormShow(Sender: TObject);
  public
  end;
Run Code Online (Sandbox Code Playgroud)

系统尝试删除它!

如果我强迫保留它以用作

Body_Region.Parent …
Run Code Online (Sandbox Code Playgroud)

delphi intraweb

3
推荐指数
1
解决办法
1394
查看次数