9 Ağustos 2020 Pazar

Temel Linux Komutları ve Kullanımları


Linux kullanıcılarının bilmeleri gereken en önemli ve temel linux komutlarını kullanımları ile birlikte hazırladık.


  • pwd:Hangi dizinde bulunulduğunu gösterir.
  • man:Komut hakkında detaylı bilgi almak için kullanılır.
     man ls
  • mkdir:Yeni bir dizin oluşturur.
     mkdir klasoradi
  • touch:Yeni bir dosya oluşturur.
     touch dosyaadi
  • rm:Dosya veya klasör siler
     rm dosyaadi
  • cp:Dosya veya klasörü kopyalar.
     cp klasoradi
  • mv:Dosya veya klasörleri taşımak için kullanılır.
     mv klasoradi klasoradi2
  • find: Gelişmiş arama aracıdır.

     find . -name "*.txt"

  • cd: Dizin değiştirir.
     cd klasoradi
  • ls:Dosya ve dizinleri listeleyip, özelliklerini görüntüler.
     ls -a
     ls -l
  • cat:Dosya içeriğini görüntüler
     cat dosyaadi
  • echo: ekrana basar.
     echo "stratejidedektifi"
     echo $HOME
  • more, less:Ekrana sığmayan dosyaları görüntüler.
           more dosyaadi
  • head: Bir dosyanın baştan itibaren istenilen sayıda satırını ekrana basar.
     head dosyaadi
     head -l dosyaadi
  • tail:Head gibi çalışır, farkı sondan itibaren ekrana basar.
     tail -f dosyaadi
  • grep:Metin dosyaları içerisinde belirli değerleri arar.
     grep "kelime" dosyaadi
     grep "kelime . -R
     grep "kelime" dosyaadi -i
  • uname:Sistem bilgilerini görüntüler.
     uname -a
  • chown:Dosya ve klasörlerin sahibi, grubunu değiştirir.
     chown ali :users dosyaadi
     chown -R ali : users klasoradi/
  • service:Servislerin yönetimi için kullanılır.
     service apache2 start
  • mount:Diskleri sisteme bağlar.
     mount / dev /sdb1 mnt


NetBeans IDE ve JDK Kurulumu - Resimli Anlatım

Resimler yardımı ile Windows İşletim Sistemleri için JDK ve NetBeans IDE'yi Kuralım. https://www.oracle.com/technetwork/java/javase/download/index.html sitesinden işletim sisteminize uygun JDK'yı indirdikten sonra bildiğimiz çift tıkla "next, next" işlemlerine başlayalım.



Bu ekranda change ile JDK'nın kurulacağı dizini değiştirebilirsiniz. Devamındaki iki ekranda next ve finish diyerek kurulum bitirilir.

http://netbeans.org adresinden işletim sisteminize uygun Netbeans IDE'sini indirebilirsiniz.İndirme işleminden sonra çift tıklayıp aşağıdaki ekranda customize'yi seçelim.



Gelen ekranı düzenleyelim, diğer yazılım dillerini kaldıralım ve tomcat ekleyelim.



Lisans sözleşmesini kabul edelim, ne olur ne olmaz.Ekranda NetBeans'in kurulacağı ve java'nın bulunduğu dizin gösterilmektedir.Doğru ise next diyelim. Glassfish ve tomcat'e de next dedikten sonra install diyelim.





NetBeans'in gelişmesine katkıda bulunmak istiyorsanız bu alana bir tik koyun. Ben koymadım.Finish'e tıkladıktan sonra artık nur topu gibi Java ortamımız oldu. NetBeans'in Türkçe'si de yayınlandı onu da tavsiye ederim.


NetBeans başlangıç ekranında new project'te tıklıyoruz.



Gelen ekranda java ve java application'u seçip next diyoruz.


Aşağıdaki ekranda projemize isim veriyoruz...



Yukarıdaki ekranı biraz açalım;

Project Name: Oluşturacağımız projeleri isimlendirdiğimiz alandır.
Project Location:Projelerin kaydedileceği dizini belirler, değiştirebilirsiniz.
Project Folder:Projelerin kaydedildiği alt klasör.
Use Dedicated Folder For Storing Libraries:Kullanılacak kütüphaneleri belli bir dizine kopyalar.Düzen getirir.Karar sizin ilk başta çok önemli değil.

Create Main Class: Projelerimiz için main sınıfı oluşturur.
Set As Main Project: Seçili projeyi main proje olarak atar. Çalıştır ve hata ayıkla denildiğinde doğrudan bu proje çalıştırılır.Eğer birden fazla proje üzerinde çalışılıyor ise proje listesinde koyu renkle gösterilen proje main proje olarak belirlenmiş demektir.

Projemizin ismini JavaIlkProje olarak belirleyip çalıştıralım.Artık aşağıdaki gibi bir projemiz var.


3 Ağustos 2020 Pazartesi

MS SQL Server 2014 Express Kurulumu - MS SQL Server 2014 - Resimli Anlatım



Not: SQL Server Express (Sadece veritabanı motoru kurulumu) için bilgisayarda .NET 3.5 SP1 veya .NET 4'ün kurulması gerekir.Tam veya ileri sürümlerin kurulumu için .NET Framework 4.0 veya 4.5 ile birlikte ayrıca .NET Framework 3.5 SP1de yüklü olmalıdır.(Burada belirtilen gereklilikler yeni sürümlerde farklılık gösterebilecektir.


Yazılımın kurulumu için ilgili dosyayı açıp klasördeli (örn:SQLEXPR_x64_ENU) kurulum (setup.exe) dosyasının çalıştırılması gerekektedir. Kurulum yardımcısı aşağıdaki adımları izleterek kullanıcıya kurulumu tamamlatacaktır.Bu aşamalar, izleyen kısımda adımlar halinde anlatılacaktır.


  • Kurulum(Installation): Bu adımda "New SQL Server stand-alone installation or add features to an existing installation" seçeneği uygulamaları çalıştıracak bir SQL sunucu oluşturmak için uygundur. Eğer kurulu bir eski sürüm varsa resimdeki gibi alt kısımda olan seçeneği işaretlemek gerekecektir.











  • Evrensel Kurallar (Global Rules): Bu adım için sizden bir girdi beklememekte olup kurulum yardımcısı tarafından kullanılacak dosyaların kurulumu sırasında bir problemle karşılaşılmaması için bazı kontroller yapılır. Problem yoksa sonraki adıma geçer.
  • Kurulum Tipi (Installation Type): Bu adımda Resim 1.2deki "Perform anew installation of SQL Server 2014" seçilip devam edilir.


  • Lisanslama (Licence Terms): Bu adımda, kurulumun devam etmesi için "I accept the license terms" ile lisans anlaşmasının kabul edildiği işaretlenmelidir.
  • Özellik Seçimi (Feature Selection): Bu adımda, MS SQL Server üzerinde hangi alt özelliklerin çalışacağı belirlenir. Express kurulum olduğu için Resim 1.3teki temel bileşenlerin hepsinin kurulumu önerilir.

  • Oluşum Yapılandırması (Instance Configuration): Bu adımda SQL Server 2014 için bir isim verilebilir veya resim 1.4teki "Default instance" seçimiyle ilerlenebilir.Daha sonra yeni bir kurulum yapılacaksa ona isim verilmesi gerekir.

  • Sunucu Yapılandırma (Server Configuration): Daha önce seçilen özelliklere göre belirlenen SQL Server veritabanı motoru için resim 1.5teki gibi başlangıç parola belirlenmesi yapılabilir.
  • Veritabanı Motoru Yapılandırması (Database Engine Configuration): Bu adımda, MS SQL Server 2014 veritabanı motoru servisine yönetici olarak erişirken kullanılacak kimlik doğrulama yöntemi belirlenir. Resim 1.6da gösterilen "Mixed Mode (SQL Server authentication and Windows authentication)" seçeneği ile hem Windows kullanıcılarını hem de SQL kullanıcısı tanımlanarak devam edilebilir."Data Directions" sekmesinde veritabanı, veri, yedek gibi içeriklerin bulunacağı varsayılan dizinler.İstenilen değişiklikler yapılabilir.
  • Kurulum İşlemi ve Tamamlanma (Installation Progress and Complete): Bu adımlarda sırası ile kurulum işlemi sürdürülür ve tamamlanır.Tamamlanma adımında başarı ile kurulum yapılan özellikler listelenir.

SQL Server Management Studio Kurulumu
İlgili dosyayı açıp klasördeki (örn: SQLManagmentStudio_x64_ENU) kurulum (setup.exe) dosyasını çalıştırınız.Kurulum yardımcısı sizi aşağıdaki adımları izleterek kurulumu tamamlatacaktır.
  • Kurulum (Installation): Bu adımda resim 1.7deki "New SQL Server stand -alone installation or add features to an existing installation" seçeneği, uygulamaları çalıştıracak bir SQL Server oluşturmak için uygundur. Eğer kurulu bir eski sürüm varsa alttaki seçeneği seçmeniz gerekir.


  • Özellik Seçimi (Feature Selection): Bu adımda, MS SQL Server üzerinde hangi alt özelliklerin çalışacağı belirlenir.SQL Server Management Studio için resim 1.8deki ekranda seçili temel bileşenlerin hepsinin kurulumu önerilir.


Kurulum İşlemi ve Tamamlanma  (Installation Progress and Complete): Bu adımlarda sırası ile kurulum işlemi sürdürülür ve tamamlanır. Tamamlanma  adımında başarı ile kurulum yapılan özellikler listelenir.

Bu kurulumdan sonra bilgisayarınızdaki "SQL Server Management Studio"u çalıştırarak SQL Server 2014'e sağlanan arayüzler ile erişebilirsiniz.

2 Ağustos 2020 Pazar

Debugger Soft Ice Uygulaması (Debugger soft ice application)

Soft Ice uygulaması düşük seviyeli bir yazılımı debug etmek için geliştirilmiştir.Bu uygulamanın geliştirilme nedenleri aşağıdaki gibidir:

  • Yüksek seviyeli olarak geliştirilen debugger'ların çok düşük bir hızda gerçekleştirdiği kimi zaman, hiç gerçekleştiremediği debuggerların çok düşük bir hızda gerçekleştirdiği kimi zaman, hiç gerçekleştiremediği debug mekanizmalarına sanal makine özelliği sağlamak için geliştirilmiştir.
  • Soft Ice, debugger uygulamasını diğer uygulamalardan ayıran bir diğer özellik ve bu özellik bu uygulamanın gelişmesinin temeli olmuştur.Soft Ice uygulaması güçlü bir hata bulma debugger'ıdır.
  • Soft Ice uygulamasının geliştirilme sebepleri arasında yer alan bir diğer madde ise, kolay bir arayüz ekranına sahip olmasıdır.Diğer debugger'lardan ayıran bir diğer özelliği de budur.


Soft Ice uygulamasının nedenlerini yukaruda gördük.Şimdi göreceğimiz uygulamalar ise Soft Ice uygulamasının özellikleridir..

  • Var olan bir debugger uygulaması ile çalışabilme özelliği
  • Debugger kullanıcıları için kolay bir arayüz ve öğrenebilmeleri için geliştirilmiş bir yardım sistemi 
  • Sembolik ve kaynak seviyeli hata ayıklama sistemi 
  • Port okuma ve yazma aynı zamanda hafıza okuma ve yazma özelliğine sahip olması
  • Diğer uygulamalara gerek kalmadan kullanılabilme imkanı sağlaması 
Soft Ice uygulamasında dikkat edilmesi ve yüklenmesi gereken DLL dosyaları da, aynı konfigürasyon dosyası içerisinde yer almaktadır.

F1:Yardım sistemini görüntülemektedir.
F2: Kayıt penceresini görüntülemektedir.
F3: Varsayılan kod modunu değiştirmek için kullanılmaktadır.
F4: Bu fonksiyon ile ekran yenilenmektedir.
F5: Uygulamaya dönebilmek için bu fonksiyon tuşu kullanılır.
F6: Kursör sistemini komut ve kod penceresi arasına getirir.
F7: Kursörün bulunduğu satıra gitmek için kullanılan fonksiyon tuşudur.
F8: Satır satır çalışmak için kullanılan fonksiyon tuşudur.
F9: Kursörün bulunmuş olduğu satıra breakpoint işlemi yapmak için kullanılan fonksiyon tuşudur.
F10: Uygulama basamaklarını görüntüler.
F11: Dönüş adresine gitmek için kullanılan fonksiyon tuşudur.
F12: Uygulamanın versiyonunu öğrenmek  için kullanılan fonksiyon tuşudur.

Git Nedir ve Nasıl Kullanılır ?


Git Nedir ?
Git , yazdığımız projeleri veya uygulamaları yerel diskte ve internet ortamında saklamamızı sağlayan bir versiyon takip sistemidir.Ekip projelerinde geliştiricilerin birbiri arasında bir köprü niteliği görür.
Git , Linus Torvalds tarafından tasarlanıp geliştirilmiştir.

Git Kavramları
Repository uzak sunucudaki proje dosyalarını içeren depodur.
Branch şube anlamına gelmektedir ve bir şubede yapılan değişikler diğer şubeleri etkilemez. Bu sayede projenin birçok bölümünün daha düzenli olmasını sağlar. Ana branch Master'dır.
Fork uzak sunucudaki projelerinin bir kopyasının alınmasıdır.Kullanım amacı kopyalanan repository üzerinden değişiklikler yapılarak asıl projeye katkıda bulunmaktır.
Pull Request fork edilen projenin yapılan değişikliklerden sonra gerçek projeye göndererek geliştiricinin değerlendirmesine sunmaktır.Geliştirici kabul ederse branch üzerinden yapılan değişiklikler gerçek projeye de yansır
Merge branch üzerindeki değişikleri ana branch master ile birleştirme olayıdır.

Git Neden Kullanılmalıdır ?
Bir sipariş takip programi yazdığımızı varsayalım. Aklımızda güzel bir değişiklik fikri var ve bunu uygulamaya geçirdiğimizi düşünelim. Oldu ki yaptığımız değişikliği beğenmedik yada işe yaramadı. Projenin eski haline dönmemiz gerek ama yedek almadığımız için sıkıntı yaşıyoruz. Başka bir örnek daha verirsek projenin klasörlerini başka isimlerle kaydetmek de sizin açınızdan belli bir zamandan sonra hem yer kaplama açısından sıkıntı olacaktır hem de klasör kalabalıklığı yapacağı için bu kargaşadan kurtulmak için bir versiyon kontrol sistemine ihtiyaç duyarız.

Git Kurulumu
Bu linkten sisteminize uygun kurulum dosyasını indirip çalıştırın. Çoğu ayarı default seçeneğinde bırakabilirsiniz.Sizin işinizi fazlasıyla görecektir.


Bu ekran karşınıza çıktığında ortadaki seçenek sizin için yeterli olacaktır.

Kısaca açıklamak gerekirse cmd.exe üzerinden de git kullanmanızı sağlıyor ve çevre değişkenlerine path otomatik olarak ekleniyor. Ayriyeten bir ayar yapmanıza gerek kalmıyor.



Git Nasıl Kullanılır ?
Projemizi oluşturduk ve ve birkaç git ayarını yapmamız gerekiyor. Öncelikle bu projede git kullanılması için mevcut klasörümüz içerisine sağ tıklayıp Git Bash Here'a tıklıyoruz.

Git ayarlarından en önemli olanları kullanıcı adınız ve email adresinizdir. Git, ayar olarak tanımladığınız değerleri commit vb işlemlerde otomatik olarak kullanır. Bu ayarların değerini belirlemek için komut satırında aşağıdaki komutları çalıştırıyoruz


Ayarları da yaptığımıza göre artık git kullanmaya başlayabiliriz.

Git init
Bu komut ile proje dizininizde GIT dizinini oluşturur.

Git add
Verilen paremetrelere göre o dosyaları dizine ekler ve commit etmeye hazır hale gelirler. "Git add . " yazılarak tüm dosyalar yada başka bir dosya ismi yazılarak sadece o dosya dizine eklenebilir.


Git status
Proje dosyalarının o anki güncel durumu hakkında bilgi verir. Değişiklik yapılan dosyaları listeler.

Git remote
Git proje dizininin uzak sunucudaki bağlantısı için kullanılır. Uzak sunucudaki bağlantı için aşağıdaki kod yazılır.


Git push
Yerel sunucudaki git proje dizinini uzak sunucuya aktarmak için kullanılır.

Swagger Nedir? .NET Core Swagger Entegrasyonu


Bu yazımızda, restful api üzerinde kullanacağımız swagger nedir, ne amaçla kullanılır ve nasıl kullanılır gibi soruların cevaplarını arayacağız. Her şeyden önce API nedir ve neden ihtiyaç duyarız bu soruların cevaplarına bakalım.

Application Programming Interface (API) Nedir?
Bir uygulamaya ait işlevlerin ve üretilen , depolanan verilerin başka tür uygulamalarda da kullanılması için geliştirilen yapı olarak özetleyebiliriz . Bir örnek verecek olursak web üzerinde iletişim programı yaptınız ve aynı şekilde kullandığınız veritabanindaki verileri mobilde de kullanmak istiyorsunuz . İşte burada API araya giriyor ve bizi büyük bir yükten kurtarıyor . Yalnız hem uygulamaların birbiri ile hem de server ile sağlıklı bir iletişim kurabilmesi için aynı dili konuşması gerektiğini unutmayalım. Burada sıklıkla REST ve SOAP mimarisi kullanılır.

Swagger Nedir?
Web API geliştirirken en önemli ihtiyaç dökümantasyon ihtiyacıdır . API içerisindeki metodların ne iş yaptığı , ne için kullanıldığı , hangi parametreleri aldığı gibi birçok bilgi dökümantasyonda belirtilir . Dökümantasyonların elle yazılması güncel tutulma açısından zor ve oldukça vakit alıcı bir durum olacağı için geliştiricilere kullanıcı arayüzü sunan , hangi metodun ne işe yaradığını ve hangi parametrelerle gönderileceği gibi birçok bilgiyi aktarmamızı sağlayan Swagger teknolojisini kullanırız .

Swagger Nasıl Kullanılır ?
Öncelikle bir solution project oluşturalım ve gerekli olan Business , DataAccess , Entities , UI ve son olarak en çok uğraşacağımız Web API katmanlarını ekleyelim . API katmanı dışındaki katmanları yazdığımızı varsayalım . API katmanı üzerine sağ tıklayalım ve Manage Nuget Packages seçeneğine tıklayalım .


NSwag.AspNetCore adlı kütüphanemizi indiriyoruz.Kullanıcı arayüzüne gitmeden önce startup.cs dosyasında birkaç ayar yapmamız gerekiyor.


Ayarlarımızı yaptık . Şimdi projemizi API üzerinden çalıştıralım ve localhost:PORT/swagger linkine gidelim . Karşımıza aşağıdaki gibi bir ekran gelecek. Şimdi bu ekrandakilerin neler olduğunu anlamaya çalışalım .


Sayfamızın başında başlık , versiyon numarası gibi birkaç metin görebiliyoruz . Burayı makalenin sonlarına doğru beraber düzenleyeceğiz . Altında , API'de sahip olduğumuz controller isimlerini görüyoruz. Bizde şuanlık sadece Books controller var. İçerisinde de tanımlanmış metodları ve HTTP protokollerini görüyoruz lakin açıklaması olmadığını farkediyoruz . Altında Models kısmını görüyoruz.Burada API içerisinde kullanılan model sınıflarını görebiliyoruz . Model içerisinde de hangi kolonların hangi türde olduğunu da görebiliyoruz . Tabi normalde bu kadar az içerik görünmez , ben kısa ve öz olması açısından sadece BookController ile çalıştım ama siz daha fazla içerik ile uğraşabilirsiniz.

Alttaki fotoğrafta sol kısım henüz açıklama eklemediğimiz , sağ kısım ise açıklama eklememizden sonraki hali .


Ancak tekrar aynı URL'e bağlanmaya çalıştığımızda açıklamamız görünmeyecektir . Bunu engellemek için Web API katmanı üzerinden Properties'e basıp Build sekmesine tıklayın . XML documentation file seçeneğine tik atın . ( Fotoğraf aşağıda )


Çalıştırmadan önce yukarıda da bahsettiğim gibi başlık versiyon numarası vb. kısımları düzenleyelim . Startup.cs dosyasında ConfigureServices metodunu tekrardan düzenledik .


Bu kısmı kendi dökümasyonundan da bakabilirsiniz . Birçok ayar bulunmakta . Artık tüm ayarları yapmış bulunuyoruz . Gelin beraber sonucu görelim .








(Kaynak: Abdullah Ö)

Vulnerability Assessment (Zafiyet Testleri) nedir?

Zafiyet taraması bir sistemdeki muhtemel tüm açıkların belirlenmesine yönelik tasarlanmış bir testtir. Zafiyet taramasında amaç taranan sistemin genel güvenlik görüntüsünü almaktır. Zafiyet taraması raporunda çıkan tüm bulgular ciddi bir tehdidi göstermeyebilir.

 Örnek vermek gerekirse bir ISS sunucunda yapılan taramada sunulan bir web hizmeti http olabilir. http protokolünün güvenli şifrelenmiş versiyonu bildiğimiz üzere httpsdir. Dolayısı ile bir sitede http yerine https kullanmak zafiyet taramasında bir bulgu olarak gözükebilir. Fakat siz o hizmeti http sunmak zorunda olabilirsiniz.Gerekli güvenlik önlemleriniz var ise bu sizin için ciddi bir tehdit değildir.Yukarıdaki örnekteki gibi tüm protokoller, verilen her hizmette şifrelenmiş olmak durumda değildir. Ama bu durum zafiyet taramasında bir bulgu olarak gözükebilir. Dolayısı ile zafiyet taraması sistemle ilgili oluşabilecek tüm güvenlik risklerini bize sunan bir güvenlik taramasıdır.Tabi bu zafiyet taramasının ciddiye alınmaması gibi bir durum ortaya koymaz. 

Zafiyet taramasında çıkan tüm bulguların dikkatli bir şekilde incelenmesi gerekir.Bu tehditlerden hangisi bizim sistemimizde gerçek bir risk oluşturuyor buna karar verilmesi gerekir. Zafiyet taramasında denetlenen bir diğer şey ise uyumluluk süreçleridir. Zafiyet taraması firmaların PCI, SOX, HIPPA vs. gibi dünyaca kabul edilmiş birçok uyumluluk standatlarına göre durumunu da inceler. BT ortamınız bu uyumluluklardan geçecekse bu taramaların mutlaka yapılıp sistemin durumu hakkında fikir sahibi olmak ve gerekli önlemleri almak gerekir.