Coder Social home page Coder Social logo

dotcep's Introduction



Versao license TestesUnitarios Wiki Codeship


Projeto desativado

o código não está muito legal, criei quando era iniciante na programação, então estou deixando de dar manutenção na biblioteca, mas caso queiras utilizar ela, ainda esta no Nuget.

Sobre

*A biblioteca está sendo reescrita com .net standard, e utilizará um sistema de cache opcional.

Biblioteca para facilitar o trabalho com CEP em sofwares desktop, utilizando .NET C#, pode ser utilizada no Windows e Linux, utilizando o Mono(Windows Forms/ Console Application). Utiliza um sistema de cache local com SQLite para uma melhor performance e economia do uso de rede.

Desenvolvida utilizando o Webservice da Via Cep.

O Webservice contém uma pequena limitação na questão de requisições: Acima de 300 requisições em menos de 15 minutos com o mesmo IP, poderá haver temporariamente o bloqueio do mesmo.

NuGet

Install-Package DotCEP

DotCEP: NuGet

Wiki

Se você está com dúvidas sobre a instalação ou a utilização da biblioteca, utilize a Wiki do projeto.

Dependências

Newtonsoft.Json

Agradecimentos

Professor William Ivanski.

Colegas do Curso de Programação C#.


Contatos

E-mail: [email protected]

Site: http://cristianoprogramador.com/

Blog: https://medium.com/cristiano-cunha

dotcep's People

Contributors

cristianorc avatar wind39 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dotcep's Issues

TearDown

Criar métodos PostTest para limpar o chache local logo apos cada teste.

Municípios

Criar uma classe Municipios e um método para listar os municipios de acordo do o UF.

Query List

Utilizar a biblioteca Spartacus como micro ORM para fazer a busca de cache e localidades via QueryList e não mais via DataTable.

Requisição

Sistema para verificar o tempo da requisição, se o tempo for acima de 5 seg cancelar a requisição e não retornar nada.

Consultas

Aceitar CEP formatado nas consultas de endereço.

Erro de DLL Sqlite3

Quando efetuo uma consulta, esta me retornando erro na DLL Sqlite3 , falando que ela não pode ser encontrada pelo spartacus, como devo proceder?

Criar cache local

Cristiano,

Primeiramente gostaria de parabenizar sua iniciativa e seu trabalho nessa biblioteca, realmente é bem útil.

No Reddit, o usuário jvframework deu uma sugestão interessante: que você implemente uma cache local para reduzir o tempo de resposta. Vou tentar explicar uma abordagem pra isso funcionar. A ideia é ter um banco de dados dotcep.db local inicialmente vazio. Quando o programa chama, por exemplo:

enderecoBase = Consultas.ObterEnderecoCompleto("70160-900");

A resposta deverá ter as seguintes informações:

CEP: 70160-900
Logradouro: Praça dos Três Poderes
Localidade: Brasília
Bairro: Zona Cívico-Administrativa
UF: DF
ibge: 5300108
Complemento:
Gia:
Unidade:

Beleza, na primeira vez a cache está vazia e precisa buscar da Internet. Mas, assim que retornar, o próprio método ObterEnderecoCompleto deve armazenar em uma tabela cache no banco dotcep.db as seguintes informações:

Data/Hora: 20161028 155800 (por exemplo)
Metodo: ObterEnderecoCompleto
Parametro: 70160-900
Retorno: (aqui você coloca uma stringona contendo todo o retorno do Via CEP).

Se caso a aplicação fizer uma nova chamada ao método ObterEnderecoCompleto, primeiro ele verifica se existe na cache uma linha com o mesmo parâmetro. Se existir, ele deve olhar a Data/Hora e verificar se é mais antigo do que, por exemplo, 1 semana ou 1 mês (endereços não mudam com tanta frequencia). Se for mais antigo, ele deve excluir o registro, consultar o site do Via CEP de novo e reinserir o registro atualizado na cache.

Mas se caso o registro existir na cache e não for tão antigo, você pode usar a informação que já está na cache. Nesse caso vai ficar mil vezes mais rápido pro usuário e não precisará usar a conexão com a Internet.

O que achou da ideia? Estou disponível para conversarmos se você quiser. Abraço!

Testes Unitários

Criar testes unitários para todos os métodos públicos da biblioteca.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.