Archive for the ‘ Copilot ’ Category

Git Repository Structure and Metadata Management with UDE

Dynamics 365 F&O UDE Series | Part 7

Git Repository Structure and Metadata Management with UDE

Custom metadata, repository folder structure, .gitignore, branch strategy, Pull Request, hotfix, and daily Git workflow

Introduction

In the previous parts of the series, we created our UDE environment, installed the required tools, configured Visual Studio, and completed our first X++ development.

Up to this point, we have focused mostly on getting the development environment up and running. In a real project, however, writing the code is only one part of the job. How the code will be shared within the team, which change was made by whom, how to return to an older version when necessary, and which source the build process will use are at least as important as development itself.

This is exactly where Git and the Azure DevOps Repository structure come into play.

Using Git is also particularly important on the UDE side. This is because custom metadata now resides on our local machine, and multiple developers can connect to the same UDE environment. Therefore, the source code needs to be kept in a single, traceable reference.

In this article, we will mainly look at the following topics:

  • Where custom metadata should be stored within the repository
  • How the repository folder structure can be designed
  • The approach to metadata, Visual Studio projects, build files, and .gitignore
  • Branch structure options based on the size of the project
  • The Pull Request, branch policy, and hotfix approach
  • A developer’s daily Git workflow and metadata conflicts

The Metadata Approach That Changes with UDE

In classic Dynamics 365 Finance & Operations development VMs, Microsoft standard metadata and the custom metadata we developed were stored under the same PackagesLocalDirectory structure.

For example, the folder we had been accustomed to seeing for years was:

K:\AOSService\PackagesLocalDirectory

Inside this folder, Microsoft packages, ISV solutions, and our custom models could exist side by side.

With UDE, this distinction becomes much clearer.

In the metadata configuration in Visual Studio, we define two separate locations:

  1. Folder for your own custom metadata
  2. Folders for reference metadata

The first field points to the folder containing the X++ models we develop ourselves, while the second field points to Microsoft standard metadata and, if applicable, other reference models.

In my opinion, this separation is one of the most useful aspects of UDE.

In practice, it provides us with the following advantages:

  • Microsoft standard metadata does not become part of the repository.
  • We can limit the repository to only our custom code and project files.
  • Switching branches and synchronizing code becomes cleaner.
  • Microsoft updates and custom code are separated from each other more clearly.
  • Which files the build pipeline will use becomes more controlled.

The basic rule I use here is:

The repository should contain only the files that we develop ourselves or that are genuinely required for the solution to be built.

Recommended Local Folder Structure

In the previous parts, we used the following folder for custom metadata:

C:\CustomXppMetadata

Read more

UDE ile Git Repository Yapısı ve Metadata Yönetimi

Dynamics 365 F&O UDE Serisi | Bölüm 7

UDE ile Git Repository Yapısı ve Metadata Yönetimi

Custom metadata, repository klasör yapısı, .gitignore, branch stratejisi, Pull Request, hotfix ve günlük Git akışı

Giriş

Serinin önceki bölümlerinde UDE ortamımızı oluşturduk, gerekli araçları kurduk, Visual Studio’yu yapılandırdık ve ilk X++ geliştirmemizi yaptık.

Buraya kadar daha çok geliştirme ortamını ayağa kaldırmaya odaklandık. Gerçek bir projede ise kodu yazmak işin sadece bir kısmı. Kodun ekip içinde nasıl paylaşılacağı, hangi değişikliğin kim tarafından yapıldığı, gerektiğinde eski bir sürüme nasıl dönüleceği ve build sürecinin hangi kaynaktan besleneceği de en az geliştirme kadar önemli.

Tam bu noktada Git ve Azure DevOps Repository yapısı devreye giriyor.

UDE tarafında Git kullanımı ayrıca önemli. Çünkü custom metadata artık lokal makinemizde duruyor ve birden fazla geliştirici aynı UDE ortamına bağlanabiliyor. Bu nedenle kaynak kodun tek ve izlenebilir bir referansta tutulması gerekiyor.

Bu yazıda ağırlıklı olarak şu konulara bakacağız:

  • Custom metadata’nın repository içinde nerede tutulacağı
  • Repository klasör yapısının nasıl kurgulanabileceği
  • Metadata, Visual Studio projeleri, build dosyaları ve .gitignore yaklaşımı
  • Projenin büyüklüğüne göre branch yapısı seçenekleri
  • Pull Request, branch policy ve hotfix yaklaşımı
  • Bir geliştiricinin günlük Git akışı ve metadata conflict’leri

UDE ile Birlikte Değişen Metadata Yaklaşımı

Klasik Dynamics 365 Finance & Operations development VM’lerinde Microsoft standart metadata’sı ile bizim geliştirdiğimiz custom metadata aynı PackagesLocalDirectory yapısı altında duruyordu.

Örneğin yıllardır görmeye alıştığımız klasör şuydu:

K:\AOSService\PackagesLocalDirectory

Bu klasörün içinde Microsoft paketleri, ISV çözümleri ve bizim custom modellerimiz yan yana bulunabiliyordu.

UDE ile birlikte bu konu daha net ayrılıyor.

Visual Studio’daki metadata configuration içinde iki ayrı konum tanımlıyoruz:

  1. Folder for your own custom metadata
  2. Folders for reference metadata

Read more

UDE Ortamında Yeni Model Oluşturma ve İlk X++ Geliştirme

Dynamics 365 F&O UDE Serisi | Bölüm 6

UDE Ortamında Yeni Model Oluşturma ve İlk X++ Geliştirme

Model, package, Operations Project, runnable class, build kontrolü ve UDE’de local/cloud geliştirme ayrımı

Giriş

Serinin önceki yazısında Visual Studio 2022′yi Power Platform üzerinde oluşturduğumuz developer-enabled UDE ortamına bağlamıştık. Environment URL ve Finance and Operations URL ayrımını, Connect to Dataverse adımını, Finance & Operations assets indirme sürecini, metadata configuration kontrolünü ve Application Explorer’ın doğru açıldığını nasıl doğrulayacağımızı ele almıştık.

Bu yazıda artık bir adım daha ileri gidiyoruz. Bağlantısı tamamlanmış bir UDE ortamında yeni bir model oluşturacağız, bu modeli doğru package yapısı içinde konumlandıracağız, Visual Studio’da bir Operations Project açacağız ve ilk basit X++ geliştirmemizi yapacağız.

Klasik development VM modelinden gelen geliştiriciler için burada hem tanıdık hem de farklı noktalar var. Model, package, project, Application Explorer ve build kavramları tanıdık. Fakat UDE ile birlikte geliştirme tier’ı ve çalışma tier’ı ayrıldığı için bazı alışkanlıkları yeniden düşünmek gerekiyor. Kod ve metadata lokal bilgisayarda hazırlanıyor; çalışma, deploy ve test ise buluttaki Finance & Operations runtime üzerinde gerçekleşiyor.

Bu ayrımı doğru anlamak, UDE üzerinde sağlıklı geliştirme yapmanın temel şartlarından biri. Çünkü lokal bilgisayarda bir X++ nesnesini oluşturmak ve build etmek, onun otomatik olarak cloud runtime’da çalışacağı anlamına gelmiyor. Çalıştırma ve test için ilgili modelin online UDE ortamına deploy edilmesi gerekiyor. Bu yazıda önceliği model, proje ve ilk build tarafına vereceğim; deploy ve debug tarafını ise kısa bir girişle ele alıp sonraki yazıya bağlayacağım.

Read more

Creating a UDE Environment Through the Power Platform Admin Center Interface

Dynamics 365 F&O Unified Development Experience – Part 2

Creating a UDE Environment Through the Power Platform Admin Center Interface

Creating a developer-enabled Dynamics 365 Finance & Operations environment step by step

In the first article of this series, I tried to explain what UDE is, how it differs from the classic development VM approach, and why it is important.

In this article, we are moving a little more into the practical side. Our goal is to create a developer-enabled UDE environment for Dynamics 365 Finance & Operations by using the Power Platform Admin Center interface.

I will cover environment creation with PowerShell in a separate article. In my opinion, creating the first environment through the interface is more useful for seeing the screens and understanding the logic of the process. After that, making the same process repeatable with a script becomes much more meaningful.

Before you start

There are a few basic prerequisites that should be ready before creating a UDE environment.

First of all, the user who will create the environment must have the required admin permissions. Usually, one of the following roles is sufficient:

  • Power Platform Administrator
  • Dynamics 365 Administrator
  • Global Administrator

The tenant must also have the appropriate licenses and capacity to create Finance & Operations applications. Especially Dataverse database capacity and Operations database capacity should be checked.

Important note: The “Developer Environment” type on the Power Platform side is not used for UDE. UDE is a Sandbox environment with Finance & Operations developer tools enabled. If this distinction is confused, unexpected errors may appear in the later steps of the setup.

Read more

Power Platform Admin Center Arayüzü Üzerinden UDE Ortamı Oluşturma

Dynamics 365 F&O Unified Development Experience – Bölüm 2

Power Platform Admin Center Arayüzü Üzerinden UDE Ortamı Oluşturma

Developer-enabled Dynamics 365 Finance & Operations ortamını adım adım oluşturma

Serinin ilk yazısında UDE’nin ne olduğunu, klasik development VM yaklaşımından nerede ayrıldığını ve neden önemli olduğunu anlatmaya çalışmıştım.

Bu yazıda artık biraz daha uygulama tarafına geçiyoruz. Amacımız Power Platform Admin Center arayüzünü kullanarak Dynamics 365 Finance & Operations için developer-enabled bir UDE ortamı oluşturmak.

PowerShell ile ortam oluşturma konusunu ayrı bir yazıda ele alacağım. Çünkü ilk ortamı arayüzden oluşturmak, ekranları görmek ve sürecin mantığını anlamak açısından bana göre daha faydalı. Sonrasında aynı işlemi script ile tekrar edilebilir hale getirmek çok daha anlamlı oluyor.

Başlamadan önce

UDE ortamı oluşturabilmek için birkaç temel ön koşulun hazır olması gerekiyor.

Öncelikle ortamı oluşturacak kullanıcının gerekli admin yetkilerine sahip olması gerekir. Genellikle aşağıdaki rollerden biri yeterli olur:

  • Power Platform Administrator
  • Dynamics 365 Administrator
  • Global Administrator

Ayrıca tenant üzerinde Finance & Operations uygulamalarını oluşturabilecek uygun lisans ve kapasitenin bulunması gerekir. Özellikle Dataverse database capacity ve Operations database capacity tarafı kontrol edilmelidir.

Önemli not: UDE için Power Platform tarafındaki “Developer Environment” tipi kullanılmaz. UDE, Finance & Operations developer tools özellikleri aktif edilmiş bir Sandbox ortamdır. Bu ayrımı karıştırınca kurulumun ilerleyen adımlarında beklenmeyen hatalar alınabiliyor.

Read more

My DynamicsMinds 2026 Experience: The Stage, the Community, and a Few Inspiring Days

There are some events that, at first, feel like you are simply going to a conference. The agenda is clear, the sessions are scheduled, and the program is busy. But once the event is over and you look back, you realize that you did not just attend a few sessions. You were actually part of a much broader community, different perspectives, and many small but valuable interactions.

DynamicsMinds 2026 was exactly that kind of experience for me.

It was my first time attending this event, and I had the opportunity both to speak on stage and to spend time with many valuable people from different parts of the Dynamics 365 ecosystem and different countries. I do not want to write this as a classic event summary, because for me, this experience was not only about the sessions I attended or the presentations I delivered.

The preparation process, the stage experience, the speaker event, the intense conference program, the sponsor areas, the evening dinners, and the hallway conversations all came together and created a much more holistic, educational, and enjoyable experience.

Being a Speaker and the Preparation Process

Being selected as a speaker for this event was exciting in itself. I have been working for many years on Dynamics 365 Finance & Operations, ERP projects, software development, architecture, and more recently, artificial intelligence. Sharing my experience in these areas is always enjoyable, but doing this at an international event, in front of people who are deeply involved in the subject, brings a different level of responsibility.
Read more

ERP Projelerinde Geliştirme Kararlarının Uzun Vadeli Etkileri

Geliştirme yapmak çoğu zaman hızlı ve mantıklı görünür. Ancak asıl maliyet, çok daha sonra ortaya çıkar.

ERP projelerinde uzun süredir vurgulanan bir yaklaşım var: mümkün olduğunca standart fonksiyonları kullan. Bu prensip yeni değil. Birçok metodolojide ve proje deneyiminde tekrar tekrar ortaya konmuş. Ancak saha uygulamalarına bakıldığında, her zaman aynı ölçüde karşılık bulmadığı görülüyor.

Standart fonksiyonlar zaman içinde daha kapsamlı ve olgun hale gelmiş olsa da, projelerde geliştirme kararlarının görece erken ve hızlı alındığına sıklıkla rastlanıyor. Bu durum tek bir nedene indirgenemeyecek kadar çok boyutlu.

Geliştirme kararı çoğu zaman açıkça tartışılan bir alternatif olmaktan ziyade, sürecin varsayılan çıktısı haline gelebiliyor.

Sisteme hâkimiyetin zorlaşması, ekiplerin deneyim seviyesi, iş birimlerinin mevcut alışkanlıklarını koruma eğilimi ve geliştirme süreçlerinin teknik olarak daha erişilebilir hale gelmesi — tüm bu faktörler bir araya geldiğinde, geliştirme seçeneği giderek daha erken değerlendiriliyor. Ve bu durum her zaman bir sorun yaratmıyor; ama zemin hazırlıyor.
Read more

The Long-Term Impact of Development Decisions in ERP Projects

Development often appears to be a fast and reasonable solution. However, the real cost usually emerges much later.

There is a long‑established principle in ERP projects: use standard functionality as much as possible. This is not a new idea. It has been repeatedly emphasized across methodologies and project experience. Yet when we look at real-world implementations, we often see that this principle does not receive the same level of practical commitment.

Although standard functionalities have become more comprehensive and mature over time, development decisions in ERP projects are still frequently made relatively early and quickly. This situation cannot be explained by a single reason; it is the result of several factors working together.

In many cases, development is no longer discussed as a clear alternative. Instead, it increasingly becomes the default outcome of the process.

Read more

A Week at Microsoft’s Redmond Campus: My MVP Summit Experience

This year, I had the opportunity to attend the Microsoft MVP Summit in person for the first time and visit the Microsoft campus in Redmond.

Until now, my expectations were mostly around product updates, roadmap discussions, and learning about what’s coming next. But after spending a full week there, I realized the real value of the experience was something quite different.

The Journey

The journey itself is already part of the experience.

A direct flight from Istanbul to Seattle is long enough to disconnect you from your daily routine. It’s tiring, and the time difference hits you quickly.

But this was not my first time in Seattle.

About nine years ago, I attended one of the largest Dynamics conferences at the time, held at the Seattle Convention Center. Back then, there were no direct flights with Turkish Airlines, so we had to travel via New York, which made the journey even more challenging.

That visit was quite different. The event was in downtown Seattle, and we didn’t really have the chance to explore the Microsoft campus in depth.

This time, however, the experience was completely different.

Read more

Microsoft’un Redmond Kampüsünde Bir Hafta: MVP Summit Deneyimi

Bu yıl, Microsoft MVP Summit’e ilk kez fiziksel olarak katılma ve Redmond’daki Microsoft kampüsünü ziyaret etme fırsatım oldu.

Bugüne kadar beklentim daha çok ürün güncellemeleri, roadmap konuşmaları ve “neler geliyor” tarafını öğrenmekti. Ancak orada bir hafta geçirdikten sonra, deneyimin asıl değerinin bambaşka bir yerde olduğunu fark ettim.

Yolculuk

Yolculuğun kendisi aslında deneyimin bir parçası.

İstanbul’dan Seattle’a direkt uçuş, sizi günlük rutininizden koparacak kadar uzun. Yorucu ve saat farkı kendini hızlıca hissettiriyor.

Ama bu benim Seattle’a ilk gidişim değildi.

Yaklaşık dokuz yıl önce, dönemin en büyük Dynamics konferanslarından birine katılmıştım. Etkinlik Seattle Convention Center’da düzenlenmişti. O dönemde Türk Hava Yolları’nın direkt uçuşu yoktu, New York aktarmalı gitmiştik ve yolculuk çok daha zorluydu.

O ziyaret oldukça farklıydı. Etkinlik şehir merkezindeydi ve Microsoft kampüsünü detaylı şekilde görme imkanımız olmamıştı.

Bu sefer ise deneyim tamamen farklıydı.

Read more

Page 1 of 3123