CAP Teoremi

2023-05-05 | #cap-teoremi #mikroservis

Bilgisayar bilimi ve veri tabanı sistemleri alanında, Cap Teoremi önemli bir kavramdır. Eric Brewer tarafından 2000 yılında öne sürülen bu teorem, dağıtık sistemlerin üç temel özelliğini - tutarlılık (consistency), erişilebilirlik (availability) ve bölüm toleransı (partition tolerance) - ele alır. Bu makalede, Cap Teoremi’ni daha iyi anlamak için örneklerle bir inceleme yapacağız. Cap Teoremi’nin Temel İlkeleri Cap Teoremi, dağıtık bir sistemin aşağıdaki üç özellikten sadece ikisini aynı anda sağlayabileceğini belirtir: Tutarlılık (Consistency): Sistemdeki tüm düğümler, aynı anda ve en güncel verilere erişebilir.

Continue reading 


Net Reflection Generic Türler ve Yapıcılarla Çalışma

2023-05-05 | #net #reflection

Reflection, çalışma zamanında generic türler ve yapıcılarla işlem yapmak için kullanılabilir. Bu makalede, Reflection ile generic türleri ve yapıcıları nasıl kullanabileceğinizi inceleyeceğiz. Generic Türlerle Çalışma Generic Türleri Elde Etme Belirli bir generic türü elde etmek için, ‘Type.MakeGenericType()’ metodunu kullanarak türün generic parametrelerini belirtin. Type openGenericType = typeof(List<>); Type closedGenericType = openGenericType.MakeGenericType(typeof(int)); Generic Türlerin Örneklerini Oluşturma Generic türlerin örneklerini dinamik olarak oluşturmak için ‘Activator.CreateInstance()’ metodunu kullanın. object instance = Activator.

Continue reading 


Net Reflection Türetilmiş Sınıfların ve Arabirimlerin Kullanımı

2023-05-05 | #net #reflection

Reflection, çalışma zamanında türetilmiş sınıflar ve uygulanan arabirimler üzerinde işlem yapmak için kullanılabilir. Bu makalede, Reflection ile türetilmiş sınıfları ve arabirimleri nasıl kullanabileceğinizi inceleyeceğiz. Türetilmiş Sınıflarla Çalışma Türetilmiş Sınıfları Bulma Belirli bir temel sınıftan türetilen sınıfları bulmak için, derlemedeki tüm türleri inceleyin ve ‘Type.IsSubclassOf()’ metodunu kullanarak temel sınıfı kontrol edin. Type baseType = typeof(MyBaseClass); Assembly assembly = Assembly.GetExecutingAssembly(); List<Type> derivedTypes = assembly.GetTypes().Where(type => type.IsSubclassOf(baseType)).ToList(); Türetilmiş Sınıfların Örneklerini Oluşturma Türetilmiş sınıfların örneklerini dinamik olarak oluşturmak için ‘Activator.

Continue reading 


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.

Continue reading 


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.

Continue reading 


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.

Continue reading 


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.

Continue reading 


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.

Continue reading 


.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.

Continue reading 


Edgedb Computed Links

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

Computed Links is a structure used to define relationships between two objects. These links are created by using a defined query or function to calculate the relationship between associated objects. Computed Links is a structure used to define relationships between two objects. These connections are created by using a defined query or function to calculate the relationship between the associated objects. This structure is very useful for ensuring consistency of the data held in the database.

Continue reading 


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.

Continue reading 


Edgedb Exclusive Constraint

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

The term exclusive constraint in EdgeDB refers to a type of constraint that ensures a specific property is unique or within a certain range. For example, you can create an exclusive constraint in a User object that ensures the email property is unique, thus ensuring that each user is only saved once. In the following example, we are defining an exclusive constraint that ensures uniqueness in the email property: type User { required property id -> uuid; required property name -> str; exclusive constraint unique_email on (.

Continue reading 


Edgedb Constraints

2023-04-11 | #edgedb #edgedb-constraints

Edgedb is a relational database management system (RDBMS) that provides various constraint mechanisms to securely store and manage your data while preserving the integrity of the data recorded in your database. Constraints are a set of rules used to maintain the integrity of the data stored in your database. There are five different types of constraint: 1. Primary Key Constraints: Primary key constraints ensure that each row is uniquely identified. This constraint specifies that there can only be one primary key column in a table, and each value in this column can only be used once.

Continue reading 


Edgedb Property Kullanımı (Required, Optional)

2023-04-11 | #edgedb #edgedb-properties

EdgeDB, nesne yönelimli programlama ve veri modelleme gibi kavramları PostgreSQL veritabanı sistemiyle birleştiren bir veritabanı yönetim sistemi olarak öne çıkıyor. EdgeDB, nesne modelleri oluşturmak için bir veri tanımlama dili kullanır ve bu modellerin özelliklerinin belirtilmesi gerekiyor. Bu özellikler, zorunlu veya isteğe bağlı olabilir. Bu makalede, EdgeDB’deki zorunlu ve isteğe bağlı özelliklerin ne olduğunu ve nasıl kullanıldığını açıklayacağız. Zorunlu özellikler, bir nesnenin oluşturulması için gerekli olan özelliklerdir. Bir zorunlu özellik olmadan bir nesne oluşturulamaz.

Continue reading 


Edgedb Object Type

2023-04-11 | #edgedb #edgedb-types

EdgeDB can be defined as an object-oriented database management system. Data is defined as object types, and these types are defined with attributes and methods. In this article, a detailed explanation will be provided about the object type in EdgeDB. The object type is one of the object types in EdgeDB. An EdgeDB object can be thought of as a class, and these objects have attributes and methods. The object type defines the characteristics of an object type by keeping these attributes and methods together.

Continue reading 


Edgedb Range

2023-04-11 | #edgedb #edgedb-types

Edgedb offers a data type called range, which represents a range or numerical interval. The range data type is very useful for mathematical or numerical operations, and is commonly used in database queries. The range data type is expressed as range<T>, where T represents the data type used in the range. The range data type represents an interval between two values and can be defined for a specific data type. For example, the range<int64> data type represents a numerical interval between two int64 numbers.

Continue reading 


Edgedb Tuple Usage

2023-04-11 | #edgedb #edgedb-types

Edgedb is a modern database that supports the tuple data type. Tuple data type is used to represent combinations of different data types and this data structure can contain named or unnamed elements. The Tuple data type is used to store combinations of multiple different data types. In edgedb, the tuple data type is defined using the keyword tuple. The following example defines an unnamed tuple instance, which contains a str and an int64 element:

Continue reading 


EEdgedb array usage

2023-04-11 | #edgedb #edgedb-types

The array data type is used to store multiple data elements in a single data structure. In edgedb, the ‘array of’ syntax is used to define arrays. For example, the following example defines an array named colors which contains color names of type str: CREATE TYPE Product { required property name -> str; required property colors -> array of str; }; INSERT Product { name := "T-Shirt", colors := ["Red", "Green", "Blue"] }; SELECT Product.

Continue reading 


Edgedb Scalar Veri Tipleri

2023-04-11 | #edgedb #edgedb-types

Edgedb, standart veri tiplerine ek olarak bazı özel veri tipleri sağlar. Bu özel veri tipleri, uygulama geliştiricilerine daha fazla esneklik ve veri bütünlüğü sağlar. İşte edgedb’de kullanılabilen bazı scalar veri tipleri: str str, string veri tiplerini ifade eder. edgedb’de, bir string ifadesini tırnak işaretleri içinde yazarak oluşturabilirsiniz: SELECT 'Hello, world!' int int, tamsayı veri tiplerini ifade eder. edgedb’de, bir tamsayıyı doğrudan yazarak veya matematiksel işlemler kullanarak oluşturabilirsiniz: SELECT 42 + 13 float

Continue reading 