# Microsoft Visual Studio
Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.
Visual Studio IntelliSense'in yanı sıra "code refactoring" destekleyen bir kod editörü içerir. Entegre hata ayıklayıcı, hem kaynak-seviyesinde hem de makine-seviyesinde çalışır. Diğer yerleşik araçlar, GUI uygulamaları, web tasarımcısı, sınıf tasarımcısı ve veritabanı şema tasarımcısı yaratabilmek için bir form tasarımcısı içerir. Hemen hemen her işlevsellik düzeyinde dahil olmak üzere, kaynak kontrol sistemleri için destek (Subversion ve Visual SourceSafe gibi) sunan eklentileri kabul eder.
Visual Studio, değişik programlama dillerini destekler, bu da kod editörü ve hata ayıklayıcısının neredeyse tüm programlama dillerini desteklemesini sağlamaktadır. Dahili diller C/C++ (Görsel yoluyla C++), VB.NET (Visual Basic .NET üzerinden), C# (Visual C# ile) ve F# (Visual Studio 2010 itibarıyla) içermektedir.


## Mimarisi.
Visual Studio özünde herhangi bir programlama dili, çözüm veya aracı desteklemeyerek, bunun yerine, bir VSPackage olarak kodlanmış işlevsellik sağlar. Yüklendiğinde, işlevsellik, "hizmet" olarak kullanılabilir. IDE üç hizmet vermektedir; SVsSolution, projeler ve çözümleri numaralandırma yeteneği sağlar; SVsUIShell, pencereleme ve UI işlevselliği (sekmeler, araç çubukları ve araç pencereleri dahil) sağlar; ve SVsShell, VSPackages kaydı ile ilgilenir. "Dil Hizmetleri" adı verilen belirli bir VSPackage kullanarak programlama dilleri için destek eklenmiştir. Bir dil hizmeti, çeşitli arayüzleri tanımlar, bu şekilde VSPackage uygulamaları, çeşitli fonksyonlara destek ekleyebilir. Bu şekilde eklenebilir işlevler, sözdizimi renklendirme, deyim tamamlama, ayraç eşleşen, parametre bilgileri, üye listeleri ve arka plan derleme hata işaretleri olarak bulunmaktadır.
Visual Studio, yerleşik herhangi bir kaynak denetimi desteği içermez ama IDE ile entegre etmek için kaynak kontrol sistemlerine iki alternatif yol tanımlar. Kaynak Kontrolü VSPackage kendi özelleştirilmiş kullanıcı arabirimini sağlayabilir. Buna karşılık, standart bir Visual Studio kullanıcı arayüzü ile MSSCCI (Microsoft Source Code Control Interface) kullanarak bir kaynak denetimi eklentisi, çeşitli kaynak denetimi işlevselliğini uygulamak için kullanılan işlevler kümesi sağlar.


## Özellikleri.
### Kod Editörü.
Visual Studio, herhangi bir diğer IDE gibi, sözdizimi vurgulama ve kod tamamlama destekleyen sadece değişkenler, fonksiyonlar ve yöntemler değil, aynı zamanda döngüler ve sorgular gibi dil yapıları için IntelliSense kullanan bir kod editörü içerir. İntelliSense, web site ve uygulamaları geliştirirken dahil edilen diller ile beraber XML, CSS ve JavaScript desteklemektedir. Otomatik tamamlama önerileri, modsuz bir liste kutusu içerisinde, kod editörü üzerinde açılır.
Visual Studio kod editörü aynı zamanda hızlı navigasyon için kod ayarı yer imleri destekler. Diğer seyir yardımcıları, çöken kod blokları ve artımlı aramaya ek olarak normal metin arama ve regex arama içerir. Kod editörü aynı zamanda bir çoklu öğe panosu ve bir görev listesi içerir. Kod editörü ayrıca, tekrarlanan kod için kaydedilen ve üzerinde çalışılan proje içerisine yerleştirilebilen, kod parçacıklarını destekler.
Visual Studio arka plan derleme özelliği de içerir (artımlı derleme olarak da bilinir). Kod yazılırken, sözdizimi ve derleme hataları hakkında geri bildirim sağlayabilmek için (bu hataların altı kızmızı ile işaretlenir) Visual Studio arka planda derleme yapar.


### Hata Ayıklayıcı (Debugger).
Visual Studio hem kaynak-seviyesi hem de makine-seviyesinde çalışan bir hata ayıklayıcı içerir. Bu, yönetilen kodun yanı sıra yerel kod olarak da çalışır ve Visual Studio tarafından desteklenen herhangi bir dilde yazılmış hata ayıklayıcı uygulamaları için de kullanılabilir. Buna ek olarak, çalışan süreçlere bağlanabilir ve bu süreçleri gözlemleyerek hata ayıklama yapabilir. Çalışan süreç için kaynak kodu erişilebilir ise, bu kodu çalışır olarak görüntüler. Kaynak kodu erişilebilir değilse, "sökme" gösterilir. Hata ayıklayıcı ayrıca, bellek dökümleri oluşturarak, daha sonra işlem yapmak için ayırabilir.
Hata ayıklayıcı, kırılma noktası ayarına izin verir (yürütme, belli bir pozisyonda geçici olarak durdurulabilir) ve izler (yürütme ilerledikçe, değişkenlerin değerlerini takip eder).


### Tasarımcı (Designer).
Visual Studio uygulamaları geliştiriciye yardımcı olmak için bir dizi görsel tasarımcı içerir. Bu araçlar şunlardır:


#### Windows Form Tasarımcısı (Windows Form Designer).
Windows Forms tasarımcısı Windows Forms kullanarak GUI uygulamaları oluşturmak için kullanılır. Plan, diğer konteynerler içerisinde kontrollerin barındırılarak ya da formun yan tarafında kilitlenerek kontrol edilebilir. Veri görüntüleyen kontroller (metin kutusu, liste kutusu, ızgara görünümü, gibi), veritabanları veya sorgular gibi veri kaynaklarına bağlı olabilir.


#### WPF Tasarımcısı (WPF Designer).
WPF Tasarımcısı, kod adı Cider, Visual Studio 2008 ile tanıtıldı. Windows Forms tasarımcısı gibi sürükle ve bırak metaforunu destekler. Windows Presentation Foundation'ı hedefleyen yazar kullanıcı arayüzleri için kullanılır. Veri bağlama ve otomatik düzen yönetimi de dahil olmak üzere tüm WPF işlevlerini destekler.


#### Web Tasarımcısı/Geliştirme (Web Designer/Development).
Visual Studio ayrıca, bir web-site editörü içerir, bu şekilde kişilerin sürükle ve bırak parçacığıyla web sitesi yazmasına olanak tanır. ASP.NET uygulamaları için kullanılır, ayrıca HTML, CSS ve JavaScript destekler. ASP.NET kodu ile bağlantı için bir "kod-arkası" modeli kullanır.


#### Sınıf Tasarımcısı (Class Designer).
Sınıf tasarımcısı, sınıfların, UML modelleme kullanılarak, yazılması ve düzenlenmesine olanak sağlar. C# ve VB.NET kodlarının ana hatlarını, sınıflar ve metotları için yaratabilir.


#### Veri Tasarımcısı (Data Designer).
Veri tasarımcısı yazdığınız tabloları grafiksel olarak, birincil ve yabancı anahtarlar ve kısıtlamalar dahil olmak üzere, veritabanı şemaları düzenlemek için kullanılabilir.


#### Eşleştirme Tasarımcısı (Mapping Designer).
Visual Studio 2008'den itibaren, eşleştirme tasarımcısı "LINQ to SQL" tarafından, verileri içeren veritabanı şemaları ve sınıflar arasında eşleştirmeyi tasarlamak için kullanılır.


### Genişletilebilirlik.
Visual Studio, geliştiricilere, programın kabiliyetlerini genişletmek için Visual Studio uzantıları yazmalarına olanak tanır. Bu uzantılar, Visual Studio'ya "takılır" ("plug into") ve onun işlevselliğini genişletmeyi hedefler. Uzantıları makrolar, eklentiler ve paketler şeklinde görebiliriz. Makrolar, geliştiricilerin kayıt, yeniden oynatma ve dağıtma için programatik olarak kaydetmesi için tekrarlanabilir görev ve işlemleri temsil eder. Ancak, makrolar, yeni komutları uygulamak veya araç pencereleri oluşturmak için uygun değildir. Eklentiler, Visual Studio nesne modeline erişim sağlar ve IDE araçları ile etkileşim için kullanılır. Paketler, Visual Studio SDK kullanılarak oluşturulur ve genişletilebilirliği en üst düzeye taşır. Tasarımcılar ve diğer araçları oluşturmanın yanı sıra diğer programlama dillerini entegre edebilir.
Visual Studio 2008, IDE'nin özelleştirilmiş versiyonunun geliştirilmesine olanak sağlayan Visual Studio Shell'i tanıtmıştır. Visual Studio Shell, herhangi bir IDE'de gerekli işlevselliği sağlamak için bir dizi VSPackages tanımlar. Bunun üzerinde, diğer paketler, yüklemeyi özelleştirmek için eklenebilir.


## Desteklenen Ürünler.
### Dahil Olan Ürünler.
#### Microsoft Visual C++.
Microsoft Visual C++, Microsoft'un C ve C++ derleyicisi, dil hizmetleri ve Visual Studio IDE ile entegrasyon için özel araçlar içeren uygulamasıdır. C modu veya C++ modunda derlenebilir. C, kütüphane MS-özel eklemeleri ile ve C99 spec parçaları ile birlikte ISO C standardını takip eder. C++, ANSI C++ spec ve birkaç C++0x özelliği ile birlikte çalışır. Aynı zamanda, C++/CLI spec'i, yönetilen kod ve karışık-mod kodu (yerli ve yönetilen kodun bir karışımı) yazmak için destekler.


#### Microsoft Visual C#.
Microsoft Visual C#, .NET Framework ile birlikte Visual Studio IDE'nin C# projelerine destek vermesini sağlayan dil servislerini hedef alan, Microsoft'un bir C# dil uygulamasıdır. Dil servislerinin, Visual Studio'nun bir parçası olmasıyla birlikte, derleyici, .NET Framework'un ayrı bir parçası olarak da bulunmaktadır.


#### Microsoft Visual Basic.
Microsoft Visual Basic, Microsoft'un VB.NET dili, birleşmiş araçlar ve dil servisleri uygulamasıdır. Visual Studio .NET (2002) ile tanıtıldı. Microsoft, Visual Basic'i Hızlı Uygulama Geliştirme (Rapid Application Development) için konumlandırdı. Visual Basic, hem konsol uygulamalarında hem de GUI uygulamalarının yazımında kullanılabilir.


#### Microsoft Visual Web Geliştirici (Microsoft Visual Web Developer).
Microsoft Visual Web Developer, ASP.NET kullanarak web siteleri, web uygulamaları ve web servisleri oluşturmak için kullanılır. C# ya da VB.NET dilleri kullanılabilir. Visual Web Geliştirici kullanılarak grafiksel olarak web sayfa düzeni oluşturulabilir.


#### Team Foundation Server.
Sadece Visual Studio Team System ile birlikte gelen Team Foundation Server, işbirlikçi uygulama geliştirme için planlanmış olup, sunucu tarafında arka uç kaynak kontrolü, veri toplama, raporlama ve proje izleme işlevselliği sağlamak gibi işlemler için tasarlanmıştır.


## Versiyonlar.
### Visual Studio Community.
12 Kasım 2014 tarihinde; Microsoft tarafından Visual Studio Community Versiyonu duyurulmuştur. Yeni ücretsiz versiyonun Visual Studio Professional ile işlevselliği benzerdir. Visual Studio Express'in tersine, Visual Studio Community çoklu dil ve uzantılara destek sağlar. Bireysel geliştiriciler ve küçük geliştirme gruplarına yöneliktir.


### Visual Studio Express.
Visual Studio Express Versiyonu, hafif, ücretsiz, bireysel IDE setlerinden oluşan, "per-platform" ve "per-language" bazında Visual Studio IDE'nin hafifletilmiş versiyonudur. Bireysel Visual Studio Shell AppIds üzerine desteklenen platformlar için geliştirme araçları (web, Windows, telefon) veya desteklenen geliştirme dillerini (VB, C#) yükler.
  - Visual Basic Express
  - Visual C++ Express
  - Visual C  Express
  - Visual Web Developer Express
  - Express for Windows Phone


### Visual Studio LightSwitch.
Microsoft Visual Studio LightSwitch, mevcut .NET teknolojileri ve Microsoft platformları üzerinde inşa edilmiş "line-of-business" uygulamaları oluşturmak için özel olarak hazırlanmış bir IDE'dir. Üretilen uygulamalar mimari olarak 3 katmanlıdır: kullanıcı arayüzü Microsoft Silverlight üzerinde çalışmaktadır; mantık ve veri-erişimi katmanı, ASP.NET üzerinde çalışan, WCF RIA Servisleri ve Birim Çerçevesi (Entity Framework) üzerine kurulmuştur; ve ana veri deposu, Microsoft SQL Server Express, Microsoft SQL Server ve Microsoft SQL Azure'yi desteklemektedir.


### Visual Studio Professional.
Visual Studio Professional Edition, tüm desteklenen geliştirme dilleri için bir IDE sağlar. MSDN desteği, MSDN Essentials veya lisansa bağlı olarak tam MSDN kütüphanesi olarak kullanılabilir. XML ve XSLT düzenlemesi destekler ve sadece ClickOnce ve MSI kullanan kurulum paketleri oluşturabilir. Server Explorer ve Microsoft SQL Server ile entegrasyon gibi araçlar da içerir.


### Visual Studio Premium.
Visual Studio Premium Edition, Visual Studio Professional araçlarını içerir ve kod metrikleri, profil, statik kod analizi ve veritabanı birim testi gibi ek işlevler ekler.


### Office için Visual Studio Araçları (Visual Studio Tools for Office).
Office için Visual Studio Araçları, Microsoft Office paketi için geliştirme araçları içeren, bir SDK ve eklentidir. Daha önce (Visual Studio .NET 2003 ve Visual Studio 2005 için) sadece Visual C# ve Visual Basic gibi dillerde desteklenen veya Team Suite'e dahil edilmiş ayrı bir SKU'ydu. Visual Studio 2008 ile, artık ayrı bir SKU ancak Profesyonel ve daha yüksek sürümleri ile birlikte gelmektedir.


### Visual Studio Ultimate.
Visual Studio Ultimate, Visual Studio Premium tarafından sağlanan özelliklere ek olarak, yazılım ve veritabanı geliştirme, işbirliği, ölçümler, mimari, test ve raporlama araçları kümesi sağlar.


### Visual Studio Takım Sistemi (Visual Studio Team System).
Visual Studio 2010'dan önce, Visual Studio Team System için dört "rol-spesifik" sürümler;
  - Takım Tarayıcısı (Team Explorer) -Temel TFS istemcisi-
  - Mimari Versiyon (Architecture Edition)
  - Veritabanı Versiyonu (Database Edition)
  - Geliştirme Versiyonu (Development Edition)
  - Test Versiyonu (Test Edition)


### Test Profesyonel (Test Professional).
Visual Studio Test Professional sürümü Visual Studio 2010 ile tanıtıldı. Odağı, özel test rolü (dedicated tester role) ve test ortam yönetimi desteği üzerine yoğunlaştırmıştır.


## Versiyon Geçmişi.
Visual Studio 4.0 versiyonundan önce, ayrı ürün olarak, Visual Basic 3, Visual C++, Visual FoxPro and Source Safe bulunmaktaydı.