2009-03-06 52 views
1

我们有一个用asp.net c#(3.5)和SQL服务器编写的企业应用程序,我们想为客户打包和发布。我们将面临从asp.net将站点移植到LAMP(php)堆栈的挑战吗?

但是,有几个人表示担心,由于成本问题,它要求需要微软服务器。是的,我知道......因此,我们正在考虑将其移植到LAMP堆栈,其中“P”指的是php。

我们可以期待在来自Visual Studio asp.net环境的LAMP堆栈上面临哪些挑战?

我相信这两个问题是:

  1. 调试:Visual Studio是真棒为客户端和服务器端调试。
  2. 框架:模型背后的代码运行良好,MVC框架很好。
  3. 维护:我们希望功能集在两个平台上都很常见。
  4. 数据库层:代码松散地耦合到mssql数据类型。

如果您已经经历了这个激动人心的过程,我很想知道一些建议/提示的含义。

作为一个方面,有没有什么办法让我们按原样运行这些代码?单?其他?

+0

如果它真的是一个'企业'应用程序,服务器+ Windows许可证的成本只是与应用程序本身的成本相比的噪音。同样,进行彻底改写并确保其质量与原始质量相当(参见http://www.1729.com/blog/EconomicsOfTestingUglyCode.html)的成本将非常惊人。除了将它移植到开源数据库和一些小的重写以使它在Mono下运行之外,我不会争辩说,除此之外,还可以将它称为新应用程序。 – 2009-06-03 00:44:17

回答

1

我与.NET比* AMP堆叠更多的经验,但根据我的经验XAMPP,我想提出以下意见

  1. 调试:Visual Studio是真棒为客户端和服务器端调试。

    Eclipse PDT适用于设计,开发和调试。我听说过关于Zend Studio的好东西,但没有用过它。

  2. 框架:模型背后的代码工作得很好,而且MVC框架很好。

    有框架,让你分开逻辑呈现(例如Smarty)和至少一个MVC框架是可用的(例如CakePHP

  3. 维护:我们想设置为两个平台上共同的特征。

    如果排除Windows特定功能(Windows集成安全性,等)不应该有多少你不能在两个堆栈做,但如果你有重现像在GridView控件将是劳动密集型。

  4. 数据库层:代码松散地耦合到mssql数据类型。

    我不知道能不能MySQL和SQL服务器之间进行映射的任何数据类型,并有良好的文档handling migrations

单可能会降低的时候需要端口解决方案中的金额,但我我不知道任何方式可以“按原样”重新使用所有代码。

2

另一个可以考虑的PHP IDE是NetBeans。

作为一名.NET,Java和LAMP开发人员,其最大的变化在很大程度上是文化因素。例如,PHP有一个不使用面向对象原则的遗留问题,而ASP .NET则是作为一种具有完全面向对象支持的.NET语言开始的。这种基本的差异导致了重要的问题,例如PHP的长列表保留关键字等等。

2

其他MVC框架:

  • Kohana的
  • 的Yii

(只发现了Yii的Here's an article来比较它们。)

大概有另外还有六十多个。

0

我自己有一个Asp.net背景,并且一直在研究过去几个月的开源框架。我仍然没有下定决心。我最近一直在寻找Grails。似乎两全其美 - 在企业平台上的脚本化,易于使用的开源RAD MVC框架。它使用Groovy脚本语言(类似于ruby),但是可以在JVM上运行,所以如果你愿意,你可以使用完整的Java框架。有大量预先写入的Java组件可供挖掘。这件事很酷。您可以很快移植现有的应用程序。不过你需要一个Tomcat虚拟主机。

如果您需要PHP,直接PHP表现相当不错,但大多数框架表现不佳。如果直接使用PHP,那么就没有mvc。您将使用传统的基于页面的模型。但你会在家感觉更多。您可以使用PDO推出自己的DAL并使用存储过程。不过你需要一个模板系统。远离Smarty,它使用自己的模板语言。这很慢,为什么你需要学习一个单独的模板语言。我从来没有得到过。改用Savant:http://phpsavant.com/。它使用PHP模板语言,速度很快。您也可以通过为每个网站页面创建模板页来模仿代码隐藏。至于mvc,有一个名为Yii的新PHP框架(http://www.yiiframework.com/),声称它具有最好的性能,用于php框架。它也很好记录。如果你来自.Net,它可能是最好的PHP框架。感觉像Zend这样的企业,但没有糟糕的表现。其他大部分都是玩具,或像Symphony和Cake一样慢。 Php与Apache很好地合作。与Rails和Django不同的是没有太多的调优或维护。

接下来你需要一个IDE。去Netbeans。使用PHP版本并安装http://www.xdebug.org/。会觉得VS比VS差,但并不坏。

对于数据库,MySql是性感的选择,但Postgres是优越的。它有一个数据库引擎可以完成这一切。有了Mysql,你需要的一些功能在InnoDB中,有些功能在MyIsam中。如果你需要外键和事务你必须使用InnoDB。使用MyIsam进行全文搜索和更快的读取性能。Postgres的性能在版本8的版本上有了很大的改进(现在和mysql一样)并且最终有一个很好的Windows安装程序。