Quels sont les défis auxquels nous serons confrontés lors du portage d'un site depuis asp.net vers une pile LAMP (php)?

StackOverflow https://stackoverflow.com/questions/617829

  •  03-07-2019
  •  | 
  •  

Question

Nous avons une application d’entreprise écrite en asp.net c # (3.5) et un serveur SQL que nous souhaitons regrouper et publier pour les clients.

Cependant, plusieurs personnes ont exprimé leur crainte que ce site ne nécessite un serveur Microsoft en raison des coûts. Oui, je sais ... Par conséquent, nous envisageons de le transférer sur une pile LAMP, avec le "P" se référant à php.

À quels défis pouvons-nous nous attendre face au développement sur une pile LAMP provenant d'un environnement Visual Studio asp.net?

Les questions dont je suis sûr sont:

  1. Débogage: Visual Studio est génial pour le débogage côté client et côté serveur.
  2. Framework: le code derrière le modèle fonctionne très bien et le framework MVC est agréable.
  3. Maintenance: nous souhaitons que l'ensemble des fonctionnalités soit commun aux deux plates-formes.
  4. Couche base de données: le code est faiblement couplé aux types de données mssql.

Si vous avez traversé ce processus passionnant, j'aimerais savoir comment c'était de donner quelques recommandations / conseils.

En contrepartie, pouvons-nous exécuter ce code tel quel? Mono? D'autres?

Était-ce utile?

La solution

J'ai plus d'expérience avec .NET que les piles * AMP, mais compte tenu de mon expérience avec XAMPP, je voudrais proposer les observations suivantes

  1. Débogage: Visual Studio est génial pour le débogage côté client et côté serveur.

    Eclipse PDT est très utile pour la conception, le développement et le débogage. J'ai entendu de bonnes choses à propos de Zend Studio mais je n'ai pas travaillé avec.

  2. Framework: le code derrière le modèle fonctionne très bien et le framework MVC est agréable.

    Certains cadres vous permettent de séparer la présentation de la logique (par exemple, Smarty ) et à au moins un framework MVC est disponible (par exemple, CakePHP )

  3. Maintenance: nous souhaitons que l'ensemble des fonctionnalités soit commun aux deux plates-formes.

    Si vous excluez des fonctionnalités spécifiques à Windows (sécurité intégrée à Windows, etc.), il ne devrait pas y avoir grand-chose que vous ne puissiez pas faire dans les deux piles, mais si vous devez reproduire des contrôles tels que gridview, être laborieux.

  4. Couche de base de données: le code est faiblement couplé aux types de données mssql.

    Je ne connais aucun type de données qui ne puisse pas être mappé entre mysql et serveur SQL. Il existe une bonne documentation pour gestion des migrations

Mono peut réduire le temps requis pour le portage de votre solution, mais je ne connais aucun moyen de réutiliser l'intégralité de votre code "tel quel".

Autres conseils

NetBeans est un autre IDE que vous pouvez envisager.

En tant que développeur .NET, Java et LAMP à un moment ou à un autre, le changement le plus important a été en grande partie culturel. Par exemple, PHP n'a pas utilisé les principes de OO, alors qu'ASP .NET était initialement un langage .NET avec une prise en charge complète de OO. Cette différence fondamentale entraîne des problèmes importants tels que les longues listes de mots clés réservés de PHP, etc.

.

Autres frameworks MVC:

  • CodeIgniter
  • Kohana
  • Yii

(Je viens de découvrir Yii. Voici un article qui les compare.)

Il en existe probablement une demi-douzaine de plus.

J'ai moi-même une expérience Asp.net et je fais des recherches sur les frameworks open source depuis quelques mois. Je n'ai toujours pas pris ma décision. J'ai récemment examiné Grails. Semble avoir le meilleur des deux mondes: un framework RAD MVC open source, scripté, facile à utiliser, sur une plate-forme d'entreprise. Il utilise le langage de script Groovy (semblable à Ruby) mais s’exécute sur la machine virtuelle Java afin que vous puissiez utiliser la totalité de l’infrastructure Java si vous le souhaitez. il y a des tonnes de composants Java pré-écrits à exploiter. Cette chose est plutôt cool. vous seriez en mesure de porter votre application existante assez rapidement. Vous aurez cependant besoin d’un hébergeur Tomcat.

Si vous avez besoin de PHP, straight PHP fonctionne plutôt bien, mais la plupart des frameworks sont peu performants. Si aller avec PHP droite il n'y a pas de MVC. Vous utiliseriez le modèle traditionnel basé sur des pages. Mais vous vous sentirez plus chez vous. Vous pouvez lancer votre propre DAL avec PDO et utiliser des procédures stockées. Vous aurez cependant besoin d'un système de templates. Éloignez-vous de Smarty, qui utilise son propre langage de modèles. C'est lent et pourquoi avez-vous besoin d'apprendre une langue modèle distincte. Je n'ai jamais eu ça. Utilisez Savant à la place: http://phpsavant.com/ . il utilise php comme langage de template et est rapide. Vous pouvez également imiter code-behind avec cela en créant une page de modèle pour chaque page de site. En ce qui concerne mvc, il existe un nouveau framework PHP appelé Yii ( http://www.yiiframework.com/ ). qui prétend avoir les meilleures performances pour les frameworks php. C'est bien documenté aussi. C'est probablement le meilleur des frameworks php, si vous venez de .Net. Se sent comme une entreprise comme Zend mais sans les mauvaises performances. La plupart des autres sont très lents ou très lents, comme Symphony et Cake. Php fonctionne très bien avec Apache. Pas beaucoup de réglages ou de maintenance contrairement à Rails et Django.

Ensuite, vous avez besoin d’un IDE. Allez avec Netbeans. Utilisez la version de PHP et installez http://www.xdebug.org/ . Je me sentirai inférieur au VS mais ce n'est pas mauvais.

Pour une base de données, MySql est le choix sexy, mais Postgres est supérieur. Il a un moteur de base de données qui fait tout. Avec Mysql, certaines fonctionnalités que vous souhaitez se trouvent dans InnoDB et d'autres dans MyIsam. Si vous avez besoin de clés et de transactions étrangères, vous devez utiliser InnoDB. Utilisez MyIsam pour une recherche en texte intégral et des performances de lecture plus rapides. Les performances de Postgres ont été considérablement améliorées avec la version 8 (identique à celle de mysql) et disposent enfin d’un bon installateur Windows.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top