Webhostbuilder | Engin Polat\'ın Windows 8 , Windows Phone 8 ve C# içerikli programcılık sitesi

Arşiv

Etiketlenen yazılar webhostbuilder

Asp.Net Core üzerinde SignalR kullanımı

09 September 2016 Yorum yapılmamış

Sevgili arkadaşım Bora Kaşmer yeni yapacağı bir proje ile ilgili konuşurken Asp.Net Core üzerinde SignalR çalıştırmak istediğini söyledi, ben de bu makaleyi yazdım :)

Bu makalede adım adım ilerleyerek, dotnet CLI ile projeyi oluşturacak, Visual Studio Code ile geliştirecek ve Microsoft Edge tarayıcısı ile test edeceğiz.

Öncelikle, eğer bilgisayarınızda .Net Core yüklü değilse yüklemeniz gerekiyor.

Hemen proje için yeni bir dizin oluşturalım ve Command Prompt açarak dotnet new komutu ile projeyi oluşturalım;

Projeyi oluşturduğumuz dizinde Program.cs ve project.json dosyaları oluşmuş olmalı.

Eğer SignalR ve .Net Core birlikte kullanmak istiyorsak, bu makalenin yazıldığı tarihte yayınlanmamış olan en yeni Nuget paketlerini kullanmalıyız. Bunun için gecelik derlenen paketlere erişebilmemiz lazım. Projeye Nuget.config isimli bir dosya ekleyelim ve içerisine aşağıdaki Nuget kaynaklarını yazalım;

Artık project.json dosyasını açarak, dependencies kısmının içerisine aşağıdaki paketleri yazabiliriz;

Paketleri indirmek için Command Prompt içerisinde dotnet restore komutunu çalıştırmamız lazım;

Şimdi Program.cs dosyasını açalım ve Main() method’unun içerisini aşağıdaki şekilde değiştirelim;

Program.cs dosyasının using kısmına aşağıdaki tanımlamaları da eklememiz gerekiyor;

Satır satır inceleyecek olursak, öncelikle Application Server olarak IIS değil, Kestrel kullanacağımızı tanımlıyoruz, html, js, css, jpg gibi static dosyaların wwwroot dizininde olacağını tanımlıyoruz, uygulamanın açılışı esnasında yapılacak işleri Startup isimli class içerisine yazacağımızı tanımlıyoruz ve son olarak uygulamayı çalıştırmaya başlıyoruz.

Projeyi oluşturduğumuz dizinde Startup.cs isimli bir dosya oluşturalım ve içerisine aşağıdaki kodları yazalım;

Böylece, WebSocket ve SignalR kullanacağımızı .Net Core uygulamamızda tanımlamış olduk.

Bir SignalR Hub‘ı oluşturmak için projeyi oluşturduğumuz dizine ChatHub.cs isimli bir dosya ekleyelim ve içine aşağıdaki kodları yazalım;

Artık proje dizininde wwwroot isimli yeni bir dizin oluşturarak içine index.html dosyasını ekleyebiliriz, index.html dosyasının içine aşağıdaki kodları yazalım;

Basitçe, mesajların sayfada görüntülenebilmesi için bir textarea, mesaj göndermek için bir text ve bir button ekledik. Javascript ile buton’a her tıklandığında SignalR Hub’ına mesajın gönderilmesini, SignalR Hub’ından gelen mesajların da textarea içerisinde gösterilmesini sağladık.

Command Prompt açarak dotnet run komutunu çalıştıralım;

Command Prompt penceresini kapatmadan, iki farklı Microsoft Edge tarayıcı açarak uygulamayı http://localhost:5000/index.html adresinden test edebiliriz;

Projenin kodlarını Github hesabım üzerinden dotnet-core-signalr dizininde bulabilirsiniz.

ASP.NET Core projelerinde Kestrel adresini belirleme

12 June 2016 Yorum yapılmamış

Bu makaleyi okumadan önce Asp.Net Kategorisindeki diğer makalelerimi okumanızı tavsiye ederim.

AspNet Core 1.0 projelerinde Kestrel Application Server’ın çalışacağı adresi değiştirmek isteyebilirsiniz.

Hemen örnek proje oluşturacağımız dizine Command Prompt (Windows) veya Terminal (MacOS, Linux) içerisinden gidiyoruz ve aşağıdaki kodları çalıştırıyoruz;

Yeni oluşturduğumuz projeyi çalıştırmak için aşağıdaki komutu çalıştırmamız yeterli;

dotnet run

Proje http://localhost:5000 adresinden çalışmaya başlayacak, istediğimiz tarayıcıyı açarak http://localhost:5000 adresi aracılığıyla projeyi kullanabileceğiz.

Program.cs dosyası içerisinde yeralan Main() methoduna aşağıdaki kod parçasını ekleyecek olursak projenin çalıştırılacağı adresleri değiştirebiliriz;

Main() methodu aşağıdaki gibi bir hale gelmiş olmalı;