.NET'e bağlantı noktası kodu göndermek için Windows Uyumluluk Paketi'ni kullanma

Mevcut kodu .NET Framework'ten .NET'e taşıma sırasında karşılaşılan en yaygın sorunlardan bazıları, yalnızca .NET Framework'te bulunan API'lere ve teknolojilere bağımlılıklardır. Windows Uyumluluk Paketi bu teknolojilerin birçoğunu sağlar, bu nedenle .NET uygulamaları ve .NET Standart kitaplıkları oluşturmak çok daha kolaydır.

Uyumluluk paketi, API kümesini önemli ölçüde artıran .NET Standard 2.0'ın mantıksal bir uzantısıdır. Mevcut kod neredeyse hiç değişiklik yapmadan derlenmiş. .NET Standard, "tüm .NET uygulamalarının sağladığı API kümesi" sözünü tutmak için kayıt defteri, Windows Yönetim Araçları (WMI) veya yansıma yayan API'ler gibi tüm platformlarda çalışabilen teknolojileri içermez. Windows Uyumluluk Paketi, .NET Standard'ın üzerinde yer alır ve bu Yalnızca Windows teknolojilerine erişim sağlar. Özellikle .NET'e geçmek isteyen ancak en azından ilk adım olarak Windows'ta kalmayı planlayan müşteriler için kullanışlıdır. Bu senaryoda, yalnızca Windows teknolojilerini kullanarak geçiş engelini kaldırabilirsiniz.

Paket içeriği

Windows Uyumluluk Paketi, Microsoft.Windows.Compatibility NuGet paketi aracılığıyla sağlanır ve .NET veya .NET Standard'ı hedefleyen projelerden başvurulabilir.

Aşağıdaki teknoloji alanlarından yalnızca Windows ve platformlar arası API'ler de dahil olmak üzere yaklaşık 20.000 API sağlar:

  • Kod Sayfaları
  • Codedom
  • Yapılandırma
  • Dizin Hizmetleri
  • Çizim
  • ODBC
  • İzinler
  • Bağlantı Noktaları
  • Windows Erişim Denetim Listeleri (ACL)
  • Windows Communication Foundation (WCF)
  • Windows Şifreleme
  • Windows EventLog
  • Windows Yönetim Araçları (WMI)
  • Windows Performans Sayaçları
  • Windows Kayıt Defteri
  • Windows Çalışma Zamanı Önbelleğe Alma
  • Windows Hizmetleri

Daha fazla bilgi için uyumluluk paketinin belirtimine bakın.

Kullanmaya başlayın

  1. Taşımadan önce Taşıma işlemine göz atmaya dikkat edin.

  2. Mevcut kodu .NET veya .NET Standard'a aktarırken Microsoft.Windows.Compatibility NuGet paketini yükleyin.

    Windows'da kalmak istiyorsanız, hazırsınız demektir.

  3. Linux veya macOS üzerinde .NET uygulamasını veya .NET Standard kitaplığını çalıştırmak istiyorsanız platformlar arası çalışmayan API'lerin kullanımını bulmak için Platform uyumluluk çözümleyicisini kullanın.

  4. Bu API'lerin kullanımlarını kaldırın, bunları platformlar arası alternatiflerle değiştirin veya aşağıdakiler gibi bir platform denetimi kullanarak bunları koruma:

    private static string GetLoggingPath()
    {
        // Verify the code is running on Windows.
        if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
        {
            using (var key = Registry.CurrentUser.OpenSubKey(@"Software\Fabrikam\AssetManagement"))
            {
                if (key?.GetValue("LoggingDirectoryPath") is string configuredPath)
                    return configuredPath;
            }
        }
    
        // This is either not running on Windows or no logging path was configured,
        // so just use the path for non-roaming user-specific data files.
        var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
        return Path.Combine(appDataPath, "Fabrikam", "AssetManagement", "Logging");
    }
    

Tanıtım için Windows Uyumluluk Paketi'nin Channel 9 videosuna göz atın.