oracle - Web界面编程环境可替代基于Delphi的旧系统

标签 oracle delphi silverlight apache-flex

客户的基于Delphi 5的旧系统,数千行代码开始崩溃。新驱动程序和操作系统的问题是主要问题。

我们假设一次完全重写一个模块,并且希望查看基于浏览器的界面。该数据库是Oracle 10,如果有意义的话,我们也可以替换它。

主要要求是:


由公司或用户社区提供,该公司或用户社区足够强大,可以在未来5-7年内使用(我们对此很现实)。
能够快速接口以使用Oracle中的存储过程以及ASP.NET和ColdFusion中生成的Web服务作为数据源。
可部署在虚拟客户端以及胖客户端Windows和Apple计算机上。
如果有某种方法可以重用旧的Delphi代码,则需要加分(但同样,我们是现实主义者,因此我们不希望这种情况发生)。


我们正在将Silverlight,Flex和Ruby视为可能的开发环境。有人对以上内容还有其他建议或意见吗?

谢谢你的协助。

最佳答案

选择时涉及很多因素。我想问的第一件事是你知道什么?如果答案仅是“维护遗留系统”,那么从本质上来说,您是从零开始了解新技术的。

首先,我想澄清一下您对原始问题的误解:


  我们正在研究Silverlight,Flex和
  红宝石



Silverlight是一种客户端技术,
基本上是一个运行时
Flex是
用于构建的SDK的名称
Adobe Flash的应用程序
平台。

Ruby是一个编程
语言。


您似乎正在研究针对非常不同的目的而设计的多种极为不同的技术。他们不会很好地比较。

更直接的比较是将Silverlight与Flash Player与HTML / JavaScript进行比较。或者将Flex的MXML与.NET的XAML进行比较。据我所知,Ruby主要用于服务器端,通常以HTML和JavaScript为前端。如果需要您的前端解决方案来与.NET和ColdFusion Web服务进行交互,我不确定为什么您要添加第三种服务器端技术。

就是说,我将建议使用Flex / Flash Payer作为您的前端技术,并建议使用ColdFusion作为您的服务器端技术。我建议这样做的原因之一是因为这是我所知道的。希望对.NET / Silverlight / Ruby有更深入了解的人能对每种优点有所了解。

我将在您的观点中逐一检查更多内容:


  Sourced by a company or user community that is robust enough to be

  
  在接下来的5-7年内(我们
  现实主义者)。


我期望Silverlight,Flash平台和Ruby能够在接下来的十年中活跃起来。

Flash平台(尤其是Flex)拥有活跃的社区。我相信Adobe要做的最好的事情之一就是围绕他们的平台和工具建立开发社区。

Flex仍然是一个新事物,并且还在不断发展,但是在过去几年中,它取得了巨大的增长。尽管Adobe对开发人员的数量严格守口如瓶,但我估计大多数人认为它在25万至35万之间,是3年前的两倍多。有podcasts,大量的blogs,比您摇摇欲坠的框架更多的框架(RobotLEgs是当前的最爱),大量的会议(我的最爱是360|Flex)和lots of open source projects

ColdFusion已有10多年的历史了,目前是第9版,它拥有庞大的社区,拥有蓬勃发展的邮件列表(例如House of Fusion和Adobe论坛),大量播客(例如CFHourcfconvesations), blogs,书籍,框架(例如Fusebox,Model Glue和Mach-II),open source projectsconferences

有人说很难找到ColdFusion开发人员,这有时是正确的,因为与.NET相比,社区规模相对较小。上次我看到估计时,他们估计全世界有75万开发人员。 Flex开发人员可能遇到类似的问题。但这听起来好像您已经有想要训练的团队,所以也许您不是在寻找新员工,那将不是问题。

全球也有大量的Adobe用户组。随意停下来和/或向小组经理询问他选择的技术。我知道的大多数组都是Flex或ColdFusion。

我还要补充说,ColdFusion和Flex / Flash Platform都来自Adobe,并且Adobe已竭尽全力确保它们能很好地协同工作。我认为他们的整合是无与伦比的。

综上所述,.NET也有大公司的支持,并且比ColdFusion和/或Flex拥有更大的开发人员基础。我认为,与在Flex或ColdFusion领域相比,.NET世界中更有可能找到受支持的商业解决方案。但不能凭个人经验说话。

我不认为Ruby背后有一家公司,但我知道它有一个非常活跃的社区。您可以轻松地使用Ruby构建Flash Platform应用程序或Silverlight应用程序的后端。


  Able to quickly interface to use stored procedures from Oracle and web

  
  在ASP.NET和
  ColdFusion作为数据源。


您提到了替换Oracle的可能性。我建议不要这样做。听起来您将要做很多工作。如果您仅通过一次更改应用程序的单个“层”就可以解决问题,请执行此操作。

ColdFusion可以使用存储过程或直接查询快速轻松地访问Oracle中的数据。我毫不怀疑.NET可以做到这一点。 [并且我认为Ruby也应该没有问题]。

Silverlight和Flash Player(Flex)被设计为前端技术,我不建议尝试直接从它们中访问数据库。我见过的大多数应用程序都使用中间件层(例如ColdFusion或.NET)进行数据库访问,然后Flash就会访问该中间层。在Model View Controller Service体系结构中,您可能经常将Model实施为数据库存储(Oracle),中间件中的服务(ColdFusion / .NET)和前端技术(Flash Player / Flex或Silverlight或HTML)中的视图/ AJAX)。 Flex / Flash应用程序中的控制器很可能是在Flash / Flex中创建的。我认为Silverlight是相似的。

使用ColdFusion,您将使用cfstoredproc访问存储过程,或使用cfquery直接对数据库运行查询。您将这些查询放入服务中,然后从Flex / Flash Player中使用RemoteObjects(强烈建议使用AMF协议)或WebService(用于SOAP调用)或HTTPService(用于REST调用)访问数据。 )。 AMF是二进制格式,可以导致客户端和服务器之间的数据传输时间大大缩短。 IT还将自动将服务器端对象转换为客户端对象,反之亦然。这是一个非常不错的感觉,使您不必编写自己的转换例程。


  Deployable on virtualized clients as well as thick client

  
  Windows和Apple机器。


我猜我不确定虚拟客户端与胖客户端的含义。

Flash Player和AIR可以轻松部署到Windows和Mac。如果这对您很重要,那么Adobe正在做大量工作来为移动设备的浪潮做准备。尽管去年有Adobe / Apple的争论,但Adobe仍有一个打包程序可部署到iOS设备。它尚处于初期阶段,但我希望今年上半年能看到一些重大更新。

Adobe因在Mac上的性能而受到批评,这有多种原因。但是,情况正在不断改善。

我知道Silverlight具有Mac支持,但是我不知道它的范围。我不希望在Windows Phone OS之外的移动设备上看到Silverlight。

就Ruby而言,您可能不想以任何形式将Ruby部署到台式机。但是,您可以创建与您选择的浏览器一起使用的AJAX / HTML(和/或使用处理浏览器兼容性问题的AJAX框架)。就目前而言,由于大多数移动浏览器都基于Webkit,因此HTML / AJAX可能是移动设备部署的最佳选择,因此HTML应用程序在设备上的运行方式通常具有高度的一致性。与在上述设备上使用Flash [或Silverlight]相比,这种方法最有可能提供更好的性能。


  Extra points if there is some way to reuse the old Delphi code (but

  
  再一次,我们是现实主义者,所以我们不是
  期待这会发生)。


我不能帮你最好的选择是从头开始重新创建,或者尝试编写某种形式的转换/代码生成器工具。我不确定后者是否可行。如果将Delphi代码转换为COM对象(如在其他地方建议的那样),则可以在ColdFusion中使用它们,就像在.NET中使用它们一样。

这有帮助吗?您还想知道什么?

关于oracle - Web界面编程环境可替代基于Delphi的旧系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621352/

相关文章:

java - 解析 PL/SQL 代码以检查语法和语义错误

java - 如何使用Oracle jdbc驱动的fixedString属性?

oracle - 如何将模式中的任何表的 SELECT 授予角色 (Oracle)

sql - 使用 OLEDB select 语句获取错误值

delphi - VCL-Styles菜单热键不一致

delphi - 使用 Delphi 中的枚举参数调用 DLL 中的 C 函数

delphi - Indy 9 和 Windows Server 2003 之间不兼容?

银光设计架构

c# - 在线程中发出和处理异步 Web 服务请求

Silverlight 按钮 - 悬停时更改前景色