<?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: MUHAMMED YILMAZ</title>
    <description>The latest articles on DEV Community by MUHAMMED YILMAZ (@muhyilmaz).</description>
    <link>https://dev.to/muhyilmaz</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%2F552822%2F229239ab-8147-4f54-ae20-607a07961ba7.png</url>
      <title>DEV Community: MUHAMMED YILMAZ</title>
      <link>https://dev.to/muhyilmaz</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/muhyilmaz"/>
    <language>en</language>
    <item>
      <title>Best explain for Auditing in dotnet EF Core</title>
      <dc:creator>MUHAMMED YILMAZ</dc:creator>
      <pubDate>Tue, 23 Sep 2025 14:00:14 +0000</pubDate>
      <link>https://dev.to/muhyilmaz/best-explain-for-auditing-in-dotnet-ef-core-19g0</link>
      <guid>https://dev.to/muhyilmaz/best-explain-for-auditing-in-dotnet-ef-core-19g0</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/hootanht/comprehensive-guide-to-implementing-audit-logging-in-net-with-ef-core-interceptors-1e83" class="crayons-story__hidden-navigation-link"&gt;Comprehensive Guide to Implementing Audit Logging in .NET with EF Core Interceptors&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/hootanht" class="crayons-avatar  crayons-avatar--l  "&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%2Fuser%2Fprofile_image%2F834733%2Fbda8326c-40cc-441f-8211-b5d61ef518eb.jpg" alt="hootanht profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/hootanht" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Hootan Hemmati
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Hootan Hemmati
                
              
              &lt;div id="story-author-preview-content-2242418" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/hootanht" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&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%2Fuser%2Fprofile_image%2F834733%2Fbda8326c-40cc-441f-8211-b5d61ef518eb.jpg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Hootan Hemmati&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/hootanht/comprehensive-guide-to-implementing-audit-logging-in-net-with-ef-core-interceptors-1e83" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jan 26 '25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/hootanht/comprehensive-guide-to-implementing-audit-logging-in-net-with-ef-core-interceptors-1e83" id="article-link-2242418"&gt;
          Comprehensive Guide to Implementing Audit Logging in .NET with EF Core Interceptors
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/auditlog"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;auditlog&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/csharp"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;csharp&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/efcore"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;efcore&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/dotnet"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;dotnet&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/hootanht/comprehensive-guide-to-implementing-audit-logging-in-net-with-ef-core-interceptors-1e83" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;11&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/hootanht/comprehensive-guide-to-implementing-audit-logging-in-net-with-ef-core-interceptors-1e83#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>auditlog</category>
      <category>csharp</category>
      <category>efcore</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>How to develop a web project with local files?</title>
      <dc:creator>MUHAMMED YILMAZ</dc:creator>
      <pubDate>Mon, 24 Mar 2025 07:58:58 +0000</pubDate>
      <link>https://dev.to/muhyilmaz/how-to-develop-a-web-project-with-local-files-197n</link>
      <guid>https://dev.to/muhyilmaz/how-to-develop-a-web-project-with-local-files-197n</guid>
      <description>&lt;p&gt;Hello all, &lt;/p&gt;

&lt;p&gt;When you develop a web project in your environment and you try to work with iframes for showing some file/files, maybe you get this error:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not allowed to load local resource: XXXPath.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To prevent this, you may use your project local directory. But if you do not want this, another way possible:&lt;/p&gt;

&lt;h2&gt;
  
  
  To create a mini http server with python
&lt;/h2&gt;

&lt;p&gt;To do this you should have python installed in your environment.&lt;/p&gt;

&lt;p&gt;If you installed python just run this command in your file directory:&lt;br&gt;
&lt;code&gt;python -m http.server 8000&lt;/code&gt;&lt;br&gt;
Herewith, you can access your file via a http local url. Like here:&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%2Fodrlnnjrnwtpfqjt2na9.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%2Fodrlnnjrnwtpfqjt2na9.png" alt="Image description" width="497" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Using ClamAV with .Net Core</title>
      <dc:creator>MUHAMMED YILMAZ</dc:creator>
      <pubDate>Wed, 12 Jul 2023 05:04:54 +0000</pubDate>
      <link>https://dev.to/muhyilmaz/using-clamav-with-dotnet-core-4ci6</link>
      <guid>https://dev.to/muhyilmaz/using-clamav-with-dotnet-core-4ci6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;:&lt;br&gt;
In this article, we'll explore how to scan files for viruses using the ClamAV REST API in a .NET Core application. We'll leverage Docker to run the ClamAV service and utilize the System.Net.Http.HttpClient library for making HTTP requests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;:&lt;br&gt;
Before getting started, ensure the following requirements are met:&lt;/p&gt;

&lt;p&gt;Dotnet Core is installed on your machine.&lt;br&gt;
Docker Desktop or Docker Engine is installed and running.&lt;br&gt;
Pull the ClamAV REST API Docker image by following the instructions in the &lt;a href="https://github.com/ajilach/clamav-rest" rel="noopener noreferrer"&gt;clamav-rest GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;FileModel Class&lt;/strong&gt;:&lt;br&gt;
To represent the file we want to scan, we'll create a FileModel class with the following properties:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;public class FileModel
 {
     public string FileName { get; set; }
     public byte[] FileBytes { get; set; }
     public string FileContentType { get; set; }
 }
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Sending the File for Scanning:&lt;/strong&gt;
To send a file for scanning, follow these steps:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Get the file you want to scan as a byte array. You can use the File.ReadAllBytes method to read the file contents.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;FileModel fileModel = new FileModel
{
    FileName = "example.txt",
    FileBytes = File.ReadAllBytes("path/to/file"),
    FileContentType = "text/plain"
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a ByteArrayContent using the file bytes:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var contentByte = new ByteArrayContent(fileModel.FileBytes);

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Create a &lt;code&gt;MultipartFormDataContent&lt;/code&gt; and add the ByteArrayContent to it:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var multiContent = new MultipartFormDataContent
{
    { contentByte, "file", fileModel.FileName }
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Sending the Request:&lt;br&gt;
Once we have the file prepared, we can send a request to the ClamAV scanner using the &lt;code&gt;HttpClient&lt;/code&gt; class:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;using (var httpClient = new HttpClient())
{
    using (var content = new MultipartFormDataContent())
    {
        var fileContent = new ByteArrayContent(fileModel.FileBytes);
        content.Add(fileContent, "file", fileModel.FileName);

        var response = httpClient.PostAsync("http://localhost:9000/scan", content).Result;
        if (response.IsSuccessStatusCode)
        {
            var responseContent = response.Content.ReadAsStringAsync().Result;
            Console.WriteLine(responseContent);
        }
        else
        {
            Console.WriteLine("File request did not complete: " + response.StatusCode);
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;:&lt;br&gt;
In this article, we've covered the process of scanning files using the ClamAV REST API in a .NET Core application. By leveraging Docker to run the ClamAV service and utilizing the &lt;code&gt;HttpClient&lt;/code&gt; library, we can easily integrate virus scanning capabilities into our applications.&lt;/p&gt;

&lt;p&gt;Remember to handle exceptions and implement error handling according to your application's requirements. This will ensure a robust and reliable file scanning process.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
