Mephistopheles
Hectopat
Selamlar arkadaşlar, yaklaşık 3 haftadır C# öğreniyorum, YouTube’da, Udemy’de bir sürü video bitirdim. Artık öğreniyorum modundan çıkıp yapıyorum moduna geçme zamanı geldi diye düşündüm.
İlk projemi bitirdim, sizin de görüşlerinizi almak istiyorum.
Neler yaptım?
Çalışan özellikler:
Eksikler sizden fikir bekliyorum:
İlk projemi bitirdim, sizin de görüşlerinizi almak istiyorum.
Neler yaptım?
- Tamamen C# Windows Forms + .NET 8
- SQLite veritabanı (tek dosya, kurulum falan yok)
- Entity Framework Core (Code First + migration’lar)
- MaterialSkin.2 ile baya şık bir tema (karanlık mod bağımlısıyım)
- Arada async/await, LINQ, custom control falan da kullandım (kendimi geliştirmek için)
Çalışan özellikler:
- Görev ekle, sil, düzenle, tamamla işaretle.
- tarih, öncelik (kırmızı-sarı-yeşil), kategori
- Güçlü arama (başlık + açıklama anında filtreliyor)
- Zengin metin not defteri (renkli yazı, kalın, link, her şey var)
- Tek tuşla karanlık ↔ açık tema değiştirme.
- Veriler TaskFlow.db dosyasında, başka bilgisayara atınca direkt çalışıyor
C#:
// Görevleri async yükleme + arama (takılma sıfır)
private async Task LoadTasksAsync(string search = "")
{
await using var ctx = new AppDbContext();
var query = ctx.Tasks.AsQueryable();
if (!string.IsNullOrWhiteSpace(search))
query = query.Where(t => t.Title.Contains(search, 1) ||
t.Description.Contains(search));
var tasks = await query
.OrderBy(t => t.IsCompleted)
.ThenByDescending(t => t.Priority)
.ThenBy(t => t.DueDate ?? DateTime.MaxValue)
.ToListAsync();
flowLayoutPanel.Controls.Clear();
foreach (var t in tasks)
flowLayoutPanel.Controls.Add(new TaskCard(t) { Width = flowLayoutPanel.Width - 25 });
}
Kod:
C#:
// Tema değiştirme (tek satırla karanlık/açık geçiş)
private void btnTheme_Click(object sender, EventArgs e)
{
var m = MaterialSkinManager.Instance;
m.Theme = m.Theme == MaterialSkinManager.Themes.DARK
? MaterialSkinManager.Themes.LIGHT
: MaterialSkinManager.Themes.DARK;
}
C#:
// Not defteri kaydetme (RTF formatında, format kaybolmuyor)
private void btnSaveNote_Click(object sender, EventArgs e)
{
File.WriteAllText("notes.rtf", richTextBoxNote.Rtf);
MessageBox.Show("Not kaydedildi kanka!", "Başarılı");
}
Eksikler sizden fikir bekliyorum:
- Sistem tepsisinde hatırlatma bildirimi nasıl yaparım?
- Veritabanını şifrelesem mi? (DPAPI falan?)
- Google Calendar senkronu eklesem çok mu abartı olur?
- Bu projeyi ileride WPF veya MAUI’ye taşısam mantıklı mı?
- Performans olarak 5000 görev açtım, takılmadı normal mi sizce?
Son düzenleyen: Moderatör: