.NET Core ile MySQL Entegrasyonu Nasıl Yapılır?

.NET Core ile MySQL Entegrasyonu Nasıl Yapılır?

NET Core ile MySQL entegrasyonu, uygulamalarınızın verilerini daha güvenli ve hızlı bir şekilde yönetebilmenize olanak sağlar Bu yazıda, MySQL veritabanının NET Core uygulamasına nasıl entegre edileceği adım adım anlatılmaktadır Veri işleme sürecinizde zaman ve güvenlik kazancı sağlayacak bu yöntemi keşfedebilirsiniz

.NET Core ile MySQL Entegrasyonu Nasıl Yapılır?

.NET Core ile MySQL entegrasyonunu gerçekleştirmek için öncelikle MySQL veritabanını kurulumunu gerçekleştirmeliyiz. MySQL veritabanını kurmak için öncelikle MySQL'in resmi web sitesinden indirme işlemini gerçekleştirmeliyiz. İndirme işlemini gerçekleştirdikten sonra kurulum dosyasını çalıştırarak kurulum işlemlerini başlatabiliriz.

Kurulum işlemlerine başlamadan önce, bilgisayarımızda MySQL için gereken tüm gerekli sistem gereksinimlerini kontrol etmeliyiz. Kurulum sırasında karşılaşacağımız sorunları önlemek için antivirüs programlarını geçici olarak devre dışı bırakmalıyız.

Kurulum işlemleri sırasında, donanım imzaları oluşturmak için "Configuration" ayarlarını seçerek daha güvenli bir kurulum yapabiliriz. Kurulum esnasında birçok konfigürasyon adımı göreceğiz. Bu adımların hepsi kendi zorluklarına sahiptir ve bir hata yaparsak kurulumu yapmamız gerekebilir.

Kurulum işlemi tamamlandıktan sonra, MySQL veritabanının hazırlanması işlemine geçebiliriz. MySQL'deki veritabanı hazırlama işlemi, veritabanı oluşturma, tablo oluşturma ve kullanıcı yetkilerini tanımlama işlemlerini kapsamaktadır. Bu işlemleri gerçekleştirmek için MySQL veritabanı yönetim sistemini kullanabiliriz.


.NET Core Projesinin Hazırlanması

.NET Core projesinin oluşturulması ve gerekli paketlerin yüklenmesi işlemleri.

.NET Core kullanarak bir proje oluşturmadan önce, öncelikle Visual Studio 2019 veya daha yeni bir sürümünün yüklü olması gerekiyor. Yapılandırma işlemlerine başlamadan önce, projenin amacı ve özellikleri belirlenmelidir. Projeyi oluşturmak için "File" menüsünden "New" seçeneği seçilir, ardından "Project" seçeneği seçilir. "Create a new project" seçeneği seçilerek "ASP.NET Core Web Application" seçeneği seçilir.

Sonraki adımda, proje için bir isim ve konum belirlenir. Proje tipi olarak "Web Application" seçilir. "Authentication Type" seçeneği "No Authentication" olarak ayarlanmalıdır. Proje oluşturma işlemi tamamlandıktan sonra, projeye MySQL veritabanı işlemleri yapmak için gerekli olan paketlerin yüklenmesi gerekiyor.

Bu işlemi yapmak için, projenin oluşturulduğu dizinde bir terminal açın ve aşağıdaki komutu girin:
dotnet add package Pomelo.EntityFrameworkCore.MySql

Bu komut, projede kullanılacak olan MySQL veritabanı işlemleri için gerekli olan Pomelo.EntityFrameworkCore.MySql paketinin yüklenmesini sağlar. Paket yüklendikten sonra, projedeki "Startup.cs" dosyasının güncellenmesi gerekiyor.


Proje Dosyalarının Oluşturulması

.NET Core projesinin dosya yapısının oluşturulması işlemleri.

.NET Core projesinin oluşturulmasının ardından proje dosyalarının oluşturulması işlemine geçilir. Öncelikle projede kullanılacak olan veritabanı tablolarının modellerinin tutulacağı Models klasörü oluşturulur. Daha sonra, veritabanı işlemlerinin gerçekleştirileceği Data Access katmanı için DataAccess klasörü oluşturulur. Bu klasör içinde, veritabanı işlemleri için kullanılacak olan sınıflar yer alır.

Proje dosya yapısının oluşturulmasının ardından, projenin gerekli olan diğer dosyaları da oluşturulmalıdır. Örneğin, projede kullanılacak olan servis sınıfları Services klasörü altında tutulabilir. Ayrıca, projenin ayarları için Configurations klasörü oluşturulabilir. Bu klasör içinde, projenin ayarlarına ilişkin olan sınıflar yer alır.

Proje dosyalarının oluşturulması işlemi, proje için gerekli olan dosyaların oluşturulmasıyla tamamlanır. Bu dosyalar, proje içinde yer aldığı için veritabanı işlemleri ve diğer işlemler için rahatlıkla kullanılabilir.


appsettings.json Dosyası Hazırlama

Veritabanı bağlantısı için gerekli olan ayarların yapıldığı dosyanın hazırlanması işlemleri.

Veritabanı işlemleri yapabilmek için, öncelikle veritabanına nasıl bağlanacağımızı belirten ayarların yapıldığı bir dosya hazırlamalıyız. Bu işlem için kullanılacak dosya appsettings.json dosyası olacaktır.appsettings.json dosyası, .NET Core projesindeki ayarları tutan bir JSON dosyasıdır. Bu dosyada, veritabanı bağlantısı için gerekli olan bilgiler bulunmaktadır. Proje içerisinde yer alan appsettings.json dosyası, şu şekilde hazırlanmalıdır:

  • "ConnectionStrings": Veritabanına bağlanmak için gerekli olan bilgilerin bulunduğu bölümdür.
  • "DefaultConnection": Bu bölümde belirtilen bilgiler, varsayılan bağlantı için kullanılacaktır.
  • "Server": Veritabanı sunucusunun adresi. Örneğin: "localhost".
  • "Database": Veritabanı ismi. Örneğin: "mydb".
  • "Uid": Veritabanı kullanıcısı adı. Örneğin: "root".
  • "Password": Veritabanı kullanıcısı şifresi. Örneğin: "12345"
Örneğin, appsettings.json dosyası aşağıdaki gibi olabilir:
{  "ConnectionStrings": {    "DefaultConnection": "Server=localhost;Database=mydb;Uid=root;Password=12345;"  },  "Logging": {    "LogLevel": {      "Default": "Information",      "Microsoft": "Warning",      "Microsoft.Hosting.Lifetime": "Information"    }  },  "AllowedHosts": "*"}
Bu dosya, veritabanı işlemleri için gerekli olan bağlantı ayarlarını içermekte ve projedeki ilgili bölümler tarafından kullanılmaktadır.


Startup.cs Dosyası Hazırlama

Projenin ayağa kaldırılması ve veritabanı bağlantısının kullanılması için gerekli olan ayarların yapılandırılması işlemleri.

.NET Core projesinin ayağa kaldırılması ve veritabanı bağlantısının kullanılabilmesi için Startup.cs dosyasında bazı ayarların yapılması gerekmektedir. Öncelikle projede bir "Startup.cs" dosyası oluşturulur ve "ConfigureServices" ve "Configure" metodları bu dosyada tanımlanır. Bu metodlar, uygulamanın yapılandırılması ve çalıştırılması sırasında gereksinim duyulan ayarların belirlenmesinde önemli rol oynar.

Startup.cs dosyasında, veritabanı bağlantısı için gerekli olan ayarlar da tanımlanır. Bunun için "ConfigureServices" metoduna, veritabanına bağlanmak için kullanılacak olan servisin tanımlandığı kod bloğu eklenir. Bu servis, veritabanıyla ilgili tüm işlemlerin gerçekleştirilebilmesini sağlar.

Örneğin, MySQL veritabanı kullanılacaksa, "ConfigureServices" metoduna aşağıdaki gibi bir kod bloğu eklenir:

services.AddDbContext<DatabaseContext>(options => options.UseMySql(Configuration.GetConnectionString("MySQL")));

Bu kod bloğu, ApplicationDbContext sınıfını kullanarak veritabanı işlemlerinin gerçekleştirilmesine olanak sağlar.

Veritabanı ayarlarının yapılandırılması için "Configure" metodunda da bazı ayarların yapılması gerekiyor. Bu metodda, uygulamanın çalıştığı "Environment" durumuna göre farklı ayarlar yapılabilmesi mümkün. Örneğin, "Development" aşamasında veritabanı yaratılıp, mantıksal bütünlüğü sağlayacak tablolar oluşturulur. Bunun için aşağıdaki kod bloğu kullanılabilir:

if (env.IsDevelopment()){    using (var serviceScope = app.ApplicationServices.GetService<IServiceScopeFactory>().CreateScope())    {        var context = serviceScope.ServiceProvider.GetRequiredService<DatabaseContext>();        context.Database.EnsureCreated();    }}

Bu kod bloğu, uygulama "Development" durumunda çalışırken veritabanının oluşturulup oluşturulmadığını kontrol eder. Eğer veritabanı oluşturulmamışsa, bu blok yardımıyla oluşturulur.

Startup.cs dosyasında gerçekleştirilen işlemler, uygulamanın düzgün bir şekilde çalıştırılması ve veritabanına bağlanabilmesi için oldukça önemlidir. Bu sebeple, dosya içerisinde yapılacak ayarların eksiksiz ve doğru bir şekilde yapılması gerekmekte.


Migration İşlemleri

Veritabanındaki tabloların oluşturulması/oluşturulmuş tablolardaki değişikliklerin güncellenmesi için gerekli olan işlemler.

Migration işlemleri, veritabanındaki tabloların oluşturulması veya güncellenmesi için yapılması gereken adımlardan oluşur. Bunun için Entity Framework Core kullanabiliriz. Migration işleminin temel amacı, mevcut veritabanı şemasını değiştirerek yeni şemaların eklenmesini veya var olanların güncellenmesini sağlamaktır.

Migration işlemleri için ilk adım, .NET Core projesi içerisinde "Package Manager Console" üzerinden EF Core CLI(Command Line Interface) kullanarak veritabanı migrasyonlarının tanımlandığı sınıfları oluşturmaktır. Bu işlem, "Add-Migration" komutu kullanılarak gerçekleştirilir. Bu aşamada, belirtilen ad ve parametrelerle bir sınıf oluşturulur ve migration adı belirtilerek hangi değişikliklerin yapıldığı hakkında bir açıklama eklenir.

Sonraki adım "Update-Database" komutu kullanılarak gerçekleştirilir. Bu komut, sınıfta tanımlanan değişiklikleri veritabanına yansıtmak için kullanılır. Bu işlem çalıştırıldıktan sonra, veritabanındaki mevcut tabloların veya ilişkisel yapıların değiştirilmesi veya eklenmesi işlemi gerçekleştirilir.

Ayrıca, "Down" methodu kullanarak geri alma işlemi yapabiliriz. Bu yöntem, yapılan değişiklikleri geri alma ve eski duruma geri dönmek için kullanılır. "Remove-Migration" komutu kullanılarak migration sınıfı silinebilir veya değiştirilebilir.

Migration işlemleri, veritabanındaki tabloların oluşturulması veya güncellenmesi için önemli bir adımdır. Bu işlem sayesinde veritabanımızdaki tabloları istediğimiz şekilde değiştirebiliriz. İhtiyacınız olan işlemleri gerçekleştirmek için doğru migration adımlarını belirleyin ve "Add-Migration" ve "Update-Database" komutlarını kullanarak veritabanınızı güncelleyin.


Veritabanı İşlemleri

Veritabanına veri ekleme, veri güncelleme, veri silme vb. işlemlerin yapılması işlemleri.

.NET Core ve MySQL entegrasyonunda veritabanı işlemleri oldukça önemlidir. Veritabanına veri ekleme, güncelleme ve silme gibi işlemler yapılmadan projeler tamamlanamaz. Bu işlemleri gerçekleştirebilmek için öncelikle gerekli olan yöntemlerin bilinmesi gerekmektedir.

Veritabanına veri ekleme işleminde, verilerin tabloya eklenmesi için INSERT INTO sorgusu kullanılır. Veritabanından veri güncellemek için ise UPDATE sorgusu kullanılır. Ayrıca, veritabanından veri silmek için DELETE sorgusu kullanılır. Bu işlemlerin tamamı, SQL sorguları kullanılarak gerçekleştirilebilir.

  • Veri Ekleme: INSERT INTO tablo_adi (sutun_adi1, sutun_adi2, ...) VALUES (deger1, deger2, ...)
  • Veri Güncelleme: UPDATE tablo_adi SET sutun_adi1=deger1, sutun_adi2=deger2 WHERE kosul
  • Veri Silme: DELETE FROM tablo_adi WHERE kosul

Veritabanı işlemlerinin gerçekleştirilmesi için Entity Framework Core veya Dapper gibi ORM çözümleri kullanılabilir. Entity Framework Core, .NET Core projelerinde veritabanı işlemlerinin kolayca gerçekleştirilmesine olanak sağlar. Dapper ise daha hızlı ve daha düşük bellek kullanımı için optimize edilmiş bir ORM çözümüdür. Dolayısıyla, hangi ORM çözümünün kullanılacağı projenin ihtiyaçlarına göre belirlenir.


Entity Framework Core ile Veri İşlemleri

Entity Framework Core kullanarak .NET Core projesinde veritabanı işlemlerinin nasıl gerçekleştirileceği.

Entity Framework Core, .NET Core ile birlikte kullanılabilecek ORM (Object Relational Mapping) bir araçtır. Bu araç, veritabanı işlemlerini kodlama işleminden tamamen ayırmakta ve çalışma sürecinde veritabanı ile direkt bağlantı kurmamız gereksinimini ortadan kaldırmaktadır.

Veritabanı modelini .NET Core projesine dahil ederek Entity Framework Core ile veritabanı tablolarına ulaşabiliriz. Bu model ile veritabanı işlemlerini gerçekleştirmek oldukça kolaydır. İşlemler kodlanırken veritabanı tablolarından gelen özellikler properties olarak tanımlanır ve Entity Framework Core, bu propertiesleri veritabanı işlemleri için kullanır.

Entity Framework Core ile veritabanı işlemlerinde data access katmanı ile bağlantı kurulduktan sonra herhangi bir değişiklik yapıldığında tek yapmanız gereken veritabanında değişiklik yapılmış olan yapıları güncellemek için migration işlemini kullanmaktır. Entity Framework Core, bu işlemi yapmak için Code First Migration adında bir özellik sunmaktadır.

Entity Framework Core kullanabilmek için öncelikle gerekli paketleri yüklemeliyiz. Bunun için proje dosyasının bulunduğu dizinde açılan terminal ya da PowerShell penceresinde aşağıdaki komut çalıştırılır:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer

Entity Framework Core, SQL Server Remote DB Context için kullandığı bir pakettir. Eğer veritabanı işlemleri başka bir veritabanı ile yapılacaksa kullanılacak paket değişecektir.

Entity Framework Core ile veritabanı bağlantısı yapılandırmak için öncelikle appsettings.json dosyasını hazırlamalıyız. Bu dosya, projemizin özellikle ayarlarını kolaylıkla yapılandırmamızı sağlar. Bu dosya, projede tutulan herhangi bir veri ile ilgili olan tüm ayarları içermektedir.

Veritabanına kayıt eklerken ya da veri güncellerken Entity Framework Core kullanabiliriz. Örnek olarak, aşağıdaki kod veritabanında bulunan class Person tablosuna yeni bir kişinin eklendiğini göstermektedir:

Id Ad Soyad
1 Ali Özçelik
2 Ayşe Demir
3 Veli Yılmaz
using (var dbContext = new MyDbContext()){    var yeniKayit = new Person { Ad = "Ahmet", Soyad = "Demir" };    dbContext.Persons.Add(yeniKayit);    dbContext.SaveChanges();}

Bu şekilde Entity Framework Core kullanarak, veritabanı işlemlerini kolaylıkla yapabilirsiniz. Entity Framework Core ile birlikte Dapper kullanmak da mümkündür ve size birçok kolaylık sağlayabilir.


Dapper ile Veri İşlemleri

Dapper kullanarak .NET Core projesinde veritabanı işlemlerinin nasıl gerçekleştirileceği.

Dapper, .NET Core projesinde veritabanı işlemlerinin gerçekleştirilmesi için kullanılan bir ORM (Object Relational Mapping) aracıdır. Dapper, performans odaklı ve hafif bir yapısı sayesinde, Entity Framework Core gibi diğer ORM araçlarına göre daha hızlı bir veritabanı işlemi yapar.

Dapper kullanarak veritabanı işlemlerini gerçekleştirirken, ilk olarak kullanılacak Dapper paketinin proje içerisinde yüklenmesi gerekmektedir. Daha sonra veritabanı bağlantısı açılmalı ve bu bağlantı üzerinden gerekli işlemler yapılmalıdır.

Dapper, veritabanında yapılacak olan işlemleri SQL sorgularıyla gerçekleştirir. Bu sorgular, kod içerisinde direk olarak yazılabilir ya da hazır sorgular kullanılabilir. Örneğin, veritabanına yeni bir kayıt eklenecekse, hazır olan "INSERT INTO" sorgusu kullanılabilir.

  • Dapper kullanarak veritabanındaki kayıtları listeleme: Dapper ile yalnızca "SELECT" sorgusu yazarak, veritabanındaki istenen verileri belirtebiliriz. Bu sorguyu çalıştırmak için "connection.Query" metodu kullanılır.
  • Dapper kullanarak veritabanına yeni kayıt ekleme: Dapper ile "INSERT INTO" sorgusu kullanarak, veritabanına yeni kayıt ekleyebiliriz. Bu sorguyu çalıştırmak için "connection.Execute" metodu kullanılır.
  • Dapper kullanarak var olan kaydı güncelleme: Dapper ile "UPDATE" sorgusu kullanarak, veritabanındaki var olan bir kaydı güncelleyebiliriz. Bu sorguyu çalıştırmak için "connection.Execute" metodu kullanılır.
  • Dapper kullanarak veritabanından kayıt silme: Dapper ile "DELETE FROM" sorgusu kullanarak, veritabanındaki bir kaydı silebiliriz. Bu sorguyu çalıştırmak için "connection.Execute" metodu kullanılır.

Dapper, .NET Core projesinde veritabanı işlemlerini hızlı ve performanslı bir şekilde yapmanızı sağlar.


Örnek Uygulama

Bütün işlemlerin yapıldığı örnek bir uygulama.

Yukarıdaki adımları takip ederek .NET Core ile MySQL entegrasyonunun nasıl yapılacağı hakkında fikir sahibi olduk. Şimdi ise bir örnek uygulama yaparak bu entegrasyonu daha iyi anlayabiliriz.

Bu örnek uygulama için bir web projesi oluşturup içerisine birkaç sayfa ekleyelim. Sayfalarda öğrenci bilgileri, ders programı vb. verileri göstereceğiz. İlk olarak veritabanımızda gerekli tabloları oluşturalım. Bunun için migration işlemlerini gerçekleştirelim.

Ardından, Entity Framework Core ile veri işlemlerimizi yapalım. Öğrenci veya ders eklemek, güncellemek veya silmek gibi işlemlerimizi gerçekleştirebiliriz. Daha sonra Dapper kullanarak da aynı işlemleri gerçekleştirebiliriz ve Entity Framework Core ile Dapper arasındaki farkları gözlemleyebiliriz.

Uygulamamızın front-end kısmını da tasarlayalım. Bootstrap veya özellikle .NET Core için tasarlanmış olan Material Design gibi bir kütüphane kullanarak sayfalarımızı güzel bir şekilde tasarlayabiliriz.

Veritabanına eklediğimiz öğrenci bilgileri, ders programı vb. verileri, frontend tarafında tasarladığımız sayfalarda gösterelim. Örneğin, öğrencileri gösterdiğimiz bir sayfada öğrencileri listeleyelim ve detaylı bilgilerini gösterdiğimiz bir sayfa tasarlayalım.

Bütün bu işlemleri gerçekleştirdiğimiz örnek uygulama, .NET Core ve MySQL entegrasyonunun nasıl yapılabileceğine dair örnek teşkil etmektedir. Bu örneği inceleyerek kendi projelerimizde kullanabiliriz.