Cumartesi Kasım 9th, 2019

Web Service ve SQL Bağlantısı

ile Ebubekir Sezer

Merhabalar, Bir önceki yazımda Azure’da  nasıl Web App + SQL oluşturabileceğimizi göstermiştim, bakmak için buraya tıklayın. Bu yazımda oluşturmuş olduğumuz bu kaynakları artık bir ASP.NET ile Web Servis oluşturup haberleşmesini sağlamaya çalışacağım ve bunları SQL bağlantısı yaparak SQL Veri tabanında tutacağım.

İlk olarak blank bir solution oluşturuyorum ve daha sonra yeni ASP.NET Core projesi oluşturuyorum ve template olarak da API seçiyorum. Projemiz oluştuktan sonra Models tadında bir klasör oluşturuyorum ve klasör içerisinde Entity.cs ve User.cs adında iki tane class oluşturuyorum. Entity oluşturmamın sebebi farklı modellerde eklersem her birinde sürekli aynı şeyleri tekrarlamak yerine Entity’den miras alacağım.

namespace XamarinDBService.Models
{
    public class Entity
    {
        public string ID { get; set; } = Guid.NewGuid().ToString();
    }
}
namespace XamarinDBService.Models
{
    public class User : Entity
    {
        public string UserName { get; set; }
        public string Password { get; set; }
    }
}

Modellerimizi  ekledikten sonra projemizi bir kaç tane Nuget Package eklememiz gerekiyor. Bu paketleri aşağıdaki resimden görebilirsiniz.

Paketleri yükledikten sonra projemize DBContext eklememiz gerekiyor bunun içinde bir tane XamarinDBContext adında bir class oluşturuyorum ve DBContext’den miras alıyorum. İçine DBConetxtOptions alan bir XamarinDBContext yapısı oluşturuyorum. Bunları yaptıktan sonra eklemiş olduğumuz modelleri DBSet ile oluşturuyoruz.

namespace XamarinDBService
{
    public class XamarinDBContext : DbContext
    {
        public XamarinDBContext(DbContextOptions<XamarinDBContext> options) : base(options)
        {

        }
        public DbSet<User> Users { get; set; }
    }
}

Yukarıdaki işlemleri yaptıktan sonra artık SQL bağlantısı için gerekli olan bilgileri girmeliyiz. Bunun için appsettings.json dosyasına gidip bağlantı yazısını eklememiz gerekiyor. Bağlantı dizisini bulmak için Azure Portal’da oluşturduğunuz SQL Veri Tabanına tıklayın ve sol menüde Connection strings göreceksiniz bunu kopyalayın, Bağlantı dizisinde password kısmına oluşturmuş olduğunuz şifreyi girin.

{
  "ConecttionStrings": {
    "XamarinDBContext": "Server=tcp:dbxamarin.database.windows.net,1433;Initial Catalog=xamarindb;Persist Security Info=False;User ID={your_user_name};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

Şimdi Startup class’ına gidip ConfigureServices fonksiyonu içerisinde değişiklik yapmamız gerekiyor.

 public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
            services.AddDbContext<XamarinDBContext>(optionsBuilder => optionsBuilder.UseSqlServer(Configuration.GetConnectionString(nameof(XamarinDBContext))));
        }

Bunları da yaptıktan sonra Migration işlemlerini yaparak şuana kadar yaptığımız işlemleri veri tabanında oluşturalım. Bunu yapmak için Migration eklememiz gerekiyor ve bunun içi Add-Migration diyip daha sonra istediğimiz şeyi yapabiliriz ve Migration eklendikten sonra Update-Database diyerek veri tabanımızı güncelleyelim. SQL Server Management Studio’yu açıp bakarsanız tablomuzun oluştuğunu göreceksiniz.

Veri alıp göndermek için Controller eklememiz gerekiyor. Bunun için Controller klasörü üzerinde sağa tıklayın ve yeni controller ekleyin. Bu controller API Controller with actions, using Entity Framework olarak oluşturun.

Controller’ımızı oluşturduktan sonra GET,POST, UPDATE, DELETE işlemlerini yapabiliriz ama hala web servisimizi publish etmedik yani dışarıda tutmuyoruz şuanda. Servisimizi publish etmek için proje üzerinde sağa tıklayın ve publish yapın. Burada karşımıza bir Azure App Service ekranı geliyor biz bunu oluşturduk bu yüzden Import Profile’a tıklayın ama bundan önce Azure Portal üzerinden oluşturmuş olduğumuz App Service’e girin ve Get publish profile ile profili alın ve burada import edin.Daha sonra Publish‘e tıklayın. Bu işlemde tamamlandıktan sonra artık web servisimiz hazır durumda.

Bir sonraki yazımda bu web servis ile geliştireceğim Xamarin.Forms uygulamasını haberleştireceğim. Soru ve görüşlerinizi e-mail veya yorum olarak belirtirseniz sevinirim.