29 Mart 2018 Perşembe

ASP.NET Wep API Çıktısını XML Yerine JSON Almak


ASP.NET Wep API Çıktısını XML Yerine JSON Almak

Web API projemizdeki App_Start klasörü altıda WebApiConfig.cs dosyasındaki WebApiConfig sınıfının içindeki Register metoduna aşağıdaki satırı ekleyerek XML çıktı yerine JSON çıktı alabiliriz.

config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));


WebApiConfig dosyayına aşağıdaki Namespace eklemeyi unutmayınız.

using System.Net.Http.Headers;

Bahsedilen dönüştürmeyi yaptıktan sonra Kullanıcı modellinden XML çıktı yerine JSON çıktı alabilirsiniz. Varsayılan kofigürasyonda çıktı XML formattadır.












XML Çıktı







JSON Çıktı


6 Aralık 2017 Çarşamba

C# Windows Form - Combobox Linq İle Veri Ekleme

Merhaba Arkadaşlar,

Bu yazıda işinize yarayacak ve benim de uzun süre çözüm aradığım konuda küçük bir bilgi paylaşacağım. C# Windows Form uygulamasında diyelim ki personel tablomuza verileri eklerken personelin departmanı combobox listeden seçtiğimizi ve aynı zamanda uygulamada departman ekleme silme de yaptığımızı düşünelim. Buna göre veritabanında departman tablomuz da olmalıdır.

Departman Tablosu

Veri tabanından departman listesini combobox bağladığımızda resimdeki gibi olacaktır.



using (var context = new MuhasebeContext())
            {
                var departman = (from g in context.PersonelDepartmanlari orderby g.Tanim select new { g.Id, g.Tanim}).ToList();

                cbDepartman.DataSource = departman;
                cbDepartman.DisplayMember = "Tanim";
                cbDepartman.ValueMember = "Id";
}

DbContext sınıfından türetilmiş MuhasebeContext PersonelDepartmanlari varlığından verileri getirdik. Verileri toList() ile liste koleksiyonunda dönüştürdük. 

Diyelim ki biz personel listesini departman kriterine göre veya departman kriterini belirtmeden filtreleyeceğiz. Bunun için combobox listesinde "Seçim Yapılmadı" gibi bir eleman daha eklemeliyiz. 
Kodumuzu buna göre değiştirip.
using (var context = new MuhasebeContext())
            {
                var departman = (from g in context.PersonelDepartmanlari orderby g.Tanim select new { g.Id, g.Tanim}).ToList();
                departman.Add(new { Id = -1, Tanim = "Seçim Yok" });
                cbDepartman.DataSource = departman;
                cbDepartman.DisplayMember = "Tanim";
                cbDepartman.ValueMember = "Id";
}

Yani combobox resimdeki gibi olmalıdır.

İyi çalışmalar.

6 Kasım 2017 Pazartesi

DHCP SERVER

Bu yazı kullanıcı(veya ağ cihazı) sayıları fazla olmayan ve fazla konfigürasyon gerektirmeyen sistemleri yöneten bilgi işlem personellerine DHCP Server önemini, kurulumunu ve konfigürasyonunu göstermek amacıyla hazırlanmıştır. Daha önce çalıştığım kurumda yaklaşık 70 kullanıcı ve 120 ağ cihazı vardı. Bu ağ cihazları arasında Masaüstü Bilgisayarlar, Tablet Bilgisayarlar, Yazıcılar ve Tarayıcılar vardı. Yapımızda Windows Server 2012 R2 Sunucu işletim sistemine DHCP Server kurmuştum. Böyle bir yapıyı göz önünde bulundurarak konuyu anlatmaya çalışacağım. İstemci(Client) bilgisayarlara Windows 8 işletim sistemi kuruludur.

DHCP Nedir?
Ağ cihazlarının otomatik IP adresi almalarını sağlayan protokoldür. Sadece IP adresi değil ağ cihazlarının DNS ve Ağgeçidi adreslerini de otomatik almasını sağlar.

Ağdaki cihazlarına iki şeçenekle IP adresi ataması yapılabilir.
Statik IP ataması: tüm IP bilgileri elle girilir.
Dinamik IP ataması: seçeneğiyle IP bilgileri DHCP sunucudan belli süreliğine bir IP kiralanır ve otomatik atanır.


























Statik IP ve Dinamik IP Karşılaştırılması

Statik IP
Dinamik IP
IP ayarı çok zaman alır.
IP ayarı daha az zaman alır.
IP ayarı elle yapıldığı için zordur. Aynı zamanda sıkıcı ve yorucudur.
IP ayarı otomatik yapıldığı için daha kolaydır.
IP ayarları doğruluğundan emin olunur.
IP ayarı doğrulanmaz ve IP çakışmasına neden olabilir.
İstemci başka ağa taşındığında IP ayarı yeniden yapılmalıdır.
Yeni ağda IP ayarı yapılmaz.


Windows Server 2012 R2 DHCP Server Kurulumu ve Konfigürasyonu

DHCP Server Kurulumu

  1. Server Manager'ı aç Add roles and features tıklayınız.
  2. Before you begin pencereside, rol ve özellik kurulumu hakkında bilgiler içermektedir Next tıklayınız.
  3. Selection installation type penceresinde, role-based or feature-based installation seçeneğini işaretleyerek Next tıklayınız.
  4. Selection Destination Server penceresinde, DHCP Server'ün kurulacağı server seçilip, Next tıklayınız.
  5. Server Select Roles penceresinde, DHCP Server seçip Next tıklayınız.
  6. Features penceresinde seçeceğiniz özellik olmadığından direkt Next tıklayıp devam ediniz.
  7. DHCP Server penceresinde, bir kaç uyarı ve bilgi bulunmaktadır Next deyip devam ediniz.
  8. Configuration penceresinde Restart kutusnu işaretleyerek install tıklayarak kurulumu başlatın ve kurulum bitince close tıklayınız.
  9. DHCP Server kurulduktan sonra açılan sihirbazda bu rolün yetkilendirme işlemleri yapılır.
Yukarıdaki adımlardan sora DHCP Server kullanıma hazırdır.

DHCP Server Konfigürasyonu

DHCP Server konfigürasyonuna gelmek için Server Manager -> DHCP tıklayınız.

Açılan pencerenin sol panelinde DHCP ->Active Directory İsmi -> IPv4 ikonunu sağ tıklayarak yapılabilecek konfigürasyonlar menüsü listelenmektedir.

Menüden New Scope tıklanarak yeni scope tanımlanabilir.
  1. Scope adı ve açıklaması bilgileri girilir.
  2. IP aralığı (örnek 192.168.1.20 – 192.168.1.30) ve alt ağ maskesi bilgileri girilir.
  3. Add Exclusions and Delay penceresinde, istemcilere kiralanmayacak IP aralıkları belirlenir.
  4. Lease Duration penceresinde kiralanan IP'lerin istemcilere kiralanma süresi belirlenir.
  5. Configuration DHCP Options penceresinden YES seçeneğiyle, Varsayılan ağ geçidi(Default Gateway) ve DNS bilgilerinin de otomatik ataması için gerekli adımlara yönlendirilir.
  6. Varsayılan ağ geçidi ve DNS bilgileri de belirlendikten sonra oluşturulan yeni scope' un aktif scope yapıp yapmayacağımız sorulur. Seçimimizi yeni scope oluşturmayı tamamlıyoruz.

Oluşturulan scope'un altında Address Pools, Address Leasses, Reservations, Scope Options ve Policies menüleri mevcuttur.


Reservations menüsünden bazı istemcilere daimi IP rezerve edilebilir. Örneğin bir ap yazıcının IP adresinin değişmesini istemiyorsanız bu seçeneği kullanarak veya statik IP ayarlama yöntemiyle yapabilirsiniz.

Son olarak Active Directory isminin ikonunu sağ tıklayarak DHCP Server veritabanını yedekleyebilir ve geri yükleyebilirsiniz.


DHCP Scope : DHCP Server tarafından istemcilere kiralanan IP aralığıdır.


Sistem konusunda hatırladığım kadarıyla ilk yazımdır. Umarım faydalı olur.


Kaynak : Windows Server 2012 R2 Sistem Uzmanlığı – Fahrettin ERDİNÇ

22 Ekim 2017 Pazar

AngularJS Framework Örnekleri - Yeni Başlayanlar için...

Merhaba arkadaşlar bu yazıda AngularJS yeni başlayan için basit ve aynı zamanda AngularJS temelini öğretecek 8 örnek hazırlayıp yayınladım. Örnekler tek html sayfasının içerisindedir. Controller scriptlerini de < script > tagı ile aynı sayfanın içine koydum. Dilerseniz sayfayı buradan indirebilirsiniz.
AngularJS JavaScript ile hazırlanmış bir client-side frameworktür. Mobile web siteleri hazırlamak için kullanabilir. Kullanıcıların istek ve cevapları hızlı sonuçlanır. Route sayesisinde sayfa geçişlerinde sürekli server ile iletişime geçmeye gerek yoktur. RESTful web servis ile çalışmak çok kolaydır.

1. AgullarJS çalıştı mı?

AngularJS uygulamaları HTML tagı içerisinde ng-app direktifi ile başlar. ng-app Direktifinin bulunduğu HTML tagın < /.. > kapatılması ile sonlanır.
AngularJS bağlantısı yapılmışsa ve çalışıyorsa { { 4+3 } } ifadesinin çıktısı 7 olacaktır.

   // Module tanımlanması.
   var app=angular.module("app",[]);
  
Çıktı:{{ 4+3 }}

2. Direktifler 1 - ng-model ve ng-bind

Bu örnekte ng-model="name" direktifi olan text içinde yazılan değeri ng-bind="name" direktifi olan span tagı içerisinde göstermektedir.
İsminizi Giriniz:
Merhaba

3. Direktifler 2 - ng-repeat ve ng-init

ng-repeat direktifi foreach mantığıya çalışır. Listelenen kayıt sayısı kadar tag tekrarlanır. Veriler ng-init direktifi içinde json formata yazılmıştır.
Şehir Tablosu
  • Şehir: {{ item.city }} Plaka Kodu: {{ item.plate }}

4. İfadeler

İfadeler { { ifadeler } } içiçe iki süslü parantez içinde yazılır.
Merhaba {{student.firstname + " " + student.lastname}}!
Kitabın Fiyatı : {{cost * quantity}} TL
Öğrenci No: {{student.rollno}}
Puan(Mat): {{marks[3]}}

5. Controller

MVC Direktif: ng-controller
AngularJS uygulamarının temelinde Controller vardır. Uygulamanın içindeki verilerin akışını Controller kontroler eder. ng-controller direktifi ile tanımlanır. Controller içinde özellikleri ve fonksiyonları barındıran JavaScript nesnesidir. Her Controller'ün bir $scope parametresi vardır.

  // FirstController
  app.controller('FirstController',['$scope', function FirstController($scope) {
   $scope.message="{ { message } } İlk Controller";
  }])
  
{{ message }}

6. Controller devam...

Örnek: Öğrenci Listesi

  // Student Controller
  app.controller('StudentController',['$scope', function StudentController($scope) {
   $scope.students=[
    {
     name:"Berken",
     no:101,
     lessons:['math:70','history:87']
    },
    {
     name:"Neslihan",
     no:102,
     lessons:['lineer:67','math:50','datastructer:47']  
    }
   ];
  }])
  
Öğrenci Numarası Dersler
{{ student.name }} {{ student.no }}
  • {{ lesson }}

7. Controller devam...

Örnek: Controller içinde metot tanımlanması
Aynı zamada ng-model ve ng-click direktiflerinin nasıl kullanıldığını gösteren bir örnek.

  // Cutomer Controller
  app.controller('CustomerController', ['$scope',
   function CustomerControler($scope) {
    $scope.customer={};
    $scope.customer.name = "Resul GÜNEŞ";
    $scope.customer.number = 44522;
    // scopa metot ekleme
    $scope.changeCustomer = function(){
    $scope.customer.name = $scope.cName;
    $scope.customer.number = $scope.cNumber;
   };
  }]);
  
Müşteri Adı: {{ customer.name }} Numara: {{ customer.number }}
Müşteri Adı:
Numarası:

8. Controller devam...

Örnek: Form Submit
ng-submit direktifinin nasıl kullanıldığını gösteren bir örnek.

  // AddCustomer Controller
  app.controller('AddCustomerController',['$scope','$location',
   function AddCustomerController($scope,$location){
    $scope.submit=function(){
     $location.path('/AddCustomer/'+$scope.cName+'/'+$scope.cNumber);
    };
  }]);
  
Müşteri Adı:
Numarası: