1

我们有一个用 asp.net c# (3.5) 和 SQL server 编写的企业应用程序,我们希望为客户捆绑和发布。

但是,由于成本原因,一些人表示担心它需要Microsoft 服务器。是的,我知道...因此,我们正在考虑将其移植到 LAMP 堆栈,其中“P”指的是 php。

在来自 Visual Studio asp.net 环境的 LAMP 堆栈上进行开发可能会面临哪些挑战?

我确定的问题是:

  1. 调试:Visual Studio 非常适合客户端和服务器端调试。
  2. 框架:模型背后的代码运行良好,MVC 框架也不错。
  3. 维护:我们希望该功能集在两个平台上都通用。
  4. 数据库层:代码与 mssql 数据类型松散耦合。

如果您经历过这个令人兴奋的过程,我很想知道一些建议/提示是什么感觉。

作为一个方面,我们有什么办法可以按原样运行这段代码吗?单核细胞增多症?其他的?

4

4 回答 4

2

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

作为一名 .NET、Java 和 LAMP 开发人员,最大的变化主要是文化方面的。例如,PHP 具有不使用 OO 原则的传统,而 ASP .NET 最初是作为具有完全 OO 支持的 .NET 语言开始的。这种基本差异会导致重大问题,例如 PHP 的保留关键字列表过长等等。

于 2009-03-06T11:16:44.930 回答
2

其他 MVC 框架:

  • 代码点火器
  • 小花

(刚刚发现了 Yii。这是一篇比较它们的文章。)

那里可能还有六个。

于 2009-03-09T15:50:04.170 回答
1

与 *AMP 堆栈相比,我在 .NET 方面的经验更多,但根据我在 XAMPP 方面的经验,我将提供以下意见

  1. 调试:Visual Studio 非常适合客户端和服务器端调试。

    Eclipse PDT非常适合设计、开发和调试。我听说过有关 Zend Studio 的好消息,但还没有使用它。

  2. 框架:模型背后的代码运行良好,MVC 框架也不错。

    有一些框架允许您将表示与逻辑分开(例如Smarty),并且至少有一个 MVC 框架可用(例如CakePHP

  3. 维护:我们希望该功能集在两个平台上都通用。

    如果您排除了 Windows 特定功能(Windows 集成安全等),那么您在两个堆栈中都不能做太多事情,但是如果您必须重现像 gridview 这样的控件,那将是劳动密集型的。

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

    我不知道任何无法在 mysql 和 sql server 之间映射的数据类型,并且有很好的文档来处理迁移

Mono 可能会减少移植您的解决方案所需的时间,但我不知道您可以“按原样”重用所有代码的任何方式。

于 2009-03-06T10:56:17.163 回答
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,但也不错。

对于数据库,MySql 是一个性感的选择,但 Postgres 更胜一筹。它有一个可以完成所有工作的数据库引擎。使用 Mysql,您想要的一些功能在 InnoDB 中,一些在 MyIsam 中。如果您需要外键和事务,则必须使用 InnoDB。使用 MyIsam 进行全文搜索和更快的读取性能。Postgres 的性能随着版本 8 的发布(现在和 mysql 一样)有了很大的提高,并且最终有了一个不错的 windows 安装程序。

于 2009-04-09T02:08:01.980 回答