Net Reflection Attributes Performans İyileştirme Stratejileri

2023-05-05 | #net #reflection

Bu makalede, Reflection kullanarak özel niteliklere (attributes) erişim ve performansı artırmak için kullanılabilecek stratejilere odaklanacağız. Özel Niteliklerle (Attributes) Çalışma Özel nitelikler, türler, üyeler ve diğer kod öğelerine meta veri eklemek için kullanılır. Özel nitelikler, çalışma zamanında Reflection kullanarak sorgulanabilir ve analiz edilebilir. Özel Nitelikleri Tanımlama Öncelikle, ‘System.Attribute’ sınıfından türetilmiş bir özel nitelik sınıfı tanımlayın. public class MyCustomAttribute : Attribute { public string Description { get; set; } public MyCustomAttribute(string description) { Description = description; } } Özel Nitelikleri Kullanma Türler, metotlar, özellikler ve alanlara özel nitelikleri ekleyin.

Devamı 


Net Reflection Method Property Field İşlemleri

2023-05-05 | #net #reflection

Reflection ile Metot, Özellik ve Alan İşlemleri Bu makalede, Reflection ile metot, özellik ve alan işlemlerini ele alacağız. Metotlarla Çalışma Metotları Elde Etme Type sınıfının ‘GetMethod()’ ve ‘GetMethods()’ metodları, belirli bir türdeki metotların metadatasını elde etmek için kullanılabilir. Type myType = typeof(MyClass); MethodInfo myMethod = myType.GetMethod("MyMethod"); MethodInfo[] myMethods = myType.GetMethods(); Metotları Çağırma MethodInfo sınıfının ‘Invoke()’ metodu, çalışma zamanında belirli bir nesne üzerinde metotları çağırmak için kullanılır. MyClass myInstance = new MyClass(); object[] parameters = new object[] { "parameter1", 42 }; object result = myMethod.

Devamı 


Net Reflection Type Ve Nesne İşlemleri

2023-05-05 | #net #reflection

Reflection ile Type ve Nesne İşlemleri Bu makalede, Type bilgisine nasıl erişileceğini ve dinamik olarak nesnelerin nasıl oluşturulup yönetileceğini inceleyeceğiz. Type Bilgisi Elde Etme Yöntemleri typeof Operatörü Derleme zamanında bilinen türler için Type bilgisini elde etmek için ‘typeof’ operatörü kullanılabilir. Type myType = typeof(MyClass); GetType Metodu Bir nesnenin türünü elde etmek için, o nesnenin ‘GetType()’ metodunu kullanabilirsiniz. MyClass myInstance = new MyClass(); Type myType = myInstance.GetType(); Assembly Sınıfı Bir derleme (assembly) içindeki türleri elde etmek için ‘Assembly’ sınıfının ‘GetType()’ veya ‘GetTypes()’ metodlarını kullanabilirsiniz.

Devamı 


Net Reflection Namespace

2023-05-05 | #net #reflection

System.Reflection Namespace ve Temel Sınıfları Reflection, System.Reflection namespace’i içerisinde tanımlanmış bir dizi sınıf ve yapı ile gerçekleştirilir. Bu makalede, bu namespace’i ve temel sınıflarını inceleyerek, Reflection ile çalışmaya başlamak için ihtiyaç duyulan temel bilgileri sunacağız. System.Reflection namespace’i, çalışma zamanında (runtime) derleme, modül, tür ve üye bilgilerine erişmeyi sağlayan sınıfları içerir. Başlıca sınıflar şunlardır: Assembly Assembly sınıfı, .NET uygulamalarındaki derlemeleri (assembly) temsil eder. Derleme, uygulamanın kodu ve metadatasını içeren bir bileşendir.

Devamı 


Net Reflectiona Giris

2023-05-05 | #net #reflection

Reflection’a Giriş Reflection, bir uygulamanın çalışma zamanında (runtime) kendi metadatasıyla çalışmasını sağlayan bir işlemdir. Bu, uygulamanın çalışma zamanında sınıf, metot, özellik ve alan bilgilerine erişmesini, dinamik olarak nesne örnekleri oluşturmasını ve bu nesneler üzerinde işlem yapmasını mümkün kılar. Reflection, birçok durumda kullanılabilir. Örneğin: Nesneleri ve bileşenleri dinamik olarak yüklemek ve yönetmek Test ve hata ayıklama araçlarında Serileştirme ve ters serileştirme işlemleri için Özel nitelikleri (attribute) okumak ve değerlendirmek Uygulamaların daha esnek ve dinamik olabilmesine imkan tanır.

Devamı 


.Net Expressionvisitor

2023-05-03 | #expressionvisitor #linq #net

ExpressionVisitor, .NET platformunda LINQ sorgularının ve daha fazlasının arkasındaki güçlü araçlardan biridir. Expression tree leri ziyaret etmeye ve değiştirmeye yarayan bir sınıftır. Bu makalede, .NET’te ExpressionVisitor sınıfının kullanımını ve işleyişini detaylı örneklerle inceleyeceğiz. ExpressionVisitor’a Giriş ExpressionVisitor, System.Linq.Expressions namespace’inde bulunan soyut bir sınıftır. Veriler üzerinde sorgu işlemleri yapmak ve expression tree leri değiştirmek için kullanılır. Bu sınıf, çeşitli node tipleriyle çalışarak bir expression tree yi ziyaret eder ve onları işler.

Devamı 


Edgedb Computed Links

2023-04-12 | #edgedb #edgedb-links

Computed Links, iki nesne arasındaki ilişkileri tanımlamak için kullanılan bir yapıdır. Bu bağlantılar, ilişkilendirilmiş nesnelerin birbirine olan ilişkisini hesaplamak için tanımlanmış bir sorgu veya fonksiyon kullanarak oluşturulur. Bu yapı, veritabanında tutulan verilerin tutarlılığını sağlamak için oldukça yararlıdır. Computed Links, veriler arasında sıkı bir şekilde bağlantı kurmanın yanı sıra, veritabanında saklanan verilerin değiştirilmesi veya güncellenmesi durumunda bağlantıların otomatik olarak güncellenmesini sağlar. Ayrıca, sorgulama ve raporlama işlemlerini kolaylaştırmak için de kullanılabilir. Örneğin, bir Computed Link aracılığıyla iki nesne arasındaki ilişkiyi hesaplayarak, sorgulama işlemini daha verimli hale getirebilirsiniz.

Devamı 


Edgedb İlişkiler

2023-04-12 | #edgedb #edgedb-links #edgedb-multi-link

Edgedb’de iki tablo arasında ilişki kurmak için link anahtar kelimesi kullanılır. Linkler, bir objenin başka bir objeyle ilişkilendirilmesine izin verir. Örneğin, bir User tablosu ve bir Article tablosu varsa, Article tablosundaki her bir Article, bir Userya atfedilebilir. Bu durumda, User ve Article tabloları arasında bir ilişki kurabiliriz. İlk olarak, User tablosunda bir id özelliği tanımlarız. Bu özellik, kullanıcının benzersiz bir kimliğini temsil eder. type User { required property id -> uuid; property name -> str; } Ardından, Article tablosunda bir author özelliği tanımlarız.

Devamı 


Edgedb Exclusive Constraint

2023-04-12 | #edgedb #edgedb-constraints

Edgedb’de exclusive constraint (özel kısıtlama) terimi, belirli bir özelliğin benzersiz olmasını veya belirli bir aralıkta olmasını sağlayan bir kısıtlama türünü ifade eder. Örneğin, bir User objesinde email özelliğinin benzersiz olmasını sağlayan bir özel kısıtlama oluşturabilirsiniz. Böylece, her bir User’ın sadece bir kez kaydedilmesini sağlayabilirsiniz. Aşağıdaki örnekte, email özelliğinde benzersizlik sağlayan bir özel kısıtlama tanımlıyoruz: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Devamı 