Desenvolvimento Web GeneXus X 6º Encontro GUG Porto Alegre/Brasil Nataniel Strack – nataniel.strack@gmail.com
Agenda Eventos Post vs Get 9.0: Todos eventos no servidor X: Eventos no cliente, eventos no servidor Post vs Get 9.0 Chamadas recursivas X Todos eventos em uma tela Get Preparação do ambiente (igual 9.0 porém mais pesado) Um JS por página Post: Trafego vs carga Controlar execuções através de &HTTPResponse.Method Sempre carrega Grid 2
Lembrando HTTP <html> <head> 1 Requisição 3 Resposta HTML 2 Leitura <html> <head> <title>Título</title> </head> <body> Exemplo de página <i>HTML</i>! </body> </html> 3
Gerenciamento memória - Win DBMS Memória ... Processo – Aplicação Área de programas Área de dados 4
Gerenciamento memória - Web HTML Memória Memória ... Processo - WebServer Área de programas Área de dados ... Processo - Navegador Área de programas Área de dados 5
Gerenciamento memória - Web HTML Memória Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat ... Processo - Navegador Área de programas Área de dados 6
Gerenciamento memória - Web DBMS Memória Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat ... Processo - Navegador Área de programas Área de dados 7
Gerenciamento memória - Web DBMS Memória Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS Processo – StateServer ... Processo - Navegador Área de programas Área de dados 8
Integridade Transacional - Win DBMS Memória ... Processo – Aplicação Área de programas Tela 1 Tela 2 Área de dados 9
Integridade Transacional - Web DBMS Memória Memória ... Processo – IIS/Tomcat Área de programas Área de dados ... Processo - Navegador Área de programas Área de dados Tela1.DLL Tela2.DLL 10
Leitura/geração arquivos - Win C:\caminho\arquivo.file C:\caminho\arquivo.file Memória ... Processo – Aplicação Área de programas Área de dados 11
Leitura/geração arquivos - Web Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat C:\caminho\ arquivo.file C:\caminho\ arquivo.file 12
Execução de Eventos - Win Memória ... Processo – Aplicação Área de programas go to ... Área de dados 13
Execução de Eventos - Web 1 Conec./Requis. 6 Resp./Desc. HTML 5 Retorno 2 Chamada Memória ... Processo - WebServer Área de programas Área de dados Processo – IIS/Tomcat SQL DBMS 4 Retorno 3 Chamada 14
Execução de Eventos - Web Get 2 Requisição 1 Conec./Requis. 3 Resposta 4 Resp./Desc. Binário HTML HTML Post HTML HTML 2 Requisição 1 Conec./Requis. 3 Resposta 4 Resp./Desc. Binário HTML’ HTML’ 15
Web 1 Conec./Requis. 5 Resp./Desc. 4 Retorno 2 Chamada HTML HTML CSS Imagens <html> <head> <title>Título</title> <link rel="Stylesheet" href='estilo.css' /> </head> <body> <table> <tr> <td><img src="genexus.jpg"></td> <td>Exemplo de página <span class="destaque">HTML</span>! </td> </tr> </table> </body> </html> .destaque {font-style:italic;} 16
Web 17
Web ACTUAL PERFORMANCE -------------- Requests started at: 22:12:12:3281 Responses completed at: 22:12:12:4062 Total Sequence time: 00:00:00.0781250 RESPONSE CODES HTTP/200: 3 RESPONSE BYTES (by Content-Type) image/jpeg: 1.894 text/css: 37 ~headers: 740 text/html: 275 18
Web 2.0 – Ajax - Get 1 Requisição 4 Resposta 3 Retorno 2 Chamada HTML Imagens CSS Javascrípt Binário <html> <head> <title>Título</title> </head> <body> Exemplo de página <i>HTML</i>! </body> </html> 19
Web 2.0 20
Web 2.0 HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Thu, 14 May 2009 03:43:36 GMT X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Pragma: no-cache Cache-Control: no-cache Content-Type: text/html; charset=utf-8 Content-Length: 1917 <html> <head> <meta name="Generator" content="GeneXus C#"/> <meta name="Version" content="10_0_3-18367"/> <meta name="Description" content="Exemplo"/> <meta http-equiv="Page-Enter" content="BlendTrans(Duration=0.1)"/> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>Exemplo</title> 21
Web 2.0 – Ajax - Post 3 Requisição 6 Resposta 2 Requisição 7 Retorno Json 3 Requisição 6 Resposta Json 2 Requisição 7 Retorno 5 Retorno 4 Chamada Framework Javascritpt 1 Executa Ação 8 Monta Página Binário {"gxProps":{"TEXTBLOCK1":{"Name":"Textblock1","Caption":"Exemplo de página\t<i\>HTML</i\>!"}},"gxHiddens":{"_EventName":"","_EventGridId":"","_EventRowId":"","sCallerURL":"","GX_FocusControl":"","GX_AJAX_KEY":"88EFFF70E5123B83C2E66FC5A3099862","GX_CMP_OBJS":{}},"gxValues":[],"gxMessages":{"MAIN":[]},"gxComponents":{},"gxOverlapCmp":{},"gxFloatingCmp":{},"gxBackCmp":{},"gxGrids":{}} 22
Web 2.0 23
Web 2.0 HTTP/1.1 200 OK Server: Microsoft-IIS/5.1 Date: Thu, 14 May 2009 03:55:36 GMT X-Powered-By: ASP.NET X-AspNet-Version: 2.0.50727 Pragma: no-cache Cache-Control: no-cache Cache-Control: max-age=0 Content-Type: text/html; charset=utf-8 Content-Length: 385 {"gxProps":{"TEXTBLOCK1":{"Name":"Textblock1","Caption":"Exemplo de página\t<i\>HTML</i\>!"}},"gxHiddens":{"_EventName":"","_EventGridId":"","_EventRowId":"","sCallerURL":"","GX_FocusControl":"","GX_AJAX_KEY":"88EFFF70E5123B83C2E66FC5A3099862","GX_CMP_OBJS":{}},"gxValues":[],"gxMessages":{"MAIN":[]},"gxComponents":{},"gxOverlapCmp":{},"gxFloatingCmp":{},"gxBackCmp":{},"gxGrids":{}} 24
Agenda Lembrando HTTP Gerenciamento de memória Integridade Transacional Leitura e geração de arquivos Execução de Eventos Win Web Web 2.0 25
Debate