SORU
29 ŞUBAT 2012, ÇARŞAMBA


(OData) XML Veri Hizmetleri Vs ASP.NET Web API

Dinlendirici hizmetleri ve müşterileri çeşitli (iOS Silverlight, Windows 7, vb Telefon) oluşacaktır dağıtılmış bir uygulama tasarlıyorum. Şu anda benim hizmet uygulamak için kullanmanız gereken hangi belirlemek ediyorum, WCF Data Services (OData) veya yeni ASP.NET Web API MVC 4 ASP.NET ile çıkıyor.

Birkaç sunumlar her konuda online izledim ve şu an öncelikle filtreleme mekanizmaları URİ ve yerel hiper özelliği yerleşik yüzünden XML Veri Hizmetleri yanayım. Görebildiğim tek dezavantajı ÇİÇEĞİ olarak karşı Atom Pub şartname ayrıntı.

Bir karar vermeden önce bu iki teknoloji Hakkında Bilmem Gereken bir şey var mı? Neden birisi ASP.NET seçin Web XML Veri Hizmetleri API üzerinden?

CEVAP
2 Mayıs 2012, ÇARŞAMBA


Şu anda hiç bir söz gibi görünüyor WebApi ve XML Veri Hizmetleri arasında başka büyük farklılıklar da var. MS iyi bir makale iki karşılaştırma ile çıkıp isterdim.

Bir süre OData aşağıdaki ve aynı zamanda WebApi oldum. Her zaman birkaç büyük farklılıklar buldum.

İlk, patron tarafından ne anlama geldiğini emin değilim "MS WebApi desteklediğini", OData destekliyor değil mi yani? IMO, hem destek olan ve şu anda en az bazı örtüşme var. Windows Azure Data Market sunar Verilerini kullanarak OData, Azure Tablo Depolama kullanır OData, SharePoint 2010 sağlar OData Sorgu biter Veri, ve diğer Ürünlerden MS de destekleyen, gibi Excel PowerPivot. İlişkisel Veri geldiğinde çok güçlü bir Sorgu çerçeve. Ve Huzurlu çünkü, dil, çerçeve, cihaz, vb herhangi bir pencere ile karşılaşırsınız.

OData XML Veri Hizmetleri: seviyorum işte

OData XML Veri Hizmetleri İstemci Uygulamalar sonunda daha fazla "" ne zaman Web üzerinden Veri sorgulama. anlamlı olmasını sağladı Önce bir UI biraz farklı bir şey istediği zaman ASMX veya XML unwieldly olsun sert Web API oluşturmak için kullanın ve sürekli değişikliklere ihtiyaç vardı. Yalnızca İstemci Uygulama parametreleri dönmek için ne dikte belirtin. Ya da benim yaptığım gibi yapın ve "" İfadeleri ETMENİZ ve Sunucu. Expressions<Func<T,bool>> içine Parametreleri ve re-hidrat olarak bu Hale geçmesi Nezih. Var bir iş, ama kullanmak istiyorum ETMENİZ İstemci ve tercüme üzerinde Web kullanarak DİNLENME, tam da ne OData sağlar ve istemiyorum kullanın benim "hack" bir çözüm.

""DB Bağlantı Dizesi gerek kalmadan. YAPMALARINDA SQL teşhir gibi Sadece bir Url sağlamak ve whoala! Sorgulama başlar. Tabii ki, her iki WebApi ve XML Veri Hizmetleri kimlik Doğrulama/Yetkilendirme desteği, access kontrol edebilirsiniz, ek Ekle "Nerede" ifadeleri rolleri veya diğer verilere dayalı yapılandırma. Daha doğrusu SQL (bina görünüm veya Saklı Yordamlara gibi) Web Apı katmanları içinde bunu yapmak istiyorum. Ve Uygulamaları sorguları kendilerini inşa edebilirsiniz şimdi, Ad-Hoc bakın ve Raporlama araçları kaldıraç OData başlayan Bİ ve Kullanıcıların kendi sonuçlarını tanımlamak için izin verir. Statik dayanan çok az kontrolü olduğu Raporlar.

Ne zaman geliştirirken Silverlight, Windows 8 Metro ya ASP.NET (MVC, WebForms, vb), sadece eklemek bir "Hizmet Başvurusu" Visual Studio için seçimden Veri Hizmeti ve hızlı bir şekilde kullanmaya başlayın ETMENİZ için sorgu Veri VE bir "Data İçeriği" Müşteri, yani bir parça değişimleri ve sağlar için "Gönder" değişiklikleri atomik geri Server. Bu Silverlight RIA Hizmetleri için çok benzer. Burada kullanılan XML Veri Hizmetleri yerine RIA Services, ama zaman olmadı destek eğlence devri açmıştır veya Eylemler, ama şimdi yok :) XML Veri Hizmetleri diğer bir avantajı da üzerinde RİA Hizmetleri, hangisi yapabilme "Projeksiyonlar" İstemci. Bu, bir Varlığın tüm Özelliklerini dönmek istemiyorum örtmek performans ile yardımcı olabilir. Bir "Veri İçeriği İstemci İş ile uğraşırken büyük" Uyg.

Bu yüzden, XML Veri Hizmetleri özellikle SQL Server ve Varlık Çerçevesi kullanıyorsanız eğer ilişkileri ile Veri varsa, harika. Hızlı bir şekilde, çok az Kod ile yerinde Sorgulanabilir Veri Eylemler (operasyonlar, yani iş akışı, arka plan işlemleri çağırmak için çağrı) ortaya çıkarmak için mümkün olacak. XML Veri Hizmetleri sadece güncellenmiştir. Yeni sürüm başlattı. Tüm yeni işlevlerini kontrol edin.

WCF Veri Hizmetleri eksisi":" HTTP üzerinden Yığın gevşek. kontrol. Büyük kusur Koleksiyonları geri IQueryable<T> Yöntem bulmuştum. RIA Hizmetleri VE WebApi aksine, IQueryable Yöntemi mantığı geliştirmek için tam erişim yok. RIA Hizmetleri ve WebApi, ne istersen IQueryable<T> dönünceye kadar uzun yazabilirsiniz. XML Veri Hizmetleri, SADECE "Nereye" İfadesi Expression<Func<T,bool>> önleme Yöntemleri kullanarak. bir ekleme erişebilir Bu hayal kırıklığı yaşadım. Mevcut uygulama RIA Hizmetleri kullanır ve biz gerçekten IQueryable mantığı kontrol yeteneği. Bu konuda umarım yanılıyorumdur ve sadece bir şey eksik

Ayrıca, XML Veri Hizmetleri henüz tam olarak tüm SERİ Operatörleri ya da desteklemiyor. Hala WebApi daha fazla olsa da destekler.

Ne WebApi???

  1. Http İsteği kontrol/Yanıt severim
  2. Kolay takip (MVC desen yararlanarak). Daha fazla takım gelecek eminim.

Şu an için (benim anlayış) yoktur "Data İçeriği" destek İstemci (yani upload) verilerinizi görebileceğiniz ASP.NET Sunucu Tarafı Kodu, vs.), çünkü WebApi değil gerçekten Varlık Veri Modelleri gibi XML Veri Hizmetleri/OData. Model Nesneleri/IEnumerable, IQueryable kullanarak Koleksiyon sunabilir, ancak Yabancı Anahtar/Birincil Anahtar yok "Navigasyon Özellikleri" (yani müşteri.Faturalar) Varlıklar yoktur çünkü İstemci üzerinde yüklü, bir kez kullanmak için "Veriler Bağlamında" hangi zaman uyumsuz olarak yükler (veya genişletmek bir çağrı kullanarak$) yönetir değişiklikleri, ve. Hayır tarafından üretilen kod "" RIA Hizmetleri veya XML Veri Hizmetleri gibi Müşteri, Varlık Veri Modeli. tasviri var Ben demiyorum yapamazsın/yok Model İstemci temsil verilerinizi, ama el ile doldurmak Verileri ve yönetmek "faturalar" to be set ile her bir "müşteri" bir kez onlar üzerinden alınan Web. Bu zor, özellikle tüm zaman Uyumsuz şeyler çıkar. İlk geri gelecek bilmiyorsun. Bunu burada açıklamak zor olabilir, ama sadece "İçerik" şeyler RIA Hizmetleri veya WCF Data Services. Veri hakkında bilgi İş Uygulamaları Hattı ile uğraşırken, bu benim için büyük sorun. Bu ağırlıklı olarak verimliliği ve sürdürülebilirliği üzerine kuruludur. Obsolulately Veri bir Bağlam olmadan Uygulamaları oluşturabilirsiniz. Bu işleri kolaylaştırır, özellikle Silverlight, WPF, Windows 8 Metro. İlişkisel Varlıklar bellek uyumsuz yüklü olması ve İki Bağlayıcı olması gerçekten hoş olabilir.

Bunu söyledikten sonra, bu birkaç gün WebApi destek anlamına bir "Veri Bağlam" İstemci? Olabilir bence. Ayrıca, daha fazla takım ile, Visual Studio bir Proje Veritabanı Şema (veya Varlık Çerçevesi) göre tüm CRUD Yöntemleri oluşturabilir.

Ayrıca, sadece olanı söylüyorum ben .NET .NET XML Veri Hizmetleri veya WebApi ile çalışmaya gelince Çerçeveler, HTML/JS de büyük bir oyuncu olduğunu gayet iyi biliyorum. Sadece Silverlight UI, ya da Sunucu Tarafında ASP.NET Kod vs. ile uğraşırken buldum yararları söz ediyordum. İnanıyorum gelişmesiyle "İndexedDB" HTML5/JavaScript olan bir "Veri Bağlam" ve bir SERİ çerçevesinde JavaScript de kullanılabilir hale gelir, yapma yeteneği sorgulama OData Hizmetleri daha kolay, JavaScript (kullanabilirsiniz DataJS bugün OData). Artı, KnockoutJS MVVM desteklemek için kullanarak ve HTML/JS Bağlayıcı olarak, bir esinti yapar :)

Şu anda kullanmak için hangi araştırma yapıyorum. Mutlu da olurdum, ama OData bir sonraki Uygulama başlıca Analizi (salt okunur) ile ilgili olduğu gerçeğine dayanarak doğru eğilmek eğilimindedir ve zengin etkileyici Dinlendirici bir Apı istiyorum. OData XML Veri Hizmetleri bana verir inanıyorum çünkü WebApi destekler ele$, $skip, $filtre, $Koleksiyonları üzerinde orderby. Projeksiyon desteklemiyor İçerir ($genişletin), vb. "Güncellemeleri/Ekler" ve bizim Veri oldukça ilişkisel./Siler bir şey yok

Diğerleri tartışmaya katıl ve düşüncelerini etsin inşallah. Hala ve diğer fikirlerini duymak isterim karar veremedim. Gerçekten de çerçeveler harika olduğunu düşünüyorum. Eğer gerekiyorsa ikisini de kullanın neden tercih olup olmadığını merak ediyorum. DİNLENME binası alakalı tüm Müşteri aramaları neyse. Sadece bir düşünce :)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BuzzFeedVideo

    BuzzFeedVide

    10 AĞUSTOS 2011
  • Fraser Raft

    Fraser Raft

    9 Mart 2010
  • kndx

    kndx

    11 Mart 2006