<?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: Clover Luo</title>
    <description>The latest articles on DEV Community by Clover Luo (@clover_luo).</description>
    <link>https://dev.to/clover_luo</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%2F2157479%2F32493d8d-c047-4339-ae4b-e19aea573e11.jpg</url>
      <title>DEV Community: Clover Luo</title>
      <link>https://dev.to/clover_luo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/clover_luo"/>
    <language>en</language>
    <item>
      <title>Building a User Registration System in .NET Core &amp; C#</title>
      <dc:creator>Clover Luo</dc:creator>
      <pubDate>Sat, 15 Feb 2025 14:33:59 +0000</pubDate>
      <link>https://dev.to/clover_luo/building-a-user-registration-system-in-net-core-c-ogg</link>
      <guid>https://dev.to/clover_luo/building-a-user-registration-system-in-net-core-c-ogg</guid>
      <description>&lt;p&gt;🚀 &lt;strong&gt;My journey into ASP.NET Core: Implementing a User Registration System&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;Hey Devs! 👋 I'm learning .NET Core and C# and recently built a user registration system for my web application. I wanted to share my experience and how I implemented the &lt;code&gt;Register&lt;/code&gt; method using ASP.NET Core Identity and Entity Framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  🔧 Technologies Used
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;ASP.NET Core MVC&lt;/strong&gt; for building the web application&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entity Framework Core&lt;/strong&gt; for database management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL Server&lt;/strong&gt; for user authentication storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ASP.NET Identity&lt;/strong&gt; for managing users securely&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  📌 Implementing the Register Method
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Create the &lt;code&gt;RegisterViewModel&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
First, I created a view model to handle user registration inputs.&lt;br&gt;
This ensures validation rules like required fields, email format, and password matching.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 2: Register Method in &lt;code&gt;AccountController&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
Now, let's implement the registration logic inside &lt;code&gt;AccountController.cs&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Validates the user input&lt;/li&gt;
&lt;li&gt;Creates a new user in the database using UserManager&lt;/li&gt;
&lt;li&gt;Redirects to the login page upon successful registration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Step 3: Register View in &lt;code&gt;Register.cshtml&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;
The frontend part is a simple HTML form in Register.cshtml that posts data to the Register method.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Uses Razor syntax to bind form inputs to RegisterViewModel&lt;/li&gt;
&lt;li&gt;Implements validation messages via asp-validation-for&lt;/li&gt;
&lt;li&gt;Submits form data to the Register method in AccountController.cs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  💡 What I Learned
&lt;/h2&gt;

&lt;p&gt;✅ How to validate user input in ASP.NET Core&lt;br&gt;
✅ How to register users using UserManager&amp;lt;&amp;gt;&lt;br&gt;
✅ How to secure passwords with ASP.NET Identity&lt;br&gt;
✅ How to connect the frontend with backend logic&lt;/p&gt;

&lt;h2&gt;
  
  
  🌍 Full Source Code
&lt;/h2&gt;

&lt;p&gt;You can find the full source code in my GitHub repo:&lt;br&gt;
🔗 &lt;a href="https://github.com/cloverluo112/WebApplication1" rel="noopener noreferrer"&gt;https://github.com/cloverluo112/WebApplication1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🚀 Next Steps&lt;br&gt;
In my next post, I'll cover login authentication and securing user sessions with JWT tokens! Stay tuned! 😃&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you have any questions or improvements! 🙌&lt;/p&gt;

</description>
      <category>aspnet</category>
      <category>csharp</category>
      <category>dotnet</category>
      <category>sql</category>
    </item>
    <item>
      <title>Learning DTOs, Controllers, and Services in C# .NET: My Journey with the task app 🚀</title>
      <dc:creator>Clover Luo</dc:creator>
      <pubDate>Tue, 08 Oct 2024 12:50:32 +0000</pubDate>
      <link>https://dev.to/clover_luo/learning-dtos-controllers-and-services-in-c-net-my-journey-with-the-task-app-3mk3</link>
      <guid>https://dev.to/clover_luo/learning-dtos-controllers-and-services-in-c-net-my-journey-with-the-task-app-3mk3</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;As part of my role in the project introduced before, I recently completed an exciting task that pushed me to dive deeper into C# .NET development. This task involved creating a new DTO (Data Transfer Object), writing a controller, and implementing a service layer to return all label data using an HTTP GET endpoint. It was a great learning experience, and I’d love to share what I learned!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Task Breakdown
&lt;/h2&gt;

&lt;p&gt;The task I worked on involved the following steps:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a new endpoint that returns all label data with the correct structure.&lt;/li&gt;
&lt;li&gt;Implement a service layer to handle the query logic. At this stage, mock data was used if the previous work on labels wasn't finished yet.&lt;/li&gt;
&lt;li&gt;Test the endpoint using Swagger to ensure everything was working as expected.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What I Learned: The Power of DTOs, Controllers, and Services
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;DTO (Data Transfer Object): One of the first things I did was create a DTO that matched the structure of the Label entity. The DTO is used to ensure that only the necessary data is passed between layers of the application. This step helped me understand how to keep the application’s internal data structure clean and optimized for performance.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Controller: Next, I wrote a new controller that would handle HTTP requests. The controller is responsible for routing the request to the correct service method. I learned how to define GET endpoints and handle responses in a standardized way.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Service Layer: The service layer is where the actual business logic lives. In this case, I implemented a service that queries the database for all labels, but during development, I used mock data to test the logic. This approach allowed me to build and test independently of the database.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Testing with Swagger
&lt;/h2&gt;

&lt;p&gt;Once everything was set up, I tested the new endpoint using Swagger, which provided an easy way to visualize and interact with the API. It was a great tool to check if my controller and service layer were correctly implemented. After running the API locally, I could see the expected label data being returned successfully!&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;DTOs are crucial for keeping data clean and secure when it travels between layers of an application.&lt;/li&gt;
&lt;li&gt;Controllers help manage routing and make sure HTTP requests are directed to the right place.&lt;/li&gt;
&lt;li&gt;Service layers encapsulate business logic, making the application modular and easy to maintain.&lt;/li&gt;
&lt;li&gt;Testing with Swagger is an easy and efficient way to validate endpoints and ensure that the API behaves as expected.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;This task was a great learning experience, and I’m excited to continue building more features for the project. Writing DTOs, controllers, and service layers has given me a much better understanding of how a full-stack application works, and I’m looking forward to applying these skills in future projects.&lt;/p&gt;

&lt;p&gt;I’ll continue documenting my learning journey, so stay tuned for more updates!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>My First Day Writing C# Code: Implementing Labels in Blotz Task App 🎉</title>
      <dc:creator>Clover Luo</dc:creator>
      <pubDate>Fri, 04 Oct 2024 15:13:56 +0000</pubDate>
      <link>https://dev.to/clover_luo/my-first-day-writing-c-code-implementing-labels-in-blotz-task-app-me2</link>
      <guid>https://dev.to/clover_luo/my-first-day-writing-c-code-implementing-labels-in-blotz-task-app-me2</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;Today I want to take a moment to reflect on the first day I wrote C# code and implemented my very first PBI (Product Backlog Item) for the Blotz Task App. The task was to create a label entity, which would allow tasks to be categorized, similar to how platforms like Todoist handle tags. This was a great introduction to backend development in C#, and I learned a lot from the process!&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Implemented
&lt;/h2&gt;

&lt;p&gt;Here’s a summary of what I worked on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Label Entity&lt;/strong&gt;: I created a &lt;code&gt;Label&lt;/code&gt; class that will store labels for categorizing tasks. This involved setting up properties like &lt;code&gt;Name&lt;/code&gt;, &lt;code&gt;Color&lt;/code&gt;, and &lt;code&gt;Description&lt;/code&gt; for each label.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Database Integration&lt;/strong&gt;: After setting up the label entity, I integrated the class into the DbContext by adding some mock data. This allowed me to work with sample labels in the system.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Migration&lt;/strong&gt;: I also ran my first &lt;strong&gt;data migration&lt;/strong&gt; to ensure that the label table and its properties were correctly reflected in the database. Learning how to run migrations and manage schema updates was a big step in my backend learning journey.&lt;/li&gt;
&lt;/ul&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%2Fl881o25qpprsxm5isbar.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%2Fl881o25qpprsxm5isbar.png" alt="Image description" width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;Through this experience, I learned some valuable backend development skills:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Entity Framework Core&lt;/strong&gt;: I got hands-on experience with Entity Framework Core, understanding how entities are mapped to database tables and how relationships are defined.&lt;/li&gt;
&lt;li&gt;Data Migrations: I learned how to run data migrations and update the database schema with new entities. This was crucial for ensuring my changes were properly applied in the database.&lt;/li&gt;
&lt;li&gt;Mock Data: Adding mock data to the DbContext was a fun way to see how my label entity would behave in the application. This helped me visualize how the app would categorize tasks using labels.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, this experience gave me a deeper understanding of how backend systems work and how data is handled behind the scenes. I'm excited to continue learning and growing as I take on more backend tasks in this project!&lt;/p&gt;

&lt;p&gt;Stay tuned for more updates as I continue to document my learning journey!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>dotnet</category>
      <category>csharp</category>
    </item>
    <item>
      <title>Journey into Backend Development with the Blotz Task App 🚀</title>
      <dc:creator>Clover Luo</dc:creator>
      <pubDate>Thu, 03 Oct 2024 16:51:05 +0000</pubDate>
      <link>https://dev.to/clover_luo/journey-into-backend-development-with-the-blotz-task-app-5go0</link>
      <guid>https://dev.to/clover_luo/journey-into-backend-development-with-the-blotz-task-app-5go0</guid>
      <description>&lt;p&gt;Hey Dev Community! 👋&lt;/p&gt;

&lt;p&gt;I’m excited to share the start of my journey into backend development and SQL through a new project I’ve recently kicked off called Blotz Task App. This group project is an awesome opportunity for me to dive deeper into full-stack development, and I’m taking the lead on backend development and database management. You can check out the project here on &lt;a href="https://github.com/Ben0189/Blotz-Task-App" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Why the Blotz Task App?
&lt;/h2&gt;

&lt;p&gt;I’ve always been passionate about learning all aspects of web development, and while I’ve spent a good amount of time working on frontend projects (JavaScript, React, etc.), I wanted to expand my horizons by getting more hands-on with the backend and working closely with SQL databases. Blotz Task App is a task management tool that aims to help users efficiently organize and track their tasks. For me, this project is more than just a tool—it’s a learning experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Role: Backend &amp;amp; Database
&lt;/h2&gt;

&lt;p&gt;As the one leading the backend, I’m responsible for ensuring that the data flows smoothly between the frontend and the database. I’ve been diving into C# and .NET Core, which has been an exciting challenge so far. I’m also getting my hands dirty with SQL Server, learning to design and optimize a scalable database schema that can handle user-generated tasks and interactions efficiently.&lt;/p&gt;

&lt;p&gt;I’ve always believed that backend development is like the backbone of any great application—without a solid foundation, the entire app can fall apart. My goal for this project is to make sure we have a backend that is robust, scalable, and reliable.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I’ve Learned So Far
&lt;/h2&gt;

&lt;p&gt;In just the short time I’ve been working on this project, I’ve already picked up a ton of new knowledge about backend systems and database management. Here are a few key takeaways:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Understanding RESTful APIs: I’m building REST APIs to ensure smooth communication between the frontend and the database, which has given me a clearer understanding of how different parts of an app connect.&lt;/li&gt;
&lt;li&gt;SQL Query Optimization: I’ve started learning how to optimize SQL queries for better performance, especially when working with large datasets. I’m finding this part really fascinating because it directly impacts the app’s speed and responsiveness.&lt;/li&gt;
&lt;li&gt;C# and .NET Core: I’m still deepening my understanding of C# and .NET Core, which have proven to be powerful tools for backend development. The learning curve has been steep, but that’s what makes it so rewarding!&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Next Steps &amp;amp; Learning Goals
&lt;/h2&gt;

&lt;p&gt;This is just the beginning! As I continue working on this project, I plan to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explore Entity Framework Core for database migrations and optimizations.&lt;/li&gt;
&lt;li&gt;Experiment with Azure SQL Database for deploying a cloud-based solution.&lt;/li&gt;
&lt;li&gt;Keep refining my backend architecture for maximum efficiency and scalability.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Full-Stack Development Passion
&lt;/h2&gt;

&lt;p&gt;Although I’m focusing on backend and databases for now, I’m deeply passionate about full-stack development. Understanding how every part of an application works—both frontend and backend—is what drives me. I believe that being well-versed in both areas will allow me to build more complete and cohesive applications in the future.&lt;/p&gt;

&lt;p&gt;I’ll continue to document my learning process and challenges in this project. If you’re interested in following along or contributing, feel free to check out our repository here. Stay tuned for more updates!&lt;/p&gt;

&lt;p&gt;Happy coding! ✌️&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>dotnet</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
