<?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: Emrah KONDUR</title>
    <description>The latest articles on DEV Community by Emrah KONDUR (@ekondur).</description>
    <link>https://dev.to/ekondur</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%2F2804621%2F1445bb5f-956b-4959-90f8-008c5bdd3390.jpeg</url>
      <title>DEV Community: Emrah KONDUR</title>
      <link>https://dev.to/ekondur</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ekondur"/>
    <language>en</language>
    <item>
      <title>Stop Watching Tutorials: Practice Your Way to C# Backend Interview Success</title>
      <dc:creator>Emrah KONDUR</dc:creator>
      <pubDate>Mon, 12 May 2025 11:38:30 +0000</pubDate>
      <link>https://dev.to/ekondur/stop-watching-tutorials-practice-your-way-to-c-backend-interview-success-4g4g</link>
      <guid>https://dev.to/ekondur/stop-watching-tutorials-practice-your-way-to-c-backend-interview-success-4g4g</guid>
      <description>&lt;p&gt;&lt;em&gt;Ace your next backend developer interview with realistic C# practice tests. No more video fatigue — just pure hands-on prep.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Let’s be honest. Most of us try to prepare for tech interviews by binge-watching hours of coding tutorials. We sit through intros, theory-heavy slides, and demo apps — only to realize later that we don’t actually feel ready when the real interview hits.&lt;/p&gt;

&lt;p&gt;If you’re aiming to become a &lt;strong&gt;C# Backend Developer&lt;/strong&gt;, what you need isn’t more passive content.&lt;br&gt;
You need &lt;strong&gt;targeted, hands-on practice.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;🚀 Why Practice Tests Work Better Than Long Video Courses&lt;br&gt;
You don’t learn to code by watching — you learn by solving. This is especially true when it comes to preparing for job interviews where performance matters.&lt;/p&gt;

&lt;p&gt;That’s why I created the &lt;strong&gt;C# Backend Developer Practice Test Course&lt;/strong&gt; on Udemy.&lt;/p&gt;

&lt;p&gt;This course skips the fluff and gives you &lt;strong&gt;direct access to real interview-style questions&lt;/strong&gt; that test your knowledge in a focused, efficient format.&lt;/p&gt;

&lt;p&gt;🔧 What You’ll Learn Through Practice&lt;br&gt;
This course is organized into six practical sections designed to mirror actual backend interview topics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;C# Fundamentals:&lt;/strong&gt;
Data types, control flow, OOP, LINQ, async/await, and more.&lt;/li&gt;
&lt;li&gt;Web API Development with ASP.NET Core
RESTful services, endpoint security, and best practices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Performance &amp;amp; Optimization:&lt;/strong&gt;
Memory management, multithreading, and high-performance code.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Entity Framework Core:&lt;/strong&gt;
Data modeling, querying, and performance tips using EF Core.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Testing and Debugging:&lt;/strong&gt;
Unit testing, mocking, and how to troubleshoot like a professional.
Each section includes multiple-choice, multiple-selection, and fill-in-the-blank questions, with explanations and code samples.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;🎯 Who Should Take This?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Junior to senior developers prepping for interviews&lt;/li&gt;
&lt;li&gt;Self-taught programmers looking for a structured review&lt;/li&gt;
&lt;li&gt;Anyone who learns better by doing than by watching&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you’re preparing for technical assessments, live coding interviews, or just brushing up on backend concepts, this is for you.&lt;/p&gt;

&lt;p&gt;🎁 Get Started for free&lt;br&gt;
Ready to ditch the hours of tutorials and start practicing smarter?&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.udemy.com/course/c-backend-developer-interview-preparation-practice-tests/?couponCode=2418CE3C5EC978478056" rel="noopener noreferrer"&gt;Here is a Udemy practice test you can have for free for a limited time.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s get you interview-ready — &lt;strong&gt;one question at a time.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>developer</category>
      <category>interview</category>
      <category>udemy</category>
      <category>backend</category>
    </item>
    <item>
      <title>Simplifying Chart.js Integration with RazorKit.ChartJs</title>
      <dc:creator>Emrah KONDUR</dc:creator>
      <pubDate>Mon, 03 Mar 2025 14:37:27 +0000</pubDate>
      <link>https://dev.to/ekondur/simplifying-chartjs-integration-with-razorkitchartjs-ao4</link>
      <guid>https://dev.to/ekondur/simplifying-chartjs-integration-with-razorkitchartjs-ao4</guid>
      <description>&lt;p&gt;When building dynamic web applications, visualizing data in the form of charts is often essential. Chart.js is one of the most popular JavaScript libraries for creating interactive charts. However, integrating it with Razor Pages in .NET applications can sometimes feel cumbersome, especially when you want to maintain a clean and fluent code structure.&lt;/p&gt;

&lt;p&gt;That’s where &lt;a href="https://ekondur.github.io/RazorKit/chartjs/" rel="noopener noreferrer"&gt;RazorKit.ChartJs&lt;/a&gt; comes in. This project simplifies the integration of Chart.js into Razor views, making it easier for developers to create powerful charts using a fluent builder pattern.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is RazorKit.ChartJs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;RazorKit.ChartJs&lt;/strong&gt; is a Razor helper designed to wrap Chart.js functionalities. It provides a streamlined way to create charts directly in your Razor views using a fluent API. Whether you’re using Line, Bar, or other chart types, you can easily construct the chart configurations in a concise and intuitive manner.&lt;/p&gt;

&lt;p&gt;This library was built with simplicity and flexibility in mind, allowing developers to focus more on their application’s functionality and less on manually managing JavaScript or chart configurations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fluent API&lt;/strong&gt;: Create Chart.js charts using a fluent builder pattern. Each part of the chart can be customized in a chainable, readable format, making your code cleaner and easier to understand.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seamless Integration&lt;/strong&gt;: RazorKit.ChartJs seamlessly integrates with Razor pages, which means you don’t need to manually write complex JavaScript code to configure your charts. This reduces the potential for errors and improves productivity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ease of Use&lt;/strong&gt;: You don’t need to be a JavaScript expert to use RazorKit.ChartJs. With a simple, intuitive API, creating charts becomes almost as easy as writing Razor syntax.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customization&lt;/strong&gt;: RazorKit.ChartJs exposes various customization options, such as chart types, data sets, labels, and more. You can easily tweak the look and feel of your charts without diving into complex JavaScript.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Use RazorKit.ChartJs
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Step 1: Install the Package
&lt;/h3&gt;

&lt;p&gt;You can easily add RazorKit.ChartJs to your project by installing it from NuGet. Simply run the following command in your NuGet Package Manager console:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Install-Package RazorKit.ChartJs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Alternatively, you can add it directly via the Package Manager GUI in Visual Studio.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: Create Your First Chart
&lt;/h3&gt;

&lt;p&gt;Once the package is installed, you’re ready to start creating charts. Let’s create a simple line chart in your Razor view. &lt;a href="https://ekondur.github.io/RazorKit/chartjs/datasets/bar/" rel="noopener noreferrer"&gt;See doc:&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="err"&gt;@&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;Html&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Chart&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"canvasId"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Labels&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"January"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"February"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"March"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"April"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"May"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"June"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"July"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Datasets&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ds&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
        &lt;span class="n"&gt;ds&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Bar&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Label&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Bar Chart"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Data&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;65&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;59&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;81&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;56&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;55&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;40&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;BackgroundColors&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"rgba(255, 99, 132, 0.2)"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"rgba(255, 159, 64, 0.2)"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;BorderWidth&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Options&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Scales&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AxisId&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"y"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;BeginAtZero&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Render&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.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%2F9fur7vmknixzgyljixfj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2F9fur7vmknixzgyljixfj.png" alt="Image description" width="787" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use RazorKit.ChartJs?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Cleaner Code&lt;/strong&gt;&lt;br&gt;
RazorKit.ChartJs minimizes the need for separate JavaScript files to handle chart creation. The fluent API allows for cleaner, more readable code, keeping everything in the Razor view.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Quick Setup&lt;/strong&gt;&lt;br&gt;
Unlike manually setting up Chart.js, where you need to define JavaScript arrays, options, and charts, RazorKit.ChartJs handles the heavy lifting for you. This means less configuration and faster development time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Consistency Across Projects&lt;/strong&gt;&lt;br&gt;
Once you’re familiar with the API, it becomes second nature to integrate and customize charts in any project. RazorKit.ChartJs ensures consistency, making it easier to maintain your codebase across multiple projects.&lt;/p&gt;

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

&lt;p&gt;Whether you’re a .NET developer looking to quickly add visualizations to your Razor Pages or someone who prefers a cleaner approach to integrating JavaScript libraries, RazorKit.ChartJs provides a simple and efficient way to work with Chart.js. It reduces the complexity of chart configuration and allows you to create interactive, dynamic charts with ease.&lt;/p&gt;

&lt;p&gt;Check out the &lt;a href="https://github.com/ekondur/RazorKit" rel="noopener noreferrer"&gt;RazorKit.ChartJs&lt;/a&gt; GitHub repository for full documentation, installation instructions, and more examples.&lt;/p&gt;

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

</description>
      <category>chartjs</category>
      <category>htmlhelper</category>
      <category>razor</category>
      <category>csharp</category>
    </item>
    <item>
      <title>RedisUI: A Simple Yet Powerful Redis Management Tool for .NET Developers</title>
      <dc:creator>Emrah KONDUR</dc:creator>
      <pubDate>Sun, 02 Feb 2025 12:22:58 +0000</pubDate>
      <link>https://dev.to/ekondur/redisui-a-simple-yet-powerful-redis-management-tool-for-net-developers-3mlg</link>
      <guid>https://dev.to/ekondur/redisui-a-simple-yet-powerful-redis-management-tool-for-net-developers-3mlg</guid>
      <description>&lt;p&gt;Redis is widely used for caching, session storage, and real-time data processing. However, managing Redis efficiently within .NET applications can be challenging without a proper UI. This is where &lt;a href="https://github.com/ekondur/RedisUI" rel="noopener noreferrer"&gt;RedisUI&lt;/a&gt; comes in — a lightweight yet powerful tool designed to simplify Redis management for .NET developers.&lt;/p&gt;

&lt;p&gt;In this article, we’ll explore RedisUI, how it integrates seamlessly into .NET web applications, and why you should consider adding it to your development toolkit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is RedisUI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/ekondur/RedisUI" rel="noopener noreferrer"&gt;RedisUI&lt;/a&gt; is an open-source, middleware-based Redis management tool that provides a web-based UI for inspecting and managing Redis databases. Unlike traditional Redis clients that require separate installation, RedisUI is embedded directly into your .NET application, allowing you to interact with Redis in real-time through a user-friendly interface.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Easy Integration:&lt;/strong&gt; Plug-and-play middleware that requires minimal setup.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time Monitoring&lt;/strong&gt;: View keys, values, and expiration times dynamically.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Search and Filtering&lt;/strong&gt;: Easily find specific keys in large datasets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CRUD Operations&lt;/strong&gt;: Add, edit, and delete keys directly from the UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lightweight and Secure&lt;/strong&gt;: Only accessible in the development or admin environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;How to Install RedisUI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Setting up RedisUI in your .NET web application is straightforward. Follow these steps to get started:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Step 1: Install the NuGet Package&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Add RedisUI to your project by running the following command in the Package Manager Console:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;Install-Package RedisUI
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 2: Configure Middleware&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Modify your Startup.cs (for .NET Core) or Program.cs (for .NET 6/7/8…) to include RedisUI middleware:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;RedisUI&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;UseRedisUI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Step 3: Access RedisUI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once the application runs, navigate to &lt;em&gt;/redis&lt;/em&gt; in your browser, and you’ll have a fully functional Redis management interface and statistics.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.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%2Fk82pybb5r5n6nliz5vg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.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%2Fk82pybb5r5n6nliz5vg8.png" alt="Image description" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give RedisUI a try by visiting its &lt;a href="https://github.com/ekondur/RedisUI" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;, and feel free to contribute to its development. Happy coding!&lt;/p&gt;

</description>
      <category>redis</category>
      <category>mvc</category>
      <category>dotnet</category>
      <category>csharp</category>
    </item>
  </channel>
</rss>
