С какими проблемами мы столкнемся при переносе сайта из asp.net в стек LAMP (php)? - PullRequest
1 голос
/ 06 марта 2009

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

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

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

Проблемы, в которых я уверен:

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

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

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

Ответы [ 4 ]

2 голосов
/ 06 марта 2009

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

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

2 голосов
/ 09 марта 2009

Другие рамки MVC:

  • CodeIgniter
  • Kohana
  • Yii

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

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

1 голос
/ 06 марта 2009

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

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

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

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

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

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

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

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

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

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

0 голосов
/ 09 апреля 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 и Cake. Php прекрасно работает с Apache. Не так много настроек или поддержки в отличие от Rails и Django.

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

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

...