Visual Studio IconVisual Studio 2017 sürüm 15.8 Sürüm Notları


Geliştirici Topluluğu | Sistem Gereksinimleri | Uyumluluk | Dağıtılabilir Kod | Lisans Koşulları | Bloglar | Bilinen Sorunlar



Not

Bu sürüm Visual Studio’nun en son sürümü değildir. En son sürümü indirmek için lütfen Visual Studio sitesini ziyaret edin.


Destek Zaman Çerçevesi

Bu sürüm artık destekten çıktı. Visual Studio desteği hakkında daha fazla bilgi için lütfen Visual Studio 2017 için Destek İlkesi'ni gözden geçirin.

Sürüm notlarının en son sürümüne bakın veya Visual Studio 2017'nin desteklenen en son sürümünü indirmek için Visual Studio sitesini ziyaret edin.

Visual Studio Blogu

Visual Studio Blog, Visual Studio Mühendislik Takımı tarafından sunulan resmi ürün içgörüleri kaynağıdır. Visual Studio 2017 sürüm 15.8 yayınları hakkında kapsamlı bilgileri aşağıdaki gönderilerde bulabilirsiniz:

Visual Studio 2017 sürüm 15.8 Yayınları

Önemli

Visual Studio 2017 sürüm 15.8 Güvenlik Önerisi Bildirimleri

15.8 Sürümünde Öne Çıkan Yeni Özelliklerin Özeti

15.8 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8 sürümünde giderilen sorunlar şunlardır:

Müşteriler tarafından bildirilen ve Visual Studio 2017 sürüm 15.8’de düzeltilen tüm sorunlara bakın.

The Developer Community Portal


15.8 Sürümündeki Yeniliklerin Ayrıntıları

Release Notes IconVisual Studio 2017 sürüm 15.8.0

14 Ağustos 2018'de yayınlandı

15.8 Sürümündeki Yeni Özellikler

Yükleme

Artık yüklemeyi başlatmadan önce tüm yükleme dosyalarını indirebilirsiniz.

  • Bu seçeneği kullanmak için yükleyicideki "Tümünü indir ve sonra yükle" seçeneğini belirleyin (Şekil 1). Yavaş bir internet bağlantınız varsa bu seçeneği kullanmanızı öneririz.
  • Varsayılan seçenek, indirme ve yükleme işlemlerini aynı gerçekleştiren "İndirilirken yükle" seçeneğidir.
Download Otion
(Şekil 1) İndirme Seçeneği

Performans

Bu sürüm aşağıdaki performans geliştirmelerini içermektedir:

  • Artık çözümlerin yeniden yüklenmesi gerekmediğinden C#, VB ve C++ projelerindeki büyük çözümlerde dal değiştirme işlemi çok daha hızlı gerçekleşir.
  • Büyük çözümlerde C# ve VB projelerinden oluşan küçük bir kümenin yüklemesinin kaldırılıp yeniden yüklenmesi için gereken süreyi birkaç dakikadan birkaç saniyeye indirdik.
  • Belirli dosya türlerinin veya tasarımcıların yeniden açılması çözümün yüklenmesini geciktirebileceğinden bir önceki oturumda açık olan belgelerin yeniden açılmasını devre dışı bırakma seçeneği ekledik.
    • Bu seçeneği Araçlar > Seçenekler > Projeler > Çözümler > Genel sayfasından değiştirebilirsiniz.

Sınama Performansı

Birden fazla test projesine sahip büyük bir çözümde bulunan birkaç testi çalıştırma performansını önemli ölçüde geliştirdik. Laboratuvarlarımızda 10.000'den fazla MSTests içeren bir çözüm %82'ye varan oranda daha hızlı yürütüldü!

Visual Basic Performans Geliştirme

Visual Basic artık tamsayı olmayan türleri tamsayılara dönüştürmek için CInt(Fix(number)) deseni kullanıldığında önemli bir performans geliştirmesi sunmaktadır.

Performans Profili Oluşturma

Bu sürüm aşağıdaki performans profili oluşturma geliştirmelerini içermektedir:

  • Profil oluşturma işlemlerini duraklatılmış durumda başlatma özelliğini ekledik:

    • Performans Profili Oluşturucu (ALT-F2) içindeki CPU Kullanımı aracı artık duraklatılmış durumda başlatılabilir (Şekil 2). Bu durum CPU Kullanımı araştırmasının gerekli olduğu bir senaryonun beklendiği durumlarda yararlı olabilir. CPU kullanımı koleksiyonu başlangıçta devre dışı bırakılırsa Performans Profili Oluşturucu etkinleştirilene kadar CPU kullanımı örnek yığın verilerini toplamaz. Bu da toplama ve analiz için elde edilen verilerin daha az olmasını ve performans araştırmalarınızın daha verimli hale gelmesini sağlar.

    • Bir oturumu CPU Kullanımı örnek koleksiyonu devre dışı halde başlatmak için Performans Profili Oluşturucu başlatma sayfasında CPU Kullanımı'nın yanındaki dişli simgesine tıklayın. CPU Kullanımı özellik sayfasında CPU Profili Oluşturmayı Etkinleştir (Örnekleme) seçeneğinin işaretini kaldırın ve Tamam'a tıklayarak ayarları kaydedin.

      CPU Usage Tool settings page
      (Şekil 2) CPU Kullanımı Aracı Ayarları
    • Hedef uygulamayı başlattığınızda (Performans Profili Oluşturucu başlatma sayfasındaki Başlat düğmesine tıklayın) CPU profili oluşturmayı denetlemenizi sağlayan CPU kullanım grafiğini (Şekil 3) gösteren bir izleme ekranı göreceksiniz. CPU kullanımı örnek yığın veri toplamayı etkinleştirmek için görünümün ortasındaki CPU profili oluşturmayı etkinleştir'i seçin veya CPU kullanımı grafiğinin hemen altındaki CPU Profilini Kaydet'e tıklayın. CPU Profilini Kaydet'e tıklayarak dilediğiniz zaman örnek veri toplama işlemini etkinleştirebilir/devre dışı bırakabilirsiniz. CPU kullanımı grafiğinin rengi örnek toplama işleminin o an etkin/devre dışı olma durumuna göre değişir.

      CPU Usage Tool monitoring view
      (Şekil 3) CPU Kullanımı Grafiği
  • .NET Nesne Ayırma İzlemesi aracı ekledik:

    • .NET Nesne Ayırma İzlemesi Aracı, Performans Profili Oluşturucu ile sunulan araçlar arasına eklendi. Performans profili oluşturma oturumunda bu aracın çağrılması hedef uygulamada oluşan her .NET nesnesi ayırma işlemi için yığın izlemesinin toplanmasını başlatır. Bu yığın veriler nesne türü ve boyut bilgileriyle birlikte analiz edilerek uygulamanızın bellek etkinliğinin ayrıntılarına ulaşılır. Hızlıca kodunuzdaki ayırma desenlerini belirleyebilir ve anomalileri tanımlayabilirsiniz. Ayrıca Atık Toplama (GC) olayları için toplanan ve korunan nesneleri kolayca belirleyebilir ve uygulamanın bellek kullanımında baskın olan nesne türlerini tanımlayabilirsiniz.
    • Bu durum özellikle API yazarlarının ayırmaları en aza indirmelerine yardımcı olması açısından yararlıdır. Birçok uygulama tanılama veri koleksiyonu içindeki arabellek sınırlarını aşar ancak bir API'nin temel senaryolarını içeren küçük test uygulamaları için oldukça iyi bir şekilde tanılama gerçekleştirilebilir. Test uygulamanız yürütülürken Performans Profili Oluşturucu, Canlı Nesnelerin (sayı) çizgi grafiğini ve Nesne Deltasını (değişiklik %) çubuk grafiğini görüntüler.
    • .NET Nesne Ayırma İzleme Aracını kullanmak için Performans Profili Oluşturucu başlatma sayfasını (Şekil 4) görüntüleyin, hedef profil seçin (varsayılan hedef, çözümdeki başlangıç projesidir), Kullanılabilir Araçlar listesinden ..NET Nesne Ayırma İzleme'yi işaretleyin ve Başlat'a tıklayın.
    Performance Profiler launch page
    (Şekil 4) Performans Profili Oluşturucu Başlatma Sayfası

Performans Profili Oluşturma (CPU Kullanımı)

Bu sürümde Performans Profili Oluşturucunun CPU Kullanımı aracında aşağıdaki geliştirmeler yapılmıştır (ALT-F2 ile ulaşılabilir):

  • Çağrı Ağacı görünümü artık varsayılan olarak mantıksal çağrı yığınına göre zaman uyumsuz yürütmeyi gösteriyor. CPU Kullanımı ana görünümündeki Filtre açılan menüsünden Zaman Uyumsuz Kodu Birleştir seçeneğinin işaretini kaldırarak bu davranışı devre dışı bırakabilirsiniz.
  • Performans bilgilerini modüle (dll) ve modül içindeki işleve göre görüntüleyen Modüller/İşlevler görünümü ekledik. Modüller/İşlevler görünümünü görüntülemek için CPU Kullanımı ana görünümünde bir işlev seçerken açılan bağlam menüsünü veya Çağrı Ağacı ya da Çağıran/Çağrılan görünümlerinde Görünüm açılan menüsünü kullanabilirsiniz.
  • CPU Kullanımı aracının ana görünümündeki CPU Kullanımı grafiğine örnek gösterimi eklendi. CPU Kullanımı görünümlerinde listelenen işlevlere çift tıklayarak yürütülen işlevin (örneğin yığındakiler) örneklerini görüntüleyebilirsiniz.

Üretkenlik

Bu sürüm aşağıdaki üretkenlik geliştirmelerini içermektedir:

  • C# ile geliştirme için Belgeyi Biçimlendir (Ctrl + K, D veya Ctrl + E, D) özelliğini kullanarak ek kod temizleme işlemleri gerçekleştirebilirsiniz. Temizleme seçeneklerini yapılandırmak için Araçlar>Seçenekler>Metin Düzenleyicisi>C#>Kod Stili>Biçimlendirme>Genel sayfasına gidin.
  • Ctrl + veya Alt + Enter tuşlarını kullanarak daha fazla yeniden düzenleme ve hızlı işlem ekledik:
    • If ifadesini tersine çevir seçeneği if-else ifadelerindeki mantığınızı tersine çevirmenizi sağlar. Bu yeniden düzenlemeyi tetiklemek için imlecinizi if anahtar sözcüğüne yerleştirin.
    • Metot çağıran siteden parametre ekle seçeneği bir metot çağıran sitesine bağımsız değişken ekleyip Hızlı Eylemler ve Yeniden Düzenlemeler özelliğini tetikleyerek bir metoda parametre eklemenizi sağlar.
    • Gereksiz parantezleri kaldır özelliği derleme için gerekli olmayan ikili işleçlerin etrafındaki parantezleri kaldırır. Bu stil kuralını Araçlar>Seçenekleri>Metin Düzenleyicisi>C#>Kod Stili>Genel veya .editorconfig aracılığıyla yapılandırabilirsiniz:
      • dotnet_style_parentheses_in_arithmetic_binary_operators
      • dotnet_style_parentheses_in_relational_binary_operators
      • dotnet_style_parentheses_in_other_binary_operators
      • dotnet_style_parentheses_in_other_operators
    • Atamalarda üçüncül koşulluları kullanma ve dönüş deyimleri, Araçlar>Seçenekleri>... veya .editorconfig aracılığıyla bir stil kuralı olarak da yapılandırılabilir:
      • dotnet_style_prefer_conditional_expression_over_assignment
      • dotnet_style_prefer_conditional_expression_over_return
  • Tümüne Git penceresine yeni komutlar ve iyileştirmeler ekledik:
    • Kapsayan Bloğa Git (Ctrl + Alt + UpArrow) seçeneği, kapsayan kod bloğunun en başına hızlıca gitmenizi sağlar.
    • Önceki/Sonraki Soruna Git (Alt + PgUp/PgDn) özelliği sonraki/önceki soruna (hata, dalgalı çizgi, ampul) atlamanızı sağlar.
    • Üyeye Git (Ctrl + T, M) artık varsayılan olarak dosya kapsamını kullanır. Kapsamı Geçerli Belgeye geçirerek (Ctrl + Alt + C) çözümü varsayılan değerine döndürebilirsiniz.
  • Çoklu giriş işareti desteğiyle bir dosyada çoklu, rastgele konumlarda ekleme noktası ve seçim oluşturabilirsiniz. Bu sayede birden fazla yerde aynı anda metin ekleme, düzenleme ve silme işlemi gerçekleştirebilirsiniz.
    • Ctrl + Alt + Sol Fare Düğmesi ile giriş işareti ekleyebilirsiniz.
    • Shift + Alt + Ins ile geçerli seçimle eşleşen bir sonraki konuma seçim ve giriş işareti ekleyebilirsiniz.
    • Eylemlerin tam listesi için Düzenle > Birden Çok Giriş İşareti sayfasına bakın.
  • Alt + ` ile bağlamsal gezinti menüsüne erişebilirsiniz.
  • İki yeni klavye profiliyle tuş bağlama seçeneklerinizin tutarlı olmasını sağlayabilirsiniz: Visual Studio Code ve ReSharper (Visual Studio). Bu düzenlere Araçlar > Seçenekler > Ortam > Klavye sayfasında üst taraftaki açılan menüden erişebilirsiniz.

Hata ayıklama

Bu sürüm aşağıdaki hata ayıklama geliştirmelerini içermektedir:

  • Sisteminizde birden fazla Visual Studio 2017 örneği yüklüyse artık hata ayıklama sırasında uzantının dağıtılacağı örneği seçebilirsiniz (Şekil 5). Bu sayede Visual Studio yayın kanalında geliştirme yaparken hata ayıklama için önizleme kanalını kullanabilirsiniz.

    Select your debug instance
    (Şekil 5) Hata Ayıklama Örneğini Seçme
  • Artık Snapshot Debugger'ı doğrudan Yayımlama özeti sayfasından ekleyebilirsiniz (Şekil 6).

    Attach Snapshot Debugger from Publish Summary page
    (Şekil 6) Snapshot Debugger'ı Yayımlama Özetinden Ekleme
  • Artık yığın ile mini dökümlerde hata ayıklama yaparken Görevler penceresinden Yönetilen Görevleri görüntüleyebilirsiniz.

Evrensel Windows Platformu Geliştiricileri için Araçlar

XAML tasarımcısında Evrensel Windows Platformunu hedefleyen ve hedef platform sürümü Windows 10 Fall Creators Update (derleme 16299) veya üzeri olan projeler için birçok önemli geliştirme yaptık. Bu iyileştirmeler şunlardır:

  • Artık koleksiyonları Özellik Denetçisinde düzenleyebilirsiniz.
  • Tasarımcı artık varlık tanımlarının başka belgelerde tanımlandığı durumlar dahil olmak üzere Şablonların ve Stillerin düzenlenmesine izin veriyor.
  • IconElement türündeki özellikler (AppBarButton içindeki Icon gibi) artık Özellik Denetçisi’ndeki özel düzenleyiciyle daha kolay ayarlanabiliyor.
  • Tasarımcı, düzenleyici ile Düzenle ve Devam Et artık x:DefaultBindMode ile doğru şekilde çalışmalıdır.
  • Blend'deki Görsel Durum Yöneticisi deneyimi artık AdaptiveTrigger desteği sunuyor.

Visual Studio için F# 4.5 ve F# Araçları

Bu sürümle F# dili sürüm 4.5'i kullanıma sunmuş olduk. Bu, FSharp.Core'un (F# çekirdek kitaplığı) yeni 4.5.x ailesine de karşılık gelir. Bu değişikliklerin her birinin belirtimlerini F# RFC deposunda okuyabilirsiniz. Bu sürümde Visual Studio için F# araçlarında da birçok geliştirme vardır.

F# 4.5

F# dili sürüm 4.5 ile öne çıkan bazı noktalar şunlardır:

Span'T<> desteği

F# ile, ve benzeri yapıları kullanarak MemorySpanAPI'lerin etkili bir şekilde tüketilmesi ve üretilmesi için ve refilgili özellikleri uyguladıkSpan<'T>. Bu özellikler şunlardır:

  • Yeni voidptr türü.
  • FSharp.Core için yeni NativePtr.ofVoidPtr ve NativePtr.toVoidPtr işlevleri.
  • Salt okunur byrefs ve yalnızca yazılan byrefs olmak üzere yeni inref<'T> ve outref<'T> türleri. Bu da C# için in ref ve out ref öğelerine karşılık gelmektedir.
  • ByRefLike yapılarını (Span ve ReadOnlySpan gibi) oluşturma özelliği.
  • IsReadOnly yapılarını oluşturma özelliği.
  • Metotlardan byref- ve inref-returns için açık başvuru.
  • byref/inref/outref üzerinde uzantı üyesi oluşturma seçeneği.

Bu özellik kümesi, F# 4.1'de -returns öğesinin byrefilk tasarımında bulunan ve döndürülen byrefişlevlerin, yöntemlerin ve özelliklerin dönüş değerini örtük olarak geri almadığı bir hatayı düzeltir. Özelliği C# içindeki ref-returns işleme özellikleriyle eşitlemek için bu değişikliği yaptık. Bir tür ek açıklaması ref-return açık başvurusunun kullanıldığını belirttiğinde bir hata iletisi kullanılır.

Ayrıca, bu özellik kümesi F# derleyicisinde "Şeytani yapı değiştirmenin" mümkün olduğu bir hatayı da düzeltir; Örneğin, bir F# yapısında bir yöntemin çağrılması, çağrılan gerçek yapının yerini farklı bir yapıyla değiştirebilir. Yapı üzerindeki this parametresi artık inref<MyStruct> olarak kabul edilir ve yapıyı değiştirmek için kullanabileceğiniz değiştirilebilir alan eklemenizi öneren bir hata içerir.

Bu özellik için span ve ref-like yapıları hakkında daha fazla bilgi için RFC bölümüne bakabilirsiniz.

Maç! hesaplama ifadelerinde

F# 4.5, tamamen John Wostenberg'in katkılarıyla hesaplama ifadeleri içinde kullanılmak üzere yeni bir anahtar sözcük sunarmatch!. Bu söz dizimsel şeker sonuçta arkasından match gelen let! ile eşdeğerdir. match! için RFC sayfasından daha fazla bilgi edinebilirsiniz.

Sıra, liste ve dizi ifadelerinde yield ile üst türe çevirme gereksinimi gevşetiliyor

F# 4.5 artık kullanırken bir alt türü süper türe dönüştürmek için bir yukarı yayının yield gerekli olduğu bazı durumları gevşetiyor. Bu kısıtlama, kullanmadığında yieldF# 3.1'den bu yana bu ifadeler için zaten gerekli değildi, bu nedenle bu, işleri mevcut davranışla daha tutarlı hale getirir. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.

Liste ve dizi köşeli ayraçlarında girintileme izni

F# 4.5 artık liste ve dizi köşeli ayraçları için kendi satırlarında bir kapsam ileri girintilemelerini gerektiren girinti kuralını gevşetiyor. Bu önceki gereksinim, özellikle F# kullanmaya yeni başlayanlar için her zaman oldukça kafa karıştırıcı olmuştur. Ayrıca, F# sıralı ifadeler için gerekli değildir. Bu artık dizi ve liste ifadelerini sıra ifadeleriyle aynı tutarlı duruma getiriyor. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.

Sabit listesi durumları genel olarak yayılıyor

F# 4.5 artık C# numaralandırma olaylarının nasıl yaydığıyla uyumlu hale getirmek için numaralandırma olaylarını her koşulda genel olarak yayar. Bu, profil oluşturma araçlarının, etiket adı yerine değerin yayıldığı F# kodundaki günlükleri analiz etmelerini de kolaylaştırır. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.

F# Derleyici geliştirmeleri

Daha önce bahsedilen dil özelliklerine ek olarak F# derleyicisinde yapılan iyileştirmeler F# 4.5'tedir. Bu modüller şunlardır:

  • F# derleyicisindeki tüm ayırmaların %2,2'sine kadar çıkararak (çeşitli senaryolarda) derleyici performansını geliştirdik.
  • Yapı tabanlı numaralandırılabilir öğelerle birlikte yield! kullanıldığında AccessViolatioNException ile sonuçlanan bir hatayı düzelttik.
  • Artık FSharpFunc işlevinden devralmak mümkündür.
  • .NET Core için F# hata ayıklama derlemeleri için kuyruk çağrıları varsayılan olarak devre dışı bırakılır. Bunlar yayın için etkinleştirilir, bu nedenle masaüstü F# derleyicisi ile eşleşilir.
  • F# başvuru normalleştirmesi, çıkış dosyasına yazılan geçişli derleme başvurularını denetlemenize olanak tanıyacak şekilde düzeltildi. Bu sayede derleme yeniden yönlendirme eşdeğeri .NET Core üzerinde gerçekleştirilebilir.
  • Satır içi işlevlerde dinamik çağrı kullanma girişimi sırasında hata iletisinin yoksayıldığı hatayı düzelttik. Hata iletisi artık kullanılıyor.
  • F# artık proje dosyalarında WarningsNotAsErrors ayarlayabileceğiniz bayrağı dikkate alır.
  • Bir desenin dallarının aynı türü döndürmediği durumda gösterilen hata iletisi, Isaac Abraham tarafından daha kolay anlaşılacak şekilde güncelleştirildi.
  • Aşırı yüklenmiş metot uygulaması bulunmayan arabirim uygulaması derlemesi sırasında iç hata oluşmasına neden olan hata Steffen Forkmann tarafından düzeltildi.
  • Derleyicinin sözlük aşamasında gerçekleştirilen bazı gereksiz dizi kopyalama işlemleri Gauthier Segay tarafından kaldırıldı.
  • F# sabit listelerindeki tamamlanmamış desen eşleşmeleri artık John Wostenberg'in katkılarıyla ele alınmayan bir servis talebi örneği veren ayrıntılı bir uyarı üretir.
  • `#nowarn "2003" artık dikkate alınıyor. Matthias Diitrich'in katkılarıyla.
  • C# uzantılarını kullanma yöntemlerinin F# aşırı yükleme çözümlemesinde başarısız olmasına neden olan bir hata Steffen Forkmann tarafından düzeltildi.
  • İç QueueList veri yapısı hatası Steffen Forkmann tarafından düzeltildi.
  • Steffen Forkmann, Eugene Auduchinok ve ncave'in katkılarıyla çeşitli daha küçük çaplı iyileştirmeler ve kod temizleme işlemleri gerçekleştirildi.

F# Çekirdek Kitaplığı 4.5.x

F# Çekirdek Kitaplığı'na aşağıdaki eklemeler artık kullanılabilir:

  • async { } hesaplama ifadeleri için yığın izlemelerini geliştirme amacıyla önemli çalışmalar yapıldı. Artık yığın izlemelerinde kullanıcı kodunu ve kullanıcı satır numaralarını görebiliyor olmanız gerekir. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.
  • System.Func ve System.Action aşırı yükleme türlerindeki FuncConvert.FromFunc ve FuncConvert.FromAction API'leri C# ile birlikte çalışma konusunda yardımcı olabilir. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.
  • ValueOption yeni bir türdür ve Etkin Desenler için daha iyi performans sunmaya yönelik özellik kümesinin ilk aşamasıdır. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.
  • TryGetValue artık F# Eşleme türünde yeni bir üyedir. Bu özellik için RFC sayfasında daha fazla bilgi edinebilirsiniz.
  • MailboxProcessor.TryReceive ilk çağrıldığında Yüksek CPU kullanımı durumunu düzelttik.
  • bool karşılaştırması artık hızlı genel karşılaştırmayı kullanıyor. Vasily Kirichenko'nun katkılarıyla.
  • Array.allPairs özet metni güncelleştirilerek düzeltildi. Patrick McDonald'ın katkılarıyla.

F# Araçları geliştirmeleri

Bu sürüm, F# araçlarında performans geliştirmeleri ve bazı yeni düzenleyici özellikleri gibi önemli geliştirmeler içerir. Her zaman olduğu gibi, F# açık kaynak topluluğunun çok sayıda katkılarıyla. Öne çıkan özellikler:

  • Çoklu hedefleme kullananlar da dahil olmak üzere tüm biçimlerdeki .NET SDK stili projeleri için IntelliSense performansını geliştirdik.
  • Çok büyük dosyalar için IntelliSense performansını analiz etme ve geliştirme amacıyla Vasily Kirichenko, Steffen Forkmann ve Gauthier Segay'ın katkılarıyla topluluk destekli bir çalışma yapıldı. IntelliSense çok büyük dosyalarda (10 binden fazla kod satırı) artık yaklaşık iki kat daha hızlı çalışıyor.
  • Eski FSharp.Core (yüklenen paketlere rağmen) artık .NET SDK stili projelerde mevcut değil.
  • IntelliSense içinde . sonrasında XML belgesini görüntüleyen açıklama araç ipucu artık 10 saniye sonra zaman aşımına uğramıyor.
  • Nesne oluşturucu bağımsız değişkenlerinde kesme noktası belirlemenize engel olan hata düzeltildi.
  • Genel parametre olduğunda yeniden adlandırılan sembolün yinelenmesine neden olan hata düzeltildi.
  • .NET Framework şablonları (klasik F# şablonları) artık .NET SDK F# şablonlarıyla uyumlu hale getirmek için bir NuGet paketinden FSharp.Core kullanıyor.
  • Otomatik, işlem tabanlı küme ayracı tamamlama özelliği artık (), [], {}, [||] ve [<>] küme ayracı çiftleri için kullanılabilir. Bunun için Gibran Rosa ile işbirliği yaptık.
  • Artık F# simgesine Ctrl + Tıklama ile tanıma gidebilirsiniz. Bu hareketin ayarı Araçlar > Seçenekler penceresine de eklendi.
  • IntelliSense performans arabirimi, çeşitli IDE özellikleri için eski typecheck bilgilerinin yapılandırılmasını mümkün kılacak şekilde değiştirildi. Tüm seçeneklerin açıklamaları artık ayarlardaki araç ipuçlarında mevcut.
  • Küme ayracı vurgulama özelliği artık küme ayraçlarını doğru şekilde vurguluyor. Bu özellikte Vasily Kirichenko ile işbirliği yaptık.
  • Tanıma git komutu artık özyinelemeli türlerde doğru yere gidiyor. Vasily Kirichenko'nun katkılarıyla.
  • Otomatik olarak içeri aktarılan bir ad alanının dosyanın en üst bölümü boş olduğunda açılmamasına neden olan hata Vasily Kirichenko tarafından düzeltildi.
  • Nokta içeren printf tanımlayıcılarının yanlış renkle gösterilmesine neden olan hata Vasily Kirichenko tarafından düzeltildi.
  • Özyinelemeli modül içindeki tüm açma işlemlerinin kullanılmıyor olarak kabul edilmesine neden olan hata Vasily Kirichenko tarafından düzeltildi.
  • Kullanılmayan Açma İşlemleri çözümleyicisinin performansı Vasily Kirichenko tarafından önemli ölçüde geliştirildi.
  • Öznitelikler için otomatik tamamlama özelliği artık yalnızca gerçekten öznitelik olan seçenekleri öneriyor. Vasily Kirichenko'nun katkılarıyla.
  • Artık oluşturucu çağrı sitesindeki Tür Sağlayıcısı statik parametreleri için İmza Yardımı araç ipuçları oluşturuluyor. Vasily Kirichenko'nun katkılarıyla.
  • Ölçü birimi olarak kullanılan değer türlerinin başvuru türü olarak renklendirildiği hata Vasily Kirichenko tarafından düzeltildi.
  • Kaydırma sırasında bazı dosyalarda semantik renklendirmenin kaybolmasına neden olan hata Vasily Kirichenko tarafından düzeltildi.
  • Artık deneysel bir CodeLens uygulaması var. Victor Peter Rouven Müller'in katkılarıyla. Bunu Seçenekler Metin Düzenleyicisi > F# > Kod Merceği'nde açabilirsiniz.>
  • F# derleyici hizmetinin XML belgelerindeki modül adlarını yanlış bir şekilde ilerlettiği bir hata Sebastian Urban tarafından düzeltildi.
  • ContainsKey ve sonraki Item çağrılarıyla Dictionary kullanan kod, TryGetValue kullanacak şekilde değiştirildi. Eugene Auduchinok'un katkılarıyla.
  • Jakob Majoka da Araç İpuçları için farklı bir API'nin kullanılması sürecinde katkıda bulundu.

Altyapı, Paketleme ve Açık Kaynak Geliştirmeleri

Altyapı, paketleme ve açık kaynak katkı deneyimimizde aşağıdaki geliştirmeleri yaptık:

  • Visual Studio ile dağıtılan F# derleyicisi artık F# Derleyici SDK'sı konumunda tekil olarak yüklenmez. Artık Visual Studio ile tamamen yan yanadır, yani Visual Studio'nun yan yana yüklemeleri sonunda gerçekten yan yana F# araçlarına ve dil deneyimlerine sahip olur.
  • FSharp.Core NuGet paketi imzalandı.
  • ETW günlüğü F# araçlarına ve derleyicisine eklendi.
  • FSharp.Core içindeki çok büyük olan control.fs/control.fsi dosyaları async.fs/async.fsi, event.fs/event.fsi, eventmodule.fs/eventmodule.fsi, mailbox.fs/mailbox.fsi ve observable.fs/observable.fsi olarak bölündü.
  • Proje performansı stres testi yapıtlarımızın .NET SDK stili sürümlerini ekledik.
  • Newtonsoft.json dosyasını kod tabanımızdan kaldırdık, artık OSS katkıda bulunanları için indirilen paket sayısı bir azaldı.
  • Artık System.Collections.Immutable ve System.Reflection.Metadata öğelerinin son sürümlerini kullanıyoruz.

C++ Uyumluluğu ve Araç Takımı Geliştirmeleri

Bu sürüm aşağıdaki C++ uyumluluğu ve araç takımı geliştirmelerini içerir:

  • /experimental:preprocessor anahtarıyla etkinleştirilen, C++11 standartlarına (C99 ön işlemci özellikleri dahil) uygun yeni, deneysel, belirteç tabanlı ön işlemci. Bu özellik _MSVC_TRADITIONAL makrosu ile denetlenir ve geleneksel ön işlemci kullanılırken 1, yeni deneysel standartlarla uyumlu ön işlemci kullanılırken 0 değeri alır.
  • Visual Studio Geliştirici Komut İstemi, Visual C++ Spectre değişkeni 1 azaltılmış çalışma zamanlarının (-vcvars_spectre_libs = spectre) etkinleştirilmesini destekliyor. Spectre risk azaltma işlemleri hakkında daha fazla bilgi için Visual C++ Ekip Bloguna bakın.
  • Modern C++ kodu oluşturmaya odaklanan iki yeni SSA Optimizer özelliği: gereksiz depolamaları kaldırma ve gereksiz dalların katlanması.
  • Bağlantı sürelerini kısaltmak için bağlayıcı bellek eşlemeli G/Ç performansı iyileştirildi.

C++ Platformlar Arası Geliştirme

Bu sürümde aşağıdaki C++ platformlar arası geliştirme özelliklerini ekledik ve geliştirdik:

  • Araçlar>Seçenekler sayfasında ClangFormat için belirtilen kodlama kurallarını kullanan bir .clang biçiminde dosya oluşturmak için Ekle>Yeni Öğe şablonu ekledik. Visual Studio kuralı seçilirse oluşturulan dosya Araçlar > Seçenekler sayfasındaki kullanıcının geçerli Visual Studio biçimlendirme yapılandırmasıyla eşleşmeye çalışır.
  • Sunulan clang-format.exe sürümü 6.0.0 olarak güncelleştirildi.
  • Şablonlar, CppProperties.json dosyasına yapılandırma eklemeyi kolaylaştırıyor.
  • CMakeSettings.json yapılandırmalarını(Şekil 7) eklemeyi kolaylaştırmak için şablonlar eklendi.
Configuration templates for CMake
(Şekil 7) CMake Yapılandırma Şablonları

C++ Üretkenliği

C++ üretkenliği için aşağıdaki geliştirmeleri ve iyileştirmeleri yaptık:

  • Makrolarda C++ Hızlı Bilgi ipuçları artık yalnızca tanımlarını değil genişletme durumlarını da gösteriyor. Bu durum, makro tanımlayıcının ön işlemci tarafından ne ile değiştirildiğini açık bir şekilde gösterdiğinden özellikle diğer makrolara başvuran karmaşık makrolar için yararlıdır.
  • Kodu modern hale getirmek için yeni bir araç olarak temel makroları constexpr biçimine dönüştürmek üzere yeni bir hızlı çözüm ampulü eklendi.
  • Şablonlar için IntelliSense, şablonunuzun gövdesinde IntelliSense'i tam olarak kullanabilmeniz için şablon bağımsız değişkenleri hakkında daha fazla ayrıntı sunuyor (Şekil 8).
Template IntelliSense
(Şekil 8) IntelliSense şablonu
  • Kod analizi deneyimimizi yenilemek için çalışıyoruz. Yeni ve üzerinde çalışmaya devam ettiğimiz özellikleri Araçlar>Seçenekler>Metin Düzenleyici>C++>Deneysel>Kod Analizi yolunu izleyerek etkinleştirebilirsiniz. Kod analizi, dosyalar açılırken veya kaydedilirken arka planda çalışabilir ve sonuçlar hem hata listesinde hem de düzenleyicide yeşil dalgalı çizgiler olarak gösterilir (Şekil 9).
In-editor code analysis
(Şekil 9) Düzenleyici İçinde Kod Analizi

C++ Hata Ayıklama Geliştirmeleri

Aşağıdaki hata ayıklama geliştirmelerini yaptık:

  • Yalnızca Kendi Kodum artık sistemden veya 3. taraf C++ kitaplıklarından kod aktarmaya ek olarak bu çağrıları, çağrı yığını penceresinde daraltmanızı sağlar. Kodunuz /JMC ile derlendiğinde ve kullanıcı harici kitaplık yolları bir .natjmc dosyasında belirtildiğinde bu davranışı tüm C++ kitaplıkları için denetleyebilirsiniz. Sistem kitaplığı kullanıcı kodunu çağırıyorsa adımladığınızda hata ayıklayıcısı tüm sistem kodunu atlar ve ilk kullanıcı kodu geri çağırma satırında durur (Şekil 10).
Just My Code
(Şekil 10) Yalnızca Kendi Kodum
  • Veri kesme noktaları artık İzleme, Hızlı İzleme, Otomatikler ve Yereller pencerelerinde ayarlanarak bellekte depolanan bir değer değiştiğinde yalnızca birkaç tıklamada kesme noktası oluşturmanızı sağlar.
  • Kaynak Bağlantısı bir yürütülebilir dosya veya kitaplığın özgün kaynak kodu hakkındaki bilgileri derleme sırasında PDB'ye eklemenizi sağlar.
  • Hata ayıklama sırasında konsol penceresi artık program yürütmeyi sonlandırdığında varsayılan olarak açık kalır (programı hata ayıklayıcı olmadan çalıştırmaya benzer şekilde). Bu davranış Araçlar> Seçenekler > Hata ayıklama > Genel yolundan konsolun otomatik olarak kapanacağı şekilde değiştirilebilir.

JavaScript ve TypeScript Geliştirmeleri

TypeScript 3.0

Visual Studio 2017 sürüm 15.8 artık varsayılan olarak TypeScript 3.0 içermektedir. Bu sürüm hakkında ayrıntılı bilgi için TypeScript 3.0 yayın duyurusuna bakın.

Geliştirilmiş Vue.js desteği

Vue.js kitaplığı desteği ve özellikle "tek dosyalı bileşenler" olarak da bilinen .vue dosyaları için sunulan destek geliştirildi. Bu destek, TypeScript içinde betik öğesinde lang="ts" özniteliği aracılığıyla yazılmış olan betik blokları için destek olmak üzere .vue dosyaları içindeki betik bloklarını düzenleme sırasında geliştirme sağlar. (Not: .vue dosyalarını çalışma zamanında gereken HTML ve JS dosyalarına dönüştürmek için WebPack veya benzeri bir derleme işlemi kullanılmalıdır. Daha fazla ayrıntı için Tek Dosyalı Bileşenler sayfasına bakın).

Node.js iş yükü yüklendiyse Yeni Proje iletişim kutusunun "JavaScript/Node.js" veya "TypeScript/Node.js" yollarının altında "Temel Vue.js Web Uygulaması" şablonları bulunur. Aşağıda bir .vue dosyasındaki betik bloğu içinde TypeScript kodu düzenleme örneği gösterilmiştir (Şekil 11).

Editing a .vue file
(Figure 11) .vue Dosyalarını Düzenleme

ESLint Geliştirmeleri

Bu sürümde ESLint desteğini yeniden ekledik. ESLint, aşağıdaki geliştirmeleri ve iyileştirmeleri içeriyor:

  • Visual Studio artık yalnızca kaydedilen dosyalara lint uygulamak yerine düzenlediğiniz JavaScript dosyalarına da lint uygulamanıza izin veriyor.
  • Sonuçlar yalnızca açık dosyalara değil projenizdeki tüm JS dosyaları için bildirilebilir. Projenizde Lint uygulanmasını istemediğini bölümler varsa bir .eslintignore dosyası kullanarak yoksayılacak dizinleri ve dosyaları belirtebilirsiniz.
  • ESLint, varsayılan olarak ESLint 4 sürümünü kullanacak şekilde güncelleştirildi ancak projenizde yerel ESLint yüklemesi varsa bu sürüm kullanılır.

ESLint'i Visual Studio'da tamamen devre dışı bırakmak için **Araçlar > Seçenekler > Metin Düzenleyicisi > Javascript/Typescript > Lint Uygulama ** (Şekil 12) sayfasındaki ESLint'i Etkinleştir seçeneğinin işaretini kaldırabilirsiniz.

ESLint Options
(Şekil 12) ESLint Seçenekleri

Node.js İçin Klasör Aç Geliştirmeleri

"Node.js iş yükünün" yüklü olduğu Klasör Aç senaryosunda JavaScript ve TypeScript ile çalışma birçok geliştirme yapılmıştır. Örneğin NPM paketlerini yönetirken, TypeScript oluştururken, Node.exe'yi başlatırken ve hata ayıklarken, NPM betiklerini yürütürken ve birim testlerini çalıştırırken bu geliştirmeleri görebilirsiniz.

Daha fazla bilgi için bkz. Çözüm veya proje olmadan Visual Studio'da JavaScript ve TypeScript kodu geliştirme.

Düzenleyicide Performans Geliştirmeleri

Önceki sürümlerde tüm JavaScript ve TypeScript dil hizmeti işlemleri tek bir Node.js işlemi tarafından işleniyordu. Bu da uzunca bir işlem çalışırken (kodda hata analizi yapma gibi) kullanıcının yazmasını etkileyen komutlarda (yeni satır sonrasında otomatik biçimlendirme gibi) düzenleyicide gecikmelere neden olabiliyordu. Bunu azaltmak için düzenleme üzerinde en çok etki sahibi olan eylemler için artık ayrı bir işlem kullanılıyor. Bu işlem, var olan dil hizmeti işlemine kıyasla daha az sistem kaynağı kullanmaktadır. Ancak yeni işlemi devre dışı bırakmak isterseniz Araçlar > Seçenekler > Metin Düzenleyicisi > JavaScript/TypeScript > Dil Hizmeti sayfasındaki Adanmış söz dizimi işlemini devre dışı bırakın kutusunu işaretleyin.

Visual Studio Web Araçları

Kitaplık Yöneticisi, Visual Studio 2017'ye eklenen yeni özelliklerden biridir. Web projelerinizde istemci tarafındaki kitaplıkları yönetmenize yardımcı olur.

Kapsayıcı Araçları

ASP.NET Core web projeleri için yeni bir tek projelik Docker kapsayıcısı deneyimi ekledik. Bu araç, var olan Docker Compose tabanlı kapsayıcı araçlarını tamamlar ve Visual Studio'dan Docker kapsayıcılarında oluşturma, hata ayıklama ve derleme işlemlerini gerçekleştirmek için daha kolay bir yol sunar.

Projeyi oluştururken Docker desteği ekleyebilirsiniz (Şekil 13):

Enable Docker Support
(Şekil 13) Docker Desteğini Etkinleştirme

İsterseniz Çözüm Gezgini'nde projenin bağlam menüsünden var olan bir projeye Docker desteği ekleyebilirsiniz (Şekil 14). Bunu yaptığınızda Visual Studio projede tek bir Docker dosyası oluşturur. Windows veya Linux'ı seçebilirsiniz.

Add Docker Support
(Şekil 14) Docker Desteği Ekleme

Visual Studio ayrıca Docker için bir hata ayıklayıcısı başlatma profili (Şekil 15) ekleyerek proje kapsayıcı içinde çalışırken hata ayıklama yapılmasını sağlar.

Docker Launch Profile
(Şekil 15) Docker Başlatma Profili

Birden fazla Docker projesi içeren bir çözümünüz varsa, çözümü başlatmayı seçtiğinizde varsayılan olarak yalnızca bir kapsayıcı çalışır. Aynı anda birden fazla kapsayıcı çalıştırmak isterseniz Çözüm Gezgini'nde sağ tıklayıp Başlangıç Projelerini Ayarla'yı ve Çoklu başlangıç projeleri'ni seçip çalıştırmak istediğiniz tüm projeler için Eylem açılan menüsünü Başlat veya Hata ayıklama olmadan başlat olarak ayarlayın.

Kapsayıcılı projenizi istediğiniz şekilde çalıştırdıktan sonra projeye sağ tıklayıp Docker Görüntüsü Derle'yi seçerek yerel görüntü derleyebilir ve hazır olduğunuzda Azure Container Registry veya DockerHub'a gönderebilirsiniz.

Ayrıca var olan Docker Compose tabanlı işlevi yeni Kapsayıcı Düzenleyicisi Desteği seçeneğiyle (Şekil 16) ASP.NET Core web projesine ekleyebilirsiniz. Çözüm Gezgini'nde ASP.NET Core web projesine sağ tıklayın, Ekle > Kapsayıcı Düzenleyicisi Desteği'ni ve açılan menüden Docker Compose'u seçin.

Add Container Orchestrator Support
(Şekil 16) Düzenleyici Desteği Ekleme

Yayımlama Geliştirmeleri

Bu sürüm aşağıdaki yayımlama geliştirmelerini içermektedir:

  • Bir Docker kapsayıcısını bir kapsayıcı kayıt defterinde yayımlarken artık görüntünün etiketini özelleştirebilirsiniz. El ile bir etiket ekleyebilir (varsayılan etiket: "latest") veya her etiketin benzersiz olduğundan emin olmak için otomatik olarak oluşturulan etiketler kullanabilirsiniz.
  • Yeni bir Azure App Service oluştururken telemetri verilerini otomatik olarak toplamak için Application Insights'ı da yapılandırabilirsiniz. Application Insights içeren bir bölge seçerseniz bu özellik varsayılan olarak etkinleştirilir. Henüz Application Insights'ı içermeyen bir bölge seçerseniz açılan menüden Application Insights kaynağınız için el ile farklı bir bölge belirtebilirsiniz.
  • Azure İşlevleri projelerini yayımlarken yeni Run-From-Zip özelliğini kullanabilirsiniz.

Xamarin için Visual Studio Araçları

Bu sürüm aşağıdaki Xamarin güncelleştirmelerini içerir:

  • Xcode 9.4 desteği ekledik.
  • Yeni bir Xamarin.Forms projesi oluşturduğunuzda varsayılan kod paylaşma seçeneği artık .NET Standard olarak belirlenir. Paylaşılan proje seçeneği de kullanılabilir durumdadır.
  • Android artımlı derleme geliştirmeleri ekledik. Xamarin.Android, tam derlemelerden daha hızlı olan artımlı derlemeleri mümkün kılmak için ara çıktı dizininde oluşturulan dosyaları kullanır. Önceden projenizin hedef Framework bilgisini değiştirmeniz durumunda dosyalar geçersiz hale geliyor ve bir sonraki çalıştırmada tam derleme oluşturuluyordu. Bu sürümde dosyaları Framework'lere özgü klasörlerde tutarak hedef Framework'ler arasında geçiş yapmanızı ve artımlı derlemelerden faydalanmaya devam etmenizi sağlıyoruz. Projenin temizlenmesi, korunan dosyalar tarafından kullanılan disk alanını yeniden kullanabilmenizi sağlıyor.
  • Visual Studio 2017'de Xamarin.Mac bağlama projeleri için minimum destek ekledik. Bu da Visual Studio'nun Xamarin.Mac bağlama projeleri için yükleme ve tanıma desteği sunmasını sağlıyor. İsterseniz Xamarin.Mac bağlama projeleri de oluşturabilirsiniz. Ancak derleme işlemi yerel Mac araç zinciri kullanılmadan yerel ortamda gerçekleştirildiğinden oluşturulan IL bütünleştirilmiş kodları çalıştırma veya uygulamada hata ayıklama için kullanılamaz.

Hyper-V Android Öykünücüsü Desteği

Bu da Windows 10 Nisan 2018 Güncelleştirmesi üzerinde çalışırken Hyper-V ile uyumlu olan Google Android öykünücüsü desteği ekler (Şekil 17). Bu da Google Android öykünücüsünün Hyper-V sanal makineleri, Docker araçları, HoloLens öykünücüsü ve diğer Hyper-V tabanlı teknolojilerle yan yana kullanabilmenizi sağlar. Hyper-V kullanan mobil uygulama geliştiricileri artık en son Android API'lerini destekleyen, doğrudan Google Play Hizmetleri ile birlikte çalışan ve kamera, coğrafi konum ve Quick Boot dahil olmak üzere Android öykünücüsünün tüm özelliklerini destekleyen hızlı bir Android öykünücüsüne erişebilir.

Screenshot of both the Google Android emulator and HoloLens emulator running at the same time.
(Şekil 17) Google Android Emulator ve HoloLens Öykünücüsü

Xamarin.Android Tasarım Aracı

Xamarin.Android için tasarımcı deneyiminde önemli geliştirmeler yaptık. Öne çıkan özellikler:

  • Aynı anda düzenlerinizde oluşturma, düzenleme ve önizleme işlemlerini gerçekleşmenizi sağlayan bölünmüş görünüme sahip düzenleyici eklendi (Şekil 18).
Screenshot of the Xamarin.Android split-view editor.
(Şekil 18) Xamarin.Android Bölünmüş Görünüme Sahip Düzenleyici
  • IntelliSense deneyiminde ve özel denetimlerin güvenilirlik düzeyinde yapılan geliştirmeler.
  • Sistem tarafından sağlanan değerler için örnek veri desteği.

Xamarin.Forms Önizleyicisi

Xamarin.Forms Önizleyicisi artık Xamarin.Forms sürüm 3.1.0.583944 veya üzeri için araç kutusu desteğine sahip. Xamarin.Forms denetimleri, araç setini kullanmaya yeni başlayanlar için daha kolay keşfedilmesi amacıyla araç kutusunda görünür. Ayrıca sayfaya eklemek istediğiniz denetimleri sürükleyip XAML kod düzenleyicisine bırakabilirsiniz. Xamarin.Forms Önizleyicisi artık XAML düzenleyicisinin bir parçası. Düzenleyici bölmesinin kenarındaki genişletme simgesiyle açabilir veya kapatabilirsiniz.

Python

Bu sürümde Python geliştiricileri için aşağıdaki geliştirmeler eklenmiştir:

  • Python IntelliSense artık otomatik tamamlamaların statik analiz ile alınamadığı kitaplıklar için daha zengin sonuçların dağlanması için typeshed tanımlarını kullanıyor.
  • İlk olarak 15.7 önizleme sürümlerinde duyurulan deneysel hata ayıklayıcısı artık Python için kullanılan varsayılan hata ayıklama altyapısıdır ve Python kodunda daha hızlı ve daha güvenilir hata ayıklama yapılmasını sağlar.
  • Hata ayıklama, ekleme, profil oluşturma ve karma mod (diller arası) hata ayıklama özelliklerini etkinleştirme düzeltmeleri dahil olmak üzere Python 3.7 desteği ekledik.
  • Yukarıdaki özellikler hakkında daha fazla bilgi için Visual Studio 2017 sürüm 15.8'de Python blog gönderimize bakın.

Yerel Azure İşlevi Ayarlar Geçirme

Yayımlama özeti sayfasından ulaşılabilen "Yönetilen Uygulama Ayarları" iletişim kutusu artık local.settings.json dosyanızdaki değerleri görüntüler ve değerlerinizi Azure'da barındırılan uzak Azure İşlevi uygulamanıza geçirmenizi sağlar.

Bağlı Hizmetler

Artık Azure İşlevi Projeleri ile doğrudan Visual Studio 2017'den çözümler için Azure İşlevlerinde sürekli teslim yapılandırması yapabilirsiniz.

Test Gezgini İyileştirmesi

Test Gezgini artık hiyerarşi görünümündeki gruplandırmalardan birisi seçildiğinde daha bilgilendirici bir test durumu özet bölmesi (test gezgininin alt bölmesi) görüntüler. Bölmede artık başarısız olan, başarılı olan veya bu gruplandırmada çalışmayan test sayısı görüntülenir.

Yeni Genişletilebilirlik Özellikleri

Dil Sunucusu Protokolü

Visual Studio artık Dil Sunucusu Protokolü için yerel desteğe sahip. Uzantı yazarları Visual Studio'ya ek dil desteği eklemek için var olan dil sunucularıyla iletişim kuran uzantılar oluşturabilir. Uzantı kullanıcıları bu uzantıları yükleyerek Rust gibi favori dillerini Visual Studio'da kullanmaya başlayabilir.

AsyncPackage Şablonu

Uzantı yazarları artık uzantılarının performansını iyileştirme amacıyla AsyncPackages oluşturmak için öğe şablonlarını kullanabilir. AsyncPackages hakkında daha fazla bilgi edinin.

Uzantı Paketleri

Uzantı paketi kullanarak favori uzantılarınızı arkadaşlarınızla kolayca paylaşabilir veya yeni Visual Studio yüklemesini ayarlayabilirsiniz. Uzantı paketleri bir uzantı listesi oluşturmanızı, bunları bir uzantı halinde paketlemenizi ve bu uzantıları hızlı ve toplu şekilde yüklemek için kullanmanızı sağlar.

Komut Satırından Uzantı Yayımlama

Uzantılarınızı Visual Studio Market'te yayımlamak için komut satırını kullanabilirsiniz.

.NET Core SDK 2.1.400

Visual Studio 2017 sürüm 15.8, .NET Core SDK 2.1.400 içerir. Yeni SDK özellikleri şunlardır:

  • NUnit şablonları eklendi
  • İmzalı genel araçlar için destek eklendi
  • Yardım metinleri daha kolay anlaşılmaları için geliştirildi

32 adet .NET Core CLI sorunu kapatıldı.
20 adet .NET Core SDK sorunu kapatıldı.

Kaynak Denetimi

.NET Core projeleri için projeye Çözüm Gezgini ile doğrudan eklenen dosyalar, çözümün yeniden yüklenmesine gerek kalmadan artık doğru Git ve TFS izleme simgelerini gösterecek.

.NET Test Bağdaştırıcısı Uzantısı

.NET Test Bağdaştırıcısı aşağıdaki yeni ve kullanımdan kaldırılan değişikliklere sahiptir:

  • Yeni Değişiklik: Tüm test projelerinin csproj dizininde .NET test bağdaştırıcısı NuGet başvurusuna sahip olması gerekir. Bunu yapmazlarsa, bir test bağdaştırıcısı uzantısı tarafından bulma işlemi bir derlemeden sonra başlatılırsa veya kullanıcı seçilen testleri çalıştırmayı denerse bu test çıkışı projede görünür:
    • Test projesi {<Test projesinin> tam yolu}, hiçbir .NET NuGet bağdaştırıcısına başvurmuyor. Test bulma veya yürütme bu proje için çalışmayabilir. Çözümdeki tüm test projeleri için NuGet test bağdaştırıcısı başvurusu eklemeniz önerilir.
  • .NET test Framework'leri bağdaştırıcılarını NuGet paketleri olarak yayımlamakta ve Visual Studio uzantılarını kullanmayı bırakmaktadır. .NET test bağdaştırıcıları için uzantı aracılığıyla sunulan destek kullanım dışıdır ancak yine de destek sunulmaya devam etmektedir. Bu da Araçlar > Seçenekler > Test sayfasında iki yeni seçeneğin mevcut olacağı anlamına gelir.
    • İlk seçenek Visual Studio'nun yalnızca test derlemesi klasöründe bulduğu test bağdaştırıcılarını (test bağdaştırıcısı NuGet başvurusuyla eklenen) veya runsettings dosyasında belirtilenleri kullanmasını sağlar.
    • İkinci seçenek Visual Studio'nun eski davranışa "geri dönmesini" ve test bağdaştırıcısı NuGet başvurusuna sahip olmayan projeler için test bağdaştırıcısı uzantılarını aramasını sağlar. İki seçenek de varsayılan olarak işaretli olduğundan bu sürümde varsayılan davranış değişmeyecektir.
  • Not: .NET harici test bağdaştırıcılarının bu değişiklikten etkilenmeyeceğini unutmayın.

.NET Framework Gizli Dizi desteği ASP.NET

.NET Framework 4.7.1 veya üzerini hedefleyen ASP.NET .NET Framework projeleri için projeye sağ tıklayıp "Yönetilen Kullanıcı Dizileri"ni seçerek kaynak kodunuzda istemediğiniz gizli dizileri açabilir ve usersecrets.xml dosyasında depolayabilirsiniz.

.NET Framework performansını ASP.NET geliştirme

ASP.NET .NET Framework projesinde başvurulan .NET Derleyici paketi eski ise Visual Studio, projeyi açtığınızda derleme performansınızı geliştirmek için paketi yükseltmenizi ister.

.NET Framework 4.7.2

Visual Studio 2017 sürüm 15.8, 4.7.2 çalışma zamanı ile desteklenen tüm platformlar için .NET Framework 4.7.2 geliştirme araçlarını sunuyor. .NET Framework 4.7.2 sürümü, çeşitli yeni özellik ve iyileştirmelerin yanı sıra çok sayıda güvenilirlik, kararlılık, güvenlik ve performans düzeltmeleri içeriyor.

Aşağıdaki makalelerde .NET Framework 4.7.2 hakkında daha fazla ayrıntı bulabilirsiniz:

Paket Yüklemeyi Geciktirme

Visual Studio artık otomatik olarak yüklenecek şekilde yapılandırılmış olan zaman uyumsuz paketlerin yüklenmesini Visual Studio IDE tamamen başlatılana ve çözüm yüklenene kadar geciktirir. Bu değişiklik otomatik olarak yüklenen zaman uyumlu paketleri etkilemez. Kullanıcılar, ilerleme durumunu izlemek için durum çubuğunun sol alt köşesinde bulunan Görev Durumu Merkezi'ne bakabilir. Zaman uyumsuz paket oluşturan uzantı yazarlarının uzantılarını test etmeleri gerekir. Daha fazla bilgi için bkz. Uzantıların otomatik yükleme davranışını güncelleştirerek kritik senaryoların yanıt hızını geliştirme.


---

Release Notes Icon Visual Studio 2017 sürüm 15.8 Güvenlik Önerisi Bildirimleri

Visual Studio 2017 sürüm 15.8.7 Bakım Sürümü-- 10 Ekim 2018’de yayımlandı

CVE-2018-8292 .NET Core Bilgilerin Açığa Çıkması ile İlgili Güvenlik Açığı

.NET Core’da, HTTP yeniden yönlendirme isteğiyle karşılaşan bir giden istekte HTTP kimlik doğrulaması bilgileri yanlışlıkla açığa çıktığında güvenlik özelliğini aşan bir güvenlik açığı bulunuyor. Bu güvenlik açığından başarılı bir şekilde yararlanan saldırganlar, bilgileri web uygulamasını tehlikeye atacak şekilde kullanabilir. Güvenlik güncelleştirmesi, .NET Core uygulamalarının HTTP yeniden yönlendirme biçimini düzelterek güvenlik açığını giderir.

Visual Studio 2017 sürüm 15.8.4 Bakım Sürümü-- 11 Eylül 2018’de yayımlandı

CVE-2018-8409 .NET Core Hizmet Reddi Güvenlik Açığı

System.IO.Pipelines istekleri düzgün bir şekilde ele almadığında .NET Core 2.1’de hizmet reddi güvenlik açığı ortaya çıkıyor. Bu güvenlik açığını başarılı bir şekilde kötüye kullanabilen bir saldırgan, System.IO.Pipelines’tan yararlanan uygulamalarda hizmet reddi sorununa yol açabilir. Güvenlik açığı, uzaktan bağlanarak kimlik doğrulaması olmadan kötüye kullanılabilir. Kimliği doğrulanmamış bir uzak saldırgan, uygulamaya özel olarak tasarlanmış istekler göndererek bu güvenlik açığını kötüye kullanabilir.

CVE-2018-8409 ASP.NET Core Hizmet Reddi Güvenlik Açığı

Web isteklerini düzgün bir şekilde ele almadığında ASP.NET Core 2.1’de hizmet reddi güvenlik açığı ortaya çıkıyor. Bu güvenlik açığını başarılı bir şekilde kötüye kullanabilen bir saldırgan, ASP.NET Core web uygulamasında hizmet reddi sorununa yol açabilir. Güvenlik açığı, uzaktan bağlanarak kimlik doğrulaması olmadan kötüye kullanılabilir. Kimliği doğrulanmamış bir uzak saldırgan, .ASP.NET Core uygulamasına özel olarak tasarlanmış web istekleri göndererek bu güvenlik açığını kötüye kullanabilir.

Visual Studio 2017 sürüm 15.8-- 14 Ağustos 2018'de yayınlandı

CVE-2018-0952 Tanılama Merkezi Standart Toplayıcı Ayrıcalıkların Yükseltilmesi Güvenlik Açığı

Bir Visual Studio hizmetinde, yönetici olmayan bir kullanıcının dosya yazma sırasında sistem ayrıcalıkları elde etmesine neden olabilecek ayrıcalıkların yükseltilmesi güvenlik açığı mevcuttur. Bu açıktan faydalanan saldırganlar yalnızca kullanıcı düzeyinde erişime sahip olmalarına rağmen sistem olarak dosya yazabilir. Bu güvenlik güncelleştirmesinde dosya konumuna erişimi doğrulama amacıyla geçerli kullanıcının kimliğine bürünülerek sorun giderilmiştir.

Visual Studio 2017 sürüm 15.8 Önizleme 4 -- 10 Temmuz 2018'de yayınlandı

CVE-2018-8172 Visual Studio Uzaktan Kod Yürütme Güvenlik Açığı

Özel olarak hazırlanmış bir proje veya kaynak dosyası açılarak bir kullanıcıya ait makineden yararlanmaya neden olabilen bir uzaktan kod yürütme güvenlik açığı. Güvenlik güncelleştirmesi, Visual Studio’nun bir dosyadaki kaynak işaretlemesini denetleme biçimini düzelterek güvenlik açığını giderir.

CVE-2018-8260 .NET Framework Uzaktan Kod Yürütme Güvenlik Açığı

Uzaktan kod yürütme güvenlik açığı .NET yazılımında mevcuttur ve saldırganların geçerli kullanıcı bağlamında rastgele kod çalıştırmasına izin vererek kullanıcının makinesinden yararlanmaya neden olabilir. Güvenlik güncelleştirmesi, .NET’in bir dosyadaki kaynak işaretlemesini denetleme biçimini düzelterek güvenlik açığını giderir.

CVE-2018-8232 .NET Microsoft Macro Assembler Kurcalama Güvenlik Açığı

Microsoft Macro Assembler’ın kodu hatalı biçimde doğrulamasıyla ilgili kurcalama güvenlik açığı. Güvenlik güncelleştirmesi, Microsoft Macro Assembler’ın kod mantığını düzgün bir şekilde doğrulamasını sağlayarak güvenlik açığını giderir.

CVE-2018-8171 ASP.NET Core Güvenlik Özelliği Atlama Güvenlik Açığı

Hatalı oturum açma denemelerinin sayısı doğrulanmadığında ASP.NET Core Güvenlik Özelliği Atlama Güvenlik Açığı mevcuttur ve bir saldırganın sonsuz sayıda kimlik doğrulama denemesi yapmasına neden olabilir. Güncelleştirme, hatalı oturum açma girişimlerinin sayısını doğrulayarak güvenlik açığını giderir.

Visual Studio 2017 sürüm 15.8 Önizleme 3 -- 26 Haziran 2018'de yayımlandı

CVE-2018-11235 Git Güvenlik Açığı için Microsoft Güvenlik Önerisi

Git topluluğu tarafından açıklanan, Git’teki bir güvenlik açığını düzelttik. Güvenlik açığı, bir kullanıcı kötü amaçlı bir depoyu kopyaladığında rastgele kod yürütmesine yol açabilir.

Visual Studio 2017 sürüm 15.8 Önizleme 1 -- 08 Mayıs 2018'de yayınlandı

CVE-2018-0765 .NET Core Hizmet Reddi Güvenlik Açığı İçin Microsoft Güvenlik Önerisi

  • Microsoft bu güvenlik önerisini .NET Core ve .NET Native 2.0 sürümlerindeki bir güvenlik açığı hakkında bilgi sağlamak amacıyla yayınlamaktadır. Bu öneri ayrıca geliştiricilerin uygulamalarını bu güvenlik açığını giderecek şekilde güncelleştirmek için neler yapabileceği konusunda da rehberlik sağlar.
  • Microsoft, .NET Framework ve .NET Core’da XML belgelerinin yanlış işlenmesinden kaynaklanan bir hizmet reddi güvenlik açığı olduğunun farkındadır. Bu güvenlik açığını başarılı bir şekilde kötüye kullanabilen bir saldırgan, .NET Framework, .NET Core veya .NET Native uygulamalarında hizmet reddi sorununa yol açabilir.
  • Güncelleştirme, .NET Framework, .NET Core ve .NET Native uygulamaları tarafından XML belgelerinin işlenme biçimini düzelterek bu güvenlik açığını giderir.
  • Uygulamanız bir ASP.NET Core uygulaması ise, geliştiricilerin ayrıca ASP.NET Core 2.0.8 sürümüne güncelleştirmeleri önerilir.

Release Notes IconVisual Studio 2017 sürüm 15.8.1

17 Ağustos 2018'de yayınlandı

15.8.1 Sürümünde Düzeltilen Başlıca Sorunlar

15.8.1 derlemesinde giderilen sorunlar:

  • Web projesinde hata ayıklama sırasında tarayıcı penceresi kapatıldığında Visual Studio'nun beklenmeyen bir şekilde kapatılmasına neden olan sorun düzeltildi.

Release Notes IconVisual Studio 2017 sürüm 15.8.2

28 Ağustos 2018’de yayınlandı

15.8.2 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.2 sürümünde giderilen sorunlar şunlardır:


Release Notes IconVisual Studio 2017 sürüm 15.8.3

yayın tarihi: 6 Eylül 2018

15.8.3 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.3 sürümünde giderilen sorunlar şunlardır:


Release Notes IconVisual Studio 2017 sürüm 15.8.4

11 Eylül 2018’de yayımlandı

15.8.4 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.4 sürümünde giderilen sorunlar şunlardır:

Güvenlik Danışmanlığı Bildirimleri


Release Notes IconVisual Studio 2017 sürüm 15.8.5

yayın tarihi: 20 Eylül 2018

15.8.5 Sürümündeki Yeniliklerin Özeti

  • Xamarin için Visual Studio Araçları artık Xcode 10 sürümünü destekliyor.

15.8.5 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.5 sürümünde giderilen sorunlar şunlardır:

15.8.5 Sürümündeki Yeniliklerin Ayrıntıları

Xamarin için Visual Studio Araçları

Xamarin için Visual Studio Araçları artık iOS 12, tvOS 12 ve watchOS 5 için uygulama derlemenizi ve hata ayıklama yapmanızı sağlayan Xcode 10 desteği sunuyor. Kullanıma sunulan yeni özellikler hakkında daha fazla bilgi için iOS 12 için hazırlanma ve iOS 12'ye giriş sayfalarımızı inceleyin.


Release Notes IconVisual Studio 2017 sürüm 15.8.6

yayın tarihi: 02 Ekim 2018

15.8.6 Sürümündeki Yeniliklerin Özeti

15.8.6 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.6 sürümünde giderilen sorunlar şunlardır:

15.8.6 Sürümündeki Yeniliklerin Ayrıntıları

Evrensel Windows Platformu geliştiricileri için en son Windows 10 SDK’sı

Windows 10 SDK’sının son sürümü (derleme 17763), Evrensel Windows Platformu geliştirme iş yüküyle birlikte isteğe bağlı bir bileşen olarak kullanıma sunuldu. Windows 10 SDK’sı (10.0.17763.0) onay kutusunu işaretleyerek bu SDK’yı iş yüküne ekleyebilirsiniz.


Release Notes IconVisual Studio 2017 sürüm 15.8.7

yayın tarihi: 10 Ekim 2018

15.8.7 Sürümündeki Yenilikler

Azure DevOps

Visual Studio Team Services’in adı artık Azure DevOps! Bu yeni marka adını Takım Gezgini’nde ve Visual Studio’daki başvurularda göreceksiniz.

Güvenlik Danışmanlığı Bildirimleri

CVE-2018-8292 .NET Core Bilgilerin Açığa Çıkması ile İlgili Güvenlik Açığı


Release Notes IconVisual Studio 2017 sürüm 15.8.8

yayın tarihi: 24 Ekim 2018

15.8.8 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.8 sürümünde giderilen sorunlar şunlardır:


Release Notes IconVisual Studio 2017 sürüm 15.8.9

yayın tarihi: 2 Kasım 2018

15.8.9 Sürümünde Düzeltilen Başlıca Sorunlar

Müşteriler tarafından bildirilen ve 15.8.9 sürümünde giderilen sorunlar şunlardır:


Bilinen Sorunlar

Visual Studio 2017 sürüm 15.8’deki tüm bilinen sorunları ve sunulan geçici çözümleri görüntüleyin.

Visual Studio 2017 Known Issues


Görüş ve Öneriler

Fikrinizi öğrenmek isteriz! Yükleyicinin veya Visual Studio IDE’nin sağ üst köşesindeki Sorun Bildir seçeneğiyle sorunları bize bildirebilirsiniz. Report a Problem Icon simgesi sağ üst köşede bulunur. Soru sorup yanıtlar bulabileceğiniz, yeni özellikler önerebileceğiniz Visual Studio Geliştirici Topluluğu sayfasından sorunlarınızı takip edebilir ve ürün önerisinde bulunabilirsiniz. Ayrıca Canlı Sohbet desteğimizden ücretsiz yükleme yardımı alabilirsiniz.


Bloglar

Tüm yeni yayınlar hakkında güncel bilgi sunan ve çok çeşitli özellikler hakkında derinlemesine bilgiler içeren Geliştirici Araçları Blogları sitesinde mevcut olan içgörü ve önerilerden yararlanın.

Developer Tools Blogs


Visual Studio 2017 Yayın Notları Geçmişi

Visual Studio 2017'nin geçmiş sürümleriyle ilgili daha fazla bilgi için Visual Studio 2017 Sürüm Notları Geçmişi sayfasına bakın.


Sayfanın Başı