Conhecendo e usando o LiteDb

O LiteDb é um banco de dados NoSql desenvolvido e mantido pelo Mauricio David. Você pode conhecer mais sobre acessando a página do projeto.
Mas o que o LiteDb tem de diferença que os outros banco de dados NoSql não tem?

  • Não necessita de um servidor de documentos NoSql
  • Possui uma API simples muito semelhante ao do MongoDb
  • Pequena biblioteca desenvolvida 100% em código C# NET 3.5 / NETStandard 1.4
  • Suporte para Portable UWP/PCL
  • Recuperação de dados após falha de gravação
  • Criptografia de arquivo de dados usando criptografia DES (AES)
  • Transações ACID (atomicidade, consistência, isolamento e durabilidade)
  • Recuperação de dados após falha de gravação (journal mode)
  • Mapeie suas classes POCO para o BsonDocument usando atributos ou usando Fluent Mapper API
  • Armazenar arquivos e dados de fluxo (como GridFS no MongoDB)
  • Armazenamento de arquivos de dados simples (como SQLite)
  • Indexação de campos dos documentos para pesquisa rápida (até 16 índices por coleção)
  • Suporte a consultas LINQ
  • Shell de comando
  • Código-fonte aberto e gratuito, inclusive para uso comercial
  • Pode ser instalado via NuGet

Para demonstrar o uso do LiteDb, vamos criar uma aplicação de cadastro simples, realizando as operações básicas como Consulta, Inclusão, Exclusão e Atualização.
Leia mais… »

Criando Web Api com ASP.NET Core – Parte 1

Daremos inicio a série de artigos Criando Web Api com ASP.NET Core. Antes disso, o que você precisa saber sobre o ASP.NET Core:

  • Nova geração do ASP.NET
  • Desenvolvido pela Microsoft e pela Comunidade
  • Open-source
  • Cross-Plataform
  • Modular

Para saber mais, acesse o site da fundação .NET Foundation

Para iniciar o projeto é necessário ter instalado o .NET Core e o Visual Studio 2015 com Update 3 ou mais recente. Caso não tenha instalado, leia o artigo Instalando o .NET Core será necessário baixar e instalar para prosseguir.
Leia mais… »

Instalando o .NET Core

Para iniciar o desenvolvimento de projetos usando o .NET Core, é necessário ter instalado as versões mais recentes do Framework e do Visual Studio.

Caso não tenha, faça o download do Visual Studio 2015 com Update 3 ou se já possuir o Visual Studio 2015, faça a atualiação para o Update 3.

Após ter instalado o Visual Studio, será necessário instalar o .NET Core Tools.

Depois de instalado, basta reiniciar e abrir o Visual Studio para criação de um novo projeto .NET Core.
Leia mais… »

Criando e consumindo Web API – Parte 2

Dando continuidade a série de artigo Criando e consumindo Web API, onde na primeira parte fiz uma abordagem superficial do que é uma Web API e como cria-la. Nessa segunda parte, abordaremos o uso de conexão com banco de dados para efetuar o CRUD (Create, Read, Update, Delete). Para isso, não irei utilizar o Entity Framework de inicio. Isso ficará para uma nova parte dessa série. A principio a ideia é mostrar o funcionamento de uma Web API.

Então para dar inicio, faça o download do fonte do artigo disponivel no Github se já não fez pois iremos utiliza-lo como base para o desenvolvimento dessa segunda parte.
Somente para rever o que foi feito na primeira parte, nós criamos no projeto anterior 3 métodos, sendo um para retornar a data e hora do servidor, outro para realizar o filtro de clientes pelo código e outro para realizar o envio de dados de um cliente.

Vamos descartar esses métodos que criamos e vamos criar alguns outros métodos novos e definir as suas rotas. Para esse exemplo utilizaremos SQL Server. Não irei me aprofundar em como criar o banco, simplesmente vou deixar aqui meu script para criar a tabela de clientes.

Abra seu SQL Manager e crie a tabela utilizando o script sql abaixo.

Leia mais… »

Criando e consumindo Web API – Parte 1

Antes de iniciar o desenvolvimento de uma Web API é importante entender o que é, qual a sua finalidade e a forma como ela funciona.

Para quem não conhece, uma Web API é um conjunto definido de mensagens de requisição e resposta HTTP, geralmente expressado nos formatos XML ou JSON.

Todos nós já tivemos contato de alguma forma com um serviço desse tipo, seja algum site que utilize no dia-a-dia, ou em um dos nossos aplicativos favoritos instalados no smartphone ou tablet. Um exemplo desses aplicativos são o Facebook, Twitter, Linkedin e até jogos utilizam-se de Web API. Então, se está planejando criar algum projeto novo, talvez esse seja um caminho a se analisar.

Para que você entenda melhor o funcionamento de uma Web API, vamos descrever de forma simples um cenário de funcionamento de Web API, como por exemplo a utilizada pelo seu aplicativo do Facebook. Considerando que ele está instalado em seu smartphone:

  • Você informa seus dados de login
  • O aplicativo grava localmente os dados e envia-os a um servidor de autenticação para geração do Token
  • Caso os dados sejam validos, é retornado o token para o aplicativo
  • Para realizar a consulta dos post de sua linha, o aplicativo requisita as informações ao servidor utilizando o token para validação

Leia mais… »

Componentes Bootstrap para ASP.NET

Quando iniciamos um novo projeto, a primeira coisa que pensamos é, o que usar como acelerador para o desenvolvimento visual e logo nos vem a cabeça em usar o Bootstrap. Mais quem não conhece o Bootstrap acaba por ter que aprender para utilizar e isso poderá demandar um pouco de tempo e atrasar o projeto.

O Bootstrap é um framework CSS que nos permite desenvolver um website ou aplicação web utilizando uma gama de componentes e funcionalidades basicamente utilizando HTML, CSS e jQuery.

Já venho utilizando o Bootstrap a um bom tempo e já desenvolvi diversos projetos com ele e sempre que inicializo um novo projeto, eu preciso reescrever novamente as tags para ter todos os componentes que preciso em tela. Porem, com o objetivo de acelerar o meu desenvolvimento e também com o objetivo de estudar dois assuntos diferentes, resolvi criar os meus próprios ASP.NET Server Controls Bootstrap, ou seja, criei alguns componentes Bootstrap para ASP.NET.

Leia mais… »

Como saber se um aplicativo .NET é 32 ou 64 bits

No desenvolvimento de aplicações .NET seja ela, ASP.NET, ASP.NET MVC, Windows Library, Windows Form é possível utilizamos algumas diversas linguagens para programação. Porem é possível também definir que nosso executável ou assembly rode em plataforma 32 bits, 64 bits ou para ambas as plataformas (Any CPU).

Mais imagina-se a seguinte situação, um pouco absurda, mais possível de se ocorrer. Você é um implantador de sistemas e deverá atender a uma demanda em um cliente. Implantar o sistema e se depara com um erro ao executar o sistema que acabou de instalar com a seguinte mensagem:


System.BadImageFormatException: Could not load file or assembly '<assembly>' or one of it dependencies. An attempt was made to load programa with an incorrect format.

Alguns outros Exceptions poderão ser vistos aqui nesse artigo sobre Exceptions do .NET Framework

Esse erro ocorrer porque um assembly necessário não foi encontrado na tentativa de executar o sistema. Mais analisando o sistema, é identificado que o assembly se encontra junto ao projeto. Isso ocorre porque o assembly que tentou-se carregar está em uma plataforma diferente do sistema.

Leia mais… »

Criando CRUD com Asp.Net Web Forms 4.5

A Microsoft lançou recentemente o novo Framework Web Forms 4.5, que herdou muitas features do asp.net MVC. Vou falar sobre 2 novas funcionalidades do mesmo.

Vou criar uma aplicação bem simples para mostrar as novas funcionalidades.

Vou usar Visual Studio 2013 e Entity Framework 6. Você pode usar o visual studio 2012 e o EF anterior ao 6.

Vou fazer um pequeno crud usando:

  • Entity Framework Code First, LocalDB
  • Data Annotations

Leia mais… »

Segundo fator de autenticação com Google Authenticator

Você já pensou em alguma forma de melhorar a segurança de seu aplicativo seja ele web ou desktop? Saiba que com pouco trabalho você pode implementar em sua aplicação o uso do segundo fator de autenticação. Mais o que vem a ser o segundo fator de autenticação?

O segundo fator de autenticação é um método de segurança que podemos usar em nossa aplicação como um complemento que alem de o usuário informar os dados de login, ele deverá informar uma senha aleatória gerada por um dispositivo chamado Token. Normalmente o Token é um dispositivo físico que nos casos mais comuns geram senhas aleatórias baseadas no tempo que mudam a cada intervalo de segundo ou a cada nova solicitação. Alguns bancos utilizam-se desses dispositivos para reforçar a segurança do acesso e das transações.

Existe também os dispositivos virtuais que normalmente são utilizados em dispositivos como os Smartphones.

Leia mais… »

Como Melhorar a Performance de WebSites .NET – Editora Novatec

como_melhorar_a_performance_de_websites_net

Muitos de nós profissionais de TI, sabemos o quanto é importante a experiência. E é essa experiência que faz diferença muitas vezes na hora de executar alguma tarefa no nosso dia-a-dia.

Imagine uma situação onde você é alertado pela equipe de suporte, ou pelo seus alertas de monitoramento da aplicação de missão critica ou até mesmo o telefonema de um cliente sobre a indisponibilidade do seu sistema. E isso vem acompanhado diversas perguntas que muitas vezes sequer possuem respostas. Sabemos também que na maioria dos casos é possível sim evitar esse desconforto perante a equipe, cliente e até mesmo gerência.

Porque citei esse tipo de situação? Porque qualquer um passou ou passará por essa situação um dia independente da área que atue.

Porém, para os que ainda não possuem esse tipo de experiência, pode evitar essa situação aprendendo com quem já possui mais experiência ou por quem entende do assunto. Então como evitar essa situação deixando nossa aplicação com maior desempenho?

Leia mais… »

Sys.WebForms.PageRequestManagerServerErrorException

Sys.WebForms.PageRequestManagerServerErrorException: An Unknown error occurred while processing the request on the server. The status code returned from the server was: 12031

Uma das razões para essa exceção ocorrer é o tamanho do View State que pode estar excedendo o tamanho limite padrão de envio de dados para o servidor suportado pelo ASP.NET.
Para contornar esse problema podemos alterar o tamanho padrão suportado pelo ASP.NET no Web.config na sessão .
Leia mais… »

ASP.NET UpdatePanel Time Out

Em requisições assíncronas de um UpdatePanel que levam mais de 90 segundos pode ocorrer o seguinte erro:

Microsoft JScript runtime error: Sys.WebForms.PageRequestManagerTimeoutException: The server request timed out.

Isso ocorre porque 90 segundos é valor default para o timeout de uma requisição via UpdatePanel, se alguma de suas solicitações levam mais de 90 segundos para processamento você pode alterar o valor de timeout no ScriptManager configurando a propriedade AsyncPostBackTimeout=”600″ no ScriptManager, o tempo deve ser em segundos.
Leia mais… »

Não execute ASP.NET em Produção com debug ativado

Em resumo:

  • A compilação de paginas ASP.NET leva muito mais tempo, porque otimizações ficam desativadas
  • O código pode executar mais lento, porque caminhos adicionais de depuração estão desativados.
  • Muito mais memória é usada pelo aplicativo no tempo de execução
  • Scripts e imagens baixadas por componentes como Ajax ToolKit ou similares não são armazenados em cachê.
  • Abre uma brecha na segurança, pois as mensagens de erro podem ser exibidas detalhadamente no servidor remoto expondo a aplicação.

O <deployment retail=”true”/> no Maching.config:
Leia mais… »

Série: Ajax Control Toolkit – Tutoriais – Accordion

Galera, sejam bem vindos! Hoje vamos começar pra valer nossa série do Ajax Control Toolkit e abordaremos o uso do Accordion.

Primeiro vou iniciar descrevendo as propriedades do accordion pane.

  • SelectedIndex – O AccordionPane que iniciará com as informações visíveis ou p´re-selecionado.
  • HeaderCssClass – Nome da classe CSS para usar nos cabeçalhos. Este pode ser aplicado ao Accordion como um padrão para todos os AccordionPanes, ou um AccordionPane individual.
  • HeaderSelectedCssClass – Nome da classe CSS para usar para o Accordion selecionado. Também pode ser aplicado para um ou para todos os AccordionPanes.
  • ContentCssClass – Nome da classe CSS para usar no body do acordion/conteúdo. Pode ser aplicado a todos.
  • FadeTransitions – ‘True’para  habilitar o efeito de transição Fade/Suave, ou  ‘False’ para transições padrão(sem efeitos de fade).
  • TransitionDuration – Número de milissegundos para animar as transições de um panel para o outro.
  • FramesPerSecond – Número de quadros por segundo usados nas animações de transição, se vai ser um fade lento ou rápido.

Leia mais… »