Tópicos abordados: Comparando as Arquiteturas, Diferenças de Linguagens, Acesso a Dados e Quando Migrar de PHP para ASP.NET
Serão abordados diversos assuntos sobre os tópicos analisados.
- Comparando as Arquiteturas
- Desafios: medos do desenvolvedor php com custos, compilação de código, questões sobre multi-plataforma, conexões com bancos de dados e código aberto;
- O primeiro medo em relação a Microsoft é o custo de utilizar produtos originais licenciados;
- Também é abordado o tema da compilação através do código gerenciado diferente da antiga compilação Win32;
- Será mostrado em quais plataformas as aplicações serão executadas;
- Existe a questão do código aberto;
- Comparação entre as arquiteturas:
- O PHP é gerado pelo servidor Apache com mod_php, enquanto o ASP.NET é gerado pela combinação do IIS com o ASP.NET;
- Existe a opção de rodar ASP.NET sob Apache com a utilização de componente;
- A camada de negócios do ASP.NET é bem definida e conta com recursos de orientação ao objeto enquanto o PHP normalmente não apresenta camada de negócios bem definida, ficando a maior parte da lógica da negócios dentro da camada de apresentação do site;
- O ASP.NET possui suporte para providers diversos com recursos especiais para o SQL Server (conexão com qualquer banco de dados que suporte OLEDB ou ODBC) enquanto o PHP utiliza o banco de dados MySQL e outros;
- A plataforma PHP roda sempre no mod_php dentro do servidor web Apache enquanto no asp.net temos toda a aplicação rodando dentro do servidor IIS, e temos uma separação da interface do código de programação, chamado code-behind, permitindo que seja possível que designers e programadores possam trabalhar paralelamente;
- Camada de Negócio
- O PHP embute na própria camada de interface ou em bibliotecas, como funções;
- O ASP.NET possui camada de negócios isolada utilizando as linguagens C# e VB, e suportando mais de 50 linguagens, incluindo PHP;
- A compilação do PHP com Zend Opcodes é pouco utilizada enquanto o ASP.NET executa uma compilação durante o primeiro acesso a página utilizando MSIL;
- O ASP.NET possui ferramentas de debug nativas. O visual web developer é gratuito e possui todos os recursos do visual studio;
- Quanto a sintaxe o PHP utilizáveis fracamente tipadas enquanto o ASP.NET trabalha com varáveis fortemente tipadas. O PHP suporte apenas a linguagem de programação PHP enquanto o ASP.NET dá suporte a diversas;
- Quanto ao Gerenciamento de Estado o ASP.NET oferece outras formas de armazenamento de informações de estado além do Session como Application, Cache e ViewState, enquanto o PHP dispõe apenas de Session. O ViewState por exemplo habilita o armazenamento dos valores dos campos e respectiva recuperação automatica após qualquer postback;
- A validação deve ocorrer tanto no cliente quanto no servidor. A validação no lado do servidor executada pelo PHP é realizada através de códificação no lado do servidor e no lado do cliente também é criada pelo desenvolvedor. No ASP.NET os controles de validação são automáticos. É necessário apenas arrastar o controle e indicar o controle que deverá ser validado tanto no cliente quanto no servidor;
- O acesso a dados do ASP.NET é realizado com o ADO.NET que é o framework de acesso a dados do framework .net. Possui arquitetura de providers com acesso unificado a diversos sistemas gerenciadores de bancos de dados, trabalha de maneira conectada ou desconectada com a utilização dos DataSets que oferece os recursos para trabalhar localmente e fazer a sincronização com o banco de dados da aplicação. O ASP.NET também é fortemente tipado e assim oferece maior segurança e integridade para aplicação. E ainda o controle Connection Pooling que gerencia as conexões de dados existentes;
- A biblioteca ASP.NET AJAX disponibiliza o suporte transparente ao AJAX e acesso rico aos controles AJAX através de javascript disponível na biblioteca asp.net ajax;
- Para utilizar o ASP.NET AJAX basta acessar o endereço http://ajax.asp.net e baixar o ASP.NET 2.0 AJAX Extensions 1.0, fazer o download e instalar. E para utilizar os recursos do ASP.NET AJAX você pode criar um novo web site e selecionar o template ASP.NET AJAX-Enabled Web Site;