28 Ekim 2016 Cuma

Go’da basit RESTful microservice yazma

import (
    "fmt"
    "net/http"
)

İlk olarak projeye “net/http” kütüphanesini eklemek gerekmektedir. 

package main

import (
     "fmt"
     "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
     fmt.Fprintln(w, "Welcome ", r.URL.Path)
     fmt.Fprintln(w, "Welcome ", r.URL.Path[1:])
}

func main() {
     http.HandleFunc("/", handler)
     http.ListenAndServe(":8080", nil)
}

Bu kod parçası iki önemli kısımdan oluşuyor: handler ve main
Handler fonksiyonu http.ResponseWriter ve http.Request tiplerinde iki parametre alır. Bu parametreleri de kullanarak server’a bir text döner. Bu text sabit bir “Welcome” string’inden ve url’den alınmış değerden oluşmaktadır. Örneğin url “http://localhost:8080/eyupdalan” ise “r.URL.Path” ile buradaki “/eyupdalan” kısmı alınır. başındaki “/” kısmı, “r.URL.Path[1:]” şeklinde atılabilir.

Main fonksiyonu kısmında, “http.ListenAndServe” fonksiyonundan faydalanılarak microservice’teki tanımlı tüm handler fonksiyonlarının 8080 portundan yönetilmesi sağlanmaktadır. 

Ubuntu'da bir porttaki servisi sonlandırmak

Servisin process id’sinin (PID) bulunması
fuser 8080/tcp

Bir portta çalışan process’in sonlandırılması:
fuser -k 8080/tcp

24 Ekim 2016 Pazartesi

Ubuntu'da GIT yükleme ve temel bazı komutlar

  • Ubuntu’da git yükleme:
sudo apt-get install git
  • git versiyon kontrolü:
git --version



  • Bazı temel komutlar


git clone <project git path>
path’teki projeyi içinde bulunulan dizine indirir
git clone git@github.com:whatever
git clone <project git path> --save
path’teki projeyi içinde bulunulan dizine indirir ve kaydeder. (packages.json’a ekler)
git clone git@github.com:whatever --save
git pull
içinde bulunulan dizindeki projenin son halini çeker

git add <file>
değişiklik yapılmış, yeni eklenmiş dosyayı git’e ekler

git add -A
değişiklik yapılmış, yeni eklenmiş tüm dosyaları git’e ekler

git add .
değişiklik yapılmış, yeni eklenmiş tüm dosyaları git’e ekler (-A ile aynı)

git commit -am ‘<comment>’
yapılmış tüm değişiklikleri, ekleme ve çıkarmaları yorum ile birlikte commit’ler

git push
commit’lenmiş olan değişiklikleri git’e gönderir

 

Ubuntu'da node.js yükleme

curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
  • versiyon kontrolü:
node -v 





Kaynak:
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

Ubuntu’da terminal üzerinden golang yükleme

  • go’nun son versiyonu kontrol edilir
https://storage.googleapis.com/golang
  • son versiyonu işletim sistemine uygun şekilde belirlenir ve terminalde aşağıdaki komut yazılır:
sudo curl -O https://storage.googleapis.com/golang/go1.7.1.linux-amd64.tar.gz  
  • indirilen sıkıştırılmış dosyayı açmak için aşağıdaki komut kullanılır:
sudo tar -xvf go1.7.1.linux-amd64.tar.gz
  • çıkarılan klasör /usr/local altına taşınır:
sudo mv go /usr/local 
  • golang’ı path’e ekleme işlemi: 
export PATH=$PATH:/usr/local/go/bin
  • go kurulum kontrolü:
go version 
 



Kaynaklar:

7 Ağustos 2015 Cuma

Object to DataTable in C#



Sample class:

    public class Ogrenci
    {
        public string Ad { get; set; }

        public string IkinciAd { get; set; }

        public string Soyad { get; set; }

        public int Yas { get; set; }

        public string Okul { get; set; }

        public string getirOgrenciIsmi()
        {
            return this.Ad + (String.IsNullOrEmpty(IkinciAd) ? string.Empty : (" " + this.IkinciAd)) + " " + this.Soyad;
        }
    }

Sample objects:

            Ogrenci ogrenci = new Ogrenci();
            ogrenci.Ad = "Ali";
            ogrenci.IkinciAd = "Veli";
            ogrenci.Soyad = "Soyisim";
            ogrenci.Okul = "Yıldız Teknik Üniversitesi";
            ogrenci.Yas = 20;

            Ogrenci ogrenci2 = new Ogrenci();
            ogrenci2.Ad = "Ahmet";
            ogrenci2.IkinciAd = "Mehmet";
            ogrenci2.Soyad = "Soyad";
            ogrenci2.Okul = "İstanbul Teknik Üniversitesi";
            ogrenci2.Yas = 25;

Object to DataTable conversion method:

        public DataTable ToDataTable<T>(T objectT)
        {
            DataTable dataTableResult = new DataTable(typeof(T).Name);
            PropertyInfo[] objectProperites = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo prop in objectProperites)
            {
                dataTableResult.Columns.Add(prop.Name, prop.PropertyType);
            }

            if (objectT != null)
            {
                var values = new object[objectProperites.Length];
                for (int i = 0; i < objectProperites.Length; i++)
                {
                    values[i] = objectProperites[i].GetValue(objectT, null);
                }
                dataTableResult.Rows.Add(values);
            }

            return dataTableResult;
        }

Object to DataTable result:

            DataTable dtResult = ToDataTable<Ogrenci>(ogrenci);



 
 
Object List:

            List<Ogrenci> ogrenciList = new List<Ogrenci>();
            ogrenciList.Add(ogrenci);
            ogrenciList.Add(ogrenci2);



Object list to DataTable conversion method:

        public DataTable ToDataTable<T>(List<T> objectTList)
        {
            DataTable dataTableResult = new DataTable(typeof(T).Name);
            PropertyInfo[] objectProperties = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo prop in objectProperties)
            {
                dataTableResult.Columns.Add(prop.Name, prop.PropertyType);
            }

            if (objectTList != null)
            {
                foreach (T item in objectTList)
                {
                    var values = new object[objectProperties.Length];
                    for (int i = 0; i < objectProperties.Length; i++)
                    {
                        values[i] = objectProperties[i].GetValue(item, null);
                    }
                    dataTableResult.Rows.Add(values);
                }
            }

            return dataTableResult;
        }
 



Object List to DataTable result:

            DataTable dtResult2 = ToDataTable<Ogrenci>(ogrenciList);