Quando usar PHP ou ASP.NET? [fechadas]


46

Eu trabalhei extensivamente no desenvolvimento de aplicativos da Web usando PHP e ASP.NET, mas uma das perguntas que constantemente faço aos clientes é se devo avançar com um site php ou um site asp.net.

Então, naturalmente, a primeira coisa que vem à mente é responder a pergunta assim:

O PHP é de código aberto e o ASP.NET é da Microsoft.

Normalmente, depois que algo assim é dito, o cliente fica com uma expressão em branco no rosto. Aparentemente, o fato de um ser de código aberto e o outro de fato não os perturba. E por uma boa razão, porque quando ouvi pela primeira vez, isso realmente não me diz muito.

Sei que, ao trabalhar com os dois, cada um tem suas diferenças quando se trata de desenvolver sites.

Minha pergunta é quais são as diferenças entre ASP.NET e PHP, tanto quanto

  1. Recursos
  2. Segurança
  3. Extensibilidade
  4. Frameworks
  5. Tempo Médio de Desenvolvimento

Estou tentando compilar uma lista de fatos para poder comparar com o cliente, para que uma escolha informada na plataforma de desenvolvimento apropriada possa ser feita.


7
Eu usei os dois, acho que o Visual Studio e o ASP.NET são muito mais robustos. Somente o IDE me conquista.
The Muffin Man

7
O PHP sempre terá um ponto fraco para mim, porque foi minha primeira linguagem de programação na Web ... mas, após 2 anos de ASP.NET C #, simplesmente não há como eu voltar ... O Visual Studio IDE é maravilhoso!
Dal

Sim, eu gostaria que o php tivesse algum tipo de IDE principal, mas acho que isso mataria o próprio espírito de o PHP ser de código aberto. Definitivamente um fator a considerar.
Edward

2
6. Custo ao longo da vida útil do projeto?
VirtuosiMedia 06/04

@VirtuosiMedia outro fator importante que não mencionei.
Edward Edward

Respostas:


39

Recursos , segurança e extensibilidade serão mais ou menos os mesmos. O que pode ser feito com o PHP pode ser feito com o ASP.NET.

Estruturas - Novamente, quando se trata de recursos de estruturas, será mais ou menos o mesmo. No entanto, sendo mais específico que o próprio idioma, convém considerar:

  • Com o que seus desenvolvedores estão mais confortáveis. Conhecimento = eficiência .
  • Projeto a projeto, uma estrutura em um idioma pode ser um ajuste natural melhor do que uma estrutura em outro. Ser mais específico do que a própria linguagem significa que uma estrutura não pode ajudar, mas é adequada para algumas tarefas e menos adequada para outras.

Tempo Médio de Desenvolvimento - Seu tempo médio de desenvolvimento para um projeto muito pequeno pode ser melhor com o PHP, já que os hosts da web são muito fáceis de encontrar e as máquinas de desenvolvimento são fáceis de configurar. No entanto, com qualquer coisa maior, desde que você tenha bons desenvolvedores ou já esteja configurado para ambos, provavelmente será uma lavagem.


A principal consideração que você deve fazer é qual pilha de tecnologia seu cliente deseja estar ligada ao futuro. Nenhum deles se mistura bem (facilmente) com o outro. Eles podem ter desenvolvedores familiarizados com um ou outro.

  • Se seu cliente gosta da idéia de estar conectado à Microsoft, vá com o ASP.NET. Alguns clientes terão mais conforto em relação a suporte futuro, atualizações etc. com o MS.

  • Se eles gostam da idéia de servidores de código aberto e Linux, use o PHP . Isso pode interessar a alguns clientes devido à transferibilidade de hosts da web, software livre etc.

E, por fim, se eles não se importam, escolha o que você mais gosta . Não há muito além disso.


8
+1 em "A principal consideração que você deve fazer é qual pilha de tecnologia seu cliente deseja estar vinculada ao futuro".
Sistema de Down

ramificação da segurança, não há recurso para ver o desempenho de cada plataforma?
Edward

3
@loyalpenguin - essa é uma pergunta em si mesma. Não sei ao certo o que você quer dizer com "como cada plataforma se saiu", mas se você está falando sobre falhas de segurança da plataforma (que quase sempre são rapidamente corrigidas), essa é a menor das suas preocupações. Na maioria das vezes, cada idioma é tão "seguro" quanto o desenvolvedor que está escrevendo o código.
Nicole

Apenas uma última pergunta. Como eu sairia da pergunta que é mais segura?
Edward

@loyalpenguin quando digo que é uma pergunta diferente, quero dizer que a questão é "Os problemas de segurança da plataforma são uma das principais causas de preocupação nos aplicativos da web? Se sim, como analiso o que tem um histórico melhor entre várias plataformas, como PHP, ASP.NET, Java, Ruby on Rails, etc.? " Para mim, não tenho tanta certeza de que realmente seja um grande motivo de preocupação.
Nicole

29

Apenas para dar uma base sobre o que estou baseando minhas respostas, eu desenvolvo o PHP profissionalmente há mais de 6 anos, ando brincando com o ASP.NET MVC há cerca de 3 a 4 meses e faço C # programação por tanto tempo quanto a programação PHP.

Para mim, este é mais um argumento PHP vs C # do que um PHP vs ASP.NET.

Recurso / extensibilidade
Acho que o ASP.NET vence aqui e isso é mais devido à capacidade de usar uma linguagem como C #. C # é uma linguagem muito melhor que PHP, com suporte ao OO. Eu também sou uma pessoa que prefere uma linguagem de tipo estaticamente (mesmo pensando em C # 4.0, acredito que você pode fazer variáveis ​​de tipo dinâmico). A única coisa que o PHP tinha sobre o C #, no que diz respeito a um recurso de linguagem, eram parâmetros opcionais, mas isso é outra coisa que foi adicionada no C # 4.0 (não tenho certeza de como ele funciona, pois ainda não tentei).

Segurança
Eu provavelmente diria que é uma lavagem entre os dois. Eu acho que os dois possuem funcionalidade para ajudar na segurança, mas, em última análise, é tarefa do programador garantir que seu aplicativo seja seguro.

Estruturas
Bem, o PHP parece ter muito mais estruturas mainstream (CakePHP, Codeigniter, Symfony, Zend Framework) e muitas outras estruturas menores que o ASP.NET. O ASP.NET possui 2 estruturas principais da Microsoft, WebForms (uma porcaria total) e ASP.NET MVC (a razão pela qual eu comecei a entrar no desenvolvimento do ASP.NET). Embora o PHP tenha mais estruturas, acho que a estrutura do ASP.NET MVC 3 é melhor do que qualquer uma das estruturas do PHP.

Tempo Médio de Desenvolvimento
Eu acho que, para projetos menores, o tempo de desenvolvimento é muito melhor em PHP, porém, à medida que seu projeto cresce em tamanho, o C # escala melhor nesse sentido.

Custo
Parte que deve ser mencionada é o custo. O PHP passa a ganhar nesta frente. Embora você possa executar o ASP.NET no Mono no Linux, ele vem com seus próprios problemas.

Se você estiver executando um projeto de pequeno a médio porte e / ou o custo for um fator, o PHP vence. Se você estiver fazendo um projeto de grande escala, eu escolheria o ASP.NET com C # e o ASP.NET MVC.


3
Porém, os formulários da Web têm benefícios. Por exemplo, os milhares de controles prontos para usar para a criação rápida de aplicativos da Web têm sido uma vantagem para vender meu cliente em um site.
Edward

1
Concordo com @ryanzec WebForms não é uma porcaria e é tão bom quanto o ASP.NET MVC de uma perspectiva diferente. Eu usei a estrutura do ASP.NET MVC desde a Visualização 2 da primeira versão em um ambiente comercial. Também usei WebForms nos últimos 7 anos. Além disso, você não pode mais discutir os custos do ASP.NET, a Microsoft fornece ferramentas gratuitas, agora isso é melhor do que o PHP está oferecendo. A Microsoft também está fornecendo uma versão gratuita do SQL Compact e do SQL Server. Atualmente, a hospedagem de terceiros para o .NET é comparável ao Linux.
Nickz

Embora eu concorde que o custo de hospedagem do ASP.NET tenha melhorado, ainda posso encontrar a hospedagem VPS LAMP mais barata, muito mais fácil do que a hospedagem Windows VPS.
Ryanzec #

Também ao ponto do WebForm, dizer que é uma porcaria pode ter sido duro, não é apenas minha xícara de chá. É verdade que você pode fazer as coisas com mais rapidez, no entanto, uma vez que você tenta fazer algo fora do que é fornecido a partir dos componentes ou uma vez que você modifica fortemente um componente existente, é exponencialmente mais difícil. Além disso, a maneira como o sistema funciona com os postbacks e outras coisas também parece desajeitado para o desenvolvimento da web. Eu prefiro o ASP.NET MVC, pois me dá 100% de controle do que é criado e adequado para o desenvolvimento da Web muito melhor na minha opinião.
ryanzec

8

PHP vs ASP.NET é como comparar maçãs e laranjas, ali direcionadas para diferentes soluções.

O PHP é uma estrutura mais adequada para soluções de inicialização em pequena escala. PHP será executado ou Linux, Windows sem muitos requisitos. O Microsoft ASP.NET é uma estrutura de força industrial, com tudo o que você poderia imaginar e muito mais. O ASP.NET é um ambiente rico em recursos pronto para uso. Muitos argumentam que o ASP.NET é caro, como foi o caso há alguns anos atrás, mas não mais. Primeiro, as ferramentas são gratuitas (edições expressas), as opções de banco de dados são gratuitas (SQL Compact ou SQL Server 2005 ou acima do Express). Agora, o Purchase Hosting é muito barato, então a questão não é qual é melhor, mas o que combina com sua solução. Pessoalmente, prefiro o ASP.NET, mas é porque trabalho em um ambiente corporativo em que a flexibilidade e a escalabilidade são muito importantes, portanto, as soluções determinam a estrutura.

Uma coisa muito importante é em qual idioma você é melhor? Este deve ser o fator final na decisão.

Se seu objetivo é convencer um cliente, o asp.net é uma opção melhor. O nome da grande empresa que apóia um idioma faz com que o cliente se sinta confortável. Nesse caso, as melhores opções são (Microsoft) ASP.NET e (Oracle) Java JSP.

EDIT: Rico em recursos - o ASP.NET fornece duas alternativas para criar WebForms de site e a abordagem MVC. Desde a sua parte da estrutura .NET, você precisa de recursos muito poderosos, como WF (fluxo de trabalho), DLR (Dynamic Language Runtime), Parallel Linq, Linq, roteamento, várias formas de gerenciamento de estado de dados: itens HTTPContext, ViewState, Runtime Cache, página cache de saída, três tipos diferentes de implementação de sessão InProc, State e SQL Server. O ASP.NET implementa várias formas de segurança, por exemplo, provedor de associação e provedor de função. Eu não quero pegar PHP, mas o ASP.NET está em uma liga diferente.


5
Eu sempre ouvi isso como uma desculpa, aquela "Microsoft = Caro" e foi por isso que aprendi PHP primeiro. Mas tenho que concordar que realmente não é mais o caso.
Edward

Sim, o campo de jogo é bastante uniforme agora, é difícil saber qual idioma usar atualmente.
Nickz 05/04

O que significa exatamente "quadro de força industrial" média ? "Tudo o que você poderia imaginar e muito mais"? "Ambiente rico em recursos pronto para uso"? Como o ASP.NET é essas coisas, da maneira que o PHP não é? Até você explicar isso, essa é apenas a linguagem de publicidade da Microsoft.
Nicole

objetivos de design - php originalmente significava home pages pessoais e foi projetado para facilitar a criação de scripts simples no servidor. O asp.net foi criado para competir com o java ee como uma solução de nível corporativo. O php assimilou muitos recursos ao longo dos anos, mas esse "recurso de aderência" apodrece nas inconsistências de linguagem e nas peculiaridades da plataforma. i usar php muitas vezes, mas é e foi projetado para ser uma linguagem web, não uma plataforma de programação de propósito geral
bunglestink

6

Tendo trabalhado extensivamente com os dois, você já sabe que as respostas serão diferentes dependendo do problema e do cliente. Em um sentido muito genérico:

  • O PHP é ótimo para projetos que precisam trabalhar com um orçamento. Por exemplo, você não será atingido por grandes taxas de licenciamento de banco de dados.
  • O ASP.NET é ótimo para projetos que precisam do tipo de cultura de suporte e desenvolvedor fornecida pela Microsoft.

Se você estiver compilando uma lista de fatos para seus clientes, baseie-a no que sabe. Sua pesquisa, por mais tendenciosa que seja suas descobertas, é boa para obter seus pontos de bala.


8
Isso me irrita quando o .Net é automaticamente associado a "grandes taxas de licenciamento de banco de dados". É claro que você deve saber que o .Net pode interagir com uma variedade de RDBMSs, gratuitos e não, e, claro, o PHP, gratuito e não (e não é como se a Microsoft fosse o único RDBMS popular com grandes taxas de licenciamento).
você

3
Sem mencionar que as versões Express e Web do SQL Server têm taxas de licenciamento muito mais agradáveis ​​(gratuitas no caso do Express).
você

Desculpe, não foi para irk. O MS parece vender melhor como uma pilha cheia e eu estava assumindo um mecanismo de banco de dados maior que o Express.
Fred Wilson

1
Não levado para o lado pessoal, apenas pareço ver a associação feita com bastante frequência.
Quentin-starin

1
@loyalpenguin: Na minha experiência, é raro encontrar um mecanismo de armazenamento que não seja suportado no .Net. Não posso comentar se isso é verdade ou não com o PHP.
Quentin-starin

1

Os controles .net são muito mais agradáveis ​​do que o que você pode encontrar com uma plataforma PhP. Olhe Infragistics, por exemplo, qual é o equivalente a um LAMP?

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.