Open
Orm Araçları ve Ado.Net

ORM (Object Relational Mapping)
ORM; ilişkili veri tabanı tablolarına nesneler üzerinden erişip ekleme, silme,listeleme ve düzenleme işlemlerini yapabildiğimiz bir tekniktir(teknolojidir).
Bu teknoloji kodu otomatik üretiyor
database semalarini nesnelere donusturur
ORM, veritabanındali tabloya karşılık uygulama tarafında bir nesne oluşturma işidir
ORM tekniği kullanılan yazılımlarda hedef veri tabanı ayırt etmeksizin (Oracle, MySql, MsSQl) çalışır.

Avantajları ;

SQL bilmeden bir veri tabanına bağlanabilir ve SQL ile ilgili birçok işlemi rahatlıkla yapabilmek.
Herhangi bir Database bağımlılığı yoktur.
Oldukça esnek bir yapı sağlamaktadır. Yani Oracle kullanıyorken bir anda MS SQL i kullanabiliriz.

Dezavantajları

Farklı platformlarda farklı farklı ORM araçları mevcuttur
Bir ADO.Net kadar hızlı çalışmamaktadır.
ORM sayesinde SQL sorgularıyla yapılan birçok işlem SQL sorgusu kullanılmadan gerçekleştirilmektedir.

 
ORM Araçları
1. Java için ORM frameworkleri:
 
 - Hibernate
 - JPA
 - OpenJPA
 - Toplink
 - EclipseLink
 - Apache Cayenne
 - MyBattis
 
2. .Net için ORM frameworkleri
 
  - Entity Framework
 - Nhibernate
 - .Net Persistence
 - BBADataObjects-
 - DataObjects.NET
 - DotNorm
 - FastObjects.NET
 - Norm
 - OJB.NET
 
 3. PHP için ORM frameworkleri:
 
 - Propel
 - Doctrine
 - PHP-Activerecord
 - PdoMap
 - RedBean

Ado.NET ( Active Data Object) teknolojisi

ADO.NET temelde bir teknoloji olarak görülmektedir. Tamamen bir ORM aracı değildir.
Veritabanı ile C# dilini konuşturmak için kullanılan teknolojilerden bir tanesidir.
ORM : Veritabanında yaratılan her nesneye karşılık, kod tarafında da nesne oluşturma kuralı mantığıdır.

ADO.NET kendi içerisinde 2 temel mimariyi barındırır.
1-) Connected (Bağlantılı model)
2-) Disconnected (Bağlantısız model)

1-)Connected:Bağlantı sürekli olduğu için, veri okuma işlemi son satırı okuyana kadar açık kalması gerekmektedir, bu da uygulamamızda biraz yavaşlığa sebep olabilir.
Kullandığımız Sınıflar:
Command : Sorgularımızı yada Procedure lerimizi çalıştırmamıza yarayan sınıftır. Database çeşidine göre farklılık gösterir. (SqlCommand, OleDbCommand, OdbcCommand, OracleCommand) gibi.
DataReader : Sorgu sonucumuzda elde ettiğimiz veride , satır satır dönmemize yarayan sınıftır.

2-)Disconnected
ADO.NET ile ilgili kullanacağımız tüm class lar, Microsoft’un “using System.Data” adlı kütüphanesinde mevcuttur
veri tabanının bir kopyasını RAM üzerine alır ve bundan sonraki tüm işlemlerini RAM deki veri üzerinde yapar.
değişiklikler RAM ‘deki veri üzerinde olmaktadır. Gerçek database deki değişiklik için ayrıca bir işlem gerektirir.
. Bu modelde, veri tabanına 1 kere bağlanılmakta ve istediğimiz veriyi RAM e aldıktan sonra bir daha database ‘e gitmemize gerek kalmamaktadır.
örn; Küçük el terminalleri sabah veriler yüklenir (RAM e yükleme aşaması) , ve gün boyunca cihazlar ile bigli girişleri yapılmaktadır.
Bunların hepsi cihazdakiş RAM de tutulur, database ‘e sadece 2 defa gidilir. Buda bize performans sağlamaktadır.

Kullandığımız Sınıflar:
DataAdapter: Gönderdiğimiz sorgu sonucu gelen veriyi geçici hafızaya alan sınıfımızdır. Database çeşidine göre farklılık gösterir.
(SqlDataAdapter, OleDbDataAdapter, OdbcDataAdapter,OracleDataAdapter) gibi.
DataAdapter ile database den verimizi çekeriz, fakat alınan veriyi kullanabilmemiz için DataTable ve DataSet gibi veri türüne dönüştürmemiz gerekmektedir.


.NET Nedir? .NET, Microsoft’un önceden sadece Windows işletim sistemi üzerinde çalıştırdığı, daha sonra birden fazla işletim sisteminde çalıştırmasına olanak sağlayan, yazılımlar geliştirebilmesi için oluşturduğu platformdur (ortamdır).
Bu platformu kullanan bir geliştirici masaüstü için uygulamalar da yapabilir web tarayıcısı için de istediği uygulamayı kolayca geliştirebilmektedir.
C#, F#, or Visual Basic dillerinde yazabilirsiniz.
3 platformu vardır.
.Net Core : cross-platformdur. (çapraz platform yani birden fazla işletim sisteminde çalışabilir.) Website,server ve konsol uygulamalrını windows, Linux ve macOS da çalıştırabilirsiniz.
.NET Framework : Website,servis, dekstop uygulama ve bir çoğunu windows işletim sisteminde çalıştırabilirsiniz.
Xamarin/Mono: Bir çok mobil operator sistemlerinde çalıştırabilirsiniz.
Framework nedir?
Framework, içerisinde uygulama geliştirme arayüzleri (API) ve kod kütüphanesi (Framework Class Library (FCL)) barından bir paketdir.
Birçok kütüphanesi var.
Araç olarak Visual Studio kullanabilirsiniz.
https://marketplace.visualstudio.com/ market linkidir.
Kominiti olarak
https://stackoverflow.com/questions/tagged/.net?sort=frequent
https://github.com/dotnet
https://twitter.com/aspnet
https://www.facebook.com/Dotnet
https://live.asp.net/
https://www.dotnetfoundation.org/
https://blogs.msdn.microsoft.com/dotnet/
https://gitter.im/dotnet/community
https://channel9.msdn.com/Shows/On-NET


Ado.Net Kullanımı

SqlConnection Sınıfı System.Data.SqlClient namespace' i içerisinde yer alır
SqlConnection sınıfının bir adet constructor metodu bulunmaktadır. Bu metot ile türetme aşamasında kendi bağlantı cümlemizi belirtebiliriz.
string baglanti = "Server=.;Database=Reese;User Id=sa;Password=123456;";
SqlConnection con = new SqlConnection(BaglantiAdresi);
SqlCommand Sınıfı Sql veritabanı işlemlerinin yapılabilmesini sağlar.
System.Data.SqlClient namespace' i içerisinde yer alır
Kayıt getir,sil,güncelle ve ekle işlemlerini görür.
SqlDataReader SqlDataReader bir veri tipidir.
SqlCommandın veri okuması için ExecuteReader özelliği vardır.
ExecuteReader geriye SqlDataReader tipinde değer döndürür.
Dönen değerler satır satır SqlDataReader tipinde tutulur.
SqlDataReader veritabanı ile bağlantılıdır. Okuma işlemi bittiğinde SqlDataReader bağlantısının kapatılması gerekir.
SqlDataReader sadece satır satır veri okumaya sağlar.
Okuma işlemi SqlDataReader nesnesinin Read() metodu ile yapılır.
Read() metodu geriye bool türünde değer döndürür.
Okunacak satır var ise true, yoksa false değerini döndürür.
DataReader sadece okuma amaçlıdır veri sadece ileri doğru okur, işi bitince bellekten yok edilir.
Sql DataAdapter Bu nesne ile veri tabanına bağlantı kurulduktan sonra yazılan SQL cümlesini çalıştırıp, dönecek olan sonuç kümesini; bu sonuçları bellekte tutulacak olan nesnelere yükleme işlemi kolayca yapılmaktadır.
DataAdapter Disconnected Data ile çalışmak için tasarlanmıştır.
SqlDataAdapter nesnesiOpen() ve Close() metodlarını kendi içinde gerçekleştirir.
Doldurma işlemi SqlDataAdapter' ın Fill metodu ile yapılmaktadır.
Dataseti bir excel dosyasına, DataTableı ise Excel içerisindeki WorkSheetlere benzetebiliriz
Datatable, Datasetin içerisinde birden fazla bulunabilen, kayıtların tutulduğu tablolardır
Database olmadan direkt olarak cachede DataTablelar yaratabiliyor

01.01.2020