<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jéssica Nathany</title>
    <description>The latest articles on DEV Community by Jéssica Nathany (@jessicanathany).</description>
    <link>https://dev.to/jessicanathany</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F229916%2F4d8809fe-102a-406b-a5a4-32f72904ca88.jpg</url>
      <title>DEV Community: Jéssica Nathany</title>
      <link>https://dev.to/jessicanathany</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jessicanathany"/>
    <language>en</language>
    <item>
      <title>Effective Project Programming Practices for Real-Life Solutions</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Wed, 14 Jun 2023 14:47:42 +0000</pubDate>
      <link>https://dev.to/jessicanathany/effective-project-programming-practices-for-real-life-solutions-338l</link>
      <guid>https://dev.to/jessicanathany/effective-project-programming-practices-for-real-life-solutions-338l</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--89n0rLJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ewl7bguvfsex64rtch6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--89n0rLJr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ewl7bguvfsex64rtch6.png" alt="Image description" width="718" height="406"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;I have always been interested in collaborating with open-source projects, but I wasn't sure how to get started. One day, while having a coffee break with my friend &lt;a href="https://www.linkedin.com/in/eufelipe/"&gt;Felipe Rosas&lt;/a&gt; at our workplace, we began discussing our studies, hard skills, programming stacks, and various other programming topics. &lt;/p&gt;

&lt;p&gt;During the conversation, Felipe asked me a thought-provoking question: "Why don't you create a small project and dedicate yourself to it using the concepts you are studying?". This idea resonated with me, and I realized it was the perfect opportunity to put my knowledge into practice.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4Ax__EhJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgt4sb9jzhrsdcyogexn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4Ax__EhJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zgt4sb9jzhrsdcyogexn.png" alt="Image description" width="719" height="553"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Initially, the idea was to create a project centered around my favorite TV series, drawing inspiration from the Ricky Morty API. This sample project, which provides a comprehensive listing of characters, seasons, and episodes, inspired me to create a similar one. &lt;/p&gt;

&lt;p&gt;So, why not design an API for my favorite series, the Office?&lt;br&gt;
I have created a repository for my project &lt;a href="https://github.com/JessicaNathany/the-office.api"&gt;here&lt;/a&gt;, where the goal of this API is to list characters, episodes, seasons, and memorable quotations from the characters. After sharing the project, I realized that I had some people who thought the idea was fantastic, and some started contributing. At the moment, my friend &lt;a href="https://www.linkedin.com/in/reginaldo-barros/"&gt;Reginaldo Alves&lt;/a&gt; de Barros sends a pull request every day, contributing to the project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mM8jK4Es--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0rtind96daj388o0wyup.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mM8jK4Es--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0rtind96daj388o0wyup.png" alt="Image description" width="716" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Idea
&lt;/h2&gt;

&lt;p&gt;During this development period of the project, I thought and came up with an idea. I want to create a simple web page and put all the APIs I create on it. This is fun and helps me train my code and my development architecture better, and helps other people contribute with projects open source. The challenge for me is development with the front, I need to create a simple page and I think the better idea is a creating a simple front using React.Js. Yeh, I need to do some class about react lol.&lt;/p&gt;

&lt;p&gt;I use it a lot the Notions for creating documentation for my APIs and following the development time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hDYoP2Jj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gp4n6gkczslai0ukp5r5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hDYoP2Jj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gp4n6gkczslai0ukp5r5.png" alt="Image description" width="693" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Has a lot of things to do but every day I have some goals for coding and finishing some tasks. It is not easy to divide your time, especially when you have other activities and work to do, but If have an objective you mind, you need to focus, and most importantly, don't so much pressure or demand on yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Conclusion
&lt;/h2&gt;

&lt;p&gt;Create projects and create projects and take them seriously. Create projects and take them seriously. Create with care and dedication, It will serve as learning experience and help you further mature your technical skills.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/JessicaNathany/the-office.api"&gt;The Office API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JessicaNathany/breaking-bad.api"&gt;Braking Bad API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JessicaNathany/cafedebug-backend.api"&gt;Cafe Debug API&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/JessicaNathany/api-fanfareInvest"&gt;FanfarInvest API&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>csharp</category>
      <category>dotnet</category>
      <category>programming</category>
    </item>
    <item>
      <title>How to create a simple Investiment API NET Core 6 for tranning Part.2</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Mon, 04 Jul 2022 12:04:13 +0000</pubDate>
      <link>https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part2-1gb1</link>
      <guid>https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part2-1gb1</guid>
      <description>&lt;p&gt;Continue the previous article &lt;a href="https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part1-5819"&gt;How to create a simple Investiment API NET Core 6 for tranning Part.1&lt;/a&gt;, now we need to do this for separate our project in layers:&lt;/p&gt;

&lt;p&gt;*Repository&lt;br&gt;
*Services&lt;br&gt;
*Response classes&lt;br&gt;
*And injection dependencies&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the Response class
&lt;/h3&gt;

&lt;p&gt;Inside the folder Response, I created the classe as shown in the image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3kvnYijh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/04dygr4hcv224zfrh29b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3kvnYijh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/04dygr4hcv224zfrh29b.png" alt="Image description" width="743" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--5-g8gkGh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2xs9va3l7rcg80n7r5fh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--5-g8gkGh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2xs9va3l7rcg80n7r5fh.png" alt="Image description" width="764" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ubvsGQ2u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5qvbtijnh1tprrj7r8jo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ubvsGQ2u--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5qvbtijnh1tprrj7r8jo.png" alt="Image description" width="779" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--q9XADl4m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iu3i5saf6hs0iy281l9m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--q9XADl4m--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/iu3i5saf6hs0iy281l9m.png" alt="Image description" width="777" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the Repository class
&lt;/h3&gt;

&lt;p&gt;Inside the folder Data -&amp;gt; Repository, I created the class repositories and your interfaces. Before I created the interfaces, as show image bellow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SpdvfcGm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/02w6ftslb3kqlyq890aa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SpdvfcGm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/02w6ftslb3kqlyq890aa.png" alt="Image description" width="782" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YHhYJ1mj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lanbhik9hdhq2mrqti3t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YHhYJ1mj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lanbhik9hdhq2mrqti3t.png" alt="Image description" width="799" height="354"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--hofAZAMP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r495sgouzj5b9cly478.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--hofAZAMP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0r495sgouzj5b9cly478.png" alt="Image description" width="763" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2WGdLJcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2z3wiv8a5514wgju8x0i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2WGdLJcl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2z3wiv8a5514wgju8x0i.png" alt="Image description" width="803" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now I just created one method GET, but the plan is I'll create the anothers methods, POST and PUT. In repository, we have the class as how image bellow. Notice that I used the mocky JSON that I created earlier. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rPVt4K0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5d5tx9fsvth9tdwb2vhg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rPVt4K0d--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5d5tx9fsvth9tdwb2vhg.png" alt="Image description" width="880" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Yv_zSu9C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qax0urwx8zkh6o2t4eor.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Yv_zSu9C--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qax0urwx8zkh6o2t4eor.png" alt="Image description" width="880" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--lH18X4Xr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rtl5cjdj549rj3sl8ci.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lH18X4Xr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6rtl5cjdj549rj3sl8ci.png" alt="Image description" width="880" height="410"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--46pSRaP_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5a228ovo9fx7r86ks06l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--46pSRaP_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5a228ovo9fx7r86ks06l.png" alt="Image description" width="880" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Configure the injection dependency
&lt;/h3&gt;

&lt;p&gt;I like the separate responsibility, for example, I could have put this injection dependency directly in the class Program, but to make the organization better my code,  I thought it was better to separate it. So, I created the class DependencyInjectionRegistry and here I have an only static void method that receives the IServiceCollection.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--leWnsXwV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lm9f2660uh7phvqjbghz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--leWnsXwV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lm9f2660uh7phvqjbghz.png" alt="Image description" width="880" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the Services class
&lt;/h3&gt;

&lt;p&gt;Here I created the services classes, the service is called the repository class. I injected the dependency into the constructor. In this class I have put the business rules, in future I will create the unit test for this roles.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--PJrX5sBS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/26kuj2tdys6d2wnl5bju.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--PJrX5sBS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/26kuj2tdys6d2wnl5bju.png" alt="Image description" width="880" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ha2q94px--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pq75ntgvlj2se9acf210.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ha2q94px--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pq75ntgvlj2se9acf210.png" alt="Image description" width="880" height="649"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F-i7KN_b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3z8z561qcatxmij2gsxt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F-i7KN_b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3z8z561qcatxmij2gsxt.png" alt="Image description" width="880" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9W0EtXUz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ov778l3hzluuf9e3i6l4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9W0EtXUz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ov778l3hzluuf9e3i6l4.png" alt="Image description" width="880" height="609"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--963wPQzy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lhbf22w5yh3lqfc7yp8x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--963wPQzy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lhbf22w5yh3lqfc7yp8x.png" alt="Image description" width="880" height="636"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The service InvestmentServices return all investment in Investment Portfolio the client. &lt;/p&gt;

&lt;h3&gt;
  
  
  Creating Controllers and endpoints
&lt;/h3&gt;

&lt;p&gt;I  a created only controller is InvestmentController. Here our API has an everything about the investment client.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KQ2M56SB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk71mkskpfqqmd72x8bo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KQ2M56SB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sk71mkskpfqqmd72x8bo.png" alt="Image description" width="880" height="588"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s8KbT4lA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en5rr9qlyumcrage16nx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s8KbT4lA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/en5rr9qlyumcrage16nx.png" alt="Image description" width="880" height="270"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LHlm-lec--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ioc2fw3c7a34n4q7mqr0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LHlm-lec--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ioc2fw3c7a34n4q7mqr0.png" alt="Image description" width="880" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Lryo43rq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dro82j1xl726xm7ro51p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Lryo43rq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dro82j1xl726xm7ro51p.png" alt="Image description" width="880" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_Wg7jFrt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clwog1y4yqni76g0wpz7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_Wg7jFrt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/clwog1y4yqni76g0wpz7.png" alt="Image description" width="880" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So this is a simple idea for the API, I will create the other version using VSCode, and finish the unit test. I hope that help you, and you can get the  repository in URL bellow.&lt;/p&gt;

&lt;p&gt;Github project: &lt;a href="https://github.com/JessicaNathany/api-fanfareInvest"&gt;https://github.com/JessicaNathany/api-fanfareInvest&lt;/a&gt; &lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>api</category>
      <category>core</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to create a simple Investiment API NET Core 6 for tranning Part.1</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sat, 25 Jun 2022 21:08:05 +0000</pubDate>
      <link>https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part1-5819</link>
      <guid>https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part1-5819</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F604lzj0oa56lc3y8mxuc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F604lzj0oa56lc3y8mxuc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I create this project to practice a little the code and include some concepts that I study. So was a sample idea, create a sample Investiment API that to return the all investiment the portfolio the customers.&lt;/p&gt;

&lt;p&gt;I used the Visual Studio with language C# with .NET 6,  but I will create a other article with coding in VSCode, now at the moment the environment this is.&lt;/p&gt;

&lt;p&gt;So some rules the our API business investiment consunting, should have endpoints bellow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;List all investiments&lt;/li&gt;
&lt;li&gt;Get investiments Fixed Income&lt;/li&gt;
&lt;li&gt;Get invetiments Variable Rent&lt;/li&gt;
&lt;li&gt;Get invetiments Funds&lt;/li&gt;
&lt;li&gt;Investing Fixed Income is a POST&lt;/li&gt;
&lt;li&gt;Investing Funds Property is a POST&lt;/li&gt;
&lt;li&gt;GET Rescue invetiments &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Another rules the user cannot rescue the investiment in less than a month for all and The user cannot investing bonds that. The user cannot investing that does not fit your profile, and for the calculation rules:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;If the date due date the investiment is than more that six month, so descount twent percent (20%) the yours yield&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the date due date the investiment is than more that twelve month, so descount ten percent (10%) the yours yield&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the date due date the investiment is equal due date all, so descount five percent (5%) the yours yield.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All ready, let´s the code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the project
&lt;/h3&gt;

&lt;p&gt;First of all select the directory in your machine and create a solution blank with the name api-fanfareInvest or the name want do you want, image bellow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmre4twgr2v0xu9mk8792.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmre4twgr2v0xu9mk8792.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you have created, inside the solution blank, click right button -&amp;gt; new project and select ASP.NET Core API. In this case, we don't create a minimal API, ´follow the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7p1d45gxefem8xq3mog.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc7p1d45gxefem8xq3mog.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This a structure basic the our Simple API. Now you can create the pasts: ConfigDependency, Controllers, Data, Model, Response and Service. I will explain later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsqjxnvahp8qccp5ti98.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwsqjxnvahp8qccp5ti98.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the Models
&lt;/h3&gt;

&lt;p&gt;For our API we need to create some Model class We need this class: (DirectTreasury, FixedIncome, Fund, VariableIncome and InvestimentPortfolio). The last class we will get all investments in the portfolio&lt;/p&gt;

&lt;p&gt;The objective here is a create model class for get some investimet, for example I want to get all investiment direct treasury, or get fixed income, get variable income etc. I will mock data this investiment using Json Mock. But at moment, just let´s to create the classes model.&lt;/p&gt;

&lt;p&gt;Let´s to create a class DirectTreasury in paste Model.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9j6di6dnqflj2pvjn1g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq9j6di6dnqflj2pvjn1g.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy573pp4jlphw37uccali.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy573pp4jlphw37uccali.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's repeat the process by creating the other classes&lt;/p&gt;

&lt;p&gt;FixedIncome &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0fxenmmlpdc2r99netc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm0fxenmmlpdc2r99netc.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fund&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6oqsrq48hh3akou5v9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6oqsrq48hh3akou5v9q.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;InvestmentPortfolio&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27tykynltx1ehs5hl9i9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F27tykynltx1ehs5hl9i9.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VariableIncome&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxcgzwm7gp86bw3a2wtq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcxcgzwm7gp86bw3a2wtq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Creating the Json Mocks
&lt;/h3&gt;

&lt;p&gt;We are using these tools JSON Mocky this link &lt;a href="https://designer.mocky.io/design" rel="noopener noreferrer"&gt;https://designer.mocky.io/design&lt;/a&gt;. JSON Mocky is a nice tool because you can create JSON mocks to be consumed in APIs for testing.  Bascally the tools generate a response Mock with a URL.&lt;/p&gt;

&lt;p&gt;I created the JSON, so I used this website to validate my JSON &lt;a href="https://jsoneditoronline.org" rel="noopener noreferrer"&gt;https://jsoneditoronline.org&lt;/a&gt;. The first response we are to create is a Direct Treasury, as shown in the image below.&lt;/p&gt;

&lt;p&gt;Creating JSON the response Direct Treasury&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xks9i7s2yiqbihbn8v0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0xks9i7s2yiqbihbn8v0.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Copy the json and paste it in the field HTTP Response Body the website JSON Mocky, and after click in button Generate in my HTTP Response.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75f2uwy3lcfvu1j60vkj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F75f2uwy3lcfvu1j60vkj.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftl6bu771ip1boyra2qjw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftl6bu771ip1boyra2qjw.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have already prepared the response of the objects, just copy and save in a notepad. The procedure I did was the same, I created a JSON for each class, generated and formatted it in the online JSON Editor and pasted it in the body response of the JSON Mocky site.&lt;/p&gt;

&lt;p&gt;Direct Tresuary Response: &lt;a href="https://run.mocky.io/v3/52ad684e-30a4-4a45-9c88-3b18169c6137" rel="noopener noreferrer"&gt;https://run.mocky.io/v3/52ad684e-30a4-4a45-9c88-3b18169c6137&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fixed Income Response: &lt;a href="https://run.mocky.io/v3/ba42dc71-9176-46d0-8ede-a21faeb5b3ba" rel="noopener noreferrer"&gt;https://run.mocky.io/v3/ba42dc71-9176-46d0-8ede-a21faeb5b3ba&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Fund Response: &lt;a href="https://run.mocky.io/v3/7ac36199-db5c-4d21-bc8a-74fe91fa43b1" rel="noopener noreferrer"&gt;https://run.mocky.io/v3/7ac36199-db5c-4d21-bc8a-74fe91fa43b1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Variable Response: &lt;a href="https://run.mocky.io/v3/4fcc8f18-8ab7-4a36-abc1-f466566e9785" rel="noopener noreferrer"&gt;https://run.mocky.io/v3/4fcc8f18-8ab7-4a36-abc1-f466566e9785&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the next part of this article, I will continue to create the class Repository, Services, Response, and some configuration of the project.&lt;/p&gt;

&lt;p&gt;Part2: &lt;a href="https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part2-1gb1"&gt;https://dev.to/jessicanathany/how-to-create-a-simple-investiment-api-net-core-6-for-tranning-part2-1gb1&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>core</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to export and import data in DBeaver</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sun, 06 Mar 2022 00:34:29 +0000</pubDate>
      <link>https://dev.to/jessicanathany/how-to-export-and-import-data-in-dbeaver-16l1</link>
      <guid>https://dev.to/jessicanathany/how-to-export-and-import-data-in-dbeaver-16l1</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs469e70fd1i7dqgd8ny5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs469e70fd1i7dqgd8ny5.png" alt="Image description" width="352" height="137"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I'll to teach how to export and import data using the DBweaver, its very simple.&lt;/p&gt;

&lt;p&gt;In yours DBweaver select database and table that you want to export data.&lt;/p&gt;

&lt;p&gt;Right mouse button and select option &lt;strong&gt;Export data&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypx19iup9j7we81sba6s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fypx19iup9j7we81sba6s.png" alt="Image description" width="800" height="681"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select the option &lt;strong&gt;SQL Export to SQL INSERT statement&lt;/strong&gt; click next and select the folder where you want to save the script.After that click &lt;strong&gt;Proceed&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke7eu45hc6fe8iwikhku.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fke7eu45hc6fe8iwikhku.png" alt="Image description" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatknny9vm0jnt06odacv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fatknny9vm0jnt06odacv.png" alt="Image description" width="800" height="622"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, run the script in another database.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdv3vd6wrevoxz9k4x160.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdv3vd6wrevoxz9k4x160.png" alt="Image description" width="696" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2qj8witu9qbil1qgf7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb2qj8witu9qbil1qgf7x.png" alt="Image description" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>database</category>
      <category>sql</category>
    </item>
    <item>
      <title>How to create database MySQL with Docker</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sat, 22 Jan 2022 17:03:43 +0000</pubDate>
      <link>https://dev.to/jessicanathany/how-to-create-database-mysql-with-docker-1ph3</link>
      <guid>https://dev.to/jessicanathany/how-to-create-database-mysql-with-docker-1ph3</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsm7ol9pcnnp3lh5e21s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsm7ol9pcnnp3lh5e21s.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'll to show how  to create an local database MySQL with Docker, in yours Windows. It is necessary has the last version Docker intalladed in your machine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1st step: Dowload the MySQL image&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let's download the latest MySQL image to the Docker hub, type the following command below:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;docker pull mysql/mysql-server&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2st step: Execute the container&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let´s execute the container for an image that we did download. At first, we don´t configure environment variables, at moment just execute the MySQL for default users without a password. Before executing the command, you can create a directory with the name &lt;strong&gt;mysql&lt;/strong&gt;. Write the command below in your terminal.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: create only the directory C:/mysql for default, the MySQL to need has folder */var/lib/mysql&lt;/em&gt;, this directory the MySQL will save your database.*&lt;/p&gt;

&lt;p&gt;Write the command below&lt;/p&gt;

&lt;p&gt;&lt;em&gt;docker ryn -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -v C:/mysql/var/lib/mysql mysql&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fong53pd6fqi03k3j82yw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fong53pd6fqi03k3j82yw.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqmxputs7nydd2gp2ula0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqmxputs7nydd2gp2ula0.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3st step: Getting the container's IP&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For discovery the container IP, write command &lt;em&gt;docker container ls&lt;/em&gt; for verify the containers that running and copy the ID the container, using the command  &lt;em&gt;docker container inpect ID_CONTAINER&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczc7mkdvtyyu6puzz8yi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczc7mkdvtyyu6puzz8yi.jpg" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4st step: Acess database from container&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;To access the database through the container, we need to go inside the container, so write the command below&lt;/p&gt;

&lt;p&gt;&lt;em&gt;docker exec -it ID_CONTAINER&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk52dhbg5djljfx52lx2z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk52dhbg5djljfx52lx2z.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6viobiot4zkenntsapv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl6viobiot4zkenntsapv.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Already. We have a datbase MySQL in container Docker. Now you can create your database and tables.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftocro9vcjl257favur20.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftocro9vcjl257favur20.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfxb16z13snsgogsjak7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkfxb16z13snsgogsjak7.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conslusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This is a sample example for you create database with docker. Of course this example I created the sample database, but you can configure user and password in your database. &lt;/p&gt;

&lt;p&gt;Write for don´t forget.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>mysql</category>
      <category>database</category>
    </item>
    <item>
      <title>Some useful Libraries for .NET projects</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sat, 02 Oct 2021 18:29:17 +0000</pubDate>
      <link>https://dev.to/jessicanathany/some-useful-libraries-for-net-projects-5dbo</link>
      <guid>https://dev.to/jessicanathany/some-useful-libraries-for-net-projects-5dbo</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tlg6wl3z27c8k6jmkq2.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tlg6wl3z27c8k6jmkq2.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I will share same libraries and packages to make your .NET project easier, and explain a little about their functionality.Note: You can copy copy the library links from github and paste them into your Notions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NBuilder&lt;/strong&gt;&lt;br&gt;
Is a library that allows you to rapidly create test data, automatically. Some examples below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/nbuilder/nbuilder" rel="noopener noreferrer"&gt;NBuilder Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package NBuilder -Version 6.1.0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxhboepxzlaes8pc7ebn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flxhboepxzlaes8pc7ebn.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf3np76x7sph7b1jp3jh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frf3np76x7sph7b1jp3jh.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wrote about this library in my last article&lt;a href="https://dev.to/jessicanathany/tools-o-improve-your-unit-test-with-net-1ekb"&gt;Tools o improve your unit test with .NET&lt;/a&gt;. I have a Github repository about Unit Test and I used this library for test ([Unit Test]&lt;a href="https://github.com/JessicaNathany/unit-test" rel="noopener noreferrer"&gt;https://github.com/JessicaNathany/unit-test&lt;/a&gt;) the code ist portuguese but I will write in english.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faker.NET&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This library is a little diferent the NBuilder, because if you want something whic looks like actual names, address, email, thelephone numbers, etc you can use Faker.NET.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/slashdotdash/faker-cs" rel="noopener noreferrer"&gt;Faker.Net Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package Faker.Net -Version 1.5.148&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwf01pxv7kf2jspa2wff.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhwf01pxv7kf2jspa2wff.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bogus&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Bogus is a simple and sane fake data generator for .NET languages like C#, F# and VB.NET. Bogus is fundamentally a C# port of faker.js and inspired by FluentValidation's syntax sugar. Created by Brian Chavez.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/bchavez/Bogus" rel="noopener noreferrer"&gt;Bogus Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package Bogus -Version 33.1.1&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The example bellow is from repository Brian Chavez&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpyjxrqhn9d1s99wpgtyz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpyjxrqhn9d1s99wpgtyz.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ocelot&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ocelot is a .NET API Gateway. This project is aimed at people using .NET running a micro services / service oriented architecture that need a unified point of entry into their system. However it will work with anything that speaks HTTP and run on any platform that ASP.NET Core supports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ThreeMammals/Ocelot" rel="noopener noreferrer"&gt;Ocelot Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package Ocelot -Version 17.0.0&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The example below is taken from the website &lt;a href="https://docs.microsoft.com/en-us/dotnet/architecture/microservices/multi-container-microservice-net-applications/implement-api-gateways-with-ocelot" rel="noopener noreferrer"&gt;Microsoft Documentation API Gateway with Ocelot&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdjfs95zrpeixq5r19t1.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdjfs95zrpeixq5r19t1.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Polly&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/App-vNext/Polly" rel="noopener noreferrer"&gt;Polly Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package Polly -Version 7.2.2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The example below is taken from repository Polly Github.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv05xy2764e1q8ekhs5xz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv05xy2764e1q8ekhs5xz.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;CacheManager&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;CacheManager is an open source caching abstraction layer for .NET written in C#. It supports various cache providers and implements many advanced features.&lt;/p&gt;

&lt;p&gt;The main goal of the CacheManager package is to make developer's life easier to handle even very complex caching scenarios..&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/MichaCo/CacheManager" rel="noopener noreferrer"&gt;CacheManager Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package CacheManager.Core -Version 2.0.0-beta-1629&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AutoMapper&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;AutoMapper is a simple little library built to solve a deceptively complex problem - getting rid of code that mapped one object to another.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/AutoMapper/AutoMapper" rel="noopener noreferrer"&gt;Automapper Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package AutoMapper -Version 10.1.1&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The example below is taken from repository AutoMapper Github.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn8iyh3s87xf74032f1w.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffn8iyh3s87xf74032f1w.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FluentValidation&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;A small validation library for .NET that uses a fluent interface and lambda expressions for building validation rules.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/FluentValidation/FluentValidation" rel="noopener noreferrer"&gt;FluentValidation Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package FluentValidation -Version 10.3.3&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The example below is taken from repository FluentValidation Github.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qv52lykovuvrwux5hnp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7qv52lykovuvrwux5hnp.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Swagger&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Swagger tooling for APIs built with ASP.NET Core. Generate beautiful API documentation, including a UI to explore and test operations, directly from your routes, controllers and models.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/domaindrivendev/Swashbuckle.AspNetCore" rel="noopener noreferrer"&gt;Swagger Github&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Nuget: Install-Package Swashbuckle.AspNetCore.Swagger -Version 6.2.2&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpqmaf87remr19jqcicjb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpqmaf87remr19jqcicjb.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep6usol24gsb1sa0a6nk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep6usol24gsb1sa0a6nk.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>developers</category>
      <category>packages</category>
    </item>
    <item>
      <title>Tools o improve your unit test with .NET</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Fri, 18 Jun 2021 11:56:06 +0000</pubDate>
      <link>https://dev.to/jessicanathany/tools-o-improve-your-unit-test-with-net-1ekb</link>
      <guid>https://dev.to/jessicanathany/tools-o-improve-your-unit-test-with-net-1ekb</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpevyiez0pljycytlb2c.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmpevyiez0pljycytlb2c.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will show you some kind tools for you can write unit test better and make you job easier. In this case, I'm using here the Dotnet platform C# language. But first, let's understand some concepts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test stuntmen&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;First, what are test stuntmen? They are fake implementation the object real can be simulated the unit real or the object real.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Mock&lt;/em&gt;&lt;br&gt;
Are what we are talking about here: objects pre-programmed with expectations which form a specification of the calls they are expected to receive.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Stubs&lt;/em&gt;&lt;br&gt;
Provide canned answers to calls made during the test, usually not responding at all to anything outside what's programmed in for the test.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Fakes&lt;/em&gt;&lt;br&gt;
Are objects actually have working implementations, but usually take some shortcut that makes them not suitable for production (an in-memory database is a good example).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Spies&lt;/em&gt;&lt;br&gt;
Are stubs that also record some information based on how they were called. One form of this might be an email service that records how many messages it was sent.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dummy&lt;/em&gt;&lt;br&gt;
Are objects are passed around but never actually used. Usually, they are just used to fill parameter lists.&lt;br&gt;
Fake objects actually have working implementations, but usually take some.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;XUnit Code Snippets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you use these "code snippets", you can save time coding/typing to create unit test code based on xUnit framework. You can use write the command below I will show two options.&lt;/p&gt;

&lt;p&gt;You can download the Snippets in your Visual Studio&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2y12nwgjzykatks4ruj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk2y12nwgjzykatks4ruj.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Use command below&lt;br&gt;
1.xtestm [Tab] or&lt;br&gt;
2.fact [Tab]&lt;/p&gt;

&lt;p&gt;Then, this snippet expanded following C# code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fara4anftib076ghy0vug.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fara4anftib076ghy0vug.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65ldlx5z6reo7fuce9gc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65ldlx5z6reo7fuce9gc.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NBuilder&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Is a library that allows you to rapidly create test data, automatically. Some examples below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6twiaf3lwkgxdvdulsj4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6twiaf3lwkgxdvdulsj4.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6im0vn0anbmsdd93ww36.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6im0vn0anbmsdd93ww36.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Its a great idea and helps facilitates the process if you need to generate a quantity of data for testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Faker.NET&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This library is different the NBuilder, because if you want something which looks like actual names, address, email, telephone, etc you can use Faker.NET. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkaqpveukl464ev9skkx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjkaqpveukl464ev9skkx.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Coverlet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Coverlet is a cross platform code coverage framework for .NET, with support for line, branch and method coverage. It works with .NET Framework on Windows and .NET Core on all supported platforms.&lt;/p&gt;

&lt;p&gt;Coverlet documentation reflect the current repository state of the features, not the released ones.&lt;br&gt;
Check the changelog to understand if the documented feature you want to use has been officially released. You can see for more details in &lt;a href="https://github.com/coverlet-coverage/coverlet" rel="noopener noreferrer"&gt;Coverlet Github&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let´s first install the package coverlet in your test project in image below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwmhbh6uas5xj0gvyhqe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvwmhbh6uas5xj0gvyhqe.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can configure the tests to execute, for to generate the XML file format, for code coverage with the command and image below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;dotnet test --verbosity minimal --collect:"XPlat Code Coverage"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51srxsv3uk2e7bnmw7qd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F51srxsv3uk2e7bnmw7qd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The option --collect:”XPlat Code Coverage”  will create the file &lt;strong&gt;coverage.cobertura.xml&lt;/strong&gt; in a folder named identified by a GUID and located in the TestResults directory of the test project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z704p4ea3p5u27jl4ca.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9z704p4ea3p5u27jl4ca.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install Report Generator the command below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;dotnet tool install --global dotnet-reportgenerator-globaltool --version 4.8.6&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fva8d6lyop9e482et05cb.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fva8d6lyop9e482et05cb.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the power shell open the folder where the xml file was generated, and write the command &lt;strong&gt;reportgenerator "-reports:coverage.cobertura.xml" "-targetdir:coveragereport" -reporttypes:Html&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flme77zrv3oqvapsc4j6f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flme77zrv3oqvapsc4j6f.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp0j1vvxmyperapxwmcm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwp0j1vvxmyperapxwmcm.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, the report generator created files in which it shows the test coverage of your code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fff7y7jdqwia6w8cixyto.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fff7y7jdqwia6w8cixyto.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdskw0lx450yuj7f68t7.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdskw0lx450yuj7f68t7.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F181siwutiyb6mswc8cjz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F181siwutiyb6mswc8cjz.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftuwz8z2kml83k5q4sn5f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftuwz8z2kml83k5q4sn5f.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Whenever I can, I write an article to document my programs and processes so I don't forget. Here I have put some tools that I use in my personal projects and at work to improve the way I write my unit tests, and observe test coverage. I hope you enjoyed it and it helps you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://martinfowler.com/articles/mocksArentStubs.html" rel="noopener noreferrer"&gt;Martin Fowler - article MocksArentStubs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-code-coverage?tabs=windows" rel="noopener noreferrer"&gt;Documentation dotnet core unit testing code&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.jerriepelser.com/blog/creating-test-data-with-nbuilder-and-faker/" rel="noopener noreferrer"&gt;Jerrie Pelser&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/coverlet-coverage/coverlet" rel="noopener noreferrer"&gt;Coverlate&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://github.com/JessicaNathany/unit-test" rel="noopener noreferrer"&gt;Unit Test project in Github&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/moq/moq4/wiki/Quickstart" rel="noopener noreferrer"&gt;Mock4 Quickstart&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/nbuilder/nbuilder" rel="noopener noreferrer"&gt;NBuilder GitHub&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.nuget.org/packages/Faker.Net" rel="noopener noreferrer"&gt;Faker.NET&lt;/a&gt;&lt;br&gt;
&lt;a href="https://nbuilder.wordpress.com/documentation/" rel="noopener noreferrer"&gt;NBuilder documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?&amp;lt;br&amp;gt;%0AitemName=jsakamoto.xUnitCodeSnippets" rel="noopener noreferrer"&gt;XUnitCodeSnippets&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.nuget.org/packages/moq/" rel="noopener noreferrer"&gt;Link package Moq&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.nuget.org/packages/coverlet.msbuild/" rel="noopener noreferrer"&gt;coverlet.msbuild&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/coverlet-coverage/coverlet" rel="noopener noreferrer"&gt;coverlet-coverage&lt;/a&gt;&lt;/p&gt;

</description>
      <category>testing</category>
      <category>testdev</category>
      <category>dotnet</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Creating a simple project Web API with VSCode and Entity Framework</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sat, 13 Mar 2021 18:44:46 +0000</pubDate>
      <link>https://dev.to/jessicanathany/creating-a-simple-project-web-api-with-vscode-and-entity-framework-3jj1</link>
      <guid>https://dev.to/jessicanathany/creating-a-simple-project-web-api-with-vscode-and-entity-framework-3jj1</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Floo6ube013pjcyex8923.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Floo6ube013pjcyex8923.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this article, I will teach how to create API using Visual Studio Code. For this, you need to install VSCode at this &lt;a href="https://code.visualstudio.com/download" rel="noopener noreferrer"&gt;link&lt;/a&gt;. In this case, I'm using de NET version 5.0 but you can use the version .NET 3.0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;First step&lt;/strong&gt;: First of all, before installing the VSCode open the Windows Power Shell and select your directory, the directory where you will create this project API.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5uxnixore8tkae45bll.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr5uxnixore8tkae45bll.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Second step&lt;/strong&gt;: Write in the Power Shell the command &lt;strong&gt;dotnet new webapi -o&lt;/strong&gt; CourseApi. Where the syntax &lt;strong&gt;-o&lt;/strong&gt; is used for creating the directory for your project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2yeybsdy2jssph675p0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj2yeybsdy2jssph675p0.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Third step&lt;/strong&gt;: Open the Visual Studio Code and select your directory, the directory where we created the project Web API. Delete the files &lt;strong&gt;WeatherForecast.cs&lt;/strong&gt; and &lt;strong&gt;WeatherForecastController.cs&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydsfri8ivr7h2np7qb7h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fydsfri8ivr7h2np7qb7h.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we let´s create some folders and classes. Lets to create the folder: &lt;strong&gt;Model&lt;/strong&gt; and &lt;strong&gt;Data&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpge3lsbv71a913b0chqx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpge3lsbv71a913b0chqx.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We will create the classes Category and Course. How you can see in the image below, we will use the validation in properties using DataAnnotations in fields.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Category { Id, Title and CategoryName }&lt;/li&gt;
&lt;li&gt;Courses {Id, Name, Description, Price, CategoryId and Category }&lt;/li&gt;
&lt;li&gt;DataContext - for to work EntityFrameworkCore and We will using database in memory.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Category&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4nlti6p1z7uyuztaqkw.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4nlti6p1z7uyuztaqkw.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Course&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa44gba37uxkz54z7e3zy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa44gba37uxkz54z7e3zy.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now let´s create the class DataContext for we work with Entity Framework Core, so write the terminal console VSCode this command for add package EF in memory run &lt;strong&gt;dotnet add package Microsoft.EntityFrameworkCore.InMemory&lt;/strong&gt;, as in the image below. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffck6jhiyc5ok7x2c0u2o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffck6jhiyc5ok7x2c0u2o.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fourth Step&lt;/strong&gt;: Let´s configure the Startup class for we need to say for our application, that we are work with Entity Framework and configure. The services are registered &lt;strong&gt;ConfigureServices&lt;/strong&gt; and consumed throughout the application through dependency injection (di) or ApplicationServices.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi63p5jl63ajk7uc7wvmk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi63p5jl63ajk7uc7wvmk.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fifth Step&lt;/strong&gt; Let´s create the controllers, CartegoryController and CourseController.&lt;/p&gt;

&lt;p&gt;CategoryController&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fliy6goe4b98skpbpa8hd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fliy6goe4b98skpbpa8hd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sixth Step&lt;/strong&gt; Now we need to test our application.&lt;br&gt;
You can run your API with &lt;strong&gt;Ctrl+F5&lt;/strong&gt; and open the Postman and write the address &lt;a href="https://localhost:5001" rel="noopener noreferrer"&gt;https://localhost:5001&lt;/a&gt; (HTTPS)  or &lt;a href="https://localhost:5000" rel="noopener noreferrer"&gt;https://localhost:5000&lt;/a&gt;. This test we will testing the verbs POST and GET, but you can create other verbs for this application too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdnzv5qpw7thwkz71bnz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvdnzv5qpw7thwkz71bnz.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Test&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjpjqvk134ng6xa313h05.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjpjqvk134ng6xa313h05.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CoursesController&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F801do0znywjkjjcoyc6f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F801do0znywjkjjcoyc6f.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Test&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq3nzj5igrkoj1szehhd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq3nzj5igrkoj1szehhd.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6asuy2ma5msmgkynvlzt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6asuy2ma5msmgkynvlzt.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/JessicaNathany/api-core" rel="noopener noreferrer"&gt;Github project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;References&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.microsoft.com/pt-br/ef/core/dbcontext-configuration/" rel="noopener noreferrer"&gt;DataContext in portuguese&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/startup?view=aspnetcore-5.0" rel="noopener noreferrer"&gt;Startup Class in portuguese&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/pt-br/aspnet/core/fundamentals/startup?view=aspnetcore-5.0" rel="noopener noreferrer"&gt;Startup Class in english&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.microsoft.com/en-us/dotnet/api/system.data.entity.dbcontext?view=entity-framework-6.2.0" rel="noopener noreferrer"&gt;DataContext in english&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.entityframeworktutorial.net/entityframework6/dbcontext.aspx" rel="noopener noreferrer"&gt;Entity Framework tutorial&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>programming</category>
    </item>
    <item>
      <title>How the Amazon interview set me thinking about my soft skills</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sun, 27 Dec 2020 17:38:12 +0000</pubDate>
      <link>https://dev.to/jessicanathany/to-work-personal-development-and-to-earn-performance-341b</link>
      <guid>https://dev.to/jessicanathany/to-work-personal-development-and-to-earn-performance-341b</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizrprdmjxygq79kezhv3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizrprdmjxygq79kezhv3.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I decided to share here the experience I had when I did the job interview at Amazon. I didn't spend, but I have some learning about that. &lt;/p&gt;

&lt;p&gt;I thought about my career and my soft skills, and I don´t know if you will agree with me, but let´s go. The Amazon test that I did, I had problems to solve, I don´t know the details but that I remember, I had to use some kind of algorithm and I separated a time to study this algorithm, it´s wasn't easy for me. &lt;/p&gt;

&lt;p&gt;Anyway, I knew it would be difficult to move to that position, but I wanted to try. So I was studying for two days about the algorithm: BigO, Diijkastra, and QuickSort. I still didn't get the job, but I got the chance to try and about what I want.&lt;/p&gt;

&lt;p&gt;The biggest companies like Amazon, Google, Facebook, etc, most likely the tests for a job opportunity they are looking for people that have a domain in the algorithm, data structure because they look for minds that know how to solve complex problems. I'm not saying it is impossible, no I don´t. What I want to say is you need to prepare more if you want to work for the biggest companies technology.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Developers and Work&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Today we know how the IT area has a lot of job opportunities, has a lot of people changing the area, because the salary, opportunity, change etc.&lt;/p&gt;

&lt;p&gt;In my opinion, all programmers need to have some knowledge of algorithms and data structure. When I say algorithms and data structure I mean say basic knowledge for example BigO, Binary search algorithm, Recursion, QuickSort anyway to understand data structure and how things work underneath the framework.&lt;/p&gt;

&lt;p&gt;If you want to work with the biggest companies for example Google, Facebook, Amazon, LinkedIn whatever you need a broad domain of it. I thought a lot about the job test that I made the Amazon. I think why didn't I have this domain before? I don't know, maybe I think about the framework that made them work for us for underneath. Do not be a slave your framework!&lt;/p&gt;

&lt;p&gt;Okay, if you want only a great salary and do your job without worrying about it, you can to continue working normally. But, if you want to grow, you need to change your habits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My focus&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfcsoalzx0wlt8wm3pph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqfcsoalzx0wlt8wm3pph.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I decided to focus more on algorithms and data structure and better my skills. So I wrote some tips, my opinion and feel free to follow these tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;BigO Notation&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Binary Search&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recursion&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;QuickSort&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Understand how the framework works&lt;/li&gt;
&lt;li&gt;Some Knowledge of Architecture&lt;/li&gt;
&lt;li&gt;Some Knowledge Designer Patterns&lt;/li&gt;
&lt;li&gt;Some Knowledge Unit Test&lt;/li&gt;
&lt;li&gt;Some Knowledge DevOps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't be dependent on your framework, to understand how things work. You don't need to digest all the existing data structures, but you do need to know how things work under your framework.&lt;/p&gt;

</description>
      <category>developer</category>
      <category>skills</category>
      <category>algorithms</category>
      <category>programming</category>
    </item>
    <item>
      <title>Design Patterns, good habits and good sense!</title>
      <dc:creator>Jéssica Nathany</dc:creator>
      <pubDate>Sun, 26 Apr 2020 21:11:09 +0000</pubDate>
      <link>https://dev.to/jessicanathany/design-patterns-good-habits-and-good-sense-572m</link>
      <guid>https://dev.to/jessicanathany/design-patterns-good-habits-and-good-sense-572m</guid>
      <description>&lt;p&gt;This week we made a recording on the Café debug podcast about Design Patterns, good habits and good sense. The podcast is in Portuguese, but I dcided to write our conversation in English, of course just a summary.&lt;/p&gt;

&lt;p&gt;Let's start with Clean Code. The book Clean Code for some people is considered the Bible of developers, because it teaches some techniques to make yours code cleaner and more inteligible.&lt;/p&gt;

&lt;p&gt;But, why do we need to wirte code? Let´s see.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Because we want to deliver results faster;&lt;/li&gt;
&lt;li&gt;The requirements were changed during development;&lt;/li&gt;
&lt;li&gt;The code was bad and a given situation´s refactor is not a good idea;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And what changes in a programmer´s life when you write clean code?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Evolution as a developer: you make your code cleaner, to improve your skill;&lt;/li&gt;
&lt;li&gt;Produtivity increase: the team can have a produtivity increase and fast delivery;&lt;/li&gt;
&lt;li&gt;Clean, cohesive code: a code that everyone can understand where everyone talks the same "language" fallowing an standard;&lt;/li&gt;
&lt;li&gt;Reduce bugs: of course, the quantity of bugs redeced in your code the project and you have less time for correction.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's see some good practices that can be applied to clean code.&lt;/p&gt;

&lt;h1&gt;
  
  
  Meaningful Name
&lt;/h1&gt;

&lt;p&gt;Your method, class or variables need to have meaningful names. It's not important if your code name is long, but the name needs to be specific according to its functionality.&lt;/p&gt;

&lt;h1&gt;
  
  
  Comments are not very good!
&lt;/h1&gt;

&lt;p&gt;You cannot put comments in your code, I think it depends on the situation. Normally we can put comments when we are talking about the code version, or business roles or something specific. So, avoid comments in code.&lt;/p&gt;

&lt;h1&gt;
  
  
  Make your code elegant
&lt;/h1&gt;

&lt;p&gt;Try to make your code more elegant, write very well, think about someone that will read your code.&lt;/p&gt;

&lt;h1&gt;
  
  
  Last but not least: you need to test your code!
&lt;/h1&gt;

&lt;p&gt;Unit testing is important, very important and you know this. Unit testing prevents future bugs in your project, and tests will teach you if you're learning.&lt;br&gt;
But why don't we test it? Let's look at some reasons why some developers don't test their code.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A small amount of people understand that unit testing is very important&lt;/li&gt;
&lt;li&gt;Don't know how to test your code&lt;/li&gt;
&lt;li&gt;Short deadlines&lt;/li&gt;
&lt;li&gt;The project is not prepared to implement unit tests&lt;/li&gt;
&lt;li&gt;The pressure from the team or manager&lt;/li&gt;
&lt;li&gt;Bad architecture and "code smell" &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I will leave some links about documentation of the unit test on the Microsoft platform .Net and the documentation of the framework Moq.&lt;/p&gt;

&lt;p&gt;1- Best practices for unit testing with .NET Core e .NET Standard&lt;br&gt;
&lt;a href="https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-best-practices"&gt;https://docs.microsoft.com/pt-br/dotnet/core/testing/unit-testing-best-practices&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2- Framework Moq no Net&lt;br&gt;
&lt;a href="https://discoverdot.net/projects/moq"&gt;https://discoverdot.net/projects/moq&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3- Moq documentation&lt;br&gt;
&lt;a href="http://www.nudoq.org/#!/Projects/Moq"&gt;http://www.nudoq.org/#!/Projects/Moq&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/JessicaNathany/cafedebug"&gt;https://github.com/JessicaNathany/cafedebug&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4- Link to technology podcast Café debug&lt;br&gt;
&lt;a href="https://soundcloud.com/cafe-de-bug/40-design-patterns-e-boas-praticas-e-bom-senso"&gt;https://soundcloud.com/cafe-de-bug/40-design-patterns-e-boas-praticas-e-bom-senso&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5 - Code smell (Martin Fowler) &lt;br&gt;
&lt;a href="https://martinfowler.com/bliki/CodeSmell.html"&gt;https://martinfowler.com/bliki/CodeSmell.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;6 - Refactoring&lt;br&gt;
&lt;a href="https://refactoring.com/"&gt;https://refactoring.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>development</category>
    </item>
  </channel>
</rss>
