Dynamics AX 7 ile X++’a Gelen Yenilikler

Merhaba,

Bu yazıda ax 7 ile birlikte x++’a gelmiş yeniliklerden bahseceğim. Aşağıda bahsedeceğim özellikler halihazırda c# da bulunuyor. Kullanımları c# ile neredeyse birebir aynı. Buyrun başlayalım.

1. Inline variable desteği

Artık sadece ilgili method’un başında değil kod içinde istediğimiz yerde değişken tanımlayabiliyoruz. Tanımlanılan değişken sadece, tanımlandığı scope boyunca kullanılabiliyor. Aşağıda for da kullanılan i değişkenini direkt ifadenin içinde tanımladım. Ax 7 den önceki versiyonlarda bu kod hata vericektir.

  void MyMethod()
  {
    for (int i = 0; i < 10; i++)
    {
      info(strfmt("i is %1", i));
    }
  }

 

2. Var keyword desteği

Değişken tanımlarken tipini belirtmek zorunda değiliz. var keyword’ünü kullanarak değişkenin initial value’su ne ise tipinin o olmasını sağlayabilirsiniz.

var var1 = "Bu bir string ifadedir.";
var var2 = 27; // integer

 

3. Using deyimi

Using ifadesi içindeki obje sadece using’in scope’u boyunca geçerli. scope bitince obje(örnekteki sr objesi) kill ediliyor. Aşağıdaki örnekde hem using hemde inline variable declaration mevcut.

  static void AnotherMethod()
  {
    str textFromFile;

    using (System.IO.StreamReader sr = new System.IO.StreamReader("c:\\test.txt"))
    {
      textFromFile = sr.ReadToEnd();
    }
  }

 

4. Finally bloğu

Try/catch ifadesine yeni eklenen bir keyword. kod catch’e düşsün düşmesin mutlaka çalışıyor.

  try
  {
    // ...
  }
  catch
  {
    // ...
  }
  finally
  {
    // her durumda bu blok içindeki kod çalışır.
    // dispose vb işlemlerde kullanılabilir.
  }

 

5. Consts desteği

AX 7 de macrolar halen duruyor ve kullanılıyorlar. Fakat artık consts desteği geldiği için ms bunun kullanılmasını öneriyor. macroya göre faydaları ise:

  1. VS IntelliSense tarafından tanınıyorlar.
  2. Cross referenced destekleniyor. Development sırasında bir constant’ın nerelerde kullanıldığını bulabiliyorsunuz.
  3. consts scope bazlı çalışıyor.
  4. consts içindeki değeri debug sırasında görebiliyorsunuz. macroları göremiyorsunuz. (hatta bu sebeple ax da kodları korumak, enkripte etmek için macroları kullanan toollar mevcut)
  5. consts için access modifiers tanımlayabilirsiniz. private, protected, public.
  6. consts tanımında /// ile başlayan comment tanımlayabilirsiniz. intellisense de veya kod commentlerinden dökümantasyon oluşturulduğunda yazdığınız açıklama gözükecektir.
private const str MyContant = 'SomeValue';

kullanımı:

str value = MyClass::MyContant;

 

6. Class propertylerine access modifiers desteği

7 den önceki ax versiyonlarında class decleration da tanımlı değişkenler standart olarak protected geliyordu. Artık private, protected ve public kullanabileceğiz.

7. Using yönergesi ile referans çağırma

Özellikle .NET sınıfları ile çalışırken büyük kolaylık sağlayacak bir başka özellik. kullanımı c# ile aynı.

using System;
using IONS=System.IO; // Namespace alias
using Alist=System.Collections.ArrayList; // Class alias

public class MyClass2
{
  public static void Main(Args a)
  {
    Int32 I; // Alternative to System.Int32
    Alist al; // Using a class alias

    al = new Alist();
    str s;

    al.Add(1);

    s = IONS.Path::ChangeExtension(@"c:\tmp\test.xml", ".txt");
  }
}

 

Şuan için en çok gözüme çarpan değişikliklerden bahsettim. Başka değişikliklerde mevcut. Bir sonraki yazımda da onlara değineceğim.

Hoşçakalın.

Bir Cevap Yazın