Quand utiliser PHP ou ASP.NET? [fermé]

46

J'ai beaucoup travaillé au développement d'applications Web à l'aide de PHP et ASP.NET, mais l'une des questions que me posent constamment les clients est de savoir s'il faut aller de l'avant avec un site Web php ou un site Web asp.net.

Alors naturellement, la première chose qui me vient à l’esprit est de répondre à la question suivante:

PHP est open-source et ASP.NET provient de Microsoft.

Habituellement, après quelque chose comme cela, le client a un regard vide. Apparemment, le fait qu’un soit open source et que l’autre ne le soit pas ne les dérange pas vraiment. Et pour cause, parce que quand j'ai entendu ça pour la première fois, ça ne me dit pas grand chose.

En travaillant avec les deux, je sais que chacun a ses différences en ce qui concerne le développement de sites Web.

Ma question est de savoir quelles sont les différences entre ASP.NET et PHP en ce qui concerne

  1. Caractéristiques
  2. Sécurité
  3. Extensibilité
  4. Cadres
  5. Temps de développement moyen

J'essaie de dresser une liste de faits à comparer avec le client afin de permettre un choix éclairé sur la plate-forme de développement appropriée.

Edward
la source
7
J'ai utilisé les deux, Visual Studio et ASP.NET étant beaucoup plus robustes. L'IDE seul me gagne.
Le Muffin Man
7
PHP aura toujours un faible pour moi car il s’agissait de ma première langue de programmation Web ... mais après 2 ans d’ASP.NET C #, je ne peux absolument pas revenir en arrière ... Visual Studio IDE est merveilleux!
Dal
Oui, j'aimerais que PHP ait une sorte d'IDE principal, mais j'imagine que cela tuerait l'esprit même de PHP, qui est open source. Certainement un facteur à considérer.
Edward
2
6. Coût sur la durée de vie du projet?
VirtuosiMedia
@VirtuosiMedia est un autre facteur important que je n'ai pas mentionné.
Edward

Réponses:

39

Les fonctionnalités , la sécurité et l' extensibilité vont être plus ou moins les mêmes. Ce qui peut être fait avec PHP peut être fait avec ASP.NET.

Frameworks - Encore une fois, en ce qui concerne les fonctionnalités des frameworks, ce sera plus ou moins la même chose. Cependant, étant plus spécifique que le langage lui-même, vous devrez prendre en compte:

  • Ce avec quoi vos développeurs sont le plus à l'aise. Connaissance = efficacité .
  • Projet par projet, un cadre dans une langue peut constituer un meilleur ajustement naturel qu'un cadre dans une autre. Étant plus spécifique que le langage lui-même, un cadre ne peut s'empêcher d'être bien adapté à certaines tâches et moins adapté à d'autres.

Temps de développement moyen - Votre temps de développement moyen pour un très petit projet pourrait être mieux avec PHP, car les hôtes Web sont si faciles à trouver et les machines de développement si faciles à configurer. Cependant, avec quelque chose de plus gros, tant que vous avez de bons développeurs, ou que vous êtes déjà configuré pour l'un ou l'autre, ce sera probablement un lavage.


La principale considération à prendre en compte est la technologie que votre client souhaite associer à la technologie. Ni se mélange bien (facilement) avec l'autre. Ils peuvent avoir des développeurs qui sont familiers avec l'un ou l'autre.

  • Si votre client aime l'idée d'être connecté à Microsoft, optez pour ASP.NET. Certains clients seront plus à l'aise avec l'assistance future, les mises à niveau, etc. avec MS.

  • S'ils aiment l'idée de serveurs open source et Linux, optez pour PHP . Cela peut intéresser certains clients en raison de la transférabilité des hôtes Web, des logiciels libres, etc.

Et enfin, s’ils ne s’en soucient pas, choisissez ce qui vous convient le mieux . Il n'y a pas grand chose à faire à part ça.

Nicole
la source
8
+1 pour "La principale considération à prendre en compte est la pile de technologies que votre client veut être lié à l'avenir."
Système en
il n'y a pas de ressource pour voir comment chaque plate-forme s'est comportée?
Edward
3
@loyalpenguin - c'est une question en soi. Je ne suis pas sûr de comprendre ce que vous entendez par "comment chaque plate-forme a fonctionné", mais si vous parlez de failles de sécurité de la plate-forme (qui sont presque toujours rapidement corrigées), c'est le moindre de vos soucis. Pour la plupart, chaque langue est aussi "sécurisée" que le développeur qui écrit le code.
Nicole
bon point.Just une dernière question, comment puis-je sortir de la question qui est plus sûr alors?
Edward le
@loyalpenguin quand je dis que c'est une question différente, je veux dire que la question est la suivante: "La question de la sécurité des plates-formes est-elle un sujet de préoccupation majeur pour les applications Web? PHP, ASP.NET, Java, Ruby on Rails, etc.? " Pour moi, je ne suis pas si sûr que ce soit une grande source de préoccupation.
Nicole
29

Pour vous donner une idée de ce sur quoi je me base, je développe le développement PHP professionnellement depuis plus de 6 ans, je joue avec ASP.NET MVC depuis environ 3 ou 4 mois et je fais de la C #. programmation pour aussi longtemps que la programmation PHP.

Pour moi, ceci est plus un argument PHP vs C # qu'un argument PHP vs ASP.NET.

Fonctionnalité / Extensibilité
Je pense qu'ASP.NET l'emporte ici et que c'est davantage grâce à la possibilité d'utiliser un langage comme C #. C # est un langage bien meilleur que PHP avec le support OO. Je suis aussi une personne qui préfère un langage typé de manière statique (même en C # 4.0, je pense que vous pouvez créer des variables dynamiquement typées). La seule chose que PHP avait sur C # en ce qui concerne une fonctionnalité de langage était des paramètres facultatifs, mais c’est une autre chose qui a été ajoutée en C # 4.0 (je ne sais pas si cela fonctionne bien, je ne l’ai pas encore essayé).

Sécurité,
je dirais probablement que c'est un lavis entre les deux. Je pense que les deux ont des fonctionnalités en place pour aider à la sécurité, mais il appartient en dernier ressort au programmeur de s’assurer que leur application est sûre.

Frameworks
Eh bien, PHP semble avoir beaucoup plus de frameworks grand public (CakePHP, Codeigniter, Symfony, Zend Framework) et beaucoup d'autres frameworks plus petits que ASP.NET. ASP.NET dispose de 2 infrastructures principales de Microsoft, WebForms (une pure merde) et ASP.NET MVC (la raison pour laquelle j'ai commencé à me lancer dans le développement ASP.NET). Bien que PHP ait plus de frameworks, je trouve que le framework ASP.NET MVC 3 est meilleur que tous les frameworks PHP.

Durée moyenne de développement
Je pense que pour les petits projets, la durée de développement est bien meilleure en PHP. Cependant, à mesure que la taille de votre projet augmente, C # évolue mieux à cet égard.

Coût
Certains coûts devraient être abordés. PHP gagne haut la main sur ce front. Bien que vous puissiez exécuter ASP.NET sur Mono sous Linux, il présente ses propres problèmes.

Si vous faites un projet de petite à moyenne taille et / ou que le coût est un facteur, PHP gagne. Si vous faites un projet à grande échelle, je choisirais ASP.NET avec C # et ASP.NET MVC.

Ryanzec
la source
3
Web Forms présente toutefois des avantages. Par exemple, les milliers de commandes prêtes à l'emploi permettant de créer rapidement des applications Web ont été un avantage pour la vente de mon client sur un site Web.
Edward
1
Je suis d'accord avec @ryanzec WebForms n'est pas une merde et vaut autant que ASP.NET MVC sous un angle différent. J'ai utilisé le framework ASP.NET MVC depuis l'aperçu 2 de la première version dans un environnement commercial. J'ai aussi utilisé WebForms depuis plus de 7 ans. De plus, vous ne pouvez plus vous disputer les coûts d’ASP.NET, Microsoft fournit des outils gratuits, ce qui est mieux que ce que propose PHP. Microsoft fournit également une version gratuite de SQL Compact et SQL Server. L'hébergement tiers pour .NET est comparable à Linux de nos jours.
Nickz
Bien que je convienne que le coût d’hébergement d’ASP.NET a été amélioré, je peux toujours trouver un hébergement moins cher pour VPS LAMP qu’un hébergement VPS Windows.
Ryanzec
Au sujet de WebForm également, dire que la merde a peut-être été dure, ce n'est tout simplement pas ma tasse de thé. Il est vrai que vous pouvez obtenir des résultats plus rapidement, mais une fois que vous essayez de faire quelque chose en dehors de ce qui vous est fourni à partir des composants ou une fois que vous modifiez fortement un composant existant, il est exponentiellement plus difficile. De plus, la façon dont le système fonctionne avec les publications et tout semble trop maladroit pour le développement Web. Je préfère ASP.NET MVC car cela me donne à mon avis un contrôleur à 100% de ce qui est créé et qui convient au développement Web.
Ryanzec
8

PHP vs ASP.NET, c'est comme comparer des pommes et des oranges, ciblées par différentes solutions.

PHP est un cadre mieux adapté pour les solutions de démarrage à petite échelle. PHP fonctionnera sous Linux, Windows sans trop de contraintes. Microsoft ASP.NET est une infrastructure industrielle qui regroupe tout ce que vous pouvez imaginer et bien plus. ASP.NET est un environnement riche en fonctionnalités et prêt à l'emploi. Beaucoup diront qu'ASP.NET est cher, ce qui était le cas il y a quelques années, mais plus maintenant. Premièrement, les outils sont gratuits (éditions express), les options de base de données sont gratuites (SQL Compact ou SQL Server 2005 ou version ultérieure). L'achat en ligne est maintenant très bon marché, la question n'est donc pas de savoir ce qui est mieux mais ce qui convient à votre solution. Personnellement, je préfère ASP.NET, mais c’est parce que je travaille dans un environnement d’entreprise où la flexibilité et l’évolutivité sont très importantes; par conséquent, les solutions dictent le cadre.

Une chose très importante est quelle langue êtes-vous le mieux? Cela devrait être le dernier facteur dans la décision.

Si votre objectif est de convaincre un client, asp.net est une meilleure option. Le nom d'une grande entreprise s'appuie sur une langue qui met le client à l'aise. Dans ce cas, les meilleures options sont ASP.NET (Microsoft) et JSP Java (Oracle).

EDIT: riche en fonctionnalités - ASP.NET fournit deux alternatives à la création d’un site Web WebForms et à l’approche MVC. Depuis son infrastructure .NET, vous disposez de fonctionnalités très puissantes telles que WF (workflow), DLR (Dynamic Language Runtime), Parallel Linq, Linq, le routage, diverses formes de gestion de l'état des données: éléments HTTPContext, ViewState, Runtime Cache, page. cache de sortie, trois types d'implémentation de session différents: InProc, State et SQL Server. ASP.NET implémente diverses formes de sécurité, par exemple, Fournisseur d'adhésion et Fournisseur de rôle. Je ne veux pas perdre PHP, mais ASP.NET est dans une ligue différente.

Nickz
la source
5
J'ai toujours entendu cela comme une excuse, c'est "Microsoft = Cher", c'est pourquoi j'ai appris le PHP en premier. Mais je dois convenir que ce n'est plus vraiment le cas.
Edward
Oui, le terrain de jeu est assez homogène à présent, il est difficile de savoir quelle langue utiliser ces jours-ci.
Nickz
Que signifie exactement « cadre de la force industrielle » moyenne ? "Tout ce que vous pouvez imaginer et plus"? "Environnement riche en fonctionnalités, prêt à l'emploi"? Comment est ASP.NET ces choses, de manière que PHP n'est pas? Tant que vous n'avez pas expliqué cela, il ne s'agit que du langage publicitaire de Microsoft.
Nicole
objectifs de conception - php était à l’origine pour les pages d’accueil personnelles et a été conçu pour simplifier les scripts sur le serveur. asp.net a été conçu pour concurrencer w / java ee en tant que solution d'entreprise. php a assimilé de nombreuses fonctionnalités au fil des ans, mais cette "fonctionnalité" se décompose en incohérences de langage et en bizarreries de plate-forme. J'utilise souvent php, mais il est conçu pour être un langage Web, pas une plate
générique
6

Après avoir beaucoup travaillé avec les deux, vous savez déjà que les réponses seront différentes selon le problème et le client. Dans un sens très générique:

  • PHP est idéal pour les projets qui ont besoin de travailler sur un budget. Par exemple, vous n’obtiendrez pas de gros frais de licence de base de données.
  • ASP.NET est idéal pour les projets nécessitant le type de support et la culture de développement proposés par Microsoft.

Si vous établissez une liste de faits pour vos clients, basez-la sur ce que vous savez. Votre recherche, quelle que soit la fausseté de vos conclusions, vous permettra d’obtenir vos points.

Fred Wilson
la source
8
Cela m'agace quand .Net est automatiquement associé à «de gros frais de licence de base de données». Vous devez bien sûr savoir que .Net peut s’interfacer avec toute une variété de SGBDR, gratuits ou non, et bien sûr, PHP, gratuitement ou non (et ce n’est pas comme Microsoft est le seul SGBDR populaire avec des droits de licence élevés).
Quentin-Starin
3
Sans oublier que les versions Express et Web de SQL Server ont des frais de licence beaucoup plus acceptables (gratuits dans le cas d'Express).
Quentin-Starin
Désolé, pas destiné à irriter. MS semble simplement mieux vendre en tant que pile complète et je supposais un moteur de base de données plus grand que Express.
Fred Wilson
1
Pas pris personnellement, je semble juste voir l'association faite assez souvent.
Quentin-Starin
1
@loyalpenguin: D'après mon expérience, il est rare de trouver un moteur de stockage qui n'est pas pris en charge dans .Net. Je ne peux pas dire si c'est aussi vrai avec PHP.
Quentin-Starin
1

Les contrôles .net sont beaucoup plus agréables que ce que vous pouvez trouver avec une plate-forme PhP. Regardez, par exemple, Infragistics, quel est l'équivalent d'un LAMP?

Totor
la source