Pular para o conteúdo principal

Postagens

Mostrando postagens com o rótulo .NET

C# - Tipos genéricos

A linguagem C# introduziu a funcionalidade de tipos genéricos com a versão 2.0, permitindo que desenvolvedores escrevam código mais flexível e reutilizável. Os tipos genéricos permitem que você escreva uma classe ou método que funciona com qualquer tipo de dados, em vez de estar preso a um tipo específico. Isso permite que o código seja escrito de forma mais genérica, o que aumenta a sua reutilização. Para entender melhor, vamos dar um exemplo de uma classe simples para gerenciar uma lista de objetos. Sem o uso de tipos genéricos, seria necessário escrever uma classe para cada tipo de objeto que desejássemos gerenciar. Por exemplo, uma classe "ListaDeInteiros", outra "ListaDeStrings", e assim por diante. Com o uso de tipos genéricos, é possível escrever uma única classe "Lista<T>" onde T é o tipo genérico. Isso significa que a classe pode ser usada para gerenciar uma lista de qualquer tipo de objeto, sem precisar escreve

Hangfire - processamento em background fácil no .NET

A necessidade de realizar uma tarefa em segundo plano é muito comum, seja para gravar um arquivo, enviar um e-mail, executar um processo de banco pesado, enfim, qualquer coisa que não deve "bloquear" o usuário no thread principal, e é aí que o Hangfire entra, ele recebe tarefas e as trata em filas realizando a execução em background e mais: As tarefas entram em uma fila e a execução ocorre na sequência; Uma execução só é considerada "falha" quando as tentativas já se esgotaram (por padrão são 10); Dá para criar uma tarefa simplesmente a colocando na fila; Dá para criar um fluxo de execução de tarefas constante dentro de um intervalo; Dá para agendar a execução de tarefas; Dá para condicionar a execução de tarefas após o sucesso de outra tarefa; Todo o fluxo é tratado em tabelas do próprio Hangfire, podendo ser gerido em vários bancos de dados (relacionais ou não); Os registros referentes as tarefas possuem um tempo limitado de vida, depois de concluidos são apagados

Aplicação em três camadas (ASP .NET C#)

Quando iniciamos uma nova aplicação é sempre uma boa ideia (e boa pratica) adotar uma forma de organizarmos os recursos que serão desenvolvidos, seja para garantirmos uma melhor manutenção do que esta sendo construído, uma segurança maior ou mesmo para garantir que determinadas responsabilidades da aplicação (apresentação da informação, regras ou acesso a dados) não influenciem uma nas outras quando for necessária sua alteração (correção ou substituição). Vamos pensar na seguinte situação, em determinado momento no passado nós construímos uma aplicação em ASP para uma empresa, que acessava um repositório em access (jóia não?), ai depois de algum tempo nosso cliente começou a perceber a evolução da internet e solicita a você ajustes nessa aplicação, pois agora ele adquiriu um outro banco de dados e deseja uma nova aplicação web.  Bom, se sua aplicação não foi bem estruturada, ou seja, as coisas acontecem de forma "misturada" com regras de negocio alterando diretamente

Click com botão direito e menu de contexto no Silverlight

Quando o Silverlight 4 foi lançado um dos recursos mais aguardados era o clique do botão direito, até então não era possível incluir nada nessa funcionalidade. Hoje contamos com o "Context Menu control", sendo ele quem iremos mostrar ao clicar com o botão direito. Já apresentamos aqui um exemplo de como realizar isso, hoje mostraremos com mais detalhes. Novo projeto Vamos iniciar o Visual Studio 2010 e criar uma nova aplicação Silverlight (Silverlight Application Project), com o nome ContextMenuSample: Em seguida vamos adicionar as referencias para o "Toolkit", que ira nos permitir trabalhar com "ContextMenu" e "MenuItem": Agora vamos incluir um "TextBox". O click direito apresentará o "context menu", nele teremos dois menus, sendo eles "Grow Font" e "Shrink Font", ao selecionar uma das opções o tamanho da fonte será alterado. Dando continuidade, adicionaremos dois eventos importantes, "Mo

Realizando upload de grandes arquivos para o IIS / ASP.NET

Tamanho máximo de upload no IIS and ASP.NET Ao hospedar uma aplicação web em servidores IIS/ASP.NET devemos especificar o tamanho máximo de upload e o tempo de execução no web.config. Por padrão o valor máximo para upload é de 4096 KB (4 MB), para aumentar esse limite devemos fazer o seguinte: IIS 7.x, para os modos integrado e clássico: < system.webServer > < security > < requestFiltering > < requestLimits maxAllowedContentLength ="2147483648" /> </ requestFiltering > </ security > </ system.webServer >   maxAllowedContentLength : Especifica o tamanho máximo de uma requisição. IIS 6.0: < system.web > < httpRuntime maxRequestLength ="2097151" /> </ system.web > maxRequestLength : Especifica o tamanho máximo de uma requisição. IMPORTANTE! O valor máximo de upload tanto no ASP.NET 2.0 quanto no ASP.NET 4.0 é de 2097151Kb (2Gb). Se for necessário a transferência de arquivos maiores que 2Gb dev

Netduino + Arduino Ethernet Shield

Depois de um bom tempo sem postar, nada como uma ameaça de processo por uma postagem de 2010 para dar aquela vontade de voltar a escrever (não, não é sobre politica). No final do ano passado travei uma pequena e peculiar batalha com o Arduino Ethernet Shield , ele deveria ter sido a parte mais simples do meu projeto já que a conexão é simples, basta apenas encaixar e o driver já esta todo escrito em C#, porém não foi bem assim. A principio fui por eliminação, revisei as configurações de rede (roteador, notebook e projeto), depois revisei as configurações de acesso e permissão, desativei firewall, antivírus e nada. Em seguida testei portas, troquei cabo, troquei roteador, testei em ambiente completamente diferente (roteador, notebook). O mais estranho era ver que a porta do roteador ficava acesa, assim como o da placa, mas nada de comunicação. A essa altura já comecei a temer o pior, importar outras placas literalmente não estava em meus planos, mais uma vez recorri ao fórum mas min

Netduino

Recentemente o adquiri para um projeto da especialização, mas o que ele é e porque foi minha escolha? Bom primeiramente como era necessário o uso de .net para esse projeto comecei a procurar algo diferente e então encontrei o netduino , que é uma plataforma eletrônica open source que usa o .net micro framework. Maravilha não? Com isso poderei usar c# para controlar um hardware! Infelizmente não o encontrei no Brasil, tive que importar, acabei escolhendo a Proto Advantage para fazer a compra e como meu primeiro pedido acabou no buraco negro dos correios o pessoal de lá acabou me mandando outro sem custo algum, tive apenas que arcar com metade do frete (fica ai a dica para os interessados, o atendimento dessa empresa é ótimo). Já existe uma comunidade relativamente ativa, no fórum do site oficial existem vários projetos já em andamento com drivers para lcds, rfids, rede, sensores entre outros, tudo bem explicado, com os esquemas eletrônicos e exemplo dos códigos (sem contar a boa v

Upload de arquivos no Silverlight

  O recurso de upload de arquivos é muito útil e requisitado em certos casos quando se fala de sistemas on line. Logo desenvolver algo nesse sentido em nossas aplicações Silverlight pode se tornar necessário, como foi no meu caso, ou de repente apresentar esse recurso para incrementar um projeto também pode ser uma boa idéia. Irei disponibilizar aqui um ótimo projeto que encontrei no blog do John Mendez , que serviu de base para a minha implementação, colocarei no post apenas a classe do serviço de upload, o projeto completo pode ser encontrado aqui . 1: <%@ WebHandler Language= "C#" Class= "FileUpload" %> 2:   3: using System; 4: using System.Web; 5: using System.IO; 6: using System.Web.Hosting; 7: using System.Diagnostics; 8:   9: public class FileUpload : IHttpHandler { 10:   11: private HttpContext _httpContext; 12: private string _tempE