Nasıl protobuf-bulunan-liman arasında seçim yapmak ve protobuf-net
Son zamanlarda bir C aramak zorunda kaldım# Protokol Tamponlar kütüphane taşıma, aslında Google tarafından geliştirilen. Ve sanırım, iki proje çok iyi bilinen iki tarafından iki kişi buraya ait ne buldum:* *6, Jon Skeet protobuf-net, Marc Gravell yazdığı. Sorum basit: hangi birini seçmek zorunda mıyım ?
Ben oldukça C# felsefe (örneğin, varolan bir sınıf özelliklerini öznitelikler ekleyebilirsiniz) daha yakın gibi geliyor bana, Marc çözüm ve destek olabilir gibi görünüyor .NET built-in Sistemi gibi türleri.Guıd.
İkisi de gerçekten büyük projeler var ama ne görüş eminim?
CEVAP
Jon'un puan ile; eğer çoklu ortamlar üzerinde kodlama, onun sürümü diğer benzer bir API "" uygulamaları. çekirdek verir katılıyorum protobuf-net çok daha benzer olduğu için çoğu nasıl .NET serializers uygulanır, çok daha tanıdık (IMO).NET geliştiriciler. Ve Jon notları - ham ikili çıktıgerekireğer daha sonra gerekirse farklı bir API ile yeniden uygulayabilirsiniz böylece aynı olması.
Bazı protobuf-net olduğunu tekrar gösteriyorözelbu uygulama için:
- ile çalışırmevcuttürleri (sadece türlerini oluşturdu .proto)
- şeyler altında çalışır XML ve memcached gibi
- mevcut türleri için
ISerializable
uygulamak için kullanılabilir - destekler miras* seri hale getirme ve geri arama yöntemleri
- destekler
ShouldSerialize[name]
gibi ortak bir desen - işleri ile mevcut bezenmiş (
XmlType
/XmlElement
yaDataContract
/DataMember
) - anlam (örnek) SERİ-SQL modeller seri hale out-of-the-box (seri hale getirme etkin DBML) - v2, tüm öznitelikleri olmadan POCO türleri için çalışır
- v2 çalışıyor .NET 1.1 (emin değilim bu çok büyük bir satış özelliği) ve diğer birçok çerçeveler (monotouch da dahil olmak üzere - yay!)
- muhtemelen(henüz uygulanmadı) v2 olabilir tam grafik desteği* serileştirme (sadece ağaç serileştirme)
(bu özellikler 100% geçerli protobuf ikili kullanın, ama diğer diller için yenilmesi zor olabilir*=)
Nasıl Karma bir Masa ve bir Sükunet (Ö...
Nasıl Java içinde aynı adı taşıyan iki...
Nasıl DTD ve XSD arasında seçim yapmak...
Sekmeler arasında geçiş yapmak için na...
Nasıl bir denetleyici işlevi görünümle...