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
- Recursos
- Segurança
- Extensibilidade
- Frameworks
- 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.
fonte
Respostas:
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:
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.
fonte
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.
fonte
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.
fonte
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:
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.
fonte
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?
fonte