algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · –...
TRANSCRIPT
![Page 1: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/1.jpg)
YZM 3215
İleri Web Programlama
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi
Hasan Ferdi Turgutlu Teknoloji Fakültesi
Yazılım Mühendisliği
1
![Page 2: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/2.jpg)
BÖLÜM - 5
ORM (Object Relational Mapping) ve EF (Entity
Framework)
2
Bu bölümde;
ORM nedir?
ORM avantaj ve dezavantajları
EF (Entity Framework)
EF Basit Uygulama
ile ilgili konular anlatılacaktır.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 3: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/3.jpg)
ORM Nedir?
• Veri tabanınızdaki
– tabloları sınıflara ,
– kolonları özelliklere,
– tabloların içindeki kayıtları nesnelere
dönüştüren ve tüm bu dönüşün sonucunda
oluşan sınıflar ve nesneler üzerinden veri tabanı
işlemlerinizi yapmayı sağlayan çatılardır.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 4: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/4.jpg)
ORM Nedir? (Devam…)
• Veritabanı modelini uygulama modelindeki
nesnelere uyarlar.
• Veritabanı modelini uygulamadan soyutlayarak
nesneler üzerinden işlem yapmamızı sağlar.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 5: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/5.jpg)
ORM Avantajları
• Veritabanı işlemleri ile ilgili kod yazımı en aza
ineceğinden minimum zamanda maksimum iş çıkartmayı
sağlar.
• OOP düzeninde kod yazmayı sağlar.
• Veritabanı olarak esnek yapıya sahiptir.
– Örneğin MSSQL ile çalışan bir projeyi ve hızlıca Oracle’a
geçirmek ORM ile daha az sıkıntılı.
• Veritabanı bağımlılığı yoktur. Yani ORM’yi
oluşturmadan önce veritabanı tablo ve kolonlarını
oluşturmalısınız gibi bir kural yoktur. Siz ORM ile
modellemeyi yaparken olmayan tabloları ve kolonları
sizin yerinize açacaktır.
• Yazılım bakımı daha kolaydır.Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 6: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/6.jpg)
ORM Avantajları
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
Direk Erişim
Nesne ile erişim
![Page 7: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/7.jpg)
ORM Dezavantajları
• Veritabanı direk erişime göre daha yavaştır.
• Veritabanında bilgi alış-verişi sırasında kontrol
%100 bizde değildir.
– Bazen oluşturulan SQL ifadelerinde sorun çıkabilir
veya biz daha güzel ve hızlı çalışacak SQL ifadeleri
yazabileceğimiz durumlar olabilir ???? (Olur mu?)
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 8: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/8.jpg)
ORM Çatıları
• Java için ORM
çatıları:
– Hibernate
– JPA
– OpenJPA
– Toplink
– EclipseLink
– Apache
Cayenne
– MyBattis
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
• .NET için ORM
çatıları:
– Entity Framework
– Nhibernate
– .Net Persistence
– Drapper.NET
– DataObjects.NET
– DotNorm
– FastObjects.NET
– Norm
– OJB.NET
• PHP için ORM
çatıları:
– Propel
– Doctrine
– PHP-
Activerecord
– PdoMap
– RedBean
![Page 9: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/9.jpg)
EF (Entity Framework)
• Microsoft tarafından geliştirilmiş bir ORM’dir.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 10: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/10.jpg)
EF (Entity Framework) devam…
• EDM (Entity Data Model): EDM 3 bölümden oluşur.
Conceptual Model, Mapping, Storage Model.
– Conceptual Model: Bu alanda model sınıflarımız ve bu
sınıfların ilişkileri yer alacaktır. Bu sınıflar veritabanı
tasarımınızdan bağımsız olacaktır.
– Storage Model: Bu alanda veritabanı tasarım modelimiz
yer alır. Bu model içerisinde veritabanımıza ait tablolar,
view'lar, stored procedure'ler ve bunlara ait ilişkiler ve
key'ler yer alır.
– Mapping: Bu alan ise model sınıflarımız ile tasarım
modelimiz arasındaki haritalama işlemlerinin bilgilerinin
tutulduğu alandır.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 11: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/11.jpg)
EF (Entity Framework) devam…
• LINQ to Entities: Nesneleri sorgulamada kullanacağımız
sorgulama dilidir. Bu sorgular bize model sınıflarını
döndürecektir.
• Entity SQL: LINQ to Entities gibi sorgulama yapabileceğimiz bir
sorgulama dilidir. Daha zordur.
• Object Services: Veritabanından sorgulama sonucunda alınan
verilerin geri döndürülme aşamasında gereken convert
(dönüştürme) işlemlerinin yapıldığı alandır.
• Entity Client Data Provider: Bu alanın sorumluluğu hazırlanan
LINQ to Entities ya da Entity SQL sorgularını ADO.Net Data
Provider'a gönderilmek üzere anlaşılır SQL sorgularına
dönüştürmektir.
• ADO.Net Data Provider: Bu katman ise standart ADO.NET
kullanarak veritabanı ile iletişim kurar.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 12: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/12.jpg)
EF (Entity Framework) devam…
• Entity Framework ile 4 farklı yöntem ile proje geliştirilebilir. Bu
yöntemler;
1. Model First (Önce Model): Bu yöntemde Visual Studio
üzerinde boş bir model dosyası (.edmx) eklenerek veritabanı bu
model üzerinde oluşturulur.
2. Database First (Önce Veritabanı): Bu yöntemde hali hazırda
var olan veritabanı projeye model dosyası ile bağlanır ve gerekli
sınıflar EF tarafından üretilir.
3. Code First (Önce Kod – Yeni Veritabanı): Bu yöntemde
sınıflar ve mapping kodları yazılımcı tarafından oluşturulur. Daha
sonra veri tabanı bu sınıflardan türetilir.
4. Code First (Önce Kod – Var olan Veritabanı): Bu yöntemde de
sınıflar ve mapping kodları yazılımcı tarafından oluşturulur.
Veritabanı sınıfların ve modellemenin durumuna göre tekrardan
şekillenebilir.
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 13: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/13.jpg)
EF (Entity Framework) devam…
UYGULAMA
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 14: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/14.jpg)
Yararlanılan Kaynaklar
14
• http://www.w3c.org
• http://www.w3schools.com/jquery
• http://www.oguzkurtcuoglu.com/blog/post/entity-
framework-makale-serisi---entity-framework-nedir
• Ders Notları, Yrd. Doç. Dr. Yuriy Mishchenko
• Jump Start Bootstrap, Syed Fazle Rahman, 2014,
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama
![Page 15: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis](https://reader035.vdocuments.pub/reader035/viewer/2022070207/60f8afba1de3454e282e2b46/html5/thumbnails/15.jpg)
15
İYİ ÇALIŞMALAR…
Yrd. Doç. Dr. Deniz KILINÇ
Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama