This project is read-only.
Versão em português / Portuguese version

1. Descrição

No ASP.NET, os arquivos denominados code-behind são os arquivos que possuem a lógica de programação de uma página ou de um controle de usuário (userControl). A lógica e a apresentação são armazenados em arquivos separados. Por exemplo, uma página programada em C# possui um arquivo .aspx contendo código HTML (apresentação da página), e um arquivo .cs contendo código C# (lógica de programação).

No aspecto de organização do código de uma aplicação Web, este estilo de programação foi um excelente avanço. Nas tecnologias tradicionais como o antigo ASP, o PHP e o JSP encontramos o famoso código espaguete (spaghetti code), onde a lógica de programação é escrita no mesmo arquivo que contém a apresentação da página, resultando em um emaranhado de códigos escritos em duas linguagens diferentes.

A técnica de code-behind do ASP.NET organizou o código, melhorando muito a qualidade de implementação dos sistemas Web. Mas ainda convivemos com um emaranhado de código, composto de HTML e JavaScript (respectivamente, apresentação e lógica de programação no lado cliente), responsável por complicar a manutenção das páginas Web. Com o uso cada vez maior de JavaScript, na implementação de interfaces de usuário mais ricas, o desenvolvimento e a manutenção destas páginas tornaram-se mais complexas e mais difíceis. Este aumento de complexidade e dificuldade exige uma capacidade de organização muito grande por parte do desenvolvedor. Ele precisa pensar, por exemplo, em como escrever o código de forma a facilitar a manutenção, permitir a reutilização, evitar códigos JavaScript redundantes ou que sobrescrevam código de outros componente. Entre outras questões.

2. Proposta

O projeto JavaScriptCodeBehind (http://www.codeplex.com/JavaScriptCodeBehind) apresenta uma técnica de organização do código HTML/JavaScript. A idéia principal do projeto é incluir um arquivo .js que conterá a lógica de programação da página no lado cliente. Assim, como o arquivo .cs é o code-behind do lado do servidor, o arquivo .js será o code-behind do lado do cliente. Uma página Web escrita em C# será composta por, além do arquivo .aspx e do arquivo .cs, um arquivo .js representando o code-behind cliente.

3. A biblioteca de classes JavaScriptCodeBehind

O projeto é uma biblioteca de classes denominada JavaScriptCodeBehind. A biblioteca contém, basicamente, duas classes principais: JavaScriptCodeBehind.Page e JavaScriptCodeBehind.UserControl, respectivamente, descendentes de System.Web.UI.Page e System.Web.UI.UserControl. Estas duas classes contêm todo o bastidor necessário para que a implementação do code-behind cliente seja possível e no máximo transparente para o desenvolvedor.

4. Mais informações

Para mais informações e exemplo de implementação, leia o artigo: JavaScriptCodeBehind.docx
Para sugestões, críticas ou colaborações entrem em contato comigo através do e-mail ronan@toai.com.br.

Ronan Lana Lins Peixoto



English version / Versão em inglês

Initially, I apologize for the quality of translation. Desire soon provide a translated version with better quality. But I hope you can understand the concept, criticize it and suggest improvements to improve this technique.

1. Introduction

The aim of this paper is to present a technique for separating the JavaScript code of a HTML page. The result is a .js file that contains all the logic of programming of the page. It's the same idea of code-behind files in ASP.NET, defining the concepts: the server code-behind file (.cs, for example) and client code-behind file (.js).

In ASP.NET, the code-behind files are files that have the logic of programming of the page or of the user control (UserControl). The logic and presentation are stored in separate files. For example, a page programmed in C# has a .aspx file containing HTML code (the page), and a .cs file containing C# code (programming logic).

In the aspect of organizing code of a Web application, this style of programming was an excellent step forward. In traditional technologies as the old ASP code, PHP code and the JSP code, we find the famous spaghetti code, where the logic of programming is written in the same file containing the presentation of the page, resulting in a tangle of code written in two different languages.

The technique of the ASP.NET code-behind organized the code, improving the quality of implementation of the Web systems. But a tangle of code, composed of HTML and JavaScript (respectively, presentation and logic programming on the client side), is the responsible for a complicated maintenance of Web pages. With the increased use of JavaScript in the implementation of richer user interfaces, development and maintenance of these pages have become more complex and more difficult. This increase in complexity and difficulty requires an large ability of the organization by the developer. He needs to think, for example, on how to write code for easy maintenance, how to write code for reused, avoid redundant or JavaScript code that overwrite code from other components. Among other issues.

2. Proposal

The project JavaScriptCodeBehind (http://www.codeplex.com/JavaScriptCodeBehind) presents a technique for organization of HTML / JavaScript code. The main idea of the project is to include a js file that contains the logic of programming on the client side of the page. Thus, as the cs file is the code-behind on the server side, the js file is the code-behind on the client side. A Web page written in C# is composed for js file representing the code-behind client, in addition to the aspx file and cs file.

3. The library of classes JavaScriptCodeBehind

The project is a library of classes called JavaScriptCodeBehind. The library contains, basically two main classes: JavaScriptCodeBehind.Page and JavaScriptCodeBehind.UserControl respectively, descendants of System.Web.UI.Page and System.Web.UI.UserControl. These two classes contain the entire rack required for the implementation of the code-behind client is possible and the most transparent to the developer.

4. More information

For more information and example of implementation, read the article: JavaScriptCodeBehind-en.docx
For suggestions, comments or collaborations come into contact me via e-mail ronan@toai.com.br.

Ronan Lana Lins Peixoto


Last edited Feb 19, 2009 at 10:52 PM by RonanLins, version 16