Pular para o conteúdo principal

Postagens

C#: Acessando métodos internos e protegidos de um projeto

Em muitos casos você cria uma projeto com métodos internos ou protegidos por questões de design do projeto e segurança. Mas, em algum momento vem a necessidade liberar acesso para algum projeto que é de sua confiança. Caso você tenha um projeto com classes ou métodos protected e internal e tenha necessidade em utilizar o código em outro projeto, como por exemplo um projeto de testes unitários para validar seu código, você pode adicionar uma regra no assembly do projeto que contem os objetos internal e protected. Na classe AssemblyInfo.cs que se encontra no nó Properties adicione comando a seguir, substituindo namespace  DotNet.Mongo.Repository.Test pelo namespace do seu projeto que irá acessar as rotinas internas.  [ assembly :  InternalsVisibleTo ( "DotNet.Mongo.Repository.Test" )] Assim você define que seu projeto com objetos definidos com internos ou protegidos confia neste segundo projeto que necessita do acesso a estas rotinas. Até a ...

C# :Removendo propriedades nulas ao serializar JSON

Olá Para serializar uma classe em formato JSON em c#,por muitas vezes é utilizado o pacote Newtonsoft . Em alguns momentos há a necessidade de serializar somente as propriedades que estiverem preenchidas no objeto, removendo assim as que estiverem nulas. Para isto você pode utilizar a propriedade  NullValueHandling da classe  JsonSerializerSettings . Segue exemplo: Até a próxima

Criando repositório MongoDB com C#

Olá Recentemente comecei a trabalhar com mongo em projetos dotnet. Para quem ainda não se "aventurou" com bancos não relacionais e dotnet, posso dizer que é muito fácil e tranquilo realizar as implementações e de quebra ganhar em performance de consulta. Para poder trabalhar com mongo em dotnet você precisa incluir o driver do mongo. Existe um drive oficial  que pode ser baixado via nuget . Nos exemplos a seguir foi utilizado a versão 2.4.4 do drive, mas enquanto escreve este post já esta disponível a versão 2.5.0  com melhorias, porém mais dependências. Para criar o template repositório com métodos para inserir, alterar, remover e consultar pode ser utilizado uma classe como a seguir: Para implementar em outras classes para utilizar os métodos desta classe como herança é necessário passar a entidade de modelo como tipagem e no construtor a coleção utilizada na consulta: Para utilizar algum método como o inserir, você pode chamar da seguinte maneira: ...

Executando Mongodb como serviço no windows

Olá No inicio de testes com esta base NoSQL é muito comum sempre iniciarmos via cmd com comendo mongod. Mas depois de um certo tempo quando estamos mais concentrados na programação e esquecemos de levantar o serviço via cmd, se torna interessante ter ele ja registrado e iniciado automaticamente ao iniciar o sistema operacional. Neste post gostaria de mostrar como registrar e executar o mongodb como serviço no windows. Primeiramente, após a instalação do mongodb (famoso next -> next-> finish) e criação da pasta data em C:\data\ , é necessário adicionar na variável de ambiente PATH o seguinte caminho: C:\Program Files\MongoDB\Server\3.4\bin Obs: o 3.4 deve ser alterado de acordo com a versão que você tem instalada em sua máquina. Após ter a variavel registrada abrir cmd como ADMINISTRADOR e digitar: mongod - -install - -logpath = "c:\data\log.txt" Após este passo você terá registrado o mongo como serviço do windows, e poderá iniciar o mongo como serviç...

Angular 4 & Bootstrap 4

E ai galera.  Neste post irei demonstrar como fazer a preparação inicial de uma aplicação que utilize Angular 4 e Bootstrap 4. Após você instalar o Angular-CLI  você pode iniciar sua aplicação angular digitando o comando no cmd: ng new minha-app cd minha-app Após navegar para a pasta de sua app você pode instalar o Bootstrap 4 e o ng-bootstrap . O ng-bootstrap é uma biblioteca que contem componentes bootstrap para angular, fazendo com que não seja necessário adicionar bootstrap.js em nossa aplicação. npm install --save @ng-bootstrap/ng-bootstrap bootstrap@4.0.0-beta Com todas instalações realizadas, você deve registrar o css do bootsrap no arquivo angular-cli.json na propriedade styles. "styles" : [ "../node_modules/bootstrap/dist/css/bootstrap.min.css" , "styles.css" ] No arquivo app.module.ts deve ser feito importação do módulo do ng-bootstrap o  NgbModule. E por fim você pode começar a utilizar os co...

Npm install: EPERM: operation not permitted

Ao tentar instalar algum pacote via npm utilizando windows você se depara com este erro: node_modules\Fsevents\ node_modules\aws4\package.json npm ERR! code EPERM npm ERR! errno -4048 npm ERR! syscall unlink npm ERR! Error: EPERM: operation not permitted Please try running this command again as root/Administrator. Muito provavelmente você pode estar utilizando versão de npm 5.4.0 ou 5.3.0. Para verificar digite no cmd npm -v Se for este seu caso, poderá corrigir fazendo downgrade de versão ou um upgrade do npm. Para downgrade uma versão que funciona bem seria 5.0.3: npm i -g npm@5.0.3 Para upgrade 5.4.2 atualmente está funcionando bem npm i -g npm ou npm i -g npm@5.4.2

VS Code: Bons plugins para Angular 4

Segue minha lista preferida de plugins para hora do desenvolvimento de aplicações angular: Angular v4 TypeScript Snippets Criado pelo evangelista Angular John Papa, este plugin ajuda muito no momento de escrever componentes, serviços ou até mesmo diretivas como ngFor e ngIf no template do angular. Se você gosta de fazer uso de snippets este é um ótimo plugin: https://marketplace.visualstudio.com/items?itemName=johnpapa.Angular2 AUTOIMPORT Após ter seu componente ou modulo typescript criado pode vir a ser necessário uso de outros recursos de módulos do angular ou de módulos já criados  por você através do import. A tarefa de escrever manualmente, verificar que o modulo não esta importado e adicionar a referencia no topo do typescript como endereço correto de importação se torna cansativa conforme a aplicação vai crescendo. Este plugin é uma mão na roda. https://marketplace.visualstudio.com/items?itemName=steoates.autoimport VS CODE ICONS VS CODE ICONS ajuda m...