Visual Studio Code ile windows ortamında hata ayıklama

Visual Studio Code ile windows ortamında hata ayıklama nasıl olur diye bakmadan önce Visual Studio Code hakkında bilgi vermek istiyorum. Visual Studio Code, microsoft’un yeni çıkarmış olduğu, açık kaynak kodlu, bedava kod editörü. Visual Studio Code, lightweight yani sistem kaynaklarını fazla harcamayan, hızlı, intellisense (kod tamamlama) gibi özelliklere sahip bir araçtır. Cross platform, yani linux, mac os ve windows’ta çalışmaktadır.

Visual Studio Code, nodejs üzerinde çalışan electron framework’u kullanılarak geliştirilmiştir. Electron’u bilmeyen geliştirici arkadaşların, bu frameworke göz atmalarında fayda var. Sadece Html, css ve javascript kullanarak, cross platform desktop uygulamaları geliştirilebilir. Neyse konumuzdan uzaklaşmayalım.

Visual Studio Code’u linux’ta veya mac os’ta kullanmak mantıklı olabilir. Fakat windowsta visual studio community ve enterprise gibi araçlar varken, vsc’yi niye kullanalım diye düşünebiliriz. İş gelip, IDE’mi editor mu ikilemine gelip dayanmaktadır.

Bildiğiniz gibi Visual Studio IDE’leri çok kaynak tüketirler, yavaş açılırlar. Kurulumları uzun sürer. Bunlar dezavantajları, avantajlarına gelecek olursak; İçinde herşey hazır gelir. File -> New Project derseniz, proje çatınızı anında oluşturur. İster desktop olsun, ister asp.net mvc uygulaması olsun, projeniz basit haliyle çalışmaya hazırdır. F5 derseniz debug etmeye başlarsınız. Web uygulaması geliştiriyorsanız, uygulamanız iis express veya iis’te otomatik olarak başlatılabilir ve bu ortamlarda hata ayıklayabilirsiniz.

Fakat bazı geliştiriciler, özellikle linux ve mac os tarafında geliştirme yapmış olanlar, sublime text ve textmate gibi kod editorlerini, hızlı açılması, hızlı kod geliştirmeyi sağlaması, esnek olması ve geliştirme ortamını belirleme konusunda geliştiricilere tam bir özgürlük sağlaması gibi sebeplerden dolayı tercih etmektedirler. Visual Studio Code’u da bu tür bir kod editörü olarak değerlendirebiliriz.

Visual Studio Code’un tercih edilmesinin bir başka gerekçeside, tüm ortamlarda, aynı geliştirme ortamının sağlanarak, geliştiriciye bildiği araçları her yerde kullanabilme rahatlığını getirmesi.

Bildiğiniz gibi asp.net core 1.0 versiyonu çıkmıştır. Microsoft’un CEO değişikliği yapmasından sonra, ortaya çıkan yeni anlayış değişikliğini yansıtan bir ürün. Microsoft artık kapalı bir kutu olmaktan çıkıp, açık kaynak kodu destekliyor ve bu konuya önemli düzeyde yatırım yapıyor. Diğer bir önemli stratejisi ise, windows dışındaki platformleri de desteklemesi. Asp.net core, sadece windowsta değil, linux ve mac os ortamlarında da çalışmaktadır.

Geliştirme Ortamını Oluşturmak

Öncelikle sistemimizde Node.js‘in kurulu olması gerekiyor. Stabil olan versiyonu kurabilirsiniz. İkinci olarak, Visual Studio Code ve .net core sdk for windows kurulumlarının yapılması gerekiyor.

Visual Studio Code kurulumundan sonra, c# kodlarında kod tamamlama yapabilmesi için C# extension paketinin kurulması gerekiyor.

Proje çatısını oluşturmak için, yeoman aracını kullanabiliriz. Komut satırı penceresini admin yetkisi ile açıp, bundan sonraki kurulumlarımızı bu pencereden gerçekleştirelim.

npm install -g yo bower grunt-cli gulp

Bu komutla sistemimize yeoman, bower, grunt-cli ve gulp paketlerini yüklemiş oluyoruz.

npm install -g generator-aspnet

Bu komut ile de yeoman’ın kullanacağı aspnet generatorunu sisteme eklemiş oluruz.

Geliştirme Adımları

C:\gelistirme dizini oluşturup, içerisinde helloworld projesi oluşturacağım.

yo aspnet

Komutunu çalıştıralım:

yoaspnet

Console application’u seçelim.

Sırayla aşağıdaki komutları çalıştıralım:

cd helloworld
dotnet restore
dotnet build
dotnet run

Başarılı bir şekilde projemizi oluşturduk, derledik ve çalıştırdık.

Şimdi kodumuzu Visual Studio Code ile açarak, değişiklik yapalım. Komut satırında

code .

satırını çalıştırınca, otomatik olarak vsc çalışmaya başlayacaktır.

vscilk

Debug etmek için gerekli dosyaları ekleyeyim mi, diye soruyor. Evet diyoruz. Program.cs’yi değiştirelim.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace helloworld
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var message = "world";
            Console.WriteLine("hello " + message);
        }
    }
}

Komut satırında tekrar, dotnet run dediğimizde, bize hello world mesajını dönecektir.

Şimdide vsc üzerinde bir debug session’u başlatalım. VSC üzerinde debug panelini açalım:

vscdebug

Console.WriteLine’a breakpoint koyduktan sonra, Debug başlata tıklayalım. Breakpoint’ta programımız durması gerekirken durmadı, Debug Console ekranında bize şöyle bir uyarı veriyor:

WARNING: Could not load symbols for ‘helloworld.dll’. ‘c:\gelistirme\helloworld\bin\Debug\netcoreapp1.0\helloworld.pdb’ is a Windows PDB. These are not supported by the cross-platform .NET Core debugger.

Bu durumda yapmamız gereken, project.json dosyasında buildOptions kısmında değişiklik yapmak: debugType: portable.

{
  "version": "1.0.0-*",
  "buildOptions": {
    "emitEntryPoint": true,
    "debugType": "portable"
  },

  "dependencies": {
    "Microsoft.NETCore.App": {
      "type": "platform",
      "version": "1.0.0"
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": "dnxcore50"
    }
  },

  "tooling": {
    "defaultNamespace": "helloworld"
  }
}

Tekrar debug başlat yapınca, breakpoint satırında durduğunu görürüz.

vscdebsuccess

Yorum Gönder

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top