asp.netからLAMP(php)スタックにサイトを移植する際に直面する課題は何ですか?
質問
asp.net c#(3.5)で記述されたエンタープライズアプリケーションと、顧客向けにバンドルおよびリリースするSQLサーバーがあります。
ただし、コストのためにMicrosoftサーバーが必要であるという懸念を表明しています。はい、わかっています...したがって、「P」を使用して、LAMPスタックに移植することを検討しています。 phpを参照しています。
Visual Studio asp.net環境からのLAMPスタックでの開発で直面する課題は何ですか?
私が確信している問題は:
- デバッグ:Visual Studioは、クライアント側とサーバー側の両方のデバッグに最適です。
- フレームワーク:モデルの背後にあるコードは素晴らしく機能し、MVCフレームワークは優れています。
- メンテナンス:両方のプラットフォームで共通の機能セットが必要です。
- データベースレイヤー:コードはmssqlデータ型に疎結合されています。
このエキサイティングなプロセスを経験したことがある方は、いくつかの推奨事項/ヒントを参照して、それがどのようなものかを知りたいです。
これの側面として、このコードをそのまま実行する方法はありますか?モノ?その他?
解決
* AMPスタックよりも.NETの経験が豊富ですが、XAMPPの経験に基づいて、次の観察結果を提供します
-
デバッグ:Visual Studioは、クライアント側とサーバー側の両方のデバッグに最適です。
Eclipse PDT は、設計、開発、デバッグに最適です。私はZend Studioについて良いことを聞いたことがありますが、それを使ったことはありません。
-
フレームワーク:モデルの背後にあるコードはうまく機能し、MVCフレームワークは素晴らしいです。
ロジックとプレゼンテーションを分離できるフレームワークがあります(例: Smarty )および少なくとも1つのMVCフレームワークが利用可能です(例: CakePHP )
-
メンテナンス:機能セットが両方のプラットフォームで共通であることを望みます。
Windows固有の機能(Windows統合セキュリティなど)を除外する場合、両方のスタックでできないことはあまりないはずですが、gridviewなどのコントロールを再現する必要がある場合は、労働集約的です。
-
データベースレイヤー:コードはmssqlデータ型に疎結合されています。
mysqlサーバーとsqlサーバー間でマッピングできないデータ型はありません。移行の処理
Monoは、ソリューションの移植に必要な時間を短縮する可能性がありますが、すべてのコードを「現状のまま」再利用できる方法は知りません。
他のヒント
検討できるもう1つのPHP IDEはNetBeansです。
.NET、Java、およびLAMPの開発者としての最大の変化は、主に文化的なものでした。たとえば、PHPにはオブジェクト指向の原則を使用しないというレガシーがありますが、ASP .NETはオブジェクト指向を完全にサポートする.NET言語として始まりました。この基本的な違いは、PHPの予約済みキーワードの長いリストなどの重大な問題につながります。
iは私自身Asp.netのバックグラウンドを持ち、ここ数か月間、オープンソースフレームワークを研究しています。私はまだ決心していません。私は最近Grailsを見てきました。エンタープライズプラットフォーム上のスクリプト化された使いやすいオープンソースRAD MVCフレームワークである、両方の長所を備えているようです。 Groovyスクリプト言語(rubyに似ています)を使用しますが、JVM上で実行されるため、必要に応じて完全なJavaフレームワークを使用できます。そこには、事前に作成されたJavaコンポーネントが多数あります。このことはかなりクールです。既存のアプリをかなり迅速に移植できます。ただし、Tomcat Webホストが必要です。
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に劣ると感じますが、悪くはありません。
DBの場合、MySqlはセクシーな選択ですが、Postgresは優れています。すべてを実行するdbエンジンが1つあります。 Mysqlでは、必要な機能の一部はInnoDBにあり、一部はMyIsamにあります。外部キーとトランザクションが必要な場合は、InnoDBを使用する必要があります。 MyIsamを使用して、全文検索と高速な読み取りパフォーマンスを実現します。 Postgresのパフォーマンスは、バージョン8リリース(現在のmysqlと同じ)で大幅に改善され、最終的には素晴らしいWindowsインストーラーになりました。