bugün

orm

Olay şu. Elinizde bir tane facade var.

Bu facade ile temel insert, delete, update ve select işlemlerini yapacaksınız. ancak bu facade öyle olmalı ki eklediğiniz ne olursa olsun sorgu çalışmalı.

c# ile örnek vereyim. Eski usul yöntemde olay şuydu:

string sorgu = "INSERT INTO Persons(Name, LastName) VALUES('Ahmet', 'Durmaz');

sqlcommand cmd = new sqlcommand(sorgu, baglanti);
cmd.executenonquery();

Başlangıçta kısa görünüyor olabilir ancak bazı sıkıntılar var. Her işlem için bu sorguları tek tek yazacak mıyız? Bu sorular sorulabilir.

Adamlar şöyle düşünmüşler. Ben bir sınıf yaratayım. Adı Persons olsun. Bu sınıfın bazı property'leri olsun.

class Persons
{

public string name { get; set; }
public string lastname { get; set; }

}

Adam düşünmüş işte demiş ki ben bu sınıfa verileri şöyle yollayayım:

Persons p = new Persons();

p.name = "Ahmet";
p.lastname = "Durmaz";

Daha sonra bu adamlar durmamış tekrar düşünmüş

ORM adındaki Facade, oluşturulan Class türünden değer alsın. Olay şöyle:

ORM<persons>.Insert(p);

Yani Tip olarak yaratılan sınıfın adını alırken, crud işlemlerini instance üzerinden yapıyor.

Bu sayede de bu instance'da yer alan propların hem name hem de value'larını alıyor.

Şimdi düşününce her defasında INSERT gibi sorguları yazmak çok mu mantıklı? Hayır. Artık orm kullanmanın da zamanı geldi ülkemiz açısından da önemli. reflection bilmek önemlidir.

Sizi yoracak tek bir şey olabilir o da sınıflar ve sınıflara oluşturacağınız proplar. Ama ona da ne gerek var ki yanılmıyorum değil mi.

Yeni tür ORM'ler procedure ya da klasik sorguları da ayırt edebiliyorlar. Bu bakımdan şanslı bir development süreci bulunmakta.