Uno Platform’un .NET, MCP ve AI ile Uygulama Üretimi
Yapay zeka artık editörden derleme hattına kadar geliştirme sürecinin merkezinde. Ama ham AI gücüyle bağlama oturmuş, doğrulanabilir AI arasında ciddi bir fark var. Uno Platform ekibi tam bu noktaya odaklanarak,.NET ile çapraz platform uygulama üretiminde AI ajanlarına doğru bağlamı ve doğrulama araçlarını sağlayan bir mimari kurdu. Bu yazıda Sam Basu’nun kaleme aldığı.NET Blog paylaşımından yola çıkarak Uno Platform’un MCP sunucuları, Skills yapısı ve Uno Platform Studio 3.0 üzerindeki yaklaşımını inceleyeceğiz.
İki ayrı MCP sunucusu: neden böyle bir bölünme?
İlk akla gelen yaklaşım, dokümantasyonu ve talimat dosyalarını doğrudan prompt’a doldurmak. Bu yöntemin neden başarısız olduğu açık: dokümantasyon büyük, işe yarayan kısmı küçük ve soruya göre değişiyor. Ajanın ihtiyaç duyduğu anda bilgiyi araması gerekir. Model Context Protocol (MCP) bu arama problemini çözer, üretilen kodun gerçekten çalışıp çalışmadığını doğrulama problemini çözmez.
Uno Platform ekibi bu iki farklı ihtiyaç için iki ayrı sunucu tasarladı: biri bilgiyi zeminlemek, diğeri çalışan uygulamayı gözlemleyip müdahale etmek için.
Docs Server: bilgiye zemin sağlama
Docs sunucusu https://mcp.platform.uno/v1 adresinde barındırılıyor, HTTP üzerinden konuşuyor ve stateless çalışıyor. Framework hakkında “şu an neyin doğru olduğu” sorusuna yanıt veriyor. Sunduğu araçlar şunlar:
uno_platform_docs_search— resmi dokümantasyonda arama yapar ve ilgili sonuçları döner.uno_platform_docs_fetch— bir doküman sayfasını markdown olarak getirir.uno_platform_agent_rules_init— çalışan bir uygulamayla çalışırken kullanılacak kurallarla ajan oturumunu başlatır.uno_platform_usage_rules_init— yaygın API kullanım kurallarını yükler.
Ayrıca iki prompt sunuyor: /new güncel en iyi uygulamalarla yeni bir proje iskeleti oluşturur, /init ise mevcut bir kod tabanına özellik eklemeden önce konuşmayı hazırlar. Bu sunucunun kritik özelliği, geliştiricinin SDK’sıyla değil dokümantasyonla birlikte sürümlenmesi. Bir doküman sayfası düzeltildiğinde her yerdeki her ajan bir sonraki çağrıda düzeltilmiş bilgiyi alıyor.
App Server: gözler ve eller
App sunucusu her yönüyle docs sunucusunun tersi. stdio üzerinden başlatılan bir.NET aracı olarak çalışıyor, geliştiricinin makinesinde Uno DevServer’a köprü kuruyor, stateful ve tek oturuma özel. “Şu an gerçekten ne oluyor” sorusunu yanıtlıyor.
Ajana dört yetenek kazandırıyor:
- Çalıştırma:
uno_app_startuygulamayı debug modda Hot Reload etkin şekilde başlatır; ajan tüm yaşam döngüsünü kontrol eder. - Görme:
uno_app_get_screenshotekran görüntüsü alır,uno_app_visualtree_snapshotise görsel ağacın XML anlık görüntüsünü sağlar. - Eylem:
uno_app_pointer_click,uno_app_key_press,uno_app_type_textveuno_app_element_peer_actionile otomasyon peer’larını doğrudan çağırır. - Kendini kontrol:
uno_healthköprünün ve bağlantının durumunu bildirir.
Visual tree aracı burada asıl değeri yaratan bileşen. Ekran görüntüsü modele bir şeylerin yanlış göründüğünü söyler; XML ağacı hangi elementin hatalı olduğunu ve özelliklerini gösterir. Pikseller tespit için gerekli, yapı ise teşhis için.
Bir detay dikkat çekiyor: uno_app_pointer_click açıklamasında uno_app_element_peer_action‘ın tercih edilmesi gerektiği belirtiliyor. Koordinat tabanlı tıklama pencere boyutu ve DPI’a karşı kırılganken otomasyon peer’ları daha kararlı; bu tercih dokümantasyona değil doğrudan araç açıklamasına yerleştirilmiş.
MCP C# SDK ile üretim ortamında geliştirme
Her iki sunucu da Microsoft’un toplulukla birlikte sürdürdüğü resmi MCP C# SDK üzerinde C# ile yazılmış. Ekibin öne çıkardığı iki pratik ders var:
Transport tercihinizi topolojinizden çıkarın. Docs sunucusu HTTP, çünkü OAuth gerektiren, çok kiracılı barındırılan bir servis. App sunucusu ise stdio, çünkü tek bir geliştiricinin makinesinde tek bir uygulamayla konuşan bir alt süreç.
Araç tanımlarınız bağlam penceresi üzerinde kalıcı bir maliyettir. Her araç adı, açıklaması ve şeması, model iş yapmadan önce yüklenir. Kaynağa göre docs sunucusu yaklaşık 6.4k token, app sunucusu ise yaklaşık 1.5k token maliyetli; karşılaştırma için aynı oturumdaki dahili GitHub MCP sunucusu yaklaşık 5.2k token. Bu nedenle kısa ve yüksek sinyalli araç açıklamaları bir stil tercihi değil, bütçe kararı.
Bu noktanın bir uzantısı da şu: araç açıklamaları aslında birer prompt. Modelin hiç seçmediği bir araç yok gibidir ve seçim üzerindeki tek etki kaldıracınız araç metnidir.
Kod üretmek ve doğrulamak farklı problemler
Yazının en çarpıcı iddiası şu: AI, UI kodunu herhangi bir insan ekibinden daha hızlı yazabilir ama yazdığı şeyin doğru olup olmadığını söyleyemez. Ajansal iş akışları normalleştikçe bu asimetri asıl darboğaz haline geliyor. Üretim ucuzladı, doğrulama ucuzlamadı.
Web geliştiricileri kendi taraflarında bu problemi Playwright ile çözdü; ajan gerçek bir tarayıcıyı sürebiliyor. Windows, macOS, Linux, iOS, Android veya WebAssembly üzerinde çalışan yerel çapraz platform bir.NET uygulaması için ise eşdeğer bir çözüm yoktu. Uno Platform’un yanıtı, .NET uygulamaları için Playwright tarzı UI otomasyonu sunan app sunucusu.
Ajan bir değişiklik yazıyor, uygulama hot reload oluyor, ajan ekran görüntüsü alıyor, görsel ağacı okuyor, akıştan tıklayarak geçiyor ve kendi yaptığı işin isteneni karşılayıp karşılamadığına kendisi karar veriyor. Karşılamıyorsa teslim etmeden önce düzeltiyor.
Skills: ajana “nasıl” yapılacağını öğretmek
MCP araçları ajana “ne”yi verir; hangi araca ne zaman uzanacağını, hangi sırayla kullanacağını veya “bitti”nin neye benzediğini söylemez. Bu boşluğu Skills doldurur.
Yazıdaki yemek benzetmesi işleri toparlıyor: MCP araçları malzemeler, Skills tarif kartları, ajan ise aşçı. Skills kütüphanesi gerçekten yapılan işlere göre organize edilmiş: MVUX state ve feed’ler, navigasyon, tema, Uno Toolkit kontrolleri ve test. Döngüyü kapatan Skill ise uno-testing-ui; UI testini app sunucusu üzerinden otomatikleştiriyor ve araçları hangi sırada sürmesi gerektiğini bildiği için ajan bunu her oturumda sıfırdan çözmek zorunda kalmıyor.
Zeminlenmiş dokümantasyon, inceleyebileceği canlı bir uygulama ve önemli iş akışları için hazırlanmış prosedürlerin bir arada olması, ekibin “bağlamsal AI” ile kastettiği şey.
Uno Platform Studio 3.0: tarayıcıda çalışan bir derleyici
Uno Platform Studio 3.0, tam bir çapraz platform.NET uygulamasını tamamen tarayıcı içinde üretiyor. Prompt kutusunun arkasında, Microsoft Agent Framework tarafından orkestre edilen özelleşmiş bir ajan, işi paralel adımlarda ve çok turlu konuşmalarda planlayıp yürütüyor. Ardından tam bir Roslyn workspace, ajanın yazdığını derliyor, üretilen assembly’leri yüklüyor, NuGet değişikliklerini çözüyor ve sonucu çalışan uygulamaya hot reload ile geri veriyor; hepsi tarayıcı içinde.
Docs sunucusu ajanın bilgisini güncel tutuyor, app sunucusu kendi işini doğrulamasını sağlıyor, Skills onu rayda tutuyor. Roslyn, Microsoft Agent Framework ve MCP C# SDK birlikte, birkaç yıl önce araştırma projesi olacak bir işi yapıyor ve tüm yığın.NET.
Üretilen.NET uygulaması tarayıcıda tam etkileşimli; sayfa navigasyonu ve UI’yı izole çalışmak için Preview’lar mevcut. Geliştiriciler UI’yı ajan ile ya da tarayıcıdaki Hot Design ile manuel olarak iterasyona sokabiliyor; değişiklikler Hot Reload ile anında görünüyor. Tarayıcıda başlayıp aynı araçlarla lokal IDE veya CLI’a geçmek mümkün.
Neden upstream’de çalışmak?
Uno Platform, etkileyemedikleri bir temel üzerine bu yığını inşa edemezdi. Bu nedenle Microsoft’un.NET ekibiyle birlikte SkiaSharp‘ı ortak sürdürüyorlar. SkiaSharp,.NET tarafındaki grafik, özel kontrol ve veri görselleştirmelerinin önemli bir kısmında kullanılan 2D grafik API’si; Chrome ve Android’de de bulunan Google Skia motoru üzerine inşa edilmiş ve Uno Platform’un render katmanı bu. Co-maintainer olma süreci, SkiaSharp 4.0 öncesinde yıllardır süren yatırımı resmileştirdi.
Bunun yanında.NET runtime üzerinde de Microsoft.NET ekibiyle biçimsel bir işbirliği çerçevesinde çalışıyorlar.NET for Android,.NET for iOS bindings ve.NET 10’da AOT tarafına katkı sağlıyorlar. Fikir aynı: bir şeyi ne kadar upstream düzeltirseniz o kadar çok kişi onu bir daha düşünmek zorunda kalmıyor.
Toparlarsak
Kendi.NET yığınınız için bir MCP sunucusu inşa ediyorsanız yazıdan çıkarılacak iki temel ders var. Birincisi, sunucularınızı özelliğe göre değil yaşam döngüsüne göre bölün: siz yayınladığınızda değişen bilgi ile uygulama çalışırken değişen durum aynı süreçte olmamalı. İkincisi, araç açıklamalarınıza gerçek zaman ayırın; onlar aslında birer prompt ve modelin hiç seçmediği bir araç hiç yok gibidir.
Kaynaklar ve İleri Okuma
- How Uno Platform uses.NET, MCP, and AI to build high quality apps —.NET Blog (orijinal yazı)
- Uno Platform
- Model Context Protocol
- MCP C# SDK — GitHub
- Playwright for.NET Apps — Uno Platform Blog
- Uno Platform Studio Skills — GitHub
- Uno Platform Studio 3.0 tanıtımı
- Microsoft Agent Framework — Genel Bakış
- Roslyn — GitHub
- SkiaSharp — GitHub
- SkiaSharp 4 co-maintainer duyurusu
- SkiaSharp 4.0 duyurusu
- Binlog MCP Server: Build Sorunlarını Copilot’a Çözdürmek







4 comments