forked from protobuf-net/protobuf-net
-
Notifications
You must be signed in to change notification settings - Fork 0
/
What Files Do I Need.txt
72 lines (47 loc) · 3.07 KB
/
What Files Do I Need.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
protobuf-net can be used on multiple platforms, and many different builds are available.
In particular, though, there are 2 main uses:
- the "full" version, which includes as much type-model / runtime support as will work on your chosen platform
- the "core only" version, which includes just the fundamental reader/writer API and core objects
If you are on a rich framework like full .NET, the "full" version is entirely appropriate and will work fine.
However, if you are on a restricted framework (Silverlight, Phone 7, WinRT, etc) then many operations would either
be slow, or impossible. To address this, protobuf-net provides these frameworks with a "precompile" facility,
which moves all of the impossible / slow steps to a build-time operation, emitting a serialiation dll you
can reference and use (now very fast etc) from your chosen framework.
More information about the precompiler is here:
http://marcgravell.blogspot.co.uk/2012/07/introducing-protobuf-net-precompiler.html
protobuf-net also includes a utility for processing ".proto" files (the schema DSL used by multiple protobuf
implementations) into C# and VB.NET; this is the ProtoGen tool.
Neither precompile nor ProtoGen need to be deployed with your application.
So: what do I need?
example: running on .NET 4.0
solution: copy the files from Full\net30. Note that protobuf-net does not require any 4.0 features, so using "net30" will
give you all of protobuf-net including WCF support (which is the difference between "net20" and "net30").
example: running on Silverlight 4
option 1: copy the files from Full\sl4, and accept that it isn't quite as optimal as it could be - but perfectly fine
for light-to-moderate serialization usage.
option 2: copy the files from CoreOnly\sl4, and use "precompile" (in the Precompile folder) at build-time to generate
a serialization assembly (this also needs to be referenced and deployed from you application).
Additional:
Note that each framework contains 3 files:
- protobuf-net.dll the library itself
- protobuf-net.xml intellisense xml, used by thre IDE when developing
- protobuf-net.pdb debugging symbols, useful when debugging
Of these - the only one you **need** to deploy is the dll; the pdb may be useful for investigating crash reports. The
xml is used only by the IDE.
Folders:
cf20 compact framework 2.0
cf35 compact framework 3.5
ios iPad/iPod/iPhone via MonoTouch
net11 regular .NET 1.1 (excluded generics)
net20 regular .NET 2.0 (excludes WCF hooks)
net30 regular .NET 3.0 or above (including 3.5, 4.0, 4.5, ...)
netcore45 windows store apps / windows runtime 4.5
portable portable class library (phone 7, xna, silverlight)
sl4 silverlight 4 or above
wp71 windows phone 7.1
unity specific to unity (avoids missing "interlocked" methods)
License:
The full license is shown separately, but boils down to "do what you like with it, don't sue me,
don't blame me if it goes horribly wrong, don't claim you wrote protobuf-net"
Finally:
All feedback welcome.