-
Notifications
You must be signed in to change notification settings - Fork 7
/
README.html
199 lines (199 loc) · 6.86 KB
/
README.html
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>XmlRpcCS</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<h1>XmlRpcCS</h1>
<h2>Download</h2>
Homepage: <a href="http://opaque.ods.org/XmlRpcCS/">XmlRpcCS</a><br>
Package: <a href="http://opaque.ods.org/XmlRpcCS/XmlRpcCS-1.10.zip">XmlRpcCS-1.10.zip</a>
<h2>Introduction</h2>
This package provides a simple XML-RPC client and server for C#
applications. Possibly any .NET applications though I've not tested
that. It's pure C#, using the stock .NET assemblies and nothing else.<p>The
goals of XmlRpcCS were to keep it small and simple. The motivation was to write
something that was easy to use while being flexible. </p>
<h2>Notable Features</h2>
<ul>
<li>Fully XML-RPC specification compliant, including key extensions. </li>
<li>Simple client (XmlRpcRequest) </li>
<li>Complete single class embeddable server (XmlRpcServer) </li>
<li>XML-RPC System object implemented (XmlRpcSystemObject) </li>
<li>Method level exposure granularity (XmlRpcExposedAttribute)</li>
<li>Mono support (See <a href="docs/MONO.html">Mono</a>) </li>
<li>.NET Compact Framework support (See <a href="docs/CF.html">CF</a>). </li>
<li>Option of dynamic local proxies.</li>
</ul>
<h2>Prerequisites to Build
</h2>
<ul>
<li>Have .NET SDK loaded (version >= 1.0) </li>
<li>Have csc and friends in your PATH. </li>
<li>Put nant/bin into your PATH (nant is an OpenSource C# build tool,
minimal binaries included in ./nant)</li>
</ul>
<h2>To Build</h2>
In a command shell:
<pre> nant -find all
</pre>
<h2>Basic Test</h2>
Open two command shells, in one:
<pre> SampleServer
</pre>
In the other:
<pre> SampleClient
</pre>
<h2>Documentation</h2>
<ul>
<li>
The API documentation: <a href="docs/classes/XmlRpcCS.html">Documentation</a></li>
<li>
The descriptions of the type mapping: <a href="docs/TYPES.html">Types</a></li>
<li>
A UML doodle about the serialize/deserialize
class inheritance: <a href="docs/XmlRpcSerialization.png">Serialization</a></li>
</ul>
<h2>Sample Code</h2>
Under src/samples there are examples. Read the <a href="docs/EXAMPLES.html">Examples</a> for more info.
<h2>Unit Tests</h2>
<p>Under tests/ there are some basic unit tests. To run them have NUnit
installed, edit the path to NUnit in xmlrpccs.build and then:</p>
<pre> nant -find unit-tests</pre>
<p>Why didn't I use nant's nunit task you ask? It's rather broken.</p>
<h2>License</h2>
XmlRpcCS is under the BSD license. See: <a href="LICENSE.html">License</a>
<h2>References</h2>
<ul>
<li><a href="http://xmlrpc.org">xmlrpc.org</a> To learn more about
XML-RPC. </li>
<li><a href="http://nant.sourceforge.net">nant.sourceforge.net</a> To
learn more about nant. </li>
<li><a href="http://nunit.sourceforge.net">nunit.sourceforge.net</a>
To learn more about NUnit unit testing.</li>
<li><a href="http://go-mono.net">go-mono.net</a> To learn more about
the mono project
</li>
</ul>
<h2>To Do</h2>
<ul>
<li>Support system object "capabilities" method</li>
<li>Improve system object's "methodHelp" support - rip from XML docs somehow.</li>
<li>Method overloading based on arguements</li>
<li>More unit tests</li>
<li>Tutorial doc</li>
</ul>
<h2>Changes</h2>
<table border="1">
<tbody>
<tr>
<th>Version</th>
<th>Date</th>
<th>Changes</th>
</tr>
<tr>
<td style="vertical-align: top;">1.10
</td>
<td style="vertical-align: top;">200300617</td>
<td style="vertical-align: top;">Support for dynamic local proxies.<br>
Bug fix to XmlRpcException.ToString()<br>
Bug fix to XmlRpcServer Stop/Start
</td>
</tr>
<tr>
<td style="vertical-align: top;">1.9
</td>
<td style="vertical-align: top;">20030425</td>
<td style="vertical-align: top;">.NET Compact Framework compatible<br>
XSL method doc extraction for system.methodHelp<br>
Stop() method on XmlRpcServer (Thanks: "Chris" <[email protected]>)
</td>
</tr>
<tr>
<td style="vertical-align: top;">1.8
</td>
<td style="vertical-align: top;">20030415
</td>
<td style="vertical-align: top;">Threaded XML-RPC responses behind the
XmlRpcServer<br>
Collection types moved to interfaces at all levels.<br>
methodHelp system method basic implementation.<br>
Bug fix, null returns throw an exception.<br>
AssemblyInfo standard class added.<br>
mime type "test" -> "text" typo fix (Thanks:
"Tony" <[email protected]>)<br>
Request buffering fix. (Thanks: "Tony" <[email protected]>)
</td>
</tr>
<tr>
<td style="vertical-align: top;">1.7<br>
</td>
<td style="vertical-align: top;">20030404<br>
</td>
<td style="vertical-align: top;">build cleanups<br>
initial mono support<br>
bugfix in XmlRpcServer's string building
</td>
</tr>
<tr>
<td valign="top">1.6</td>
<td valign="top">20030325</td>
<td> Fixed a deserializer bug with structs in structs<br>
Better look to documentation I think<br>
Google example<br>
Some performance improvements<br>
A few unit tests.</td>
</tr>
<tr>
<td valign="top">1.5</td>
<td valign="top">20030301</td>
<td> Improve document formatting and content.<br>
Some code refactoring.
</td>
</tr>
<tr>
<td valign="top">1.4</td>
<td valign="top">20030217</td>
<td> XLST for /doc XML -> HTML<br>
Documentation
</td>
</tr>
<tr>
<td valign="top">1.3</td>
<td valign="top">20030210</td>
<td> Boxcaring supported (major speed up under correct conditions!)<br>
Request deserializer bug fix<br>
Various refactorings, particularly Invoke method<br>
Samples improved<br>
Notes improved </td>
</tr>
<tr>
<td valign="top">1.2</td>
<td valign="top">20030130</td>
<td> Introspection via "system" object<br>
Added optional XmlRpcExposed Attribute<br>
Moved to using "is" operator...damn C# is syntax fat<br>
Fix known deserializer bug pertaining to containers (array/struct) in
containers </td>
</tr>
<tr>
<td valign="top">1.1</td>
<td valign="top">20030128</td>
<td> Bug fix in request deserializer<br>
Better samples<br>
response.FaultCode/.FaultString added<br>
indentation on the XML in ToString of request/response </td>
</tr>
<tr>
<td valign="top">1.0</td>
<td valign="top">20030125</td>
<td> Support for base64<br>
Use .NET's XmlWriter<br>
Centralize XML-RPC tokens into XmlRpcXmlTokens
</td>
</tr>
</tbody>
</table>
<address> <a href="mailto:[email protected]">[email protected]</a> </address>
</body>
</html>