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# Programlama kategorisine gönderildi | , , , ile etiketlendi | 1 Yorum

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

C# Programlama kategorisine gönderildi | , , , ile etiketlendi | 14 Yorum

Xperia L ve CM Tabanlı AOSP ROM

Son Düzenleme: 29 Kasım 2014 / 12:30

Arkadaşlar merhaba, uzun süredir yazamıyorum. İş, okul derken yazmaya fırsat bulamadım, okul başlamasıyla 4 aydır memnuniyetle kullandığım CyanogenMod v11 tabanlı AOSP yüklü Xperia L telefonumu ve püf noktalarını yazmak istedim.

Xperia L her ne kadar üst segment bir telefon olmasada, Sony’nin kalitesi tartışılmaz. Japon japondur. Uzun süre telefon ve laptop kullanıyorsanız arayüzü sizi sıkabiliyor. Bende rom kurmak için donanımhaber ve xda foruma baktım. Donanımhaber pek hareketli değil ama xda da güzel bir CyanogenMod tabanlı rom (link) buldum. CyanogenMod u huawei telefonumda cm7 sürümüne kadar güzel bir şekilde kullanmıştım ve gayet başarılı bir rom.

Mevcut stock romunda (15.3.A.1.17 firmware) hızlı panel çubuğu yok. Navigation/status çubuklarını, bildirim ışığını kişiselleştiremiyoruz. Ekran parlaklığını widget kurmadan kolayca değiştiremiyoruz. Eğer bundan sıkıldıysanız custom rom kurabilirsiniz.

Rom kurmak için şu 5 adımı yapacağız, eğer android ve bilgisayar bilginiz zayıf ise kesinlikle tavsiye etmiyorum, garanti ve kasko koşullarını okumanızı tavsiye ederim. Root ve boot kilidini kaldırma konusunda Sony kesin güvence vermiyor, telefonunuza garanti sağlayan firmanın anlayışına bağlı olduğunu belirtmişler.

  1. Flashtool kurulumu
  2. Root
  3. Backup-TA ile bootloader yedeklenmesi
  4. Bootloader kilidi açma
  5. CWM ve Rom kurulumu

1. Flashtool Kurulumu
Kullanacağımız program Sony’nin resmi uygulamasının düzenlenmiş hali. Rom veya mod flashlamak için düzenlenmiştir. Buradan indirebilirsiniz. Basit kurulumunu yaptıktan sonra kurduğunuz dizinde drivers klasöründeki flashtool-drivers.exe dosyasını çalıştırın. Telefonunuzun yer aldığı kategoriyi seçin, fastboot ve flashmod driverlarınıda seçtikten sonra kurulumu ilerletin ve bitirin. Driver kurulumunda hata alıyorsanız ki büyük ihtimalle Windows8.1 kullanıyor olmalısınız. Şu adımları yapınız. Bilgisayar Ayarları/Genel/Gelişmiş başlangıç/Şimdi yeniden başlat’a basın. Gelen yeni ekranda ‘Sorun Gider’ seçeneği seçin…Gelişmiş Seçenekler…Başlangıç Ayarları…Yeniden Başlat…Gelen ekranda alttaki seçenekleri F1den F9a kadar olan tuşlarla seçiyoruz, bize lazım olan 7.seçenek yani F7’ye basıyoruz…
Bilgisayar açılıyor, Flashtool/drivers/flashtool drivers yoluna tekrar gidiyoruz, driverlarımızı seçip, devam ediyoruz, bu sefer kurulacaktır. Gelen uyarılarda alttaki herşeye rağmen yükle/install this driver software anyway seçeneğini seçin.
İşlem bittikten sonra finish’i seçip, çıkabilirsiniz.

2. Root
Telefonumuzda Geliştirici Seçenekleri> USB Hata Ayıklaması Açık olmalı. Sahte korumalara izin ver, Bilinmeyen kaynaklar  (güvenlik menüsünde) seçeneklerinide seçiniz.
Root için şu programı indirin ve çalıştırın. İşlem çok kısa sürmektedir, telefonunuza Super-Su uygulaması yüklenecek.

3. Backup-TA
Olurda cihazımızı eski haline dönmesi için bootloader’ı yedeklemek için bu işlemi yapmalıyız. Zorunda değilsiniz ama sağlıklı olması için çok önemli. Stock roma döndüğümüz zaman Sony’i Sony yapan Bravia Engine, ClearAudio gibi eklentileri tekrar kullanmamız için yedeklemelisiniz.
Son sürümünü buradan indirin ve klasöre çıkartın.
Telefonumuzda Geliştirici Seçenekleri> USB Hata Ayıklaması Açık olduğundan emin olun.
Backup-TA.bat’ı çalıştırın. Telefonu pcye bağlayın.
Seçenekler gelecek “backup” için 1’e basıyorsunuz, Devam etmek istiyor musunuz diye soracak, “Y” basın.  Bu kadar.

4. Bootloader Kilidi Açma
Bu işlem can alıcı nokta, uzun uzun anlatmıyorum.  MaxiCep aynen alıntı yapıyorum.

5. CWM ve ROM Kurulumu
Flashtool programını açın, telefonunuzu fastboot modunda açın (ses açma tuşu basılıyken usb kablosu ile bilgisayara bağlıyoruz) ile boot.img dosyasını telefona flashlıyoruz.
bootFast

Eğer bu işlemi başarılı bir şekilde yaparsanız artık ROM ve MOD kurabilirsiniz. Recovery’i açmak için telefon açılırken SONY yazısında camöbeği bildirim ışığı yanarken iki ses tuşuna aynı anda basıyoruz, ışık sarı oluyor, parmağınızı tuştan çekebilirsiniz. CWM/TWRP açılacaktır.

Kullanmakta olduğum CM11 tabanlı AOSP romu kurmanızı şiddetle tavsiye ediyorum. Telefonu resmen uçuruyor. Kitkat sürümündeki tüm uygulamaları yükleyebilirsiniz. Uygulamaları sd kartınıza atabilirsiniz. Bildirim çekmecesinden hızlıca ekran parlaklığı ayarlama gibi bir çok pratik modülleri var.

Kullandığım Tema / Modlar
Tema: Simplex Theme CM11
Font: Flux
Xposed / DarkTube: Youtube uygulamasının arkaplanını siyah yapıyor.
Xposed / GravityBox[KK]: Saati ortalamak için kullanıyorum. Çok fazla kişiselleştirme ayarı var, kesinlikle kurun.
Xposed /  Tinted Status Bar: En beğendiğim eklenti de bu. Uygulamanın temasına göre bildirim çubuğumuz renk değiştiriyor. Windows Mobile andırıyor.

Farkettiğim Buglar
– Kulaklıktaki tuş bir sonraki şarkıyı değil bir önceki şarkıyı açıyor. Bir sonraki güncellemede düzeltileceğini umuyorum.
– Giriş yöntemini değiştir bildirimi gizlenmiyor. Her URL yazarken kapanması için 3 saniye bekliyorsunuz.

 —

Yazacak ve düzenleyecek cümlelerim var, şimdilik bu kadar görüşmek üzere.

En son 29 Kasım 2014 tarihinde düzenlendi.

Android kategorisine gönderildi | , , , , , , , , , , , , ile etiketlendi | 7 Yorum

CafeSolutionPS 2 (PlayStation Cafe Yönetim Programı)

ÖNEMLİ DUYURU!: Yazılım detayları cafesolution.net’te.

http://cafesolution.net/ adresinden indirebilirsiniz.

CafeSolutionPS, kafeterya işletmecileri için hazırlanan CafeSolution programının playstation kafe işletmecileri için geliştirilmiş hesap yönetim, kafeterya yönetim programıdır. Bir nevi bir otomasyondur. Alternatiflerine göre hızlı ve pratiktir, oldukça küçük boyuta sahiptir.

CafeSolutionPS yazılımı ile;

  • Birden fazla kullanıcı ile giriş yapabilirsiniz.
  • Kullanıcıların yetkilerini ayarlayabilirsiniz. Sadece yetkilendireceğiniz kullanıcılar stok güncelleyebilir, fiyat değiştirebilir.
  • PlayStation 4, PlayStation 3, xBox gibi birden fazla makine ekleyebilirsiniz.
  • Makine yerine bilardo gibi tarife yada sabit ücretli oyun aletleri de ekleyebilirsiniz.
  • PlayStation kolu dışında PlayStation Move, kulaklık, kinect gibi bir çok aksesuarı ekleyebilir, fiyatlandırmasını düzenleyebilirsiniz. Fiyatlandırmayı sabit veya tarifeli yapabilirsiniz.
  • Kafeterya ürünlerinizin stoklarını kontrol edebilirsiniz.
  • Makineye göre farklı tarifelendirme yapabilirsiniz.
  • Makine kiralıyorsanız takip edebilir, detaylı bir şekilde kayıt yapabilirsiniz.
  • Tüm ayar değişikliklerini, masa oturum aç/kapama, sipariş kayıtlarını filtreleme yaparak inceleyebilir, iki tarih arasındaki ciroyu hesaplayabilirsiniz.
  • Kafeterya ürünlerinin alış fiyatı üzerinden net kazanç raporlayabilirsiniz.
  • Gelir / Gider ekleyerek muhasebe işlemlerinizi yapabilirsiniz.
  • Programa olan güveninizi fiyat testi aracı ile test edebilirsiniz.
  • Masa dışı adisyon kesebilirsiniz.
  • Evinizden veya mobilden internet üzerinden, kafenizin anlık görüntüsünü, cirosunu, stoklarını raporlayabilirsiniz. (1.0.7 sürüm ve üstü destekler)
  • Karşılaştığınız sorunlarda kısa süre içerisinde ticket sistemi ile çözüm bulabilirsiniz.

BY

C# Programlama, Program kategorisine gönderildi | , , , , , , ile etiketlendi | 65 Yorum

Chrome’un İcratlar: Chromecast

googlechromecast-1Ne var ne yok diye bakmak için Ebay’e girdiğimde önerilen ürünlerin çoğunda Chromecast adında bir cihaza rastladım. Daha önce varlığından bile haberim olmayan bu cihaz aynı Chromebook gibi Google’ın neden böyle bir cihaz yaptığı tam anlaşılmayan icratlarından biri. Okumaya devam et

İnternet-Bilgisayar kategorisine gönderildi | , ile etiketlendi | Yorum yapın