web-dev-qa-db-fra.com

Quand utiliser PHP ou ASP.NET?

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

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

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

Habituellement, après que quelque chose comme ça soit dit, le client a un regard vide sur son visage. Apparemment, le fait que l'un soit open source et l'autre non ne les déroute pas vraiment. Et pour cause, parce que quand je l'ai entendu pour la première fois, ça ne me dit vraiment pas grand-chose.

Je sais qu'en travaillant avec les deux, chacun a ses différences en matière de développement de sites Web.

Ma question est quelles sont les différences entre ASP.NET et PHP pour autant que

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

J'essaie de compiler une liste de faits pour pouvoir comparer avec le client afin qu'un choix éclairé sur la plate-forme de développement appropriée puisse être fait.

46
Edward

Caractéristiques, Sécurité, et 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 la langue elle-même, vous devrez considérer:

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

Temps de développement moyen - Votre temps de développement moyen pour un très petit projet pourrait être meilleur avec PHP puisque les hébergeurs Web sont si faciles à trouver et les machines de développement si faciles à installer. Cependant, avec quelque chose de plus grand, 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 que vous devriez faire est quelle pile technologique votre client veut être lié à l'avenir. Aucun des deux ne se mélange bien (facilement) avec l'autre. Ils peuvent avoir des développeurs qui connaissent l'un ou l'autre.

  • Si votre client aime l'idée d'être connecté à Microsoft, alors allez avec ASP.NET. Certains clients auront plus de confort concernant le support futur, les mises à niveau, etc. avec MS.

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

Et enfin, s'ils s'en moquent, alors allez avec ce avec quoi vous êtes le plus à l'aise. Il n'y a pas grand-chose à part cela.

39
Nicole

Juste pour donner un aperçu de ce sur quoi je base mes réponses, j'ai fait PHP développement professionnel pendant plus de 6 ans, je joue avec ASP.NET MVC depuis environ les 3 derniers) 4 mois, et je fais de la programmation C # depuis aussi longtemps que la programmation PHP.

Pour moi, il s'agit plus d'un argument PHP vs C # que d'un argument PHP vs ASP.NET).

Fonctionnalité/Extensibilité
Je pense que l'ASP.NET l'emporte ici et c'est plus en raison de la possibilité d'utiliser un langage comme C #. C # est un langage bien meilleur que PHP avec cela vient à OO support. Je suis aussi une personne qui préfère un langage typé statiquement (même pensé avec C # 4.0) , Je crois que vous pouvez faire des variables typées dynamiquement.) La seule chose que PHP avait sur C # dans la mesure où une fonctionnalité de langage était des paramètres facultatifs mais c'est une autre chose qui a été ajoutée dans C # 4.0 (je ne sais pas si cela fonctionne bien car je ne l'ai pas encore essayé).

Sécurité
Je dirais probablement que c'est un lavage entre les deux. Je pense que les deux ont des fonctionnalités en place pour aider à la sécurité, mais c'est finalement le travail du programmeur de s'assurer que leur application est sûre.

Cadres
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 a 2 principaux frameworks de Microsoft, WebForms (un morceau de merde) et ASP.NET MVC (la raison pour laquelle j'ai commencé à entrer dans le développement ASP.NET). Alors que PHP a plus de frameworks, je trouve que Le framework ASP.NET MVC 3 est meilleur que n'importe quel framework PHP.

Temps de développement moyen
Je pense que pour les petits projets, le temps de développement est bien meilleur en PHP cependant, à mesure que votre projet grandit, C # évolue mieux à cet égard.

Coût
Certains éléments qui devraient être évoqués sont les coûts. 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 w/C # & ASP .NET MVC.

29
ryanzec

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

PHP est un cadre mieux adapté aux solutions de démarrage à petite échelle. PHP s'exécutera ou Linux, Windows sans trop d'exigences. Microsoft ASP.NET est un framework de puissance industrielle, qui a tout ce que vous pourriez imaginer et plus encore. ASP.NET est un environnement très riche en fonctionnalités Beaucoup diront que ASP.NET est cher, ce qui était le cas il y a quelques années mais pas plus. Premièrement, les outils sont gratuits (éditions express), les options de base de données sont gratuites (SQL Compact ou SQL Server 2005 ou supérieur à Express). L'achat d'hébergement est maintenant très bon marché, donc la question n'est pas de savoir ce qui est le 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 ainsi les solutions dictent le cadre.

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

Si votre objectif est de convaincre un client, asp.net est une meilleure option. Le fait que le nom d'une grande entreprise soutienne une langue permet au client de se sentir à l'aise. Dans ce cas, les meilleures options sont (Microsoft) ASP.NET et (Oracle) Java JSP.

EDIT: Riche en fonctionnalités - ASP.NET offre deux alternatives à la construction d'un site Web WebForms et l'approche MVC. Depuis son appartenance au framework .NET, vous devez disposer de fonctionnalités très puissantes, par exemple WF (workflow), DLR (Dynamic Language Runtime), Parallel Linq, Linq, routage, diverses formes de gestion de l'état des données: éléments HTTPContext, ViewState, Runtime Cache, cache de sortie de page, trois types différents de la mise en œuvre de la session InProc, State et SQL Server. ASP.NET implémente diverses formes de sécurité, par exemple le fournisseur d'appartenances et le fournisseur de rôles. Je ne veux pas acheter PHP, mais ASP.NET est dans une ligue différente.

8
Nickz

Ayant 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 doivent travailler avec un budget. Par exemple, vous ne serez pas frappé par de gros frais de licence de base de données.
  • ASP.NET est idéal pour les projets qui ont besoin du type de support et de la culture de développeur fournis par Microsoft.

Si vous compilez une liste de faits pour vos clients, basez-la sur ce que vous savez. Votre recherche, quelle que soit la partialité de vos résultats, est parfaite pour obtenir vos points de balle.

6
Fred Wilson

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

1
Totor