.NET CORE 2.0 + Algumas tecnologias

Pessoal, vamos lá para mais um exemplo, este será o primeiro de dois artigos que pretendo fazer, vou dividir pois acho que é muito conteúdo para um artigo só.

E como dizia meu velho amigo Aristóteles :

É fazendo que se aprende a fazer aquilo que se deve aprender a fazer.

Então “bora” fazer!!!

EfInMemory1

O código fonte deste projeto como sempre se encontra no meu github basta fazer o download e abrir no Visual Studio (para este exemplo utilizei o 2017) e se divertir!

O ideal é que você baixe o exemplo e siga o artigo para entendimento.

Não vou aqui explicar linha por linha das classes do projeto, vou tentar explicar algumas funções e tecnologias, espero que você leitor, baixe e rode o projeto debugando para entender o funcionamento.

Leia mais…

ASP.NET Core 2.0 + Entity Framework Core + Sqlite

O objetivo deste artigo é demonstrar como criar uma aplicação simples e rápida utilizando o ASP.NET CORE com o Entity Framework Core em uma base de dados SQLite.

Vamos ver como gerar o projeto, como incluir as dependências necessárias e como trabalhar com o Migrations para criar e alterar o banco de dados.

A ideia do projeto é criar um CRUD básico, mostrando informações de desenhos animados. Neste exemplo usei o site da varievo como fonte de dados. Veja o projeto final na imagem abaixo:

Leia mais…

Se livre da dependência ao IIS, aprenda a criar aplicações Self-Host.

Quando vamos desenvolver uma aplicação web utilizando as tecnologias da Microsoft, já vem na cabeça “Vou precisar hospedar minha aplicação no IIS!” (Internet Information Services) seja ela um site web ou um simples serviço WCF ou WEBAPI.

selfhost_13Essa dependência passou a ser vista como um problema, com isso foi iniciado o projeto do padrão OWIN (Open Web Interface for .NET) onde seu objetivo era retirar essa associação entre aplicação e server, incentivar o desenvolvimento mais simples e fortalecer o desenvolvimento open-source.

Leia mais…

Série WebApi Parte 2 – Autenticação via token.

logo

Quando falamos de aplicações web e aplicações mobile a questão de autenticação é importante para garantir a integridade de sua implementação e segurança de seus dados, em um cenário web tradicional é amplamente utilizado o uso de cookies ou sessions para guardar  a autenticação válida durante a navegação evitando assim que seja preciso se autenticar toda a vez que tentar utilizar algum recurso protegido de um sistema.

Quando estamos falando de serviços a autenticação muda um pouco, elas não podem manter um cookie por exemplo, então recorrem a um token a cada vez que precisar acessar algum recurso protegido.

Leia mais…

Série WebAPI Parte1 – Vamos falar de OWIN e Projeto KATANA

logo_webapiOwin

Pretendo publicar uma série de artigos sobre WEBAPI, e neste vou tentar explicar para quem ainda não conhece o que é  OWIN e o Projeto KATANA.

Você já deve ter visto várias maneiras de implementar uma WEBAPI, uma forma que chamou minha atenção e uma dúvida que tinha era por que algumas implementações possuía um arquivo chamado Startup.cs e outras não.

Estudando e lendo sobre isso descobri que quando temos essa classe Startup.cs estamos falando de uma OWIN Application.

Leia mais…

Crie uma WebApi usando .NET CORE no Visual Studio Code

webapi-dotcore_fundo

Pessoal, estou iniciando meus estudos em .NET CORE e neste artigo vamos ver como criar uma WebApi usando esta tecnologia no Visual Studio Code.

As “coisas” mudaram muito ao meu ver na criação de aplicativos .NET,  agora temos que ter conhecimento de comandos e digitar muita coisa manualmente (talvez exista modo mais fácil, mas ainda não consegui ver isso).

Estava acostumado ao Visual Studio onde bastava solicitar uma nova aplicação MVC com ou sem WEB API e pronto estava lá o seu projeto criado, bastando apertar F5 para ter o exemplo rodando perfeitamente na sua máquina.

Agora com esse novo mundo do .NET CORE temos que fazer mais coisas na “mão” do que a versão anterior, talvez seja o preço a pagar para ter a nossa plataforma de desenvolvimento em todos os sistemas operacionais. Eu particularmente não vejo problemas nisso, pois isso força que eu saia da minha zona de conforto e consequentemente aprenda mais.

Leia mais…

No liquidificador: Knockout + Bootstrap + Toastr.js + BootBox + Asp.NET MVC + BootsWatch + WebAPI + MongoDB

Fala pessoal, neste final de semana da páscoa aproveitei o feriado e coloquei no liquidificador várias tecnologias para “misturar” e ver o que “sai” no final.

Desta vez vou criar um sistema com Knockout, Bootstrap, BootsWatch, BootToastr.js, BootBox, Asp.net MVC, Web Api, Swagger e MongoDB.

Vamos explicar um pouco de cada tecnologia principalmente para quem não conhece:

Knockout é uma biblioteca javascript (open source) que simplifica a construção de interfaces gráficas dinâmicas, usando o padrão MVVM (Model-View-View-Model), para saber mais acesse o site oficial.

Bootstrap é um framework front-end que cria sites já com tecnologia mobile (responsivo) sem ter que digitar uma linha de CSS, muito utilizado no mercado, acesse o bootstrap para conhecer melhor.

Toastr.js é um framework javascript para exibir notificações não bloqueadoras na tela, exibe aquelas “janelinhas” verdes, vermelhas, amarelas dependendo da situação ou definição de mensagem ao usuário, mais informações podem ser obtidas no github do projeto.

BootBox é um framework para exibição de caixas de diálogo usando o bootstrap modal, bem simples de usar e bonito, entre no link do projeto para conhecer melhor, possui varios exemplos de uso.

ASP.NET MVC  bom esse é o framework MVC web da Microsoft, já deve ser conhecido de quase todos os desenvolvedores web, vou deixar o link para maiores informações.

BootsWatch trata-se de um site que disponibiliza temas free para o bootstrap, muito bacana, basta acessar o site deles e escolher o tema que você achar mais bonito e subscrever o arquivo bootstrap.min.css.

WebApi segundo a própria definição da Microsoft “é uma estrutura que facilita a criação de serviços HTTP que atingem uma ampla gama de clientes, incluindo navegadores e dispositivos móveis. ASP.NET Web API é uma plataforma ideal para a construção de aplicativos RESTful no .NET Framework.” segue o link para obter mais informações.

Swagger este é um dos meus favoritos, uso o swagger para documentar minhas api´s, ele é um projeto composto por algumas ferramentas que auxiliam o desenvolvimento de APIs Rest e gera uma ótima documentação bem como ambiente completo para os testes de sua API. Veja no link oficial da ferramenta maiores detalhes.

MongoDB bom este dispensa comentários, trata-se de um banco NOSQL que já venho falando sobre aqui no meu site, você pode acompanhar sobre ele nos dois artigos que fiz (parte 1 e parte 2), é importante que o MongoDB já esteja funcionando em sua máquina para o exemplo ok?

Bom agora é colocar tudo no “liquidificador” e ver o que sae!!

Leia mais…

Listar registros com ASP.NET MVC – parte 2

Fala pessoal, continuando a série de artigos sobre listagem de dados com ASP.NET MVC, hoje vamos pegar o exemplo da parte 1 e criar outra página com grid e paginação do Jquery DataTables.

Abaixo o resultado da minha consulta utilizando o DataTables:

img2_list_parte2

O Datatables traz para você de “graça” ordenação, filtro, alteração de quantidade de resultados por página e paginação sem muito ou quase nenhum trabalho de implementação.

Lembrando que as funcionalidades são somente para os resultados que se encontram no client, ou seja quando efetuar um filtro será apenas nos itens já inseridos na grid.

Bom cenário quando você tem uma tabela com poucos registros e pode fazer um “select full” retornando todos os registros de uma vez do banco.

Vamos a implementação, o primeiro passo é entrar no site do Datatables e efetuar o download do pacote, abra o projeto do artigo anterior e faça as referências aos seguintes arquivos:

  • datatables.min.js
  • dataTables.bootstrap.min.js
  • dataTables.bootstrap.min.css

Vamos alterar o controller TodoController e inserir mais dois métodos:

public ActionResult IndexWithDataTables()
{
   return View();
}

O método acima apenas vai retornar uma View nova.
Agora vamos criar um método responsável por efetuar a busca dos dados no repositório:

public ActionResult GetData()
{
    var listVM = ConvertListModelToListViewModel(_repository.Get());
	return Json(new { data = listVM }, JsonRequestBehavior.AllowGet);
}

O método acima será acionado via ajax pelo componente do dataTables, então
assim que carregar a página este método será acionado e irá buscar todas as tarefas no banco de dados.

Na View criada vamos adicionar os seguintes comandos:

<h4 class="text-success">Listando tarefas com o Datatables</h4>
<div style="width:90%;">
<table id="Jdatatable" class="table table-responsive table-bordered">
  <thead>
    <tr>
	<th>Id</th>
	<th>Titulo</th>
	<th>Criado em:</th>
	<th>Descrição</th>
	<th>Fechado ?</th>
	<th>Realizado em:</th>
    </tr>
   </thead>
</table>
</div>

Agora vamos inserir o bloco javascript:

<script type="text/javascript">
$(document).ready(function () {
	$("#Jdatatable").DataTable({
		"ajax": {
		"url": "/Todo/GetData",
		"type": "GET",
		"datatype": "json"
		},
		"columns": [
	        { "data": "Id", "autoWidth": true },
		{ "data": "Title", "autoWidth": true },
		{
		"data": "DataOpen", "autoWidth": true, "type": "date",
		"render": function (value) {
		if (value === null) return "";
			var pattern = /Date\(([^)]+)\)/;
			var results = pattern.exec(value);
          		var dt = new Date(parseFloat(results[1]));
			return dt.getDate() + "/" + (dt.getMonth() + 1) + "/" + dt.getFullYear();
		}
		},
		{ "data": "Description", "autoWidth": true },
		{ "data": "Closed", "autoWidth": true },
		{
		"data": "DataClosed", "autoWidth": true, "type": "date",
		"render": function (value) {
		if (value === null) return "";
			var pattern = /Date\(([^)]+)\)/;
			var results = pattern.exec(value);
			var dt = new Date(parseFloat(results[1]));
			return dt.getDate() + "/" + (dt.getMonth() + 1) + "/" + dt.getFullYear();
		}
		}
          ]
	});
});
</script>

Na imagem abaixo explico alguns eventos (clique nela para aumentar):

img_list_parte2

No próximo artigo vou configurar esse mesmo exemplo para trabalhar com paginação, filtros e ordenação via “server side” , veremos como montar uma paginação no Entity Framework e como utilizar no Datatables.

Pretendo subir no meu GitHub a solução final com todos os artigos desta série, aguardem!

Espero que tenha ajudado, principalmente que está iniciando os estudos em desenvolvimento web, e se ajudou comenta para incentivar.

Um abraço.