Aracılığıyla paylaş


Microsoft Power Fx genel bakış

Power Fx, Microsoft Power Platform'da kullanılacak az kodlu dilidir. Bu genel amaçlı, kesin tür belirtilmiş, bildirim temelli ve işlevsel 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. Az kod içeren ifadesindeki "az" sözcüğü, dilin öz ve basit yapısını ifade eder. Bu durum, yaygın programlama börevlerini hem oluşturucular hem de geliştiriciler için kolaylaştırır. Daha önce hiç programlama yapmamış olanlara yönelik sıfır kod ile deneyimli profesyonellere yönelik "profesyonel kod" arasındaki tüm yelpazeyi kapsar ve bunların arasında çok fazla öğrenme ve yeniden yazma gerektirmez. Böylece çeşitli takımların iş birliği yapmasına olanak tanır ve zaman ve gider tasarrufu sağlar.

Not

  • Microsoft Power Fx, Power Apps içindeki tuval uygulamalarına yönelik formül dilinin yeni adıdır. Dili tuval uygulamalarından ayırdığımız, Microsoft Power Platform ürünlerine entegre ettiğimiz ve açık kaynak olarak sunduğumuz bu süreçte bu genel bakış makalesi ve ilişkili makaleler geliştirilmeye devam eder. 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, programlama becerisi yelpazesinin her iki ucunda da kullanılabilecek bir özellik açıklanırken oluşturucular ifadesi kullanılır. Özellik daha gelişmiş ise ve büyük olasılıkla tipik bir Excel kullanıcısının becerilerinin kapsamının dışındaysa kullanıcı geliştirici olarak adlandırılır.

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.

Power Fx açık kaynak yazılım olarak kullanıma sunulacaktır. Şu anda tuval uygulamalarına tümleştirilmiştir ve başka Microsoft Power Platform ürünlerinde ve açık kaynak olarak kullanmak için Power Apps'ten çıkarma sürecindeyiz. 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?

Bunlar, Power Apps ve Power Fx'in oluşturulmasına ilham veren sorulardı. Her gün milyonlarca insan Excel ile elektronik tablolar oluşturuyor. Bu kullanıcılara kolay ve zaten bildikleri Excel kavramlarından yararlanan bir uygulama oluşturma deneyimi sunmak istedik. 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 sonucu bir değişkene yerleştirilebilir, bir yordamın bağımsız değişkeni olarak kullanılabilir veya daha büyük bir ifadenin içine eklenebilir.

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 öğesini hesaplamak için formül olarak force = mass * acceleration yazarsınız. mass veya acceleration değiştikçe 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 denetimi, 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.

Fill ekran rengi için formül kullanan başka bir örneği inceleyelim. Kırmızı, Yeşil ve Mavi renklerini kontrol eden kaydırıcılar değiştikçe arka plan rengi yeniden hesaplandığı için otomatik olarak değiştirilir.

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, her etiket denetimi için Color özelliğindeki basit bir formül aracılığıyla yapılır.

Power Fx renk ayarlayıcıları.

Bunun en iyi tarafı Fill renginde olan işlemden ayrı olmasıdır: Bunlar tümüyle 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, anlamayı kolaylaştırır ve mevcut mantığı bozmadan geliştirme yapma olanağı sağlanır.

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. Elektronik tabloda derleme veya çalıştırma modu yoktur. Bir formül değiştirildiğinde veya bir değer girildiğinde elektronik tablo, değişiklikleri yansıtmak için hemen yeniden hesaplar. Algılanan hatalar hemen gösterilir ve elektronik tablonun kalan kısmını etkilemez.

Aynı şey Power Fx ile uygulanır. Programın ve kullandığı verilerin her zaman eşitlenmiş olması için artımlı derleyici kullanılır. Değişiklikler, program grafı aracılığıyla otomatik olarak yayılır. Bu durum, bağımlı hesaplamaların sonuçlarını etkiler ve renk veya konum gibi denetimlerdeki özellikleri etkileyebilir. 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, aşağıdaki etiketlerde iki hata olmasına rağmen ayarlayıcı denetimine bağımlı olan etiket denetiminde sıra numarası gösterilir. 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ı

.Employee girildiğinde, bu Data bölmesinin Çalışanlar tablosunu eklemesine, bu tabloya ait meta verilerin alınmasına ve anında sütun önerilerinin sunulmasına neden olur. Bir ilişki üzerinde bir tablodan diğerine ilerledik ve sistem, uygulamanın başvurularında gerekli düzeltmeleri gerçekleştirdi. .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. Süreç boyunca, sıra numarası üst etikette olması gerektiği gibi gösterilmeye devam eder. Uygulama, tüm süreç boyunca canlıdır ve gerçek verileri işler. Bunu kaydedip, uzaklaşabiliriz ve diğer kullanıcılar tıpkı Excel gibi açıp kullanabilir. Oluşturma adımı ve derleme yoktur; yalnızca kullanıcılara hangi uygulama sürümünün sunulacağını belirlemek için yayımlama adımı bulunur.

Az kod

Power Fx iş mantığını kısa ancak güçlü formüller halinde açıklar. Mantığın büyük bir kısmı, daha karmaşık gereksinimler için yoğun ifade yeteneği ve denetimle tek bir satıra düşürülebilir. 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

Power Fx'in bizim için yapabildiklerine ve formül bildirim temelli olduğundan sahip olduğu optimizasyon özgürlüğüne biraz daha kapsamlı bakalım:

  • Zaman uyumsuz: Power Fx'teki 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, bellekteki yerel veriler ve bir veritabanı ya da hizmetteki uzak veriler için aynı sözdizimini ve işlevleri kullanı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çok geliştirici sorgu yazarken, tüm veri sütunlarını geri getiren select * from table ifadesini yazar. 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 gerekli olanları alır: Bu örnekte, LookUp işlevi, yalnızca bir kaydın alınması gerektiğini belirtir ve yalnızca bu döndürülür. 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ı, daha fazla veri görmek için bir galeri veya veri tablosunda hareket etmek zorundadır ve veriler otomatik olarak kullanıcılar için getirilir. 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 gerekli olduğunda çalışır: Etiket denetiminin Text özelliği için bir formül tanımladık. 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 false ise bu hesaplamayı etiket görünür oluncaya kadar erteleyebilir ve bu nadir görülen bir sorunsa bunu ortadan kaldırabiliriz.

  • Excel söz dizimi çevirisi: Excel birçok kullanıcı tarafından kullanılır; çoğu kullanıcı (&) işaretinin dize birleştirme için kullanıldığını bilir. JavaScript, artı işareti ( +), diğer diller ise nokta (.) kullanır.

  • Görünen adlar ve yerelleştirme: First Name Power Fx formülünde 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

İfade mantığını başlatmak için Power Fx okumak ve yazmak zorunda kalmazsınız. Basit anahtarlar ve kullanıcı arabirimi oluşturucuları ile ifade edilebilecek çok fazla sayıda özelleştirme ve mantık vardır. Bu kod içermeyen araçlar, kişilerin daha da ilerlemesini sağlamak amacıyla birçok hata payı olmasını sağlamak için Power Fx okumak ve yazmak üzere ve kodsuz araçların bir dilin tamamının tüm ifadelerini kesinlikle sunamayacağı kabul edilerek oluşturulmuştur. Kodusz oluşturucularla birlikte kullanıldığında bile oluşturucuya Power Fx öğrenmeye başlayabilmesi için kendi adına yapılacakları öğretmek amacıyla formül çubuğu Power Apps'in önünde ve ortasında yer alır.

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 dönüp bunu bir adım ileriye taşıyabilirsiniz. Bunu örnekte, rengi ayarlamak için ColorFade kullanılmıştır. 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çebiliriz ve formül, bu görünüm adıyla Filter işlevini kullanacak şekilde değiştirilir. Formül çubuğuna dokunmadan doğru tablo ve görünümü aramak için iki açılan menü kullanılabilir. Ancak, bir adım ileri gitmek ve sıralama eklemek istediğinizi varsayalım. Bu işlemi, formül çubuğunda yapabiliriz; özellik panelinde bir fx simgesi gösterilir ve değişiklikler formül çubuğunu yönlendirir. Yine, formülü özellik panelinin okuyup yazabileceği bir öğeye sadeleştirirsek formül tekrar kullanılabilir.

Kod içermeyen sıralama

Bunlar basit örneklerdir. Power Fx'in, kod içermeyen etkileşimlerin açıklanması için harika bir dil olduğuna inanıyoruz. Bu dil kısa, güçlü ve ayrıştırılması kolaydır ve büyük farklar olmadan az kod içeren düzeye kadar giden ve ihtiyaç duyulan alanı sağlar.

Profesyonel kodu

Düşük kod düzeyindeki oluşturucular, bazen bir uzmanın yardımını gerektiren şeyler üretir veya bakım ve geliştirme için bu kullanıcının yerini profesyonel bir geliştirici alır. 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ülleri; Visual Studio Code, Visual Studio veya diğer metin düzenleyicilerle kolaylıka düzenlenebilen ve Power Fx'in GitHub, Azure DevOps veya diğer kaynak kod denetim sistemleri tarafından kaynak denetimine alınmasını sağlayan YAML kaynak dosyalarında depolanır.

Profesyonel kod Visual Studio Code.

Profesyonel kod GitHub

Power Fx, paylaşım ve yeniden kullanım için formül tabanlı bileşenleri destekler. Parametrelerin bileşen özelliklerine dönüşmesini destekleyerek kullanıcı tanımlı saf işlevler oluşturulmasına olanak sağladığımızı duyurduk ve başka geliştirmeler üzerinde de çalışıyoruz.

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 hazır bağlayıcılar yüzlerce veri kaynağına ve web hizmetine erişim sağlar, özel bağlayıcılar Power Fx'in herhangi bir REST web hizmetiyle konuşabilmesine olanak tanır ve kod bileşenleri Power Fx'in ekran ve sayfadaki tamamen özel JavaScript ile etkileşime geçmesine olanak tanır.

Tasarım ilkeleri

Basit

Power Fx, üyeleri geliştirici olarak eğitilmemiş olan oluşturucu kitlesini hedeflemek üzere tasarlanmıştır. Mümkün olan her durumda bu kitlenin bilgi sahibi olduğu ve hızlıca öğrenebildiği bilgisini temel alırız. 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 hedef kitlesi için, çözüm oluşturmak için gereken süreyi en aza indiren düşük kodlu bir dil sunmayı hedefliyoruz.

Excel tutarlılığı

Microsoft Power Fx dili, Excel formül dilinden yoğun bir şekilde etkilenmiştir. Excel'i de kullanan pek çok oluşturucunun Excel bilgisinden ve deneyiminden yararlanabilmelerini amaçlıyoruz. Yazılar, işleçler ve işlev semantiği Excel'e mümkün olduğunca yakındır.

Excel'de bir çözüm bulamazsak SQL'e yöneliyoruz. 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, derleyicinin işlemleri paralel olarak gerçekleştirerek, gerekli olana kadar işi erteleyerek, önbelleğe alınan verileri önceden getirerek ve yeniden kullanarak derleyicinin optimizasyon yapmasına olanak tanır.

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

İşlevsel

Yan etkileri olmayan saf işlevleri tercih ederiz. Bu, daha kolay anlaşılır bir mantık sağlar ve derleyiciye optimizasyon için esneklik sunar.

Excel'den farklı olarak uygulamalar, yapıları değişken duruma sahiptir; örneğin, uygulamalar, değişiklikleri veritabanındaki kayda kaydeden düğmelere sahiptir. Bu nedenle, bazı işlevlerin yan etkileri vardır ancak bunu mümkün olduğu kadar sınırlıyoruz.

Oluşturma

Mümkün olduğunda, eklenen işlevsellikler mevcut işlevselliklerle uyumlu bir şekilde çalışır. Güçlü işlevler, bağımsız olarak daha kolay kullanılabilen daha küçük parçalara ayrılabilir.

Örneğin, Galeri denetiminin ayrı Sort ve Filter özellikleri yoktur. Bunun yerine, Sort ve Filter işlevleri tek bir Items özelliğinde bir araya gelir. Sort ve Filter davranışını ifade eden kullanıcı arabirimi, bu özellik için iki yönlü düzenleyici kullanılarak Items özelliğinin üzerine katman olarak eklenir.

Türü kesin olarak belirlenmiş

Tüm değerlerin türleri derleme sırasında bilinir. Bu, hataların önceden algılanmasını ve yazma sırasında kapsamlı öneriler sunulmasını sağlar.

Çok biçimli türler desteklenir ancak kullanılmadan önce türleri statik bir türe sabitlenmelidir ve bu tür derleme zamanında bilinmelidir. 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'de de bu yöntem kullanılır. Bu, dünya genelindeki tüm kullanıcılar için ondalık sayı ayırıcısı olarak standart (.) işaretini kullanan diğer programlama dillerinde yaygın değildir. 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 "Hello World".length). Excel ve Power Fx, bunun yerine bunu Len( "Hello World" ) öğ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 ederiz.

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

Birincil hedef kitlemiz oluşturucular olsa da mümkün olan durumlarda geliştiricilere kolaylık sağlamaya çalışıyoruz. Daha önce açıklanan tasarım ilkeleriyle çakışmadığı sürece geliştiricilerin beğeneceği tasarımlar yapıyoruz. Örneğin, Excel'in açıklama ekleme özelliği olmadığından C benzeri satır ve satırı içi açıklamalar kullandık.

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 bunu ilk defada başaramayacağımızı ve topluluk olarak en iyi olanı birlikte öğreneceğimize inanıyoruz. Gelişmemiz gerekiyor ve Power Fx en başından beri dil gelişimini desteklemek üzere tasarlandı.

Bir dil sürümü damgası, kaydedilen her Power Fx belgesine dahil edilir. Uyumsuz bir değişiklik yapmak istersek bir sonraki sefer düzenlendiğinde formülü otomatik olarak yeniden yazan "geriye dönük uyumluluk dönüştürücüsü" adını verdiğimiz bir işlev yazarız. Kullanıcıya eğitmemiz gereken önemli bir değişiklik yapıyorsak ilgili belgelerin bağlantısını içeren bir ileti de gösteririz. Bu özelliği kullanarak, geçmişten itibaren yapılmış tüm değişikliklere rağmen yıllar öncesindeki Power Apps önizleme sürümleriyle oluşturulmuş uygulamaları yükleyebiliriz.

Örneğin, kırmızı bir arka plana sahip bir hata başlığını görüntülemek için ShowError işlevini sunduk.

Hatayı göster

Kullanıcılar bunu sevdiler ancak başarı başlığı (yeşil arka plan) veya bilgi niteliğindeki bir başlık (mavi arka plan) görüntülemek için bir yöntem sunmamızı istediler. Bu nedenle, bu bildirim türü için ikinci bir bağımsız değişken alan daha genel Notify işlevini geliştirdik. Notify işlevini ekleyip ShowError işlevini olduğu gibi bırakabilirdik ancak bunu tercih etmeyerek ShowError işlevini Notify ile değiştirdik. Daha önce üretimde olan işlevi kaldırdık ve bunu başka bir işlevle değiştirdik. Bunu yapmamanızın nedeni aynı işlemi yapan iki farklı yöntemin, özellikle yeni kullanıcılar için, kafa karışıklığına yol açabileceğini düşünmemiz ve daha da önemlisi karmaşıklığın artmasıydı. 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

Bu olanak sayesinde Power Fx, çoğu programlama dilinden daha hızlı ve daha kararlı ş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. Kolaylık olması için bu kavramı kullanmadık. 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
Tablolar
Değişkenler
Kesinlik temelli mantık
Global destek
İfade dil bilgisi
YAML formülü dil bilgisi
Tuval uygulamalarında formüller