0Pricing
C# Academy · Ders

Birden çok hedefleme

Tek bir projeden bir kitaplığı birden çok hedef çerçeve için derleyin; API farklılıkları için koşullu derleme ve geri dönüş uyarlamaları kullanın.

Birden çok hedefleme, CoddyKit'te ücretsiz bir C# Academy dersidir. Bu, 3 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C# Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C# Academy kursu toplamda 3 dersten oluşur.

Kavram ve faydalar

Amaç: Birden çok platformda çalışan tek bir paket yayımlamak.

  • Tek bir proje birden çok ikili dosya üretir
  • Tüketiciler en uygun derlemeyi otomatik olarak alır
  • API'ler farklı olduğunda küçük #if korumaları kullanın

Varlık seçiminin temelleri

  • Paket, her hedef için klasörler içerir (ör. lib/net45, lib/netstandard2.0)
  • NuGet en yakın uyumlu varlığı seçer
  • Genel API'yi tutarlı tutun; yalnızca dahili kod farklı olmalıdır

Koşullu derleme gösterimi

Uygulamayı değiştirmek için küçük #if blokları kullanın. Genel yöntem imzasını aynı tutun.

#define NET45   // simulate building for different targets
// #define NETSTANDARD2_0

using System;

public class Program
{
  public static void Main(string[] args)
  {
    Console.WriteLine("Target: " + TargetName());
  }

  // Public API: stays the same across targets
  public static string TargetName()
  {
#if NET45
    return "net45 build";
#elif NETSTANDARD2_0
    return "netstandard2.0 build";
#else
    return "unknown target";
#endif
  }
}

Kararlı API, dahili uyarlamalar

Aynı genel API'yi koruyun; farklılıkları küçük uyarlamaların arkasına gizleyin, böylece çağıranlar hangi hedefin kullanıldığını önemsemez.

#define NET45

using System;
using System.IO;

public class Program
{
  // Public API is stable; internal implementation differs.
  public static string ReadAllTextCompat(string path)
  {
#if NET45
    // net45 has File.ReadAllText; use it directly.
    return File.ReadAllText(path);
#else
    // Example shim path (for an older TF that lacks some helper API)
    using (var fs = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read))
    using (var sr = new StreamReader(fs))
    {
      return sr.ReadToEnd();
    }
#endif
  }

  public static void Main(string[] args)
  {
    // For demo, write then read
    string p = "demo.txt";
    File.WriteAllText(p, "hello");
    Console.WriteLine(ReadAllTextCompat(p));
  }
}

Kurulum ipuçları

  • Hedefleri listelemek için projede çoğul TargetFrameworks kullanın
  • #if kullanımını küçük yardımcılarla sınırlayın; kodun çoğunu ortak tutun
  • Her hedefi sınayın; her TFM için birim sınamalarını çalıştırın
  • Tüm hedef varlıklarını içeren tek bir paket yayımlayın

Yaygın tuzaklar

  • Her hedef için farklı genel API'ler sunmayın
  • Derin #if iç içe geçmelerinden kaçının; küçük uyarlamalar kullanın
  • Örtük davranış farklılıklarına dikkat edin (yollar, kodlamalar)
  • Hedefe özgü sınırlamaları belgelendirin

Birden çok hedef neden kullanılır?

Hızlı kontrol: Bir kitaplıkta birden çok hedef kullanmanın temel faydası nedir?

Özet

Özet: Birden çok hedef kullanmak, tek bir projeden birkaç ikili dosya yayımlar. Genel API'yi tutarlı tutun, farklılıkları küçük #if uyarlamalarının arkasına gizleyin ve tüm hedefleri birlikte paketleyin.

Sıkça Sorulan Sorular

“Birden çok hedefleme” dersi ücretsiz mi?

Evet — “Birden çok hedefleme” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C# Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C# Academy kursu toplamda 3 dersten oluşur.

“Birden çok hedefleme” dersinde ne öğreneceğim?

Tek bir projeden bir kitaplığı birden çok hedef çerçeve için derleyin; API farklılıkları için koşullu derleme ve geri dönüş uyarlamaları kullanın. C# Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C# Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C# Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 3 dersinin 3. dersidir.

“Birden çok hedefleme” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C# Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C# Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Kitaplık ve uygulama .csproj dosyaları, anlamsal sürümleme
  2. NuGet'e paketleme ve yayımlama
  3. Birden çok hedefleme
← C# Academy Sayfasına Dön