Çözümlere girişIntroduction to solutions

Çözümler, özelleştiricilerin ve geliştiricilerin Uygulamalar için Common Data Service’i genişleten yazılım birimlerini nasıl yazdığını, paketlediğini ve koruduğunu tanımlar.Solutions are how customizers and developers author, package, and maintain units of software that extend Common Data Service for Apps. Örneğin; Dynamics 365 for Sales, Marketing, Customer Service uygulamaları, çözümlerden oluşur.For example, the Dynamics 365 for Sales, Marketing, Customer Service apps are composed of solutions. Özelleştiriciler ve geliştiriciler, kuruluşların Uygulamalar için Common Data Service’i kullanarak çözüm tarafından tanımlanan iş işlevlerini yükleyip kaldırması amacıyla çözümler dağıtır.Customizers and developers distribute solutions so that organizations can use Common Data Service for Apps to install and uninstall the business functionality defined by the solution.

Uygulamalar için Common Data Service’te veya daha önce yüklenmiş bir çözümde yaptığınız her özelleştirme, çözümün bir parçasıdır.Every customization that you make to Common Data Service for Apps, or to a previously installed solution, is part of a solution. Uyguladığınız her değişiklik izlenir ve tüm bağımlılıklar hesaplanabilir.Every change you apply is tracked and any dependencies can be calculated. Yönetilen bir çözümü dışarı aktardığınızda, bu çözüm için uygulanmış tüm değişiklikleri daha sonra farklı bir Uygulamalar için Common Data Service ortamına aktarabileceğiniz bir dosyada tutar.When you export a managed solution, it contains all the changes that have been applied for that solution into a file that you can then import into a different Common Data Service for Apps environment.

Farklı Uygulamalar için Common Data Service ortamları arasında özelleştirme veya uzantıları taşımayı ya da AppSource kullanarak çözümleri dağıtmayı amaçlıyorsanız, çözüm çerçevesini anlamanız gerekir.If you intend to transport customizations or extensions between different Common Data Service for Apps environments or distribute solutions using AppSource, you must understand the solution framework.

Yönetilmeyen ve yönetilen çözümlerManaged and unmanaged solutions

İki tür çözüm mevcuttur: yönetilen ve yönetilmeyen.There are two types of solutions: managed and unmanaged.

Yönetilen çözüm, dağıtılması ve yüklenmesi amaçlanan tamamlanmış bir çözümdür.A managed solution is a completed solution that is intended to be distributed and installed.

  • Yönetilen bir çözümün bileşenlerini düzenleyemezsiniz.You cannot edit the components of a managed solution.

  • Yönetilen bir çözümü dışarı aktaramazsınız.You cannot export a managed solution.

  • Yönetilen bir çözümün bileşenlerine yönetilmeyen özelleştirmeler ekleyebilirsiniz.You can add unmanaged customizations to components of a managed solution. Bunu yaptığınızda, yönetilmeyen özelleştirmeleriniz ile yönetilen çözüm arasında bir bağımlılık oluşturursunuz.When you do this, you create a dependency between your unmanaged customizations and the managed solution. Bir bağımlılık mevcut olduğunda, siz bağımlılığı kaldırana kadar yönetilen çözüm kaldırılamaz.When a dependency exists, the managed solution cannot be uninstalled until you remove the dependency.

  • Yönetilen bir çözüm silindiğinde (kaldırıldığında), ona dahil olan tüm özelleştirmeler ve uzantılar kaldırılır.When a managed solution is deleted (uninstalled), all the customizations and extensions included with it are removed.

    Önemli

    Yönetilen bir çözümü kaldırdığınızda aşağıdaki veriler kaybedilir: yönetilen çözümün parçası olan özel varlıklarda depolanan veriler ve yönetilen çözümün bir parçası olmayan diğer varlıklar üzerindeki yönetilen çözümün parçası olan özel özniteliklerde depolanan veriler.When you uninstall a managed solution, the following data is lost: data stored in custom entities that are part of the managed solution and data stored in custom attributes that are part of the managed solution on other entities that are not part of the managed solution.

Yönetilmeyen çözüm halen gelişim aşamasında olan veya dağıtılması amaçlanmayan bir çözümdür.An unmanaged solution is one that is still under development or isn’t intended to be distributed.

  • Bir çözüm yönetilmeyen özellikte olduğunda ona bileşenler ekleyip kaldırabilirsiniz.While a solution is unmanaged, you can continue to add and remove components to it.

  • Yönetilmeyen özelleştirmeleri bir ortamdan diğerine taşımak için yönetilmeyen bir çözümü dışarı aktarabilirsiniz.You can export an unmanaged solution to transport unmanaged customizations from one environment to another.

  • Yönetilmeyen bir çözüm silindiğinde, yalnızca içine dahil edilmiş özelleştirmelerin çözüm kapsayıcısı silinir.When an unmanaged solution is deleted, only the solution container of any customizations included in it is deleted. Tüm yönetilmeyen özelleştirmeler uygulamada kalır ve varsayılan çözüme ait olur.All the unmanaged customizations remain in effect and belong to the default solution.

  • Yönetilmeyen çözüm tamamlandıktan sonra çözümü dağıtmak isterseniz, yönetilen bir çözüm olarak dışarı aktarın.When the unmanaged solution is complete and you want to distribute it, export it as a managed solution.

    Not

    Yönetilen bir çözümü, ilk yönetilmeyen çözümü içeren aynı ortama aktaramazsınız.You cannot import a managed solution into the same environment that contains the originating unmanaged solution. Yönetilen bir çözümü test etmek için içine aktarılacak ayrı bir ortam gerekir.To test a managed solution, you need a separate environment to import it into.

Çözüm yayımcılarıSolution publishers

Her çözüme bir çözüm yayıncısı bağlanır.Each solution is linked to a solution publisher. Çözüm yayıncısı, yayıncı ile iletişim kurma ve özelleştirme ön ek değeri hakkında bilgi sağlar.The solution publisher provides information about how to contact the publisher as well a customization prefix value. new varsayılan değerdir.The default value is new.

Bir çözüme herhangi bir şema değişikliği eklendiğinde, çözüm yayımcısı özelleştirme ön ekinin başına şema öğelerinin adı getirilir.When any schema changes are included as part of a solution, the solution publisher customization prefix is prepended to the name of the schema items. Tüm özel eylemlere de bu değer eklenir.Any custom actions also have this value appended to them. Şema öğesini veya özel eylemi hangi çözümün eklediğini kolayca tanımlamaya olanak tanıdığı için değerlidir.This is valuable because it allows for easy recognition of which solution added the schema item or custom action. Bir çözümün içindeki tüm şema öğelerinin ve özel eylemlerin aynı özelleştirme ön ekini kullanması zorunlu değildir ancak önemle tavsiye edilir.It is not required for all schema items and custom actions in a solution to use the same customization prefix, but it is strongly recommended.

Önemli

Bir çözüm oluşturmaya başlamadan önce çözüm yayıncısı kaydı ve ona bağlı yeni bir çözüm oluşturmanız gerekir.Before you start creating a solution, you should create a solution publisher record and create a new solution linked to it. Özelleştirme ön ekinin sizin için anlamlı bir değeri temsil ettiğinden emin olmanız gerekir.You should make sure the customization prefix represents a value that makes sense for you.

Çözüm yayıncısı seçiminiz, gönderdiğiniz bir çözümde güncelleştirme yayımlamak istemeniz durumunda önemlidir.Your choice of solution publisher is important in case you want to publish an update to a solution you have shipped. Bir yönetilen çözüme yalnızca ilk yönetilen çözümle aynı yayıncıya sahip olması durumunda güncelleştirme uygulanabilir.An update can only be applied to a managed solution with the same publisher as the original managed solution.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Yönetilen çözümleri koruma > Yönetilen çözüm güncelleştirmeleri oluşturmaMore information: Dynamics 365 Customer Engagement Developer Guide: Maintain managed solutions > Create managed solution updates

Çözüm yayıncısı ve çözüm oluşturmaCreate a solution publisher and solution

Bir çözüm yayıncısı ve çözüm oluşturmak için Dynamics 365 Özelleştirme alanına gitmeniz gerekir.To create a solution publisher and a solution you need to navigate to the Dynamics 365 Customization area.

powerapps.com sayfasındanFrom powerapps.com

  1. Sol üst köşedeki Waffle simgesini seçinSelect the Waffle icon at the top left corner
  2. Açılır öğede Tüm uygulamalar’ı seçin.In the fly out, select All apps.
  3. Dynamics 365 - özel uygulama öğesini arayın.Look for the Dynamics 365 - custom app. Sonraki denemenizde gezinmeyi kolaylaştırmak için üç noktaya (…) tıklamayı ve Bu uygulamayı sabitle’yi seçmeyi isteyebilirsiniz.You may want to click the ellipses (...) and choose Pin this app so it will be easier to navigate to next time.
  4. Dynamics 365 - özel uygulama uygulamasına tıklayıp seçin.Click the Dynamics 365 - custom app app and select it.
  5. Ayarlar > Özelleştirme > Özelleştirmeler’e gidin.Navigate to Settings > Customization > Customizations.

home.dynamics.com sayfasındanFrom home.dynamics.com

  1. Dynamics 365 - özel kutucuğunu bulup tıklayın.Look for the Dynamics 365 - custom tile and click it.
  2. Ayarlar > Özelleştirme > Özelleştirmeler’e gidin.Navigate to Settings > Customization > Customizations.

Çözüm yayıncısı oluşturmaCreate a solution publisher

  1. Özelleştirmeler alanından Yayıncılar’ı seçin.From the customizations area, select Publishers.
  2. Yeni’ye tıklayın.Click New.
  3. Yayıncı formuna bir Görünen Ad girin.In the publisher form enter a Display Name. Görünen adı temel alan bir Adı değeri oluşturulur.A Name value will be generated based on the display name. Oluşturulan değeri kabul edebilir veya yeni bir ad belirtebilirsiniz.You can accept the generated value or specify a new one.
  4. Ön ek alanında, çözümünüzü geliştirirken eklediğiniz herhangi bir özel şemaya getirilmesi gereken özelleştirme ön ekini belirtin.In the prefix field, specify the customization prefix that should be appended to any custom schema items you add when developing your solution. new varsayılan değerdir.The default value is new. Kuruluşunuzu temsil eden ve kullanıcıların sistemlerinde yüklü olan bileşenlerden hangilerinin çözümünüze ait olduğunu belirlemesine yardımcı olacak bir değer seçin.Choose a value that represents your organization and will help people identify which components installed in their system came from your solution.
  5. Özelleştirme ön eki tercihinize göre bir Seçenek Değeri Ön Eki oluşturulur.An Option Value Prefix value will be generated based on your choice for customization prefix. Bu değer, çözümünüzdeki özniteliklere eklediğiniz seçenek kümesi seçenekleri için herhangi bir değere eklenir.This is a value that will be appended to any values for option set options you add to attributes in your solution. Bu değer, çözümünüze eklediğiniz seçenekleri tanımlamaya yardımcı olur.This value will help identify any options you add to your solution.
  6. Formun Kişi Ayrıntıları bölümünde, çözümünüzü yükleyen kullanıcılara sağlamak istediğiniz iletişim bilgilerini ekleyebilirsiniz.In the Contact Details section of the form, you may add any contact information you want to provide for people who install your solution.
  7. İşiniz bittiğinde Kaydet ve Kapat’a tıklayın.Click Save and Close when you are done.

Çözüm oluşturmaCreate a solution

  1. Özelleştirmeler alanından Çözümler’i seçin.From the customizations area, select Solutions.
  2. Yeni’ye tıklayın.Click New.
  3. Çözüm formuna bir Görünen Ad girin.In the solution form enter a Display Name. Görünen adı temel alan bir Adı değeri oluşturulur.A Name value will be generated based on the display name. Oluşturulan değeri kabul edebilir veya yeni bir ad belirtebilirsiniz.You can accept the generated value or specify a new one.
  4. Yayıncı alanında, Çözüm yayıncısı oluşturma bölümünde oluşturduğunuz yayıncıyı arayınIn the Publisher field look up the publisher you created in Create a solution publisher
  5. Sürüm alanında 1.0.0.0 gibi çözümünüz için uygun bir sürüm seçin.In the Version field select an appropriate version for your solution, such as 1.0.0.0.
  6. İşiniz bittiğinde Kaydet’e tıklayın.Click Save when you are done.

Önemli

Bu çözüme dahil edilecek yeni bir çözüm bileşeni oluşturduğunuz her durumda, bileşeni eklemek için bu çözümü veya aynı çözüm yayıncısı ile ilişkili başka bir çözümü kullanın.Whenever you create a new solution component that will be included in this solution, use this solution, or another solution associated with the same solution publisher to add it. Farklı bir çözüm yayıncısı ile ilişkili bir çözüm bağlamında oluşturulan çözüm bileşenleri bu çözüme eklenebilir, ancak ayarlanmış özelleştirme ön ek değerleri tutarsız olabilir.Solution components created in the context of a solution associated to a different solution publisher can be added to this solution, but they may have inconsistent customization prefix values set.

Çözüm katmanlamaSolution layering

Yönetilen bir çözümü geçersiz kılmak için birbiriyle çelişen iki yönetilen çözümün yüklenmesi veya bazı özelleştirmelerin ortama uygulanması mümkündür.It is possible for two managed solutions to be installed which contradict each other or for some customizations applied to the environment to override a managed solution. Nasıl çalışır?How does this work?

Uygulamalar için Common Data Service yönetilen çözümleri yüklendikleri sırayla değerlendirdiğinden ve yönetilen çözümde olmayan tüm özelleştirmeler en son değerlendirildiğinden bu yöntem çalışır.It works because Common Data Service for Apps evaluates managed solutions by the order in which they are installed and any customizations that are not in a managed solution are evaluated last.

Aşağıdaki diyagramda, uygulamaya çalışma zamanında neyin eklendiğini denetlemek için yönetilen çözümler ile yönetilmeyen özelleştirmelerin nasıl etkileşimde bulunduğu gösterilmiştir.The following diagram introduces how managed solutions and unmanaged customizations interact to control what is included at runtime in the application.

Çözüm katmanlamayı gösteren diyagram

Bu örnekte sistem çözümünde tanımlanan varsayılan davranış, yönetilen çözümler tarafından geçersiz kılınır veya eklenir.In this example, default behavior defined in the system solution is overridden or appended by managed solutions. Daha sonra yönetilmeyen özelleştirmeler uygulamada görünür durumda olan özelleştirmeleri geçersiz kılabilir veya ekleyebilir.Any unmanaged customizations can then override or append customizations that are then visible in the application.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Çözümlere giriş > Yönetilmeyen ve yönetilen çözümlerMore information: Dynamics 365 Customer Engagement Developer Guide: Introduction to solutions > Unmanaged and managed solutions

Yönetilen özelliklerManaged properties

Yönetilen bir çözümü dağıttığınızda, çözümünüzü yükleyen herkes kendi yönetilmeyen özelleştirmelerini bu çözüme ekleyebilir.When you distribute a managed solution, anyone who installs your solution can include their own unmanaged customizations to it. Bu yönetilmeyen özelleştirmeler daha sonra çözümünüze bağlı yönetilen bir çözüm olarak dağıttıkları bir çözüme eklenebilir.Those unmanaged customizations can then be added to a solution that they distributed as a managed solution that depends on your solution. Peki kullanıcıların bunu yapmasını istemiyorsanız ne olur?But what if you don’t want people to do this? Yönetilen çözümün yayıncısı olarak, yönetilen özellikleri kullanarak yönetilen çözümünüzün bileşenleri için belirli özelleştirmeleri devre dışı bırakabilirsiniz.As the publisher of the managed solution you can use managed properties to disable specific customizations for the components of your managed solution.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Yönetilen özellikleri kullanmaMore information: Dynamics 365 Customer Engagement Developer Guide: Use managed properties

Modüler çözümlerModular solutions

Bir dizi işlev sağlayan ayrı bir bileşen kümesi oluşturmak için çözüm çerçevesini kullanabilirsiniz.You can use the solution framework to create a discrete set of components that provide a set of functionalities. Her yönetilen çözüm, müşterinin dağıtımını özgün durumuna döndürmek için yüklenebilir veya kaldırılabilir.Each managed solution can be installed and uninstalled to return the customer’s deployment to its original state. Oluşturduğunuz her yönetilen çözüm, sistem çözümünün üzerinde çalışır ve o temel çözümün özelliklerine erişebilir.Each managed solution you create runs on top of the system solution and can access the capabilities of that underlying solution.

Ayrıca, diğer çözümlerin üzerinde çalışan yönetilen çözümler derleyerek farklı çözümler tarafından paylaşılabilen bir işlev kümesi oluşturabilirsiniz.You can also build managed solutions that run on top of other solutions to create a set of functionalities that can be shared by different solutions. Bu şekilde, birden fazla çözümü desteklemek için çözüm olarak ortam bir modül derleyip sürdürebilirsiniz.In this way, you can build and maintain a common module as a solution to support multiple solutions. Bu nedenle, müşterilerin yalnızca kendileri için doğru çözümleri yüklemesi gerekir ve her çözüme aynı paylaşılan işlevi eklemeniz gerekmez.Because of this, customers only need to install the solutions that are right for them and you don’t need to include the same shared functionality in every solution. Çözüme birden fazla çözümü destekleyen bir güncelleştirme göndermeniz gerekirse yalnızca ortak modülü güncelleştirmeniz gerekir.If you need to push out an update to solution that supports multiple solutions, you only need to update the common module.

Müşteriler, Sistem Uygulayıcıları ve diğer bağımsız yazılım satıcıları (ISV) daha sonra sizin çözümlerinizin üzerine çözümler derleyerek gereksinim duydukları belirli özelleştirmeleri elde edebilirler.Customers, System Implementers, and other ISVs can then build solutions on top of your solutions to achieve the specific customizations they require.

Birden fazla çözümle bir dizi iş işlevi oluşturulduğunda paket olarak adlandırılır.When a set of business functionality is composed with multiple solutions, these are called packages. Paket Dağıtıcısı’nı kullanarak birden çok çözümü tek bir yüklenebilir birimde birleştirebilirsiniz.You can use the Package Deployer to combine multiple solutions into a single installable unit.

Çözüm paketleri dağıtmaDeploy solution packages

Paket Dağıtıcısı’nı kullanarak, aşağıdakileri içerebilen bir paket için özel yükleyici oluşturabilirsiniz:Use the Package Deployer to create a custom installer for a package that can include

  • Bir veya daha fazla çözüm dosyası.One or more solution files.
  • Düz dosyalar veya dışarı aktarılan yapılandırma veri dosyaları.Flat files or exported configuration data files.
  • Paketin dağıtılması öncesinde, sırasında veya sonrasında çalışabilen özel kod.Custom code that can run before, while, or after the package is deployed.
  • Dağıtım işleminin başlangıcında ve sonunda gösterilebilen pakete özel HTML içeriği.HTML content specific to the package that can display at the beginning and end of the deployment process. Bu içerik, pakette dağıtılan çözüm ve dosyaların bir açıklamasını sağlamak için yararlı olabilir.This can be useful to provide a description of the solutions and files that are deployed in the package.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Dynamics 365 Paket Dağıtıcısı için paket oluşturma.More information: Dynamics 365 Customer Engagement Developer Guide: Create packages for the Dynamics 365 Package Deployer.

Çözümler için takım geliştirmeTeam development of solutions

Çözüm dosyası, kaynak kod denetimi veya takım geliştirmeye uygun olmayan tekil bir ikili dosyadır.A solution file is a single binary file that does not lend itself to source code control or team development. Birden çok geliştiricinin çözüm içindeki özel bileşenler üzerinde çalışması mümkün değildir.There is no way for multiple developers to work on the custom components in the solution.

SolutionPackager aracı, çözüm dosyalarının kaynak kod denetimi ve takım geliştirme sorununu giderir.The SolutionPackager tool resolves the problem of source code control and team development of solution files. Araç, sıkıştırılmış çözüm dosyasındaki her bir bileşeni tanımlar ve ayrı dosyalara ayıklar.The tool identifies individual components in the compressed solution file and extracts them out to individual files. Araç ayrıca daha önce ayıklanmış dosyaları paketleyerek yeniden bir çözüm dosyası oluşturabilir.The tool can also re-create a solution file by packing the files that had been previously extracted. Böylece, tek bir çözüm üzerinde birden fazla kişi bağımsız olarak çalışabilir ve değişikliklerini ortak bir konuma ayıklayabilir.This enables multiple people to work independently on a single solution and extract their changes into a common location. Çözüm dosyasındaki her bir bileşen birden fazla dosyaya ayrıldığı için, önceki değişikliklerin üzerine yazmadan özelleştirmelerin birleştirilmesi mümkün hale gelir.Because each component in the solution file is broken into multiple files, it becomes possible to merge customizations without overwriting prior changes. SolutionPackager aracının ikincil bir kullanım şekli, etkin bir Dynamics 365 örneğine gerek kalmadan daha önce ayıklanmış bileşen dosyalarından sıkıştırılmış bir çözüm dosyası oluşturmak için bir otomatik derleme işleminden çağrılabilmesidir.A secondary use of the SolutionPackager tool is that it can be invoked from an automated build process to generate a compressed solution file from previously extracted component files without needing an active Dynamics 365 instance.

Daha fazla bilgi: Dynamics 365 Müşteri Katılımı Geliştirici Kılavuzu: Takım geliştirme için çözüm araçlarıMore information: Dynamics 365 Customer Engagement Developer Guide: Solution tools for team development

Ayrıca bkz.See also

Uygulamalar için Common Data Service Geliştiricisine Genel BakışCommon Data Service for Apps Developer Overview