14 Şubat 2017 Salı

macOS'ta .Net Core'la ve Docker'la tanışma "Hello Core!" with mssql ;)



.Net Core ile tanışmam elimde olan ya da olmayan nedenlerden ötürü bir şekilde gecikmiş olsa da geç olsun güç olmasın mantığıyla ufaktan birbirimizi tanımaya başladık. ;)

Öncelikle .net core sdk'sını mac'imize kurmamız gerek;

https://www.microsoft.com/net/core#macos

Buradaki anlatımı yapan hanım pek şirin :) Ben buradaki sadece 2. adımla ilgilendim çünkü diğer adımları yaptırmak için farklı uygulamalar kullanacağım. Bir önceki postumda kurduğum Yeoman gibi. Yeoman'i yeni uygulama oluştururken kullanacağız.

Terminal'imizi açıp fishimize

~ sudo npm install -g yo generator-aspnet bower


paketlerini ekleme komutlarımızı yazıyoruz. Bunlar Yeoman'in uygulama oluşturucusu ve npm gibi bir paket yöneticisi olan bower'ı kurmak için.

Şimdi uygulamamızı oluşturabiliriz;

~ yo aspnet

yazarız ve karşımıza aşağıdaki gibi bir uygulama seçim ekranı çıkar.


Kullanmak istediğimiz UI Framework'ü seçeriz;

Ve tabii ki uygulamamıza isim veririz;

Uygulamamız oluştu. Yeyyyy :)



Uygulamayı oluşturduğumuz dizine
~ cd "HelloCore"
komutuyla gidip projeyi
~ dotnet restore
~ dotnet build
~ dotnet run
komutlarıyla derleyip geliştirmeye hazır hale getiriyoruz.


dotnet run komutumuzdan sonra "Now listening on: http://localhost:5000" uyarısını gördükten sonra tarayıcıya  http://localhost:5000 adresini yazdığımızda sitemizi görebiliyor olmamız lazım. İşte şöyle; 



Projemiz geliştirmeye hazır ama nerede geliştirsek? Ben çoğu yazılımcının olduğu gibi bir Visual Studio fanı olarak Visual Studio Code'da geliştirmek istedim. (Duyduğum kadarıyla Visual Studio for Mac'in daha çok yolu varmış.)

Bunun için Visual Studio Code'dan oluşturduğum uygulamanın dizinini açıyorum;



Tatlış ekranımız geldi. Peki neden tatlış böyle renkli renkli? Çünkü Code'a vscode-icons diye eklenti kurduk :)

Artık kodlamaya başlayabiliriz. Ne kodlasak ki? Ne yapsaaak ne yapsaaak.. Bir db kullansak, vee bu mac üzerinde mssql olsa :) Mümkün mü? Docker'la mümkün. (reklammlarr)

Docker'la da daha önce havalı havalı kullananları görmüş ama hiç kullanmamış biri olarak tanışma vesilemi .net core yapayım dedim mssql'i işin içine katarak.

https://blog.kodcu.com/2015/06/docker-nedir-neden-kullanilir/
"Docker işletim sistemi imajlarını versiyonlayan, Apache versiyon 2 lisanslı, Go dili ile yazılmış bir sanallaştırma ve konteyner teknolojisidir.

İşletim Sistemi İmajı Nedir?

Docker Linux türevinden işletim sistemleri üzerinde çalışan bir uygulamadır. Buradaki söylenen imaj ise, Linux türevi işletim sistemlerinden türetilmiş, boyut olarak küçültülmüş, Docker sanallaştırma ortamında çalışabilir işletim sistemi birimleridir."
Bu güzel buluşu kurup işimize başlayalım madem;
https://docs.docker.com/docker-for-mac/

Download linki;
https://download.docker.com/mac/stable/Docker.dmg

Kurduktan sonra terminalimizden docker üzerinden mssql'i şu kodla kurabiliriz;

~ docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=defineYourPassw0rd' -p 1433:1433 -d microsoft/mssql-server-linux
Kuruldu :)

Şimdi dbmize bağlanalım;


~ mssql -u SA -p defineYourPassw0rd
Artık bir db'miz var..



Şimdi Db'mizi projemizde kullanalım.

Bu adresteki 2. adımda nasıl kullanacağımız çok güzel anlatılmış.
https://www.microsoft.com/en-us/sql-server/developer-get-started/csharp-mac


// Build connection string
SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
builder.DataSource = "localhost";   // update me
builder.UserID = "sa";              // update me
builder.Password = "defineYourPassw0rd";      // update me
builder.InitialCatalog = "master";

// Connect to SQL
Console.Write("Connecting to SQL Server ... ");
using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
{
    connection.Open();
    Console.WriteLine("Done.");
}

Ben Program.cs class'ımda yeni db oluşturma kısmını ve tablolara kayıt ekleme kısımlarını yaptım, çalıştırdım, oldu.

Faydalı bir eklenti olarak mssql eklentisini code'a kurdum. Şöyle faydalı bir arkadaş;





İşte böyle.. Bundan iyisi işe yarar bir proje :p Onu da yapacağız inşallah ;) 

Aşağıdaki linklerden de güzel faydalandım;

https://social.technet.microsoft.com/wiki/contents/articles/36247.net-core-on-mac-building-an-asp-net-core-app-with-web-api-ef-postgresql-and-running-it-on-docker.aspx

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-develop-use-vscode 


Bu yazımı bu özel günde paylaşıyor olmam mesleğimi ne kadar sevdiğimin göstergesi aslında, altını çizerim :p Kendime bu kafam kadar karışık blog yazısını verdiğim için teşekkür ederim :))




1 yorum:

  1. Sports Betting - Mapyro
    Bet 1xbet korean the moneyline from 1:25 PM https://sol.edu.kg/ to 11:00 PM. 출장샵 See more. MapYO Sportsbook https://tricktactoe.com/ features live odds, live streaming, and detailed gri-go.com information.

    YanıtlaSil