oracle.manageddataaccess
Daha önce Odac kurmadan Oracle bağlantısı kurma yazımda da anlattığım gibi, .NET uygulamalarından oracle'a Oracle Client kurmadan bağlanma konusunda yeni bir yöntem daha çıktı.
Önceki yöntemde ODAC kurmuyorduk ama uygulamanın bulunduğu klasöre attığımız dll'lerin boyutu 100mb'ı geçiyordu. Halbuki yaptığımız sadece basit database işlemleri.
Oracle sorunu görmüş olmalı ki sonunda .net uygulamalarında kullanabilmemiz için "oracle.manageddataaccess.dll" isimli dll çıkartmış. BOYUTU 6mb civarında ve kodlarda herhangi bir değişiklik yapmadan kullanabiliyorsunuz.
Diğer yöntemde olduğu gibi bu dll dosyasını da reference kısmından uygulamamıza eklememiz gerekmekte.
Kütüphane kısmına aşağıdaki kütüphaneleri ekleyince kullanabiliriz.
Örnek bir uygulama.using System.Data;
using Oracle.ManagedDataAccess.Types;
using Oracle.ManagedDataAccess.Client;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.ManagedDataAccess.Client;
using Oracle.ManagedDataAccess.Types;
using System.Data;
namespace WebApplication1
{
public partial class baglanti : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dtable = new DataTable();
string oracleDB = "Data Source=(DESCRIPTION =(ADDRESS_LIST=(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = oracledb) ));user id=scott;password=scott;";
OracleConnection conn = new OracleConnection(oracleDB);
conn.Open();
string sql = "select * from testtable";
OracleCommand cmd = new OracleCommand(sql,conn);
cmd.CommandType = CommandType.Text;
dtable.Load(cmd.ExecuteReader());
GridView1.DataSource = dtable;
GridView1.DataBind();
conn.Close();
conn.Dispose();
}
}
}
Not: "Madem bu kadar küçük bir dosya aynı işlemi yapıyor neden ODAC kuralımki" diye düşünmeyin. Oracle Client çalışırken native kodlar üretir. Yani makine diline daha yakın ve daha hızlıdır. Ama oracle.manageddataaccess kütüphanesinin oluşturduğu kodlar ilk önce .NET CLR(Common Language Runtime)'a daha sonra makine diline dönüştürülür. Yani çalışmadan önce kodlarımız ortak .net diline dönüştürülür. Bu dönüşüm esnasında biraz yavaşlık ve performans kaybı olabilir.