.NET ve Avalonia UI ile Kurumsal Düzeyde Dosya Düzenleyici Oluşturma

.NET ve Avalonia UI ile Kurumsal Düzeyde Dosya Düzenleyici Oluşturma

Motivasyon

Hepimiz oradaydık: Dijital bir ormana benzeyen İndirilenler klasörü. Basit bir senaryodan daha fazlasını oluşturmak istedim; Dosya organizasyonunu profesyonelce gerçekleştiren, sağlam, sessiz ve kurumsal düzeyde bir yardımcı program istiyordum.

SmartFoldering'e girin.

Screenshot

Teknoloji Yığını

Çerçeve: .NET Core
Kullanıcı Arayüzü Çerçevesi: Avalonia Kullanıcı Arayüzü (platformlar arası birinci sınıf his için)
Mimari: CommunityToolkit.Mvvm kullanılarak katı MVVM
Günlüğe kaydetme: Serilog (Dosya Havuzları)
Serileştirme: System.Text.Json (Async ve kültürden bağımsız)

Gerçek Dünyadaki Mühendislik Sorunlarını Çözmek

Bir dosya düzenleyiciyi "Kurumsal düzeyde" yapan nedir? Uç vakaları bu şekilde ele alıyor.

  1. "Büyük Dosya" Sorunu (Yarış Koşulları)

FileSystemWatcher ile bir dosyayı algılamak kolaydır. Peki ya dosya hala indiriliyorsa veya kopyalanıyorsa? Akıllı bir Yeniden Deneme ve Kilit İşleme mekanizması uyguladım. Motor, dosyayı taşımayı denemeden önce dosyanın işletim sistemi tarafından tamamen serbest bırakılmasını bekler, böylece çökmeler ve veri kaybı önlenir.

  1. Güvenilirlik için Atomik Kayıtlar Beklenmedik güç kayıpları sırasında JSON bozulmasını önlemek için SmartFoldering, Atomic Saves'i kullanır. Kullanıcı ayarları önce geçici bir dosyaya yazılır, ardından değiştirilir; böylece kurallarınızın her zaman güvende olması sağlanır.

  2. Sessiz ve Performanslı Arka Plan İşlemleri
    Sistem tepsisinde sorunsuz bir şekilde çalışan uygulama, arka plan kaynaklarının asla birden fazla örnek tarafından israf edilmemesini sağlamak için Tek Örnek (Mutex) modelini kullanır.

Premium UI/UXI, dikkat dağıtmayan, birinci sınıf koyu gri tonlamalı bir tasarım seçti. Amaç, gösterişli bir oyuncak değil, üst düzey bir iş istasyonunun yerel bir parçası gibi hissettiren bir araç yapmaktı.

Bir Bakışta Temel Özellikler

  • Gerçek Zamanlı İzleme: FileSystemWatcher aracılığıyla anında yönlendirme.
  • Akıllı Kural Motoru: Uzantılara (.pdf, .jpg) veya anahtar kelimelere göre filtreleyin.
  • Önce Tepsi Tasarımı: Tepsiyi küçültür ve Kayıt Defteri aracılığıyla Windows Başlatmayı destekler.
  • Profesyonel Günlük Kaydı: AppData'da tam tanılama oturum açıldı.

Açık Kaynak ve Katkılar

Bu projeyi açık kaynak yapmaya karar verdim. İster çalışma alanınızı temizlemek ister MVVM mimarisine dalmak için kullanmak isteyin, depoya göz atmaktan çekinmeyin!

GitHub Deposu: https://github.com/furkiak/SmartFoldering

Düşüncelerinizi duymayı merak ediyorum! Günlük iş akışınızda dosya organizasyonunu nasıl gerçekleştiriyorsunuz? Yorumlarda tartışalım!