Hoje farei o primeiro POST técnico de nosso blog. Falarei sobre os PageMethods, um recurso bastante útil do AJAX no ASP.NET.

É muito comum a necessidade de realizar algum tipo de operação no lado servidor da aplicação sem renderizar novamente grandes blocos de código HTML. As vezes a idéia é atualizar apenas um pequeno valor que é calculado no servidor e exibí-lo em uma label, ou então atualizar um ícone de acordo com o status de uma operação.

Os PageMethods são chamadas de métodos no servidor utilizando Javascript. Para utilizá-los algumas pequenas configurações e implementações são necessárias. Para ilustrar os procedimentos vou utilizar um exemplo bem simples. Nosso exemplo consiste na necessidade de realizar a soma de dois números. Apesar de ser uma operação bastante simples e que poderia ser realizada apenas através de Javascript, vamos imaginar que essa soma só pudesse ser realizada no lado servidor da aplicação.

1 – Formulário

Nosso formulário contém apenas duas caixas de texto, um botão e uma span (controle onde será exibido o resultado do cálculo).

<form id="form1" runat="server">
    <asp:ScriptManager runat="server" EnablePageMethods="true">
    </asp:ScriptManager>
    <div>
        <p>
            Primeiro número:<br />
            <input type="text" id="numero1" />
        </p>
        <p>
            Segundo número:<br />
            <input type="text" id="numero2" />
        </p>
        <p>
            <input type="button" value="Somar"
                      onclick="javascript: somar();" />
        </p>
        <p>
            Resultado:<br />
            <span id="resultado"></span>
        </p>
    </div>
</form>

É importante atentar para a necessidade de existir um ScriptManager na página e que o mesmo tenha habilitado o uso de PageMethods.

<asp:ScriptManager runat="server" EnablePageMethods="true">
</asp:ScriptManager>

2 – Operação no codebehind

Agora criaremos no codebehind o método responsável por realizar a soma dos números. Para que tudo funcione corretamente não se pode esquecer o atributo WebMethod que deve ser colocado logo acima do método. Outro detalhe importante é que o método deve ser estático para que possa ser acessado através de Javascript.

1
2
3
4
5
6
7
8
9
10
11
/// <summary>
/// Realiza a soma de dois números.
/// </summary>
/// <param name="numero1">Primeiro número.</param>
/// <param name="numero2">Segundo número.</param>
/// <returns>Resultado da soma.</returns>
[WebMethod]
public static string Somar(int numero1, int numero2)
{
    return (numero1 + numero2).ToString();
}

3 – Métodos no cliente

Para controlar os eventos e atualizar o resultado da operação na página é necessário que sejam implementados alguns métodos em javascript. Em nosso exemplo teremos 3 métodos:

  • somar: método que é chamado quando o botão Somar é clicado. Esse método é responsável por recuperar os valores do formulário e realizar a chamada da operação no servidor.
  • OnSucceed: é chamado através de callback automaticamente quando a operação no servidor for realizada com sucesso.
  • OnFailed: é chamado através de callback automaticamente quando ocorrer falha na operação executada no servidor.

Abaixo segue o código das três funções em javascript responsáveis pelo controle da tela:

// Realiza a soma dos dois números informados na tela.
function somar() {
    txtNumero1 = document.getElementById('numero1');
    txtNumero2 = document.getElementById('numero2');        
    PageMethods.Somar(txtNumero1.value, txtNumero2.value,
                                OnSucceeded, OnFailed);
}
 
// Executado através de callback em caso de sucesso.
function OnSucceeded(result, userContext, methodName) {
    resultado = document.getElementById('resultado');
    resultado.innerHTML = result;
}
 
// Executado através de callback em caso de falha.
function OnFailed(error, userContext, methodName) {
    resultado = document.getElementById('resultado');
    resultado.innerHTML = 'Erro ao executar soma';
}

O resultado desse exemplo é simples. Sempre que o botão Somar for pressionado, o método somar recupera o valor dos dois números informados no formulário, realiza a requisição ao método Somar no servidor e através do callback atualiza o conteúdo da SPAN resultado.

Espero que esse post possa auxiliar e agregar conhecimentos aqueles que acompanham nosso blog.

Agradeço a todos pelo apoio e visitas.

Um grande abraço. Até a próxima.

,
Adicionar aos Favoritos BlogBlogs Adicionar esta notícia no Linkk

Antes de começar a Accendis, os amigos e agora sócios Mário e Aubry trabalhavam juntos numa consultoria, atuando num projeto de alta complexidade técnica alocados no cliente em São Paulo. Abril a Agosto de 2007. Após vários dias de muito esforço, sofrimento, batalhas, acabaram por se conhecer melhor e com isso tiveram a chance de trocar idéias que levaram à idealização de um fantástico projeto em web que até o momento não tem par no mundo.

Entretanto, ao realizar as primeiras simulações e testes de modelos matemáticos para o algoritmo principal do serviço, constatou-se que seria impossível arriscar neste projeto sem ter primeiro um bom capital de giro e um bom tempo para investir.

Com o término desta estadia no cliente em São Paulo, eles acabaram se separando, mudando de empresa e diminuindo um pouco a freqüência das conversas. Mas uma coisa era certa: era necessário encontrar outras fontes de renda para conseguir formar o capital necessário para a grande idéia. Mesmo com pouca freqüência, as conversas aconteciam e de fato, idéias foram surgindo para criar produtos. Eles colocaram várias idéias no papel, analisaram a viabilidade comercial de cada possível produto e de fato, nenhuma grande idéia acabou dando certo a ponto de compensar um tempo e esforço consideravel fora do horário de trabalho dos dois.

Em 2008 terminaram suas certificações da Microsoft atuais. Suas recentes experiências profissionais trouxeram um amplo skill pois ambos tiveram a grande sorte de atuar como líderes em suas respectivas empresas, encarando projetos de alta criticidade em banco de dados e plataforma .NET. E mais precisamente em Agosto de 2008, eles tiveram que se juntar às pressas para montar um curso completo de desenvolvimento com ferramentas Microsoft, que apareceu inesperadamente por intermédio de um amigo que ficou impressionado com a facilidade de explicar do Aubry.

Eles viraram algumas noites e os meses de Agosto, Setembro e Outubro de 2008 foram realmente duros em termos de quantidade de trabalho. Tiveram sucesso ao ministrar o treinamento, formalizando um curso totalmente diferente do que se vê nas escolas e nos centros de treinamento oficiais da Microsoft: eles conseguiram montar um treinamento muito, mas muito prático, mas sem deixar de lado a parte importante da teoria. De fato, não há na região de Campinas nenhum curso intensivo e presencial tão prático e focado ao mercado como o curso da Accendis.

Este treinamento incompany formalizou uma idéia que vinha se formando há tempos, que é a criação de uma empresa formal para gerar renda e acumular recursos para assim, implementar a idéia inicial do serviço web que eles tanto almejaram e ainda almejam.

Surgiu a Accendis. Este nome que surgiu “do nada” agradou de imediato os dois e seu radical, de origem latina, denota iluminação e inspiração. Alguns meses se passaram e mais batalhas apareceram. Surgiram novos projetos tanto em banco de dados como em web. Isso fez com que o startup realmente fosse muito sofrido. Conseguiu-se, a muito custo, criar o site e a identidade visual da Accendis, entregar alguns projetos e simultaneamente trabalhar em outros projetos. O startup da Accendis foi completo: foram criados métodos para controle de tarefas, projetos e controle de versão utilizando o Subversion. Também foi investido dinheiro em infraestrutura e ambiente de trabalho. Conseguiu-se envolver mais pessoas nos projetos e hoje em dia, a Accendis conta com os 2 sócios e mais uma equipe de 5 colaboradores.

Hoje a Accendis consegue gerenciar remotamente seu time utilizando uma ferramenta de controle de projetos paga, utilizando metodologia ágil e contando com o extremo comprometimento dos colaboradores envolvidos. Foram desenvolvidas novas parcerias e a área de treinamentos entra em sua fase final de estruturação, com a criação de planos de marketing, evolução de material, inclusão da área de redes, preparação do espaço físico e muito mais.

Ao decidir criar a Accendis, no fim das contas, os sócios concordaram em tentar melhorar o mercado de TI tanto para os profissionais da área quanto para os usuários finais, os grandes beneficiados de todo o esforço gasto. A Accendis vem para mudar, para trazer honestidade, clareza ao cliente e finalmente, contribuir de alguma forma para a melhoria do mundo em que vivemos, criando projetos realmente relevantes e respeitando os seus colaboradores e parceiros.

A Accendis conta com seu carinho e sua amizade!

Atenciosamente,
Equipe Accendis – www.accendis.com.br

,
Adicionar aos Favoritos BlogBlogs Adicionar esta notícia no Linkk

Neste blog você encontrará além de tópicos técnicos, muitas coisas legais como dicas, análises e um pouco das nossas experiências do dia-a-dia. Espero que vocês gostem e aproveitem também para acompanhar nosso Twitter!

Grande Abraço!

Equipe Accendis

,
Adicionar aos Favoritos BlogBlogs Adicionar esta notícia no Linkk