Microsoft 365 verileriyle, örneğin e-postalar, takvimler, kişiler veya görevler üzerinde çalışırken, her zaman tüm öğeleri almak gerekli değildir. E-posta uygulamalarınızda belirli veri özelliklerini filtreleyebilmek, sıralayabilmek ve alabilmek de faydalıdır. Örneğin, göndericilere göre mesajları filtrelemek, takvim etkinliklerini tarihe göre sıralamak veya yalnızca birkaç alanı getirmek, uygulamanızın hızlı kalmasına yardımcı olabilir.

İşte OData sorgularının devreye girdiği yer burası. Microsoft Graph, geliştiricilerin verileri sunucuda doğrudan filtrelemelerine, sıralamalarına ve seçmelerine yardımcı olmak için OData’yı destekler, böylece veriler uygulamanıza gönderilmeden önce işlenir. Sonuç olarak daha hızlı performans, daha küçük yükler ve daha duyarlı uygulamalar elde edilir.

Aspose.Email for .NET bu süreci [ODataQueryBuilder][2] sınıfı ile kolaylaştırır. Bu makalede, nasıl çalıştığını ve C# içinde dinamik, güçlü Microsoft Graph sorguları oluşturmak için nasıl kullanabileceğinizi inceleyeceğiz.

Neden OData Sorgularını Kullanmalısınız?

Microsoft Graph API geniş özellikler sunar, ancak sorguları manuel olarak oluştururken karmaşık olabilir. OData parametreleri, sunucu tarafı filtreleme, sıralama, sayfalama ve özellik seçimini etkinleştirir; bu da istemci tarafı işlemeyi en aza indirir. Bu yaklaşım, veri transferini azaltarak ve yanıt sürelerini hızlandırarak verimliliği artırır, uygulamalarınızı daha hızlı ve daha ölçeklenebilir hâle getirir.

OData desteği ile artık şunları yapabilirsiniz:

  • Özel koşulları kullanarak mesajları, kişileri veya etkinlikleri filtreleyin.
  • OrderBy ile verileri artan veya azalan sırada sıralayın.
  • Yük boyutunu azaltmak için yalnızca gerekli özellikleri seçin.
  • Büyük posta kutuları için ideal olan Top ve Skip kullanarak sayfalama uygulayın.
  • Expand ile ilgili varlıkları (ör. ekler) genişletin.
  • Daha hızlı erişim için veri kümelerini sayın ve arayın.

Bu yetenekler, yeni [ODataQueryBuilder][2] sınıfı sayesinde erişilebilir ve tip güvenliğidir.

Microsoft Graph Sorgularını C#’ta Oluşturmak İçin .NET Bileşeniniz

Aspose.Email for .NET e-posta işleme için güçlü bir API’dir ve geliştiricilerin Microsoft 365, Exchange ve Outlook verileriyle C# içinde doğrudan çalışmasını sağlar. MSG, EML, PST ve MBOX gibi popüler e-posta formatlarının okunmasını ve yazılmasını destekler ve Microsoft Graph API dahil çeşitli protokoller ve hizmetlerle bütünleşir.

Yerleşik [ODataQueryBuilder][2] kullanarak, C# içinde dinamik ve tip güvenli OData sorguları oluşturabilirsiniz. Bu, karmaşık sorgu dizgileri yazmadan, belirli posta kutusu verilerini — mesajları, kişileri veya takvim etkinliklerini — filtrelemeyi, sıralamayı ve almayı kolaylaştırır.

Sorgu mantığını Microsoft Graph sunucusuna devrederek, Aspose.Email for .NET, geliştiricilerin Microsoft 365 verileriyle etkileşimde bulunan daha hızlı, daha verimli ve ölçeklenebilir uygulamalar oluşturmasına yardımcı olur.

Başlamak için, .NET projenize Aspose.Email NuGet paketini yükleyin:

Install-Package Aspose.Email

Bu paket, ihtiyaçlarınızı karşılamak için gerekli tüm sınıfları içerir.

ODataQueryBuilder Sınıfını Tanıtıyoruz

[Aspose.Email.Clients.Graph.ODataQueryBuilder][2] sınıfı, Graph sorgularını nasıl yazdığınızı basitleştirmek için oluşturulmuştur. Bunu, aşağıdakiler dahil olmak üzere çeşitli Graph istemci yöntemleriyle kullanabilirsiniz:

  • ListFolders
  • ListMessages
  • ListContacts
  • ListCalendarItems
  • ListAttachments
  • ListCategories
  • ListOverrides
  • ListRules
  • ListTaskLists
  • ListTasks
  • ListNotebooks

Her biri, Graph isteklerinizin içinde doğrudan, gelişmiş filtreleme, sıralama, sayfalama ve seçim için isteğe bağlı bir ODataQueryBuilder parametresini destekler.

Pratik Örnek: Posta Kutusu Verilerini Filtreleme ve Sıralama

Aşağıdaki kod örneği, temel ve gelişmiş sorgu senaryolarını gösterir. Klasör sıralamasını ve gelişmiş mesaj filtrelemeyi sergileyerek, sıralama, kriter, sayfalama, seçilen alanlar ve ilgili varlıkların genişletilmesi için OData parametrelerini açıklar.

var accessParameters = Settings.User1;
var provider = new AzureConfidentialTokenProvider(
    accessParameters.TenantId,
    accessParameters.ClientId,
    accessParameters.ClientSecret);

var client = GraphClient.GetClient(provider, accessParameters.TenantId);
client.Resource = Aspose.Email.Clients.Graph.ResourceType.Users;
client.ResourceId = accessParameters.Username;
client.EndPoint = "https://graph.microsoft.com";

// List folders sorted by name
var builder = new ODataQueryBuilder { OrderBy = "name asc" };
var folders = client.ListFolders(builder);
foreach (var folder in folders)
    Console.WriteLine(folder.DisplayName);

// Advanced message filtering
var folderId = folders.Find(x => x.DisplayName == "Inbox").ItemId;
builder = new ODataQueryBuilder {
    Filter = "startswith(name,'A')",
    OrderBy = "name asc",
    Top = 10,
    Skip = 5,
    Select = new[] { "name", "age" },
    Expand = new[] { "children", "parents" },
    Count = true,
    Search = "\"John Doe\"",
    Format = "json"
};
var msgs = client.ListMessages(folderId, builder);
foreach (var msg in msgs)
    Console.WriteLine(msg.Subject);

Gerçek Dünya Senaryoları

Microsoft Graph verileriyle .NET uygulamalarınızda çalışmayı geliştirmek için [ODataQueryBuilder][2] uygulanabilecek bazı pratik durumları göz önünde bulundurun:

1. UI Klasör Listeleri
Klasörleri alfabetik olarak sıralayın [OrderBy][3] = "name asc" temiz bir kullanıcı arayüzü için.

2. Özel Filtreleme
Belirli göndericilerden gelen veya belirli konulara sahip mesajları bulmak için [Filter][4] kullanın.

3. Büyük Posta Kutularını Sayfalama
[Top][5] ve [Skip][6] kombinasyonunu kullanarak büyük posta kutularını yönetilebilir sonuçlara bölün.

4. Belirli Özellikleri Seç
Yükü en aza indirmek ve performansı artırmak için sadece ihtiyacınız olan alanları [Select][7] ile alın.

5. İlgili Verileri Dahil Et
Tek bir sorguda ekleri, kategorileri veya konuları dahil etmek için [Expand][8] kullanın.

OData’yı Etkili Kullanma İpuçları

  • GraphClient’inizin Resource, ResourceId ve EndPoint öğelerini doğru şekilde belirttiğinden emin olun.
  • [AzureConfidentialTokenProvider][13] gibi uygun bir kimlik doğrulama sağlayıcısı seçin.
  • En iyi sorgular için [Filter][4], [Select][7], [OrderBy][3] ve [Top][5] öğelerini birleştirin.
  • Tüm verileri yüklemeden toplam öğe sayısını elde etmek için [Count][14] öğesini kullanın.
  • Büyük veri kümelerini verimli bir şekilde işlemek için sayfalama mantığını hazırlayın.

Sonuç

Bu makalede, Microsoft Graph sorgularını oluşturmak ve yürütmek için Aspose.Email for .NET kütüphanesinin [ODataQueryBuilder][2] sınıfını nasıl kullanacağımızı öğrendik. OData sözdizimini manuel olarak oluşturmak yerine, artık C# kodunuzda tip‑güvenli, dinamik ve okunabilir sorgular oluşturabilirsiniz. Aspose.Email for .NET’te OData sorgu desteğinin tanıtılması, geliştiricilerin Microsoft Graph ile etkileşen daha akıllı ve daha verimli uygulamalar oluşturmasını sağlar.

Microsoft Graph ile daha hızlı ve daha verimli .NET uygulamaları oluşturmaya hazır mısınız?

Ayrıca Bakınız