Browsed by
Etiket: c#

Entity Framework Core, SQLite ve Winforms ile Örnek Uygulama

Entity Framework Core, SQLite ve Winforms ile Örnek Uygulama

Microsoft 7 Ekim 2016 tarihinde nihayet Entity Framework Core‘u yayınladı. (Aslında yaz aylarında duyurulmuştu fakat döküman ve kararlı sürüme bu tarihte imza atmış). Ben bu konuda Türkçe bir makale, blog yazısı bulamadımgömülü veritabanı ile C# Winforms uygulaması yazmak istiyorsanız bu yazıyı mutlaka okumadan geçmeyin.

Entity Framework Core (EF Core) için her ne kadar Entity Framework 7 deseler de aslında bu doğru bir kullanım değil. SQLite gibi diğer veritabanlarına önceki sürümlerde doğrudan desteği yoktu, SQLite tarafından çıkarılan kütüphaneleri referans alıyorduk ve çalışan bir konfigürasyonu kurana kadar canımız çıkıyordu. EF Core: resmi açıklamasına göre hafif, genişletilebilir ve EF’nin cross-platformlar için olan versiyonudur.  EF’ye göre bir çok iyileştirme, yenilik içermekte ve daha fazla platformda desteklenmektedir. EF Core yeniden kodlanmış bu yüzden v1 olarak çıkmıştır. Ayrıca Entity Framework 6.x desteklenmeye devam edecektir. EF Core için EF 7 demek bu yüzden pek doğru olmayacağını düşünüyorum.

Özetle EF Core:
* Tüm .NET uygulamaları (Console, Asp.NET, WinForms, WPF), Mac ve Linux uygulamaları (Mono), UWP (Universal Windows Platform), Windows Phone ve Windows Store uygulamaları ile çalışabilmektedir.  (*)
* SQL Server, Azure Table Storage, SQLite, In Memory, SQL Server Compact, Postgre SQL, IBM Data Servers ve en önemlilerden biri NoSQL ile veri tabanı sistemlerini desteklemektedir.  (*)
* Benim beklediğim en önemlisi, Automatic migration desteği vardır. (console ekranından modelinizi, veritabanı şemasına çevirebilirsiniz).

Performans, benchmark grafiklerini ekleyerek konuyu dağıtmak istemiyorum. Ama 6 kata kadar hızlı olduğu söyleniyor. Daha önce kendi blogumda yazdığım entity frameworkteki kütüphaneyi kullanmak arasında müthiş bir kolaylık ve performans artışı olduğunu söyleyebilirim.

Yazımının devamını //yorumsatırında okuyabilirsiniz.

C# Winforms SQLite Kullanımı (VS 2013/VS 2015)

C# Winforms SQLite Kullanımı (VS 2013/VS 2015)

Merhaba arkadaşlar, bu başlıkta SQLite ile C#/Entity Framework çatısında Winforms uygulama geliştirmek için gerekli olan yapılandırmaları anlatacağım. Bu konuda pek çok kaynak var fakat VS 2013 ve VS 2015 kullanan yazılımcılar için SQLite’a giriş zorlu oluyor. Gömülü veritabanı sistemlerinde sorun yaşayan çok kişi var umarım yardımcı olur.

Nedir SQLite?
SQLite, en çok dağıtılan ve tavsiye edilen, tamamen C/C++ programlama dilleriyle geliştirilmiş açık kaynak SQL veritabanı motoru. Günümüzde mobil cihazlar ile kullanımı çok yaygınlaştı.

C# Winforms uygulama geliştirmede kullanılabilecek gömülü veritabanı sistemlerinin çoğunu denedim. (SQL Compact CE, LocalDB, SQL Server Lite…) Yaklaşık 1 yıl boyunca SQL Compact CE 4.0 kullanıyordum fakat bazı kullanıcılarımda sorunlar yaşamaya başlayınca farklı bir arayış içine girdim. C# Winforms gömülü SQL veritabanı motorları arasında kesinlikle en başarılı SQLite. (karşılaştırma tablosu). Kullanıcıya ekstra bir patch/güncelleştirme yükletme yükümlülüğü yok. (.Net Framework dışında)

Veri miktarı çok büyükse NoSQL tercih etmek mantıklı olacaktır, fakat küçük boyutlu masaüstü uygulamalar için SQLite yeterli.

En çok sevdiğim özellikleri

  • Kullanıcının ekstra bir paket yüklemesine gerek yok,
  • En kolay şekilde AutoIncrement primary key sütun tanımlayabilme,
  • Güncelleme yapıyorsak, yeni bir versiyonda farklı bir tablo yapılandırması gerekiyorsa birkaç satır kod ile tablo üzerinde ve model üzerinde değişikliğe izin vermekte. (Diğer gömülüler’de görmedim). En iyi avantajı bu.
  • Ücretsiz, güvenli, popüler.

Visual Studio 2015 için SQLite Kütüphanesi ve Eklentileri
SQLite resmi web sitesinden “SQLite sqlite-netFx46-setup-bundle-x86-2015-1.0.99.0″ paketi için anlatılmıştır.
VS2013 kullanıcıları uygun sürümü indirmelidir. Dikkat edilmesi gereken tek şey VS 2015 paketinde .Net Framework 4.6 ve üstü desteklenecek.

Kurulumda dikkat edilmesi tek önemli şey VS 2015 için eklenti kurulumu seçeneğini seçmek. VS 2013 içinse yine aynı şekilde.
sq0

Konsol ekranı ile devam eden kurulum bende 1 dk sürdü. (daha önce 5dk sürdüğünü hatırlıyorum, acele etmeyin)

Proje Oluşturma

  • Visual Studio 2015′ de New > New Project > (.Net Framework 4.6 seçili) > Windows Forms Application projesi oluşturuyoruz. (VS 2013 için 4.5.1 ve üstü)
  • NuGet Package Manager üzerinden “Entity Framework 6.x” kuruyoruz.
    nuget
  • Projemize c:\program files(x86)\System.Data.SQLite\2015\bin\ klasörü altındaki:
    SQLite.Designer.dll, System.Data.SQLite.dll, System.Data.SQLite.EF6.dll, System.Data.SQLite.Linq.dll dosyalarını referans olarak ekliyoruz.
    sqldll
  • Burası çok önemli! Eklediğimiz referans dosyalarının Copy Local seçeneğini “true” yapsakta, Debug klasörüne manuel kopyalamamız gerekiyor.
    copydll
  • Burası çok daha önemli, bu sorunu çözmem biraz zamanımı almıştı. Projemizin App.Config dosyasında eklediğimiz DLL dosyalarının versiyon ve accesstoken değerlerini doğru yazmamız gerekiyor. Kodu olduğu gibi alabilirsiniz. (VS 2013 için düzeltme gerekecek bir sonraki adımda yer almakta)

  • Yukarıda yer alan kodda “1.0.99.0” olarak geçen versiyon numarasını mevcut SQLite dll versiyonu ile değiştirmeniz gerekebilir. Hangi versiyonu kullandığınızı C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config dosyasında (SQLite) olarak aratarak bulabilir ve gerekli düzenlemeyi yapabilirsiniz.
  • Son olarak program.cs ana sınıfımıza aşağıdaki kodu eklemeniz gerekmektedir.
    programcs
  • Artık mevcut SQLite veritabanı modeli eklenebilir veya yeni Ado.Net Entity Model oluşturulabilir.

SQLite veritabanı oluşturmak

Ben SQLite veritabanı tablosu oluşturmak ve hızlıca düzenlememi sağlayan Firefox üzerinde  SQLite Manager eklentisini kullanıyorum ve tavsiye edebilirim. İsterseniz VS 2015 üzerinden Server Explorer penceresinden de SQLite veritabanı oluşturabilirsiniz. (SQLite Manager de autoincrement ile primary key oluşturmak mümkün).

  • Projemize yeni item ekliyoruz. Sırasıyla:

ado1 ado2 ado3 ado4 ado5

  • Veritabanımızı projemiz üzerinde modelledik. Artık tüm imkanlarından faydalanabiliriz. Tebrikler.

ado6 ado7

Zamunda Liste Arama

Zamunda Liste Arama

Zamunda.Net Liste Arama Aracı
– İndirmek istediğiniz dizi, film, oyunlarınızı liste halinde zamunda.net’ te arayarak, böylece torrent dosyalarınızı daha hızlı indirmeniz için hazırlanmıştır.

– Programı kullanmadan önce varsayılan (kullandığınız) tarayıcınızdan Zamunda.Net’ e kullanıcı girişi yapmanız yeterlidir.

– Uygun kategori, katalog ve sıralama önceliği seçerek en uygun sonuçları listeleyebilirsiniz.

– Ekran görüntüleri ingilizce seçeneğinde alınmıştır, Türkçe dil desteği vardır.

Boyut/Size: 253 KB Kurulumsuz/Portable EXE
Dil/Language: Türkçe – English

Read More Read More

CafeSolution (Cafe Yönetim) C# başlangıç

CafeSolution (Cafe Yönetim) C# başlangıç

Programcılık derslerinin getirdiği heyecan ve bir şeyler yapmak isteğiyle ilk programımı yaptım. C# Form Application temellerini öğrenmeye çalışırken oluşmuş bir programdır.

  • Cafenin satış logunu tutar.
  • Kasadaki güncel parayı gösterir.
  • Ürünlerin isimlerini ve fiyatları güncellenebilir, kalıcı olarak kayıt edilebilir.
  • Hangi ürünün kaç adet satıldığını  gösterir.

    Read More Read More