Microsoft Power Fx genel bakış

Power Fx, Microsoft Power Platform tarafından kullanılan düşük kodlu dildir. Genel amaçlı, kesin olarak yazılan, bildirim temelli ve işlevsel bir programlama dilidir.

Power Fx, insanların kullanımına yönelik metinde ifade edilir. Bu, oluşturucuların Excel benzeri bir formül çubuğunda veya Visual Studio Code metin penceresinde doğrudan çalışabileceği az kod içeren bir dildir. Düşük koddaki "düşük", dilin kısa ve basit doğasından gelir ve bu da hem oluşturucular hem de geliştiriciler için ortak programlama görevlerini kolaylaştırır. Daha önce hiç programlamamış olanlar için kodsuzdan deneyimli profesyonel için "pro-code"a kadar tüm geliştirme yelpazesini sağlar ve aradaki uçurumları öğrenmez veya yeniden yazmaz. Farklı ekipler işbirliği yapabilir, zaman ve masraf tasarrufu sağlayabilir.

Not

  • Microsoft Power Fx, Power Apps içindeki tuval uygulamalarına yönelik formül dilinin yeni adıdır. Bu genel bakış ve ilişkili makaleler, Microsoft tuval uygulamalarından dili ayıklayıp diğer Microsoft Power Platform ürünleriyle tümleştirdiğinden ve açık kaynak olarak kullanılabilir hale getirdiğinden devam eden bir çalışmadır. Dil hakkında daha fazla bilgi edinmek ve dili bugün deneyimlemek için Power Apps belgelerindek Tuval uygulamalarında formülleri kullanmaya başlama bölümünden başlayın ve ücretsiz Power Apps denemesi için kaydolun.
  • Bu makalede , oluşturucular programlama beceri spektrumunun her iki ucunda bir özelliği kullanabilecek kullanıcıları ifade eder. Geliştiriciler, özellik daha gelişmiş olduğunda ve büyük olasılıkla tipik bir Excel kullanıcısının kapsamının dışında olduğunda kullanıcılara başvurur.

Power Fx, bildirim temelli elektronik tablo benzeri formüllerle nesneleri birbirine bağlar. Örneğin, bir arabirim denetiminin Görünür özelliğini bir Excel çalışma sayfasında bir hücre olarak düşünün. Bu hücrede, değerini diğer denetimlerin özelliklerine göre hesaplayan bir formül olduğunu farz edin. Formül mantığı, bir elektronik tabloda olduğu gibi değeri otomatik olarak yeniden hesaplar ve bu durum denetimin görünürlüğünü etkiler.

Ayrıca gerektiğinde, Power Fx kesinlik temelli mantık da sunar. Çalışma sayfalarında genellikle değişiklikleri veritabanına gönderebilen düğmeler yoktur, ancak çoğunlukla uygulamalarda bu düğmeler bulunur. Hem bildirim hem de kesinlik temelli mantık için aynı ifade dili kullanılır.

Microsoft Power Fx'i açık kaynak yazılım olarak kullanıma sunacaktır. Şu anda tuval uygulamalarıyla tümleştirilmiştir ve Microsoft diğer Microsoft Power Platform ürünlerde ve açık kaynak olarak kullanmak üzere Power Apps ayıklama sürecindedir. Daha fazla bilgi: GitHub'da Microsoft Power Fx

Bu makalede, dile ve tasarım ilkelerine dair genel bakış sunar. Power Fx hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Elektronik tabloları düşünün

Uygulama oluşturma Excel'de çalışma sayfası oluşturmak kadar kolay olsaydı ne olurdu?

Elektronik tablolarla ilgili mevcut bilgilerinizden yararlanabilseydiniz ne olurdu?

Bu sorular, Power Apps ve Power Fx'in oluşturulmasına ilham verdi. Yüz milyonlarca kişi her gün Excel ile çalışma sayfaları oluşturuyor. Şimdi onlara kolay ve zaten bildikleri Excel kavramlarını kullanan uygulama oluşturma işlemi getirelim. Power Fx'i Power Apps'te kullanmaya başlayarak otomasyon oluşturma veya sanal temsilci veya diğer alanlar için bu soruları yanıtlıyoruz.

Power Fx dahil tüm programlama dillerinde ifadeler vardır: bunlar, bir hesaplamayı sayılar, dizeler veya başka veri türleri üzerinden temsil etmenin bir yoludur. Örneğin, çoğu dilde mass * accelerationmass ve acceleration öğelerinin çarpımını ifade eder. Bir ifadenin sonucunu bir değişkene ekleyebilir, bir yordam için bağımsız değişken olarak kullanabilir veya daha büyük bir ifadenin içine yerleştirebilirsiniz.

Power Fx bunu bir adım öteye taşır. Tek başına bir ifade, neyi hesapladığıyla ilgili hiçbir şey belirtmez. Bunu bir değişkene yerleştirmek veya işleve aktarmak oluşturucunun takdirine bağlıdır. Power Fx'te, yalnızca belirli bir anlamı olmayan bir ifade yazmak yerine, ifadeyi bir tanımlayıcıya bağlayan bir formül yazarsınız. force = mass * acceleration öğesini hesaplamak için formül olarak force yazarsınız. acceleration Veya değiştikçemass, force otomatik olarak yeni bir değere güncelleştirilir. İfade bir hesaplamayı açıklamıştır, formül bu hesaplamayı adlandırmıştır ve bunu bir tarif olarak kullanmıştır. Power Fx'i bu nedenle bir formül dili olarak ifade ederiz.

Örneğin bu Stack Overflow formülü, ters sırada bir dize arar. Excel'de bu, aşağıdaki resim gibi görünür.

Ters arama

Excel'de şu formülün yazılı olduğu bir formül çubuğunun ekran görüntüsü: =RIGHT(A1,LEN(A1)- FIND("|", SUBSTITUTE(A1," ","|", LEN(A1)-LEN(SUBSTITUTE(A1," ","")))) A1 Hücresi şu metni içerir "Merhaba Dünya! Sizinle tanışmak harika!" Hücre A2 "siz!" metnini içerir

Power Fx bu aynı formülle, hücre başvurularının yerini alan denetim özelliği başvuruları ile çalışır:

Power Fx ters araması.

Power Apps'teki Power Fx formül çubuğunun ekran görüntüsü. Formül şudur =RIGHT(Input.Text,Len(Input.Text)- FIND("|", SUBSTITUTE(Input.Text," ","|", Len(Input.Text)-Len(Substitute(Input.Text," ","")))) Formülün altındaki Giriş kutusunda "Merhaba Dünya! Sizinle tanışmak harika!" görünür, harf harf. Aynı anda Etiket kutusunda son sözgücüğün harfleri gösterilir. Giriş kutusunda tam metin göründüğünde, Etiket kutusunda "you!" görünür.

Input Denetim değeri değiştikçe, Label denetim formülü otomatik olarak yeniden hesaplar ve yeni değeri gösterir. Diğer dillerde olduğu gibi burada da OnChange olay işleyicisi yoktur.

Başka bir örnek, ekranın rengi için Fill bir formül kullanır. Kırmızı, Yeşil ve Mavi'yi kontrol eden kaydırıcılar değiştikçe, arka plan rengi yeniden hesaplanırken otomatik olarak değişir.

Renk ayarlayıcısı

Diğer dillerde olduğu gibi burada da ayarlayıcı denetimleri için OnChange olayları bulunmaz. Fill özellik değerini açıkça ayarlamanın hiçbir yolu yoktur. Renk beklendiği gibi çalışmıyorsa neden çalışmadığını anlamak için bu formüle bakmanız gerekir. Özelliği beklenmeyen bir zamanda ayarlayan bir kod parçası bulmak için uygulamada arama yapmanız gerekmez. Süre unsuru yoktur. Doğru formül değerleri her zaman saklanır.

Ayarlayıcılar koyu bir renge ayarlandığı için Kırmızı, Yeşil ve Mavi etiketleri dengelemek için beyaza dönüşür. Bu değişiklik, her etiket denetimi için özelliğindeki Color basit bir formül aracılığıyla gerçekleşir.

Power Fx renk ayarlayıcıları.

Bu formülün en iyi özelliği, renk için Fill olanlardan yalıtılmış olmasıdır: bunlar tamamen farklı iki hesaplamadır. Büyük tek parçalı yordamlar yerine, Power Fx mantığı genellikle bağımsız olan çok sayıda küçük formülden oluşur. Bu yapı, onların anlaşılmasını kolaylaştırır ve mevcut mantığı bozmadan iyileştirmeler sağlar.

Power Fx tıpkı Excel gibi bildirim temelli bir dildir. Oluşturucu istediği davranışı tanımlar ancak davranışın nasıl ve ne zaman gerçekleşeceğini belirlemek ve optimize etmek sistemin işidir. Pratik hale getirmek için, çalışmanın çoğu yan etkileri olmayan saf işlevler aracılığıyla yapılır; bu şekilde Power Fx de işlevsel bir dil haline gelir (aynı Excel gibi).

Her zaman canlı

Elektronik tabloların ayırt edici yönlerinden biri her zaman canlı olmaları ve değişikliklerin anında yansımasıdır. Çalışma sayfasında derleme veya çalıştırma modu yoktur. Formülü değiştirdiğinizde veya bir değer girdiğinizde, çalışma sayfası değişiklikleri yansıtacak şekilde hemen yeniden hesaplanır. Algılanan hatalar hemen ortaya çıkar ve çalışma sayfasının geri kalanıyla karışmaz.

Power Fx de aynı şeyi uygular. Programı üzerinde çalıştırmış olduğu verilerle sürekli olarak eşitlenmiş durumda tutmak için artımlı bir derleyici kullanır. Değişiklikler, bağımlı hesaplamaların sonuçlarını etkileyerek programın grafiğine otomatik olarak yayılır. Bu hesaplamalar renk veya konum gibi denetimlerde özellikleri yönlendirebilir. Artımlı derleyici; IntelliSense, öneriler, otomatik tamamlama ve tür denetlemesi ile zengin bir formül düzenleme deneyimi de sağlar.

Aşağıdaki animasyonda, altındaki etiketlerde iki hata olmasına rağmen, sıra numarası kaydırıcı denetimine bağlı bir etiket denetiminde görüntülenir. Uygulama son derece canlı ve etkileşimlidir. .InvalidName ifadesini girerek formülü ilk düzeltme denemesi, olması gerektiği gibi anında kırmızı satır ve hatayla sonuçlanır ancak uygulama çalışmaya devam eder.

Her zaman canlı

girdiğinizde.EmployeeData, bölme Çalışanlar tablosunu ekler, bu tablonun meta verilerini alır ve sütunlar için hemen öneriler sunar. Bir tablodan diğerine ilişkinin üzerinden geçtiniz ve sistem uygulamanın başvurularında gerekli ayarlamaları yaptı. .Customer eklenirken de aynı durum gerçekleşir.

Her değişiklikten sonra ayarlayıcı, son değeriyle devam eder ve değişkenler değerlerini korur. Sipariş numarası, olması gerektiği gibi üst etikette görüntülenmeye devam eder. Uygulama canlıdır ve tüm zaman boyunca gerçek verileri işler. Bunu kaydedebilir, yürüyebilir ve diğerleri de Excel gibi açabilir ve kullanabilir. Derleme adımı yok, derleme yok, uygulamanın kullanıcılar için hangi sürümünün hazır olduğunu belirlemek için yalnızca bir yayımlama adımı vardır.

Az kod

Power Fx iş mantığını kısa ancak güçlü formüller halinde açıklar. Çoğu mantık, daha karmaşık ihtiyaçlar için bol miktarda ifade ve denetimle tek bir çizgiye indirgenir. Hedef, oluşturucunun anlaması gereken kavramları minimum düzeyde tutmaktır. İdeal durumda, Excel kullanıcısının zaten bildiği kavramlardan başka kavram öğrenmemesi hedeflenir.

Örneğin, bir siparişle ilgili bir çalışanın adını aramak için Power Fx formülünü aşağıdaki animasyonda gösterildiği gibi yazarsınız. Excel kavramlarının dışında buraya eklenen tek kavram, veri yapısının ayrıntılarını gitme gösterimi olan "." işaretidir; bu örnekte bu, .Employee.'First Name' ifadesidir. Animasyon, Power Fx formülünün parçaları ile eşdeğer JavaScript'de açık şekilde kodlanması gereken kavramlar arasındaki eşlemeyi gösterir.

Az kod içeren JavaScript

Şimdi Power Fx'in bizim için yaptığı her şeye ve formül bildirim temelli olduğundan iyileştirmesi gereken özgürlüğe daha ayrıntılı bir şekilde bakalım:

  • Eşzamansız: 'daki Power Fx tüm veri işlemleri zaman uyumsuzdur. Oluşturucunun bunu belirtmesi veya çağrı bittikten sonra işlemleri eşitlemesi gerekmez. Oluşturucunun bu kavramı bilmesi bile gerekmez. Promise veya lambda işlevinin ne olduğunu bilmesine de gerek yoktur.

  • Yerel ve uzak: Power Fx Bellekte yerel olan veriler için aynı sözdizimini ve işlevleri kullanır ve bir veritabanına veya hizmete uzaktan bağlanır. Kullanıcı bu ayrımı düşünmek zorunda değildir. Power Fx, filtreleri işlemek ve daha etkin şekilde sıralamak için sunucuya yapabileceklerini otomatik olarak devreder.

  • İlişkisel veriler: Siparişler ve Müşteriler, çok-bir ilişkisine sahip iki farklı tablodur. OData sorgusu, SQL'deki Join'e benzer şekilde yabancı anahtarın bilgisini içeren "$expand" gerektirir. Formülde bununla ilgili hiçbir şey yoktur; hatta veritabanı anahtarları yine oluşturucunun bilmesinin gerekli olmadığı bir kavramdır. Oluşturucu, bir kayıttan tüm ilişkiler grafiğine erişmek için basit nokta gösterimini kullanabilir.

  • Projeksiyon: Bir sorgu yazarken, birçok geliştirici yazar select * from table ve bu da tüm veri sütunlarını geri getirir. Power Fx formül bağımlılıkları dahil tüm uygulama boyunca kullanılan tüm sütunları analiz eder. Projeksiyon, otomatik olarak optimize edilir ve oluşturucunun yine "projeksiyon" kelimesinin anlamını bilmesi gerekmez.

  • Yalnızca gerekeni al: Bu örnekte, işlev yalnızca bir kaydın LookUp alınması gerektiğini ve döndürülen tek şeyin bu olduğunu ima eder. Filter işlevi kullanılarak daha fazla kayıt istenmişse (binlerce kayıt bu filtreye uygun olabilir), sayfa başına 100 kayıt sırasıyla tek seferde yalnızca tek bir sayfa döndürülür. Kullanıcının daha fazla veri görebilmesi için galeri veya veri tablosu aracılığıyla hareket etmesi gerekir ve otomatik olarak daha fazla veri getirir. Oluşturucu, veri isteklerini makul parçalarla sınırlamayı düşünmesine gerek kalmadan büyük veri kümeleri hakkında fikir edinebilir.

  • Yalnızca gerektiğinde çalışır: Etiket denetiminin Text özelliği için bir formül tanımlarsınız. Seçili değişken değiştiğinde LookUp otomatik olarak yeniden hesaplanır ve etiket güncelleştirilir. Oluşturucunun, Seçim için OnChange işleyicisi yazması ve bu etiketin buna bağımlı olduğunu hatırlaması gerekmez. Bu, daha önce açıklandığı gibi bildirim temelli programlamadır: Oluşturucu etikette bulunmasını istediklerini belirtir, bunun nasıl ve ne zaman getirileceğini belirtmez. Bu etiket görünür olmayan bir ekranda olduğu için görünmüyorsa veya Visible özelliği yanlışsa, etiket görünür hale gelene kadar bu hesaplamayı erteleyebilirsiniz ve nadiren ortaya çıkarsa bunu etkili bir şekilde ortadan kaldırabilirsiniz.

  • Excel söz dizimi çevirisi: Birçok kullanıcı, Excel dize birleştirme için ve işareti (&) kullanıldığını bilir. JavaScript, artı işareti ( +), diğer diller ise nokta (.) kullanır.

  • Görünen adlar ve yerelleştirme: First Name formülde Power Fx kullanılırken nwind_firstname JavaScript eşdeğerinde kullanılır. Microsoft Dataverse ve SharePoint'te sütunlar ve tablolar için benzersiz mantıksal adın yanı sıra bir de görünen ad vardır. Görünen adlar, bu örnekte olduğu gibi genellikle daha kullanıcı dostudur ancak başka bir önemli özellikleri de yerelleştirilebilir olmalarıdır. Farklı dilleri konuşan bir takımınız varsa her takım üyesi, tablo ve alan adlarını kendi dilinde görebilir. Tüm kullanım durumlarında, Power Fx doğru mantıksal adın veritabanına otomatik olarak gönderilmesini sağlar.

Kod içermez

Mantığı ifade etmeye başlamak için Power Fx'i okumanız veya yazmanız gerekmez. Basit anahtarlar ve kullanıcı arabirimi oluşturucuları aracılığıyla birçok özelleştirmeyi ve mantığı ifade edebilirsiniz. Bu kod içermeyen araçlar, Power Fx'i okumak ve yazmak için oluşturulduğundan, birinin daha ileriye götürmesi için bol bol boşluk vardır. Ancak kod içermeyen araçlar hiçbir zaman tam dilin tüm ifadelerini sunmaz. Kod oluşturucuları kullanmasanız bile formül çubuğu, oluşturucuyu Power Fx'i öğrenmeye başlayabilmeleri için kendileri adına yapılanlar hakkında eğitmek için Power Apps önde ve ortadadır.

Şimdi bazı örneklere göz atalım. Power Apps'te özellik paneli, denetimlerin özellikleri için kod içermeyen anahtarlar ve düğmeler sunar. Uygulamada, çoğu özellik değeri statiktir. Gallery öğesinin arka plan rengini değiştirmek için renk oluşturucuyu kullanabilirsiniz. Formül çubuğunun bu değişikliği yansıttığını ve formülü farklı bir RGBA çağrısına güncelleştirdiğini görebilirsiniz. İstediğiniz zaman formül çubuğuna gidebilir ve bu değişikliği bir adım ileri götürebilirsiniz. Bu örnekte, ColorFade kullanarak rengi ayarlayabilirsiniz. Renk özelliği özellikler panelinde görünmeye devam eder, ancak üzerine gelindiğinde fx gösterilir ve formül çubuğuna yönlendirilirsiniz. Bu, tümüyle iki yönlüdür: ColorFade çağrısının kaldırılması, rengi özellik panelinin anlayabileceği bir şeye dönüştürür ve bunu rengi ayarlamak için yeniden kullanabilirsiniz.

Kod içermeyen renk

Aşağıda daha karmaşık bir örnek görebilirsiniz. Galeri, Dataverse'ten çalışanlar listesini gösterir. Dataverse, tablo veriyle ilgili görünümleri sağlar. Bu görünümlerden birini seçebilirsiniz ve formül, işlevi bu görünüm adıyla kullanacak Filter şekilde değişir. Doğru tabloyu aramak ve formül çubuğuna dokunmadan görüntülemek için iki açılan menüyü kullanabilirsiniz. Ancak, bir adım ileri gitmek ve sıralama eklemek istediğinizi varsayalım. Bu işlevi formül çubuğuna ekleyebilirsiniz ve özellik panelinde bir fx simgesi yeniden gösterilir ve değişiklikler formül çubuğuna yönlendirilir. Ayrıca, formülü özellik panelinin okuyup yazabileceği bir şekilde basitleştirirseniz kullanılabilir.

Kod içermeyen sıralama

Bu örnekler basittir. Power Fx, kod içermeyen etkileşimleri tanımlamak için harika bir dildir. Kısa, güçlü ve ayrıştırmak kolaydır. Düşük koda kadar "uçurum yok" ile çok sık ihtiyaç duyulan bir boşluk sağlar.

Profesyonel kodu

Düşük kod oluşturucular bazen bir uzmanın yardımına ihtiyaç duyan veya bakımını yapmak ve geliştirmek için profesyonel bir geliştirici tarafından devralınan çözümler oluşturur. Profesyoneller de düşük kod ile geliştirmenin profesyonel bir araç oluşturmadan daha kolay, daha hızlı ve daha ucuz olduğunu bilir. Her durum için Visual Studio'nun tam gücünden yararlanmak gerekmez.

Profesyoneller, üretken olmak için profesyonel araçlar kullanmak ister. Power Fx formüllerini YAML kaynak dosyalarında depolayabilirsiniz. Bu dosyaları düzenlemek için Visual Studio Code, Visual Studio veya başka bir metin düzenleyicisi kullanabilirsiniz. Formülleri YAML dosyalarında depolamak GitHub, Azure DevOps veya başka bir kaynak kodu denetim sistemi kullanarak Power Fx'i kaynak denetimi altına almanızı sağlar.

Profesyonel kod Visual Studio Code.

Profesyonel kod GitHub

Power Fx, paylaşım ve yeniden kullanım için formül tabanlı bileşenleri destekler. Bileşen özelliklerine yönelik parametreleri destekleyerek saf kullanıcı tanımlı işlevlerin oluşturulmasını ve daha fazla geliştirme yapılmasını sağlar.

Ayrıca, Power Fx profesyoneller tarafından geliştirilen bileşenleri ve servisleri bir araya toplamak için mükemmel bir yöntemdir. Kullanıma sunulan bağlayıcılar, yüzlerce veri kaynağına ve web hizmetlerine erişim sağlar. Özel bağlayıcılar, Power Fx'in herhangi bir REST web hizmetiyle iletişim kurabilmesini sağlar. Kod bileşenleri Power Fx'in ekranda ve sayfada tamamen özel JavaScript ile etkileşim kurmasını sağlar.

Tasarım ilkeleri

Basit

Power Fx, üyeleri geliştirici olarak eğitilmeyen oluşturucu hedef kitlesini hedeflemek için tasarlanmıştır. Mümkün olduğunca dil, bu hedef kitlenin zaten bildiği veya hızlı bir şekilde alabildiği bilgileri kullanır. Başarılı olmak için gerekli kavram sayısı asgari düzeydedir.

Basit olması geliştiriciler için de yararlıdır. Geliştirici kitlesi için Power Fx, çözüm oluşturmak için gereken süreyi azaltan düşük kodlu bir dil olmayı hedefler.

Excel tutarlılığı

Microsoft Power Fx dili, Excel formül dilinden yoğun bir şekilde etkilenmiştir. Aynı zamanda Excel kullanan birçok oluşturucudan Excel bilgi ve deneyimden yararlanır. Yazılar, işleçler ve işlev semantiği Excel'e mümkün olduğunca yakındır.

Excel bir yanıtı yoksa Power Fx bir sonraki adımda SQL'i arar. SQL, Excel'den sonra en sık kullanılan bir sonraki bildirim temelli dildir ve Excel'in sağlamadığı veri işlemleri ve kesin tür belirtme konusunda yönlendirme sağlayabilir.

Bildirim temelli

Oluşturucu, mantığın ne yapmasını istediğini açıklar ancak bunun nasıl veya ne zaman yapılacağını tam olarak açıklamaz. Bu yaklaşım, derleyicinin paralel işlemler gerçekleştirerek, gerekene kadar çalışmayı erteleyerek ve önbelleğe alınmış verileri önceden seçerek ve yeniden kullanarak iyileştirmesini sağlar.

Örneğin, Excel bir çalışma sayfasında yazar hücreler arasındaki ilişkileri tanımlar ancak Excel formüllerin ne zaman ve hangi sırayla değerlendirileceğine karar verir. Benzer şekilde, bir uygulamadaki formülleri kullanıcı eylemlerine, veritabanı değişikliklerine veya zamanlayıcı olaylarına göre gerektiği gibi "yeniden hesaplama" olarak düşünebilirsiniz.

İşlevsel

Yan etkileri olmayan saf işlevleri kullanın. Bu yaklaşım, anlaşılması daha kolay bir mantıkla sonuçlanıp derleyiciye en iyi duruma getirme özgürlüğünü verir.

Excel aksine, doğası gereği uygulamalar durumu sessize alır. Örneğin, uygulamaların veritabanındaki kayıtta yapılan değişiklikleri kaydeden düğmeleri vardır. Bu nedenle bazı işlevlerin yan etkileri vardır, ancak bu yan etkiler pratik olduğu kadar sınırlanır.

Oluşturma

Mümkün olduğunda, mevcut işlevlerle iyi bir şekilde oluşturulan işlevler ekleyin. Güçlü işlevleri, bağımsız olarak daha kolay kullanabileceğiniz daha küçük parçalara bölebilirsiniz.

Örneğin, Galeri denetiminin ayrı Sort ve Filter özellikleri yoktur. Bunun yerine, ve Filter işlevlerini tek Items bir özellikte birlikte oluşturursunuzSort. Bu özellik için iki yönlü bir düzenleyici kullanarak özelliğin Items üzerine ifade Sort ve Filter davranış kullanıcı arabirimini katmanlarsınız.

Türü kesin olarak belirlenmiş

Derleme zamanında tüm değerlerin türleri bilinir. Bu yaklaşım, yazma sırasında hataların ve zengin önerilerin erken tespit edilmesini sağlar.

Çok biçimli türler desteklenir, ancak bunları kullanabilmeniz için önce türlerini statik bir türe sabitlemeniz ve bu türün derleme zamanında bilinmesi gerekir. IsType ve AsType işlevleri, tür test etme ve dönüştürme için sağlanır.

Tür çıkarımı

Türler bildirilmeden kullanımlarına göre türetilir. Örneğin, bir değişkenin sayı olarak ayarlanması, bu değişkenin türünün sayı olarak belirlenmesine neden olur.

Çakışan tür kullanımı derleme zamanı hatasına yol açar.

Yerel ayarlara duyarlı ondalık ayırıcıları

Dünyanın bazı bölgelerinde ondalık ayırıcısı olarak nokta (.) kullanılırken diğerlerinde virgül (,) kullanılır. Excel bu bölgesel kuralı izler. Diğer programlama dilleri genellikle dünya çapındaki tüm kullanıcılar için ondalık ayırıcı olarak kurallı nokta (.) kullanır. Tüm düzeylerdeki oluşturuculara mümkün olduğunca kolaylık sağlamak amacıyla, örneğin Fransa'da hayatı boyunca 3,14 söz dizimini kullanan bir kişi için bunun ondalık sayı olması önemlidir.

Ondalık ayırıcının seçilmesi, işlev çağrısı bağımsız değişkenleri ve zincirleme işleci olarak kullanılan liste ayırıcısı üzerinde basamaklama etkisine sahiptir.

Yazarın dilindeki ondalık ayracı Power Fx ondalık ayracı Power Fx liste ayracı Power Fx zincirleme işleci
, (nokta) , (nokta) , (virgül) ; (noktalı virgül)
, (virgül) , (virgül) ; (noktalı virgül) ;; (çift noktalı virgül)

Daha fazla bilgi: Global destek

Nesne odaklı değildir

Excel nesneye yönelik değildir aynı şekilde Power Fx de. Örneğin, bazı dillerde bir dizenin uzunluğu, dizenin özelliği olarak ifade edilir (ör. JavaScript'teki "Merhaba Dünya".length). Excel ve Power Fx, bunun yerine bunu Len( "Merhaba Dünya" ) öğesinde olduğu gibi işlev olarak ifade eder.

Özellikleri ve yöntemleri olan bileşenler nesneye yöneliktir ve Power Fx bunlarla kolay bir şekilde çalışır. Ancak mümkün olduğunda işlevsel bir yaklaşımı tercih edin.

Genişletilebilir

Oluşturucular, bileşenlerini ve işlevleri Power Fx'in kendisini kullanarak oluşturabilir. Geliştiriciler, JavaScript yazarak bileşenlerini ve işlevlerini oluşturabilir.

Geliştirici dostu

Oluşturucular birincil hedef olsa da, mümkün olan her yerde geliştirici dostu olmaya çalışın. Daha önce açıklanan tasarım ilkeleriyle çakışmazsa, bir geliştiricinin takdirlediği şekilde işler yapın. Örneğin, Excel açıklama ekleme özelliği yoktur, bu nedenle C benzeri satır ve satır içi açıklamalar kullanın.

Dil gelişimi

Programlama dillerinin gelişimi hem gerekli hem de zor bir süreçtir. Herkes, haklı olarak ne kadar iyi niyetli olursa olsun bir değişikliğin mevcut kodu bozabileceğinden ve kullanıcıların yeni bir modeli öğrenmesini gerektireceğinden endişe duyar. Power Fx geriye dönük uyumluluğu ciddiye alır, ancak Power Fx ekibi de her zaman ilk seferde doğru olanı alamayacaklarına ve topluluğun topluca en iyi olanı öğrenebileceğine inanıyor. Bir programlama dili gelişmeli ve Power Fx en başından beri dil evrimini destekleyecek şekilde tasarlanmıştır.

Kaydedilen her Power Fx belgesinde dil sürümü damgası bulunur. Power Fx ekibi uyumsuz bir değişiklik yapmak isterse formülü bir sonraki düzenlemede otomatik olarak yeniden yazan "geri uyumluluk dönüştürücüsü" olarak adlandırdıkları şeyi yazar. Değişiklik, ekibin kullanıcıyı eğitmesi gereken önemli bir şeyse, uygulama belgelere bağlantı içeren bir ileti görüntüler. Power Fx, bu özelliği kullanarak, o zamandan beri gerçekleşen tüm değişikliklere rağmen Power Apps önizleme sürümleriyle oluşturulmuş uygulamaları yıllar önce yükleyebilir.

Örneğin Power Fx ekibi, kırmızı arka planlı bir hata başlığı görüntülemek için işlevini kullanıma sunar ShowError .

Hatayı göster

Kullanıcılar bunu sevdi, ancak bir başarı başlığı (yeşil arka plan) veya bilgilendirici bir başlık (mavi arka plan) göstermenin bir yolunu da istediler. Bu nedenle ekip, bildirim türü için ikinci bir bağımsız değişken alan daha genel Notify bir işlevle karşılaştı. Ekip yeni ekleyip Notify olduğu gibi devam ShowError edebilirdi, ancak yerine ile NotifydeğiştirildiShowError. Daha önce üretimde olan bir işlevi kaldırdılar ve başka bir şeyle değiştirdiler. Aynı şeyi yapmanın iki yolu olacağından, bu değişiklik özellikle yeni kullanıcılar için kafa karışıklığına neden olurdu ve en önemlisi karmaşıklığı da eklerdi. Kimseden şikayet almadık, herkes değişikliği beğendi ve yeni Notify özelliğini kullanmaya başladı.

Aynı uygulamanın Power Apps'in son sürümüne yüklendiğindeki görünümü aşağıdaki şekildedir. Bu dönüşümün gerçekleşmesi için kullanıcının yapması gereken herhangi bir işlem yoktu; uygulama açıldığında dönüşüm otomatik olarak gerçekleşti.

Notify işlevi ShowError işlevinin yerini alıyor

Power Fx, bu tesisi kullanarak çoğu programlama dilinden daha hızlı ve daha agresif bir şekilde gelişebilir.

Tanımsız değer yok

JavaScript gibi bazı diller, başlatılması geri alınmış değişkenler veya eksik özellik için tanımsız değer kavramını kullanır. Basitlik adına Power Fx bu kavramdan kaçınıyor. Başka dillerde tanımsız olacak örnekler hata veya boş değer olarak işlendi. Örneğin, başlatılmamış tüm değişkenler boş değerle başlar. Tüm veri türleri boş değer alabilir.

Veri türleri
İşleçler ve tanımlayıcılar
Tablo
Değişken
Emir kipi mantığı
Küresel destek
İfade dilbilgisi
YAML formülü dilbilgisi
Tuval uygulamalarındaki formüller