docker üzerinde uygulama çalıştırma


Merhaba

Bugün Docker üzerinde bir uygulamayı nasıl çalıştırabiliriz ona bakacağız. Öncelikle Docker Download işlemini yapalım. Docker indirme işleminden sonra uygulamamızı kurup yeni yazacağımız uygulamamızı nasıl Docker üzerinde çalıştırabiliriz onlara bakalım. Docker üzerinde bir .Net Core uygulaması çalıştıracağız. Uygulamamızı hazırlamak için bir terminal açalım ve aşağıdaki kodlar yardımı ile hazırlığımızı yapalım. Şimdi terminal yardımı ile NetCoreDocker isimli bir .Net Core Console uygulamamızı hazırlamaya başlayalım.

$ cd Desktop
$ dotnet new console -n NetCoreDocker

Yukarıdaki kodlar ile üzerinde çalışacağımız uygulamamız artık hazır. Şimdi Docker üzerinde bu uygulamamızı çalıştırmak için gerekli olan ayarlamaları yapalım. Uygulamamız açtıktan sonra ana dizinde Dockerfile isimli bir dosya oluşturup içerisinde de Docker ayarlarımızı yapalım. Dockerfile içeriğini aşağıdaki gibi ayarlayabiliriz. Console uygulaması çalıştıracağımız için Web API uygulamasında ihtiyacımız olan port yönetim kodlarını yorum olarak bıraktım.

[Dockerfile]

FROM microsoft/dotnet
WORKDIR /app
COPY ./ .
#Web API için yorum satırını açabilirsiniz.
#ENV ASPNETCORE_URLS http://+:80
#EXPOSE 80
RUN dotnet restore

ENTRYPOINT ["dotnet", "run"]

Bu ayarlama işleminden sonra artık uygulamamızı kayıt edip Docker üzerinde bu uygulamamızı oluşturup kullanalım. Yine terminal yardımı ile uygulamanın bulunduğu dizinde aşağıdaki komutlar yardımı ile işlemimize devam edelim.

$ cd Desktop
$ cd NetCoreDocker
$ docker build -t net-core-docker-app .

Bu komut çalıştığında internet hızınıza göre bir süre beklemeniz gerekiyor, bu süre içinde Docker gerekli olan dosya ve kütüphaneleri indiriyor. İndirme işlemi bitip uygulamamız Docker üzerinde hazırlandığında ise aşağıdaki komut ile uygulamamızı çalıştırabiliriz.

$ cd Desktop
$ cd NetCoreDocker
$ docker run net-core-docker-app

Bu komut sonrasında ise artık uygulamamızdan bize “Hello World from Docker :)” sonucu geliyor. Projenin kaynak kodlarına üzerinden erişebilirsiniz.

Kolay gelsin.

mac os .net kurulumu ve kullanımı


Merhaba

Bugün macOS üzerinde .net kurulumunu ve bu kurulum sonrasında ilk uygulamamızı yazıp kullanımına bakacağız. Öncelikle .net core download işlemini yapalım. İndirdiğimiz dosyayı çalıştırdığımızda aşağıdaki adımları takip ederek basitçe kurulumu tamamlayalım.

[Adım 1]

[Adım 2]

[Adım 3]

[Adım 4]

Bu aşamada bilgisayarımızın şifresini girip yüklemeye izin veriyoruz.

[Adım 5]

Yükleme işlemi tamamlandı. Şimdi sıra uygulamamızı hazırlamakta. İlk olarak bir terminal açalım ve sırası ile aşağıdaki komutları terminalde uygulayıp ilk programımızı oluşturalım.

$ cd Desktop
$ mkdir MacOSDotNet
$ cd MacOSDotNet
$ dotnet new webapi

Komut satırında “dotnet new webapi” komutunu çalıştırdıktan sonra oluşan webapi uygulamamızı açmak için herhangi bir editör kullanabiliriz.Ben bu işlem için Visual Studio Code kullandığımdan aşağıdaki kodu yazarak projemi açıyorum. İsterseniz Visual Studio Code download işleminden sonra sisteminizde vs code kullanabilirsiniz.

$ code .

Bu komut sonrasında projemiz Visual Studio Code ile açtık ve birkaç düzenleme yaptıktan sonra çalıştırabiliriz. İlk olarak proje içindeki launchSettings.json içeriğinde bulunan “applicationUrl”: “https://localhost:5001;http://localhost:5000 “, bilgisini “applicationUrl”: “http://localhost:5000 “,   olarak güncelleyelim. bu işlem sonrasında benim proje içindeki dosya aşağıdaki gibi görünüyor.

[launchSettings.json]

{
  "$schema": "http://json.schemastore.org/launchsettings.json",
  "iisSettings": {
    "windowsAuthentication": false, 
    "anonymousAuthentication": true, 
    "iisExpress": {
      "applicationUrl": "http://localhost:32954",
      "sslPort": 44398
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "MacOSDotNet": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "api/values",
      "applicationUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

Bu ayarlamadan sonra değişiklik yaptığımız dosyaları kayıt edip terminalde uygulamamızın olduğu dizine geçip aşağıdaki komutları yazalım. Başka bir konumda olma ihtimaline karşı yeni bir terminal sayfası açıp uygulamanın olduğunu konuma geçme ve sonrasında uygulamayı çalıştırma komutu olan dotnet run kodunu yazdım. Terminalde yazdığım satırlar aşağıdaki gibidir.

$ cd Desktop
$ cd MacOSDotNet
$ dotnet run

Bu komutları çalıştırınca uygulamamızın “http://localhost:5000 ” adresinde çalıştığı bilgisi terminalde bize veriliyor. Örnek uygulamızın içinde bulunan ValuesController sınıfında istek göndereceğimiz adres tanımı olduğu için ister herhangi bir tarayıcı üzerinden ister mac ortamında terminalde curl komutu ile uygulamamızın çalışıp çalışmadığını test edebiliriz. Ben ilk olarak terminal üzerinden aşağıdaki kodu yazıp çalışan uygulamanın bana sonuç olarak ValuesController.cs içindeki örnek değerler olan “value1”, “value2” bilgilerini göstermesini bekleyeceğim. Daha sonrada aynı işlemi tarayıcı üzerinden test edebiliriz. Terminal ve tarayıcı üzerinden test işlemi yaparken mutlaka uygulamamızın çalışıyor durumda olması gerekiyor.

$ curl localhost:5000/api/values

Bu komut çalışdıktan sonra terminal ekranında beklediğim gibi [“value1″,”value2”] sonuçlarını verdi. Şimdi aynı işlemi tarayıcı üzerinde yaptığımızda da sonuç olarak [“value1″,”value2”] bilgisini göreceğiz.
Projenin kaynak kodlarına adresinden ulaşabilirsiniz.

Kolay gelsin.

mac os gitkraken kurulumu


Merhaba gitkraken-keif-teal-sq
Bugün yeni keşfettiğim ve çok memnun kaldığım bir git istemcisinden ve onun kurulumundan bahsedeceğim. Bu git istemcisi GitKraken. Kurulum işleminden sonrada basit bir text dosyası oluşturup onu git ortamında versiyon takibini GitKraken ile yapacak ve bu değişimleri GitHub üzerine göndereceğiz. İlk önce GitKraken Download adresinden uygulamamızı ilgili işletim sistemimize göre indirelim. Bu durumda ben macOS versiyonunu indirdim. İndirme işleminden sonra .dmg uzantılı dosyamıza çift tıkladığımızda karşımıza gelen aşağıdaki ekranda olduğu gibi GitKraken uygulamamızı sürükle bırak yöntemi ile uygulama kurma işlemimizi tamamlıyoruz.

Kurulum işleminden sonra karşımıza uygulamayı kullanabilmek için hesap açma ya da var olan GitHub veya GitKraken hesabı ile oturum açma seçenekleri geliyor.

Bu aşamadan sonra uygulama üzerinde oturum açtığımızda karşımıza gelen bir kaç ayarı yapıp artık kullanıma geçebiliriz. Uygulamanın basit olarak kullanımını göstermek için bir proje oluşturup onu GitHub a gönderelim. İlk olarak terminali açıp aşağıdaki komutları sırası ile çalıştırıp örnek bir proje oluşturalım.

$  cd Desktop
$  mkdir GitKraken
$  cd GitKraken
$  echo 'Git Kraken Test' > GitKrakenTest.txt
$  git init
$  git add *
$  git commit -m "initial commit"

GitKraken dosyamız hazır olduğuna göre uygulamadan bu “File > Open Repo” seçeceği ile dosyamızı açalım. Dosya açıldıktan sonra aşağıdakine benzer bir görüntü sizi karşılayacak.

Artık lokalde yaptığımız değişiklikleri GitKraken sayesinde görsel olarak görebiliriz. Şimdi bu dosyamızı GitHub üzerinde bir repo oluşturup oraya gönderelim. Bunun içinde “File > Init Repo” seçeceği ile karşımıza gelen seçeneklerden GitHub seçimini yapıp gerekli ayarlamalardan sonra repomuzu oluşturabiliriz. Örnek ayarlar aşağıdaki gibi olacaktır.

GitHub kurulumu yaptıktan sonra GitKraken dosyası altındaki GitKrakenTest.txt dosyası içinde değişiklik yapıp GitKraken kullanarak commit ve push işlemleri yapalım ve sonrasında da GitHub üzerinde bu değişimi görelim.

İşte bu kadar GitKraken kurulumu ve basit olarak bir dosyanın git kullanılarak versiyon kontrolünün yapılması ve bu değişimlerin GitHub ortamına aktarılması. GitHub ekran görüntüsünü eklemiyorum https://github.com/sametcelikbicak/GitKraken adresinden GitHub reposuna bakabilirsiniz.

Kolay gelsin.

quicktime sesli ekran kaydı yapma


Merhaba,
Bugün macOS ortamında QuickTime Player ile ekran kaydının sesli olarak nasıl yapabileceğimize bakacağız. Normal ayarlarda ekran kaydı ses olmadan yapılmakta. QuickTime uygulamasını çalıştırdığınızda aşağıdaki ekran görüntüsündeki gibi seçenekleri bulabilirsiniz.

Bu seçeneklerden yeni ekran kaydı seçeceğini seçtiğimizde normal ayarla ses kaydı olmadan ekran kaydı alabiliyoruz. Aşağıdaki ekran görüntüsünde olduğu için dahili mikrofon seçimi ile artık ekran kaydımızı sesli olarak yapabiliyoruz.

Ekran görüntüsünde olduğu gibi normal ayarlar mikrofon seçimi yok olarak gelmekte ama biz dahili mikrofon seçimini yaparak işlemimize devam edebiliriz. Dahili mikrofon seçiminden sonra ise artık ekran kaydı yapmamız için herşey hazır oluyor ve mikrofonun ses seviyesini de ayarlayabiliyoruz.

Başka uygulamalara ihtiyaç duymadan hızlı ve basit olarak sesli ekran kaydımızı bu ayarlardan sonra yapabiliriz.

Kolay gelsin.

swift ile notification kullanımı


Merhaba
Bugün swift ile yazdığımız uygulamalarımızda kullanabilceğimiz zaman zaman ihtiyacımız olan ve bir konu veya içeriği bize hatırlatması için kullandığımız “Notification (Bildirim)” özelliğine bakacağız. Bu özelliği test etmek için de  basit olarak bir bildirim gönderen uygulama yapalım.

Uygulamamıza gönderecek olduğumuz bildirimin başlığını ve detayını girebileceğimiz iki adet textfiled ekleyelim ve sonrasında ise bu bildirimin ne zaman bize gelmesini istiyorsak onu ayarlamak için de bir adet datepicker ekleyelim. Tüm ayarlamalardan sonra bildirim gönder işlemi ile uygulama üzerinde yazdığımız bildirim başlık ve detayını belirtiğimiz tarihde bize gelmesi için bildirim gönder butonu ile işlemimizi tamamlayalım.

Şimdi uygulamamızı hazırlamaya başlayabiliriz.

Buradan yeni bir Xcode projesi oluşturalım.

Buradan single view app seçiminden sonra uygulamamızın adını verip işlemimize deva edelim.

Bu aşamdan sonra uygulamamız hazır ve biz kodlamamıza başlayalım. Öncelikle notification özelliğini aktif etmek için “AppDelegate.swift” içerisine “UserNotifications” bilgisini eklememiz gerekiyor bu işlem sonrasında da “didFinishLaunchingWithOptions” içerisinde notification özelliğini aktif etmemiz lazım ve bu özellik uygulama ilk çalıştığında kullanıcıya notification için izin verip vermediğini soracaktır. Daha sonra gelen bildirimleri sıfırlamak içinde uygulama aktif olduğunda yani “applicationDidBecomeActive” içersinde de düzenleme yapmalıyız. Bu işlemere ait kodlar aşağıdaki gibidir.

[AppDelegate.swift]

//
//  AppDelegate.swift
//  Notification
//
//  Created by Samet ÇELİKBIÇAK on 24.03.2018.
//  Copyright © 2018 Samet ÇELİKBIÇAK. All rights reserved.
//

import UIKit
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (success, error) in
            if error != nil {
                application.registerForRemoteNotifications()
            }
        }
        return true
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        if UIApplication.shared.applicationIconBadgeNumber > -1 {
            UIApplication.shared.applicationIconBadgeNumber = -1
            UserDefaults.standard.set(0, forKey: "bildirimSayisi")
        }
    }

}

AppDelegate.swift içindeki düzenlemeler bittikten sonra artık asıl kodlama yapacağımız yere ViewController.swift içerisine bakalım. Buraya yukarıda bahsettiğim kullanacak olduğumuz değişkenlerin tanımlamalarını yaptık ve bu değişkenleri değerleri ile notification gönderimi için gerekli olan kodlarımızı yazdık.

[ViewController.swift]

//
//  ViewController.swift
//  Notification
//
//  Created by Samet ÇELİKBIÇAK on 24.03.2018.
//  Copyright © 2018 Samet ÇELİKBIÇAK. All rights reserved.
//

import UIKit
import UserNotifications

class ViewController: UIViewController {
    
    
    @IBOutlet weak var bildirimBaslikTextField: UITextField!
    @IBOutlet weak var bildirimDetayTextField: UITextField!
    @IBOutlet weak var bildirimTarihDatePicker: UIDatePicker!
    
    var bildirimSayisi: Int = UserDefaults.standard.integer(forKey: "bildirimSayisi")
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
    }
    
    
    
    func BildirimGonder (title titleText: String, body bodyText:String, date notificationDate:Date) {
        let center = UNUserNotificationCenter.current()
        let content = UNMutableNotificationContent()
        content.title = titleText
        content.body = bodyText
        content.sound = UNNotificationSound.default()
        content.badge = (self.bildirimSayisi + 1) as NSNumber
        BildirimSayisiArttir(bildirimSayisi: self.bildirimSayisi + 1)
        let trigerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute,], from: notificationDate)
        let trigger = UNCalendarNotificationTrigger(dateMatching: trigerDate, repeats: false)
        let identifier = UUID().uuidString
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
        
        center.add(request) { (error) in
            if error != nil {
                print("BildirimGonder Hata: \(String(describing: error))")
            }
        }
    }
    
    func BildirimSayisiArttir(bildirimSayisi: Int) {
        if bildirimSayisi > -1 {
            self.bildirimSayisi = bildirimSayisi
            UserDefaults.standard.set(self.bildirimSayisi, forKey: "bildirimSayisi")
        } else {
            UIApplication.shared.applicationIconBadgeNumber = -1
        }
    }
    
    
    @IBAction func bildirimGonder(_ sender: Any) {
        BildirimGonder(title: bildirimBaslikTextField.text!, body: bildirimDetayTextField.text!, date: bildirimTarihDatePicker.date)
    
        let alert = UIAlertController(title: "Bildirim", message: "Bildirim Ayarlandı", preferredStyle: .alert)
        let action = UIAlertAction(title: "Tamam", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }
    
    
}

Yukarıdaki kodlarda da görüleceği gibi bildirim gönderme işlemi bu kadar basit. Öncelikle bildirimlerimiz için bir UNUserNotificationCenter.current() komutu ile bir center oluşturuyoruz, daha önce bildirim içeriği için UNMutableNotificationContent() komutu ile bir content oluşturuyoruz. Daha sonra bu bildirimin bize ne zaman geleceğini ayarlama adımında ise UNCalendarNotificationTrigger komutunu kullanıyoruz. Gerekli tüm ayarlamaları yaptıktan sonra bildirimimiz için UNNotificationRequest komutu ile bir kayıt oluşturuyoruz. Herşey bu kadar ve uygulamamızı çalıştırdığımızda ise ilk olarak aşağıdaki gibi bir ekran geliyor ve bizden izin istiyor.

Bu izini verdikten sonra şimdi sırada istediğimiz zamana bir kayıt oluşturmak.

Gerekli alanları doldurum zaman seçtikten sonra ise, uygulama bildirim zamanı geldiğinde bize bildirim gösteriyor. Bu aşamadan sonra bildirim gönder butonuna basınca uygulamamızdan çıkıp ana ekranda vaktin gelmesini bekleyelim ve bildirimi görelim.

Bildirim geçtikten sonra ise uygulamamız üzerinde bize gelen bildirimleri gösteren sayıyı görebiliriz.

Biz telefonla işlem yapıyorsa bu şekilde bir bildirim geliyor. Ama telefon ekran kapalı konumda bekliyorsa bildirim geldiğinde aşağıdaki gibi bir durum oluşuyor.

Bildirim merkezinden bildirimlere baktığımızda ise aşağıdaki gibi görebiliriz.

Bu durumda gelen bir bildirim için artık aşağıdaki gibi işlemleri yapabiliriz. Bildirimi sağ doğru çektiğimizde gelen bildirimi açma işlemini görebiliriz.

Gelen bildirimi sola doğru çektiğimizde ise görüntüleme ve silme işlemini görebiliriz.

Yukarıdaki işlemlerde olduğu gibi çok basit birkaç işlem ile uygulamamıza bildirim özelliği ekledik ve gelen bildirimler ile ne yapabilceğimizi gördük.

Projenin kaynak kodlarına üzerinden ulaşabilirsiniz.
Kolay gelsin.

%d blogcu bunu beğendi: