Top Banner
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
15

Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis

Feb 25, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Algoritma ve programlama hakkında örnek kodlar, ders notları, … · 2016. 10. 31. · – Hibernate – JPA – OpenJPA – Toplink – EclipseLink –Apache Cayenne – MyBattis

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

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

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

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

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

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

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

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

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

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

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

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

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

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

15

İYİ ÇALIŞMALAR…

Yrd. Doç. Dr. Deniz KILINÇ

[email protected]

[email protected]

Celal Bayar Üniversitesi - YZM 3215 İleri Web Programlama