Postagens

Destaques

Arquitetura Multicamada

A arquitetura multicamada é uma arquitetura cliente-servidor na qual a apresentação, o processamento de aplicativos e as funções de gerenciamento de dados estão fisicamente separados. A arquitetura de aplicativos multicamada fornece um modelo pelo qual os desenvolvedores podem criar aplicativos flexíveis e reutilizáveis. Ao segregar um aplicativo em níveis, os desenvolvedores adquirem a opção de modificar ou adicionar uma camada específica, em vez de retrabalhar o aplicativo inteiro. Vamos entender um pouco sobre as principais camadas utilizadas: Transferência de Dados de Objetos do inglês DTO ou Data Transfer Object São muitas vezes utilizados em conjunto com os objetos de dados de acesso para recuperar dados de um banco de dados.A diferença entre os objetos de transferência de dados e objetos de negócios ou objetos de acesso a dados é que um DTO não tem qualquer comportamento, exceto para armazenamento e recuperação de seus próprios dados. Camada de Regra d

Mapeamento objeto-relacional (Object Relational Mapper)

Imagem
                              Por definição, ORM é uma técnica de desenvolvimento utilizada para reduzir a diferença que existe entre os modelos de dados relacionais e os orientados a objetos. As tabelas do banco de dados são representadas através de classes e os registros de cada tabela são representados como instâncias das classes correspondentes. Partindo desse princípio, iniciei um projeto para criar meu próprio ORM visando agilizar o processo de desenvolvimento de futuros sistemas e aprender um pouco mais sobre o assunto. Para isso, utilizei a linguagem de programação C# com ASP.NET. Basicamente, o ORM cria automaticamente toda a camada de acesso de dados seguindo o paradigma de Arquitetura Multicamada . Algumas características contempladas no projeto são: - Tratamento de referências circulares - Autorreferência - Múltiplas referências para uma mesma tabela - Múltiplas referências para uma mesma tabela com autorreferência - Documentação do código automa

Accept new challenges

Imagem
I will share with you one of several rewarding experiences I have had during my professional career. Login screen While working as a Computer Operator I was given a rather unusual challenge, to create a system that will survey the use of the X system automatically (I will call X, as I do not know if I can say the name), this system at the time was distributed in 72 servers. After talking with my boss to get permission to participate in this project, I started the survey of requirements to start the work (At the end of the text I will leave the links with the documentation). In short, I would have to develop a web system in ASP and a Windows Service in C # that should centralize the information of use of the system X in a single screen, the system should have access control by password and as a business rule the maximum number of systems on each server should be 21. This whole project lasted 2 weeks and was run in parallel to my service. Regarding the environment I had com

Aceite novos desafios

Imagem
Vou compartilhar com vocês uma de várias experiências gratificantes que tive durante a minha carreira profissional. Tela de login Enquanto trabalhava como Operador de Computador me foi dado um desafio um tanto quanto inusitado, criar um sistema que faça o levantamento do uso do sistema X automaticamente (vou chamar X, pois não sei se posso dizer o nome) este sistema na época estava distribuído em 72 servidores. Após conversar com meu chefe o obter autorização para participar desse projeto iniciei o levantamento de requisitos para dar inicio aos trabalhos(No final do texto eu vou deixar os links com a documentação). Resumindo, eu teria que desenvolver um sistema web em ASP e um Windows Service em C# que deveria centralizar as informações de uso do sistema X em uma única tela, o sistema deveria ter controle de acesso por senha e como regra de negócio o número máximo de sistemas X em cada servidor deveria ser 21. Esse projeto ao todo durou 2 semanas e foi executado em

Prevenir atualização total da página

Sabe quando clicamos em um botão que executa alguma ação em nossa página e ela recarrega totalmente? Geralmente isso ocorre quando executamos alguma transação que exija PostBack em nosso código.  PostBack basicamente é o envio de uma página para processamento ao servidor e o retorno desta página para o navegador. Neste processo, a página é totalmente recarregada no navegador causando um efeito visual não muito agradável ao usuário. Uma maneira simples para contornar esta situação é utilizar o componente UpdatePanel ,que tem como objetivo atualizar partes especificas da nossa página, como por exemplo um GridView.  Dentro do UpdatePanel as requisições de PostBack serão executadas de maneira parcial, ou seja, serão atualizados os conteúdos internos do componente e por consequência a página não é recarregada por inteiro.

Evento RowDeleting no GridView executando duas vezes

Imagem
O evento GridView RowDeleting está executando duas vezes quando uma linha é excluída e está gerando uma exceção, e agora? Isto acontece porque o evento de exclusão de linha é acionado duas vezes quando o botão de exclusão é de tipo imagem, podendo gerar a seguinte exceção: System.IndexOutOfRangeException: 'Não há linha na posição 0.' Provavelmente, o seu GridView está dentro de um componente UpdatePanel conforme a imagem abaixo: Podemos contornar essa situação alterando o CommandField de ButtonType="Image" para ButtonType="Button" ou, se preferir, criar um ImageButton:

Alertas com JavaScript no C#

Imagem
Nesta postagem, vamos aprender a maneira recomendada de enviar mensagens de erro ao usuário. Na página de código, insira os seguintes comandos no procedimento: Na página de design, insira o controle ScriptManager: O método RegisterClientScriptBlock registra um bloco de script (JavaScript) no topo da página, isso nos permite criar uma função JavaScript em tempo de execução, no nosso caso um  alert  de erro. Os parâmetros utilizados são: - control, o controle que está registrando o bloco de script do cliente. - type, o tipo de cliente que será registrado neste exemplo é a mesma pagina. - key, um identificador exclusivo para o bloco de script. - script, o conteúdo do JavaScript em si. - addScriptTags, informa se o conteúdo do script deve ser inserido entre as tags <script></script> ou não. Uma breve explicação do script  alert : neste exemplo estamos trocando na mensagem de exceção gerada ( ex ) as aspas simples ( ' ), duplas ( " ) e novas