有关按行业为PHP程序员编写Windows桌面应用程序的提示,指南和/或者教程
是的,长标题。在过去的6年左右的时间里,我一直在用PHP进行工作和个人项目的编程,但是我对台式机应用程序有了一个想法(顺便说一句,它使用Web REST API)。
我正在就如何实现这一目标进行辩论,我在Java,C ++,Perl和Python方面已有一定的经验,但是从未有机会或者机会来编写和分发具有重要意义的应用程序给他人。
该应用将需要与REST API(具有OAuth)进行通信,以及访问文件系统,并可能需要进行一些图像处理(编码/调整大小,但这很不错)。我一直在考虑.NET上的某些内容,但是AIR也有可能(尽管我确实不希望有大量的运行时出现,这将是系统托盘类型的应用程序)。
我不是要找人来写它,但是我可以在正确的方向上使用微调。
解决方案
作为Delphi程序员多年,我们可以使用它来完成所需的一切。
我开始使用Cat工作。这也是一种很棒的语言,但是对于分布式应用程序而言。 .NET框架仍然阻止我将其用于个人应用程序。
在我看来,Delphi是一个不错的选择。如果需要免费的IDE,可以查看Lazarus / Free Pascal。
使用此选项,我们可以构建EXE就是这样。将EXE交付给客户,它可以正常工作。无需在计算机上安装DLL /框架东西。
当然,如果我们使用的是数据库资料或者第三方DLL,则必须随其附带必要的资料。但这比使用带有所有vbrunxx.dll或者带有所有.NET语言的VB更为简单。
这是我的2c ...我想我会为此而被解雇! ;-)
高温超导
在语言支持方面,我们可以使用C ++,Java,C#,Python等来实现。实际上,我想说C ++,Java和Care是大多数用户的选择。但是请记住,C ++和Java中的GUI支持很难学习和使用。如果我们打算进行许多大型项目,那么性能(大小和速度)都是一个问题,并且我们需要一个简单的安装过程,请使用C ++。如果这些最后的限制不适用(仅适用于项目的大小和数量),请使用Java。假设我们必须花一些可观的初始时间来准备基础结构(库等)。
如果计划是短期的(不是那么多的项目,不是那么大的项目),请使用C#。确实,这是最容易学习,使用和产生有效代码的方式,并且在Mono项目中,它不再局限于MS平台。
我会推荐Visual Studio Express版本。由于我们具有使用C样式语言的经验,因此请尝试从Visual CExpress开始。 2008 SP1版是一个非常强大的IDE,并且完全免费。使用Express版本进行个人或者小规模开发的唯一缺点是,它们没有类设计器,并且我们不能使用外接程序。
确保将.NET 2.0定位为更广泛的受众。如果Windows XP是最低要求,则还可以尝试使用带有WPF的.NET 3.5,这使应用程序开发更像Web开发,由于我们来自Web背景,因此可以进行用户界面设计。
运行时的开销可以忽略不计,因为无论如何大多数人都会拥有一个正在运行的.NET 2.0 Framework(我们不能从Vista或者更高版本中将其卸载,而ATI Catalyst控制面板也随.NET 2.0一起提供,因此许多休闲计算机用户都可以使用它。它)。我认为至少是推荐用于Windows XP的Windows Update。
注意:也有本地化版本,因此我们不一定需要我将链接发布到的英文版本。
Delphi也很好,但是原始Delphi的免费版本存在一些问题,没有免费的Delphi版本,也没有Lazarus版本与Visual Studio 2008所提供的功能非常接近。
如果我们是新手,请跳过Windows窗体并直接转到WPF。它与在xhtml中构建UI非常相似,但是数据绑定很棒,并且兼容性问题少。
如果我们使用AIR,则将有一个跨平台解决方案。我们还可以利用Zend Framework中的一些新的AMF支持来获得更快,更有效的通信协议。 XML很大,JSON较小,但是AMF是二进制的,并且压缩得多。 AIR还允许我们以两种方式编写应用程序。第一个是传统的Flash Player / Flex组合,另一个是使用AIR提供的API编写一堆带有Javascript的HTML页面。 Aptana为Eclipse提供了一个功能免费的IDE插件,从而可以通过第二种方式编写AIR应用程序。 FlashDevelop是另一个免费的IDE,它更适合于编写应用程序的Flash / Flex方法。 Flexbuilder还可以免费使用30天,如果我们是学生,则可以便宜(免费IIRC)。
我也会和Delphi一起去的。免费的Turbo Explorer适用于快速项目,或者只是尝试一下(以后再购买许可证)。如果我们想成为长期的freebee用户,请直接与Lazarus / FPC一起使用。
主要原因:单个.exe可能性,与其他库的良好接口。
两者都支持多组套接字库以及与空闲和不空闲数据库的数据库连接。
如果公司默认安装.NET,则它适合公司使用(请记住,XP随附.NET 1.x)。对于广泛的受众来说,说服用户安装运行时很无聊,它不是病毒,并且不能使我们通过其监视器来监视它们。