19 Oca 2016

C#'da Queue, Stack ve Set Kütüphaneleri

LINKEDLIST
LinkedList, birbirine bağlı birçok objeden oluşan, içerisinde ileri geri gezebildiğimiz, araya obje ekleyebildiğimiz bir kütüphanedir. Her elemanın birbirine sıra olarak bağlı olması mantığından türemiştir.
Eğer sıra ile ileri ve geri gezmek istediğimiz bir listeye ihtiyaç varsa, LinkedList kullanmamız gerekir. Bunun dışında performans düşüreceğinden standart kullanımda tavsiye edilmez.

C#'da Dictionary Kullanımı

Eğer elimizde anahtar ile tanımlayabileceğimiz bir liste varsa, bu liste elemanları içinde hızlı arama yapmak istiyorsak, dictionary kullanarak değerlere ulaşma performasını arttırabiliriz. Dictionary, her satırı içerisinde bir anahtar (key) ve bir de değer (value) içerir. Anahtarlar değerler ile birebir eşleşir ve bir dictionary içinde her anahtardan bir tane olabilir. List’ler gibi generic bir sınıftır. Aşağıdaki gibi 2 farklı şekilde tanımlanır;

C#'da GenericList (Liste) Kullanımı

  • List, generics tipinde bir C# özelliğidir. 
  • Listeler dinamik dizilerdir. Bir listeyi tanımlarken boyut bildirmemize gerek yoktur.
  • Listeler dizilerden daha yavaştır.
  • Aynı dizi üzerinde birçok işlem yapan, performans spesifik bir uygulama geliştirmiyor isek ve listelerin özellikleri bizim için kolaylık yaratacaksa List kullanabiliriz.
  • Bir liste aşağıdaki gibi tanımlanabilir. < > işaretlerinin arasına hangi veri tipi yazılırsa liste o tipte elemanları tutar.
List<string> arkadaslarim = new List<string>();
List<int>    sayiList = new List<int>();
  • Listenin hafızada ayıracağı yer de tanım sırasında verilebilir. Listelerin kapasite tanımları sadece performans amaçlı bir ön tanımdır. Aşılırsa hata vermez.
List<string> telefonNumaralari = new List<string>(5000); //kapasite belirtilmiş liste

C#'da Array Sınıfı


Diziler, aynı veri tipine ait birden çok elemanı tutmaya yarayan veri tipleridir. Dizileri belli bir kapasiteye sahip olacak şekilde tanımlarız. Daha sonra indeks numarasını vererek, diziyi tanımladığımız tipte elemanlar ekleyebiliriz.

C#'da DateTime Kullanımı

DateTime d1 = new DateTime(1993, 2,13);
Console.WriteLine(“Tarih1: {0}”, d1);        //13.02.1993 00:00:00
DateTime d2 = new DateTime(1993, 2, 13, 23, 36, 0);
Console.WriteLine(“Tarih2: {0}”, d2);        //13.02.1993 23:36:00
DateTime d3 = DateTime.Parse(“13.2.1993”);
Console.WriteLine(“Tarih3: {0}”, d3);        //13.02.1993 00:00:00

C#'da Veri Tipi Dönüşümleri

  • Byte türünde bir değişken, int türünde bir değişkene dönüştürülürken, byte'ın alabileceği değer aralıkları, int'dan küçük olduğu için C# derleyicisi bizim için gerekli dönüşümü kendisi yapar. Bu duruma belirsiz (implicit) dönüşüm denir.
  • Tam tersi bir durumda bizim yapmak zorunda olduğumuz dönüşümlere ise explicit dönüşüm denir.
  • Bunların yanı sıra Microsoft .Net'de parse yöntemi kullanılarak da veri tipi dönüşümü sağlanabilir.

18 Oca 2016

.NET Hakkında Temel Bilgiler

.NET Framework, bize sağladığı imkanlar ile bütün ortamlarda aynı yapıyı kullanarak kod geliştirmemizi sağlar. Alt seviye dillerden (Assembly, C, Fortran) farklı olarak, Windows ile bir ara katman aracılığıyla iletişim kurarak, bizi detaylarla uğraştırmadan, kabuk üzerinde geliştirme yapmamızı sağlar.(Daha hızlı ve hatasız geliştirme) .NET ile Windows üzerine ara katman olarak CLR gelir. Bu katman hata ayıklama, tip kontrolü, çalışma zamanı derleyicileri gibi kodun üzerinde çalışabileceği bir altyapı sunuyor. Framework’un dosya, kelime, güvenlik, ağ, eş zamanlı işlemler, diziler gibi kolaylık sağlayan altyapısı bir üst katmanda bizim kullanımımıza açılıyor. Bunları kullanarak geliştirilmiş veri ve XML altyapısı da bize sunuluyor.

C# 'da Veri Tipleri ve Değişken Tanımlama

Veri tipleri hafızada ekonomi yapmamızı sağlar. Aynı zamanda kategorizasyon ve kullanım kolaylığı da sağlamaktadır.
C#’ta değişken tanımlamak 3 şekilde gerçekleşir;
  • VeriTipi değişkenAdı; (Değişkeni tanımlar, fakat hiçbir değer vermez.)
  • VeriTipi değişkenAdı = new VeriTipi( ); (Değişkeni tanımlar ve o veri tipinden yeni bir kopya alır.)
  • VeriTipi değişkenAdı = Değer; (Değişkeni tanımlar ve ona bir değer atar.)

C#'da İlk Konsol Uygulamamız - "Merhaba Dünya"


Visual Studio'da İşe Yarar Bilgiler

Bu yazımda hem kendim için, hem de merak edenler için Visual Studio'da kod yazarken bize yardımcı olabilecek bilgilerden bahsedeceğim. Yeni bilgiler öğrendikçe de bu yazıyı güncelleyeceğim.

Kablosuz Yerel Ağ Güvenliği Nasıl Sağlanır?

Kablosuz ağda, ağ kartı, kablosuz modem veya rooter gibi donanımlar kullanılır. En temel güvenlik problemi verilerin havada transfer edilmesidir. Kablosuz ağlarda switch ya da hub kullanılırarak  fiziksel güvenlik sağlanabilir. Kablosuz ağlardaki güvenlik açıkları ağır salıdırılara neden olabilir. Kablosuz ağa giren saldırganlar ağdaki kullanıcıların yapabileceği herşeyi yapabilir. Bilgisayarlardaki dosyaları, dizinleri kopyalayabilir. Zararlı programları bilgisayara kurabilir. Tüm ağ trafiğini kaydedip inceleyebilir. Kablosuz ağı dışardıdan kullananlar sevis reddi atakları (ddos), spam yapmak gibi kanunsuz işler için ağı kullanabilir. 

Sayısal İmzanın Avantajları Nelerdir?

Sayısal imza uygulamasıyla;
  • İmzalanan verinin bütünlüğü sağlanır.
  • İmza atacak şahsın bu yetkiye sahip olup olmadığı sağlanır.
  • İmza atanın bu imzayı inkar edememesi sağlanır.
  • İmzaya ait zaman damgası olması sağlanır.
  • Hız ve verimlilik sağlanır.
  • Gizlilik sağlanır.

Mesaj Doğrulama ve Özetleme Fonksiyonları

Mesaj Doğrulama
Mesaj bütünlüğünün korunması e-ticaret uygulamalarında gizlilikten daha önde gelen bir husustur. Mesaj doğrulama şu kavramları içerir:
·         Mesaj bütünlüğünün korunması
·         Göndericiinin kimliğinin geçerliliği
·         Mesaj kaynağının kendisini inkar edememesi

Kripto Sistemler

     Anlaşılır bir mesajı anlaşılamaz şekile dönüştürme ve mesajı tekrar eski haline geri dönüştürme prensipleri ve yöntemlerini içeren bilim dalına kriptografi denir. Anlaşılabilir orjinal metin, açık metin (plaint text) olarak adlandırılırken, dönüştürülen metin ise şifreli metin (cipher text) olarak adlandırılır.
     Anlaşılır bir metni yerlerini değiştirme veya yerine koyma yöntemlerini kullanarak anlaşılmaz şekle dönüştürmek için kullanılan algoritmaya şifreleyici adı verilir. Sadece gönderici ve alıcının bildiği algoritma tarafından kullanılan kritik bilgiler ise Key(anahtar) olarak adlandırılır.

Ağ Servisleri (Protokoller) Nedir ve Nelerden Oluşurlar?

Ağ Servisleri

Bir servis karşı sistemde çalışan bir süreç olup ağ kullanıcısına bazı hizmetler sağlar. Servislere özel port ve soketler ile ulaşılır. Port sistemdeki sanal bir posta birimidir. Herbir servis için ayrı bir port numarası tasarlanır. Kullanıcı bir servise erişmek istediği zaman oturum katmanı bunun için doğru port numarasını sağlamaktan sorumludur.

FTP(File Transfer Protocol)
İnternet üzerinden dosya transferi sağlayan bir servistir. File Transfer Protocol bu amaçla kullanılan standart bir protokoldür. Kullanıdı port numarası 20,21’dir.