Bölüm 3 - Xamarin platformlar arası çözüm ayarlama

Hangi platformların kullanıldığına bakılmaksızın, Xamarin projelerinin tümü aynı çözüm dosyası biçimini (Visual Studio .sln dosya biçimi) kullanır. Tek tek projeler yüklenemese bile (Mac için Visual Studio'daki bir Windows projesi gibi) çözümler geliştirme ortamları arasında paylaşılabilir.

Yeni bir platformlar arası uygulama oluştururken ilk adım boş bir çözüm oluşturmaktır. Bu bölümde bundan sonra ne olacağı açıklanmaktadır: platformlar arası mobil uygulamalar oluşturmak için projeleri ayarlama.

Kod paylaşma

Platformlar arasında kod paylaşımı uygulama hakkında ayrıntılı bir açıklama için Kod Paylaşımı Seçenekleri belgesine bakın.

.NET Standard

.NET Standart projeleri, windows, Xamarin platformları (iOS, Android, Mac) ve Linux genelinde kullanılabilecek derlemeler üreten, platformlar arasında kod paylaşmak için kolay bir yol sağlar. Bu, Xamarin çözümleri için kod paylaşmanın önerilen yoludur.

Diğer seçenekler

Geçmişte Xamarin Taşınabilir Sınıf Kitaplıkları (PCL)] ve Paylaşılan Projeler kullandı. Bunların hiçbiri yeni projeler için önerilmez; ve .NET Standard'ı kullanmak için mevcut uygulamaları geçirmeyi düşünmelisiniz.

Çözümü doldurma

Kodu paylaşmak için hangi yöntemin kullanıldığına bakılmaksızın, genel çözüm yapısının kod paylaşımını teşvik eden katmanlı bir mimari uygulaması gerekir. Xamarin yaklaşımı, kodu iki proje türünde gruplandırmaktır:

  • Çekirdek (veya "Paylaşılan") projesi – Farklı platformlarda paylaşılacak şekilde tek bir yerde yeniden kullanılabilir kod yazın. Mümkün olan her yerde uygulama ayrıntılarını gizlemek için kapsülleme ilkelerini kullanın.
  • Platforma özgü uygulama projeleri – Yeniden kullanılabilir kodu mümkün olduğunca az bağlantıyla kullanın. Platforma özgü özellikler, Çekirdek projesinde kullanıma sunulan bileşenlere dayalı olarak bu düzeyde eklenir.

Çekirdek proje

Kodu paylaşan temel projeler .NET Standard olmalı ve yalnızca tüm platformlarda kullanılabilen derlemelere başvurulmalıdır. ve gibi SystemSystem.CoreSystem.Xmlortak çerçeve ad alanları.

Temel projeler, aşağıdaki katmanları içerebilecek, mümkün olduğunca çok kullanıcı arabirimi dışı işlev uygulamalıdır:

  • Veri Katmanı – Fiziksel veri depolamayla ilgilenen kod örneğin. SQLite-NET ve hatta XML dosyaları. Veri katmanı sınıfları normalde yalnızca veri erişim katmanı tarafından kullanılır.
  • Veri Erişim Katmanı – Veri listelerine, tek tek veri öğelerine erişme ve bunları oluşturma, düzenleme ve silme yöntemleri gibi uygulamanın işlevselliği için gerekli veri işlemlerini destekleyen bir API tanımlar.
  • Hizmet Erişim Katmanı : Uygulamaya bulut hizmetleri sağlamak için isteğe bağlı bir katmandır. Uzak ağ kaynaklarına (web hizmetleri, görüntü indirmeleri vb.) erişen ve sonuçları önbelleğe alan kodu içerir.
  • İş Katmanı – Platforma özgü uygulamalar için işlevselliği kullanıma sunan Model sınıflarının ve Cephe veya Yönetici sınıflarının tanımı.

Platforma özgü uygulama projeleri

Platforma özgü projelerin her platformun SDK'sına (Xamarin.iOS, Xamarin.Android, Xamarin.Mac veya Windows) ve .NET Standard projesine bağlanmak için gereken derlemelere başvurması gerekir.

Platforma özgü projelerin uygulaması gerekir:

  • Uygulama Katmanı – İş Katmanı nesneleri ile kullanıcı arabirimi arasında platforma özgü işlevsellik ve bağlama/dönüştürme.
  • Kullanıcı Arabirimi Katmanı – Ekranlar, özel kullanıcı arabirimi denetimleri, doğrulama mantığının sunumu.

Proje başvuruları

Proje başvuruları, bir projenin bağımlılıklarını yansıtır. Temel projeler, ortak derlemelerle başvurularını sınırlandırarak kodun kolayca paylaşılmasını sağlar. Platforma özgü uygulama projeleri .NET Standard projesine ve hedef platformdan yararlanmak için ihtiyaç duydukları platforma özgü diğer derlemelere başvurur.

Örnek olay incelemelerinde projelerin nasıl yapılandırılması gerektiğine ilişkin belirli örnekler verilmiştir.

Dosya ekleme

Derleme Eylemi

Belirli dosya türleri için doğru derleme eyleminin ayarlanması önemlidir. Bu liste, bazı yaygın dosya türleri için derleme eylemini gösterir:

  • Tüm C# dosyaları – Derleme Eylemi: Derleme
  • Xamarin.iOS ve Windows 'daki Görüntüler – Derleme Eylemi: İçerik
  • Xamarin.iOS'ta XIB ve Görsel Taslak dosyaları – Derleme Eylemi: InterfaceDefinition
  • Android'de görüntüler ve XML düzenleri – Derleme Eylemi: AndroidResource
  • Windows projelerindeki XAML dosyaları – Derleme Eylemi: Sayfa
  • Xamarin.Forms XAML dosyaları – Derleme Eylemi: EmbeddedResource

IDE genellikle dosya türünü algılar ve doğru derleme eylemini önerir.

Büyük/küçük harfe duyarlı

Son olarak, bazı platformlarda büyük/küçük harfe duyarlı dosya sistemleri (örneğin, iOS ve Android) olduğunu unutmayın. Bu nedenle tutarlı bir dosya adlandırma standardı kullandığınızdan ve kodda kullandığınız dosya adlarının dosya sistemiyle tam olarak eşleştiğinden emin olun. Bu özellikle kodda başvurduğunuz görüntüler ve diğer kaynaklar için önemlidir.