С какими проблемами мы столкнемся при переносе сайта с asp.net на стек LAMP (php)?

У нас есть корпоративное приложение, написанное на asp.net C # (3.5) и SQL-сервере, которое мы хотим объединить и выпустить для клиентов.

Однако некоторые выразили обеспокоенность тем, что требуется сервер Microsoft из-за затрат. Да, я знаю ... Таким образом, мы рассматриваем возможность переноса его в стек LAMP, где "P" относится к php.

С какими проблемами мы можем столкнуться при разработке на стеке LAMP из среды Visual Studio asp.net?

Я уверен в следующих проблемах:

  1. Отладка: Visual Studio отлично подходит как для отладки на стороне клиента, так и на стороне сервера.
  2. Фреймворк: код модели отлично работает, а фреймворк MVC хорош.
  3. Техническое обслуживание: мы хотели бы, чтобы набор функций был общим для обеих платформ.
  4. Уровень базы данных: код слабо связан с типами данных mssql.

Если вы прошли через этот захватывающий процесс, я хотел бы узнать, как он прошел, с некоторыми рекомендациями / советами.

Кроме того, есть ли у нас возможность запустить этот код как есть? Мононуклеоз? Другие?


person Community    schedule 06.03.2009    source источник
comment
Если это действительно «корпоративное» приложение, стоимость лицензии на сервер + Windows - просто шум по сравнению со стоимостью самого приложения. Аналогичным образом, стоимость повторной перезаписи с нуля и обеспечение качества, сопоставимого с оригиналом (см. 1729.com/blog/EconomicsOfTestingUglyCode.html) будут ошеломляющими. Я бы не стал спорить с тем, чтобы сделать что-то помимо его переноса в БД с открытым исходным кодом и некоторых незначительных переписываний, чтобы заставить его работать под Mono - более того, и вы могли бы просто назвать это новым приложением.   -  person Sean McSomething    schedule 03.06.2009


Ответы (4)


У меня больше опыта работы с .NET, чем со стеками * AMP, но, основываясь на моем опыте работы с XAMPP, я бы предложил следующие наблюдения.

  1. Отладка: Visual Studio отлично подходит как для отладки на стороне клиента, так и на стороне сервера.

    Eclipse PDT отлично подходит для проектирования, разработки и отладки. Я слышал много хорошего о Zend Studio, но не работал с ней.

  2. Фреймворк: код модели отлично работает, а фреймворк MVC хорош.

    Существуют структуры, позволяющие отделить представление от логики (например, Smarty) и хотя бы один MVC доступен фреймворк (например, CakePHP)

  3. Техническое обслуживание: мы хотели бы, чтобы набор функций был общим для обеих платформ.

    Если вы исключите специфические функции Windows (интегрированная безопасность Windows и т. Д.), Вы не должны ничего сделать в обоих стеках, но если вам нужно воспроизвести элементы управления, такие как gridview, это будет трудозатратным. .

  4. Уровень базы данных: код слабо связан с типами данных mssql.

    Мне неизвестны какие-либо типы данных, которые нельзя сопоставить между mysql и sql server, и есть хорошая документация для обработка миграций

Mono может сократить время, необходимое для переноса вашего решения, но я не знаю, каким образом вы могли бы повторно использовать весь свой код «как есть».

person cmsjr    schedule 06.03.2009

Еще одна PHP IDE, которую вы можете рассмотреть, - это NetBeans.

Как разработчик .NET, Java и LAMP в тот или иной момент самое большое изменение было во многом культурным. Например, у PHP есть наследие неиспользования принципов объектно-ориентированного программирования, тогда как ASP .NET начинался как язык .NET с полной поддержкой объектно-ориентированного программирования. Это основное различие приводит к серьезным проблемам, таким как длинные списки зарезервированных ключевых слов PHP и так далее.

person Zian Choy    schedule 06.03.2009

Другие фреймворки MVC:

  • CodeIgniter
  • Кохана
  • Yii

(Только что узнал о Yii. Вот статья, в которой они сравниваются.)

Вероятно, их еще полдюжины.

person sprugman    schedule 09.03.2009

У меня есть опыт работы с Asp.net, и последние несколько месяцев я занимаюсь исследованием фреймворков с открытым исходным кодом. Я все еще не решился. Недавно я смотрел на Grails. Кажется, у него есть лучшее из обоих миров - простая в использовании платформа RAD MVC с открытым исходным кодом на корпоративной платформе. Он использует язык сценариев Groovy (похожий на ruby), но работает на JVM, поэтому вы можете использовать полную структуру Java, если хотите. есть масса заранее написанных Java-компонентов, которые можно использовать. Это довольно круто. вы сможете довольно быстро перенести существующее приложение. Однако вам понадобится веб-хостинг Tomcat.

если вам нужен PHP, обычный PHP работает довольно хорошо, но большинство фреймворков работают плохо. Если пойти с прямым PHP, mvc не будет. Вы бы использовали традиционную модель, основанную на страницах. Но вы будете чувствовать себя как дома. Вы можете развернуть свой собственный DAL с PDO и использовать хранимые процедуры. Однако вам понадобится система шаблонов. Держитесь подальше от Smarty, который использует собственный язык шаблонов. Это медленно, и зачем вам изучать отдельный язык шаблонов. я никогда не понимал этого. Вместо этого используйте Savant: http://phpsavant.com/. он использует php для языка шаблонов и работает быстро. Вы также можете имитировать код программной части, создав страницу шаблона для каждой страницы сайта. Что касается mvc, существует новый фреймворк PHP под названием Yii (http://www.yiiframework.com/) который утверждает, что имеет лучшую производительность для фреймворков php. Это тоже хорошо задокументировано. Вероятно, это лучший фреймворк для PHP, если вы из .Net. По ощущениям корпоративный, как Zend, но без плохой производительности. Большинство других игрушечных или очень медленных, как Symphony and Cake. Php отлично работает с Apache. В отличие от Rails и Django, не так много настройки или обслуживания.

Далее вам понадобится IDE. Пойдите с Netbeans. Используйте версию PHP и установите http://www.xdebug.org/. Буду чувствовать себя хуже VS, но это неплохо.

Для БД MySql - лучший выбор, но Postgres лучше. У него есть один движок db, который делает все это. В Mysql некоторые функции, которые вам нужны, находятся в InnoDB, а некоторые - в MyIsam. Если вам нужны внешние ключи и транзакции, вы должны использовать InnoDB. Используйте MyIsam для полнотекстового поиска и более быстрого чтения. Производительность Postgres значительно улучшилась с выпуском версии 8 (такой же, как и mysql сейчас), и, наконец, появился хороший установщик Windows.

person Community    schedule 09.04.2009