PageSourceSearch

https://trsdomain.dk/index.html

html trsdomain.dk collected 2026-10-04 01:42:42 UTC 34,014 bytes, 763 lines download raw bytes

1
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml">
5
6<!-- Mirrored from trsdomain.dk/ by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 14 Jan 2017 13:19:11 GMT -->
7<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=utf-8" /><!-- /Added by HTTrack -->
8<head>
9	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
10	<meta name="google-site-verification" content="yzpNHB21pAsgXhpRR4Ju9Fsof3j-0JzeZpEfb6muGog" />
11	<title>TRsDomain.dk</title>
12	
13	<meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0;">
14
15	<link rel="stylesheet" type="text/css" href="css/trsdomain_cerulean.css" media="screen,print" />
16	<link rel="stylesheet" type="text/css" href="css/trsdomain_extras.css" media="screen,print" />
17	<link rel="stylesheet" type="text/css" href="css/trsdomain_responsive.css" media="screen,print" />
18	<link rel="stylesheet" type="text/css" href="css/trsdomain_print.css" media="print" />
19
20	
20<script type="text/javascript" src="Scripts/jquery.js"></script>
20
21	
21<script type="text/javascript" src="Scripts/umlaut.js"></script>
21
22
23
24	<!-- http://code.google.com/p/syntaxhighlighter/wiki/Usage -->
25	<link rel="stylesheet" type="text/css" href="css/SyntaxHighlighter.css" media="all" />
26	
26<script type="text/javascript" src="Scripts/SyntaxHighlighter/shCore.js"></script>
26
27	
27<script type="text/javascript" src="Scripts/SyntaxHighlighter/shBrushCSharp.js"></script>
27
28	
28<script type="text/javascript" src="Scripts/SyntaxHighlighter/shBrushCss.js"></script>
28
29	
29<script type="text/javascript" src="Scripts/SyntaxHighlighter/shBrushJScript.js"></script>
29
30	
30<script type="text/javascript" src="Scripts/SyntaxHighlighter/shBrushSql.js"></script>
30
31	
31<script type="text/javascript" src="Scripts/SyntaxHighlighter/shBrushXml.js"></script>
31
32	
32<script language="javascript">
33	$(document).ready(
34	function()
35	{
36		dp.SyntaxHighlighter.ClipboardSwf = 'media/6086/clipboard.swf';
37		dp.SyntaxHighlighter.HighlightAll('code');
38	}
39	);
40	</script>
40
41
42	
42<script type="text/javascript">
43	$(document).ready( function() {
44	var _config = {
45	username: 'torbenrohde', // last.fm username
46	placeholder: 'lastfmrecords', // id of the div in HTML to use for cd covers
47	//defaultthumb: './lastfm_logo.jpg', // image when no cd cover or artist image is found
48	period: 'topalbums3month', // which period/type of data do you want to show? you can choose from
49	// recenttracks, 7day, 3month, 6month, 12month, overall,
50	// topalbums and lovedtracks
51	count: 20, // number of images to show
52	refresh: 5, // when to get new data from last.fm (in minutes)
53	offset: -1 // difference between your timezone and GMT.
54	};
55	lastFmRecords.init(_config);
56	});
57	</script>
57
58
59	<!-- XSLT Search CSS -->
60	<link href="CSS/XSLTsearch.css" rel="stylesheet" type="text/css" />
61
62	<!-- Open ID delegation -->
63	<link rel="openid.server" href="https://www.myopenid.com/server">
64	<link rel="openid.delegate" href="http://trsdomain.myopenid.com/">
65
66
67	
68
69	<link href="blog/rss.aspx" rel="alternate" type="application/rss+xml" title="RSS Feed" />
70
71
72</head>
73<body id="top">
74
75<form name="aspnetForm" method="post" action="http://trsdomain.dk/default.aspx?" id="aspnetForm">
76<div>
77<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUENTM4MWRkSVQwUWulEwn4w4kbFUlT+YW+BqE=" />
78</div>
79
80
81
82<div id="layout_wrapper_outer">
83<div id="layout_wrapper">
84	<div id="layout_top">
85
86		<div class="right">
87
88<div class="right searchBox" id="search">    
89	<fieldset>
90		
91		<div>
92	
93
94			<div class="alignleft">
95				<input name="ctl00$ctl00$ctl00$ContentPlaceHolderDefault$SearchBox_2$searchText" type="text" value="search" maxlength="100" id="ctl00_ctl00_ctl00_ContentPlaceHolderDefault_SearchBox_2_searchText" onfocus="if (this.value == 'search') { this.value = ''; }" class="input-text" />
96			</div>
97
98			<input type="submit" name="ctl00$ctl00$ctl00$ContentPlaceHolderDefault$SearchBox_2$btnSearch" value="Search" id="ctl00_ctl00_ctl00_ContentPlaceHolderDefault_SearchBox_2_btnSearch" class="input-submit" />
99
100		
101</div>
102
103	</fieldset>
104</div></div>		
105
106		<div id="site_title">
107			<h1><a href="index.html">TRsDomain<span>.dk</span></a></h1>
108			<h2>Homepage of programmer Torben Warberg Rohde</h2>
109		</div>
110	</div>
111
112	<div id="layout_body_outer">
113	<div id="layout_body">
114
115		<div id="navigation">
116
117			<div id="nav1">
118				
119				<ul>
120					<li class="current_page_item"><a href="blog.html">Blog</a></li><li><a href="til-salg.html">Til salg</a></li><li><a href="cykling.html">Cykling</a></li><li><a href="loeb.html">Løb</a></li><li><a href="programmoer.html">Programmør</a></li><li><a href="billeder.html">Billeder</a></li><li><a href="links.html">Links</a></li><li><a href="kontakt.html">Kontakt</a></li>
121				</ul>
122
123				<div class="clearer">&nbsp;</div>
124
125			</div>
126
127			<div id="nav2">
128
129				<ul>
130					<li><a href="#">
131			 
132		</a></li>
133				</ul>
134
135				<div class="clearer">&nbsp;</div>
136
137			</div>
138
139		</div>
140
141		<div id="main">
142
143			<div class="left" id="content_outer">
144				<div id="content">
145
146					
147	<div>
148		<div class="post">
149  <div class="post_title" id="post-1555">
150    <h1><a href="blog/2011/5/13/simpletextnet-released.html">SimpleText.NET released</a></h1>
151  </div>
152  <div class="post_date">Friday, May 13, 2011</div>
153  <div class="post_body"><p>I recently relased the <a target="_blank" title="Read more about SimpleText.NET" href="http://simpletext.codeplex.com/">language versioning SimpleText.NET</a> system/utility on CodePlex.<br />Here the short snip from the project site description:</p>
154<p class="simpleblockquote">SimpleText aims at enabling .NET developers to language version sites or apps in a simple manner.<br />A focal point is servicing external translators with MS Excel export/import. <br />Texts can be harvested from your source code based on a simple custom format.</p>
155<p><a target="_blank" title="More on CodePlex" href="http://simpletext.codeplex.com/">Read on at the CodePlex site and take it for a spin</a>. Don't hesitate to drop me a line on mail or the CodePlex discussions if you have comments or suggestions for improvents.</p>
156<p><img src="media/6216/simpletext_webadmin_449x298.jpg"  width="449"  height="298" alt="SimpleText_admin" class="imageNormal"/></p></div>
157  <div class="post_meta">
158				Tagged: 
159
160				<a href="blog498c.html?filterby=Programming">Programming</a></div>
161</div>
162<div class="post">
163  <div class="post_title" id="post-1543">
164    <h1><a href="blog/2011/1/20/english-grammar---factoid.html">English grammar - Factoid</a></h1>
165  </div>
166  <div class="post_date">Thursday, January 20, 2011</div>
167  <div class="post_body"><p>Classic English grammar question: "Do I use an or a here".<br />What I learned many years ago was that if the word started with a consonant use "a", otherwise "an". Then I <a target="_blank" title="Post on the use of &quot;an or a&quot;" href="http://english.stackexchange.com/questions/8181/does-one-use-a-or-an-before-the-word-x-ray">read this post and found out I have been wrong</a>.</p>
168<p>Spoiler: It depends on the pronunciation not the spelling.</p></div>
169  <div class="post_meta">
170				Tagged: 
171
172				<a href="blog5cd9.html?filterby=Diverse">Diverse</a></div>
173</div>
174<div class="post">
175  <div class="post_title" id="post-1534">
176    <h1><a href="blog/2011/1/9/shortening-file-paths---c-sharp-function.html">Shortening file paths - c-sharp function</a></h1>
177  </div>
178  <div class="post_date">Sunday, January 09, 2011</div>
179  <div class="post_body"><p>When listing some file paths for display in a grid, I found that I needed to shorten them, since they can quickly become to large to fit in the relatively small space I had allocated for them. Instead of simply cropping of the beginning or end I wanted to remove some of the middel directories, just like all the standard Windows apps does in e.g. the "Recent files" overview.</p>
180<p class="simpleblockquote">Let's try to turn this:<br /><i>c:\websites\acmeinc\myproject\www_myproj\App_Data\somefile.txt</i><br />into this:<br /><i>c:\websites\acmeinc\...\App_Data\somefile.txt<br /></i><i><br /></i></p>
181<p>So I went googling, but found no exact matches. This <a target="_blank" href="http://www.codinghorror.com/blog/2006/08/shortening-long-file-paths.html">post on codinghorror.com</a> points to a trimming function which operates directly on the Win-forms canvas (so you never get hold of the shortened string object) and to a function in the Windows API (which means you have to include a reference to a DLL that is not native .NET).</p>
182<p>This is my take on a function for this purpose. It is not as thouroughly tested or performant as an official MS-API-method would be, but I think it should suffice for most purposes:</p>
183<pre name="code" class="c-sharp">/// &lt;summary&gt;
184/// Shortens a file path to the specified length
185/// &lt;/summary&gt;
186/// &lt;param name="path"&gt;The file path to shorten&lt;/param&gt;
187/// &lt;param name="maxLength"&gt;The max length of the output path (including the ellipsis if inserted)&lt;/param&gt;
188/// &lt;returns&gt;The path with some of the middle directory paths replaced with an ellipsis (or the entire path if it is already shorter than maxLength)&lt;/returns&gt;
189/// &lt;remarks&gt;
190/// Shortens the path by removing some of the "middle directories" in the path and inserting an ellipsis. If the filename and root path (drive letter or UNC server name) in itself exceeds the maxLength, the filename will be cut to fit.
191/// UNC-paths and relative paths are also supported.
192/// The inserted ellipsis is not a true ellipsis char, but a string of three dots.
193/// &lt;/remarks&gt;
194/// &lt;example&gt;
195/// ShortenPath(@"c:\websites\myproject\www_myproj\App_Data\themegafile.txt", 50)
196/// Result: "c:\websites\myproject\...\App_Data\themegafile.txt"
197/// 
198/// ShortenPath(@"c:\websites\myproject\www_myproj\App_Data\theextremelylongfilename_morelength.txt", 30)
199/// Result: "c:\...gfilename_morelength.txt"
200/// 
201/// ShortenPath(@"\\myserver\theshare\myproject\www_myproj\App_Data\theextremelylongfilename_morelength.txt", 30)
202/// Result: "\\myserver\...e_morelength.txt"
203/// 
204/// ShortenPath(@"\\myserver\theshare\myproject\www_myproj\App_Data\themegafile.txt", 50)
205/// Result: "\\myserver\theshare\...\App_Data\themegafile.txt"
206/// 
207/// ShortenPath(@"\\192.168.1.178\theshare\myproject\www_myproj\App_Data\themegafile.txt", 50)
208/// Result: "\\192.168.1.178\theshare\...\themegafile.txt"
209/// 
210/// ShortenPath(@"\theshare\myproject\www_myproj\App_Data\", 30)
211/// Result: "\theshare\...\App_Data\"
212/// 
213/// ShortenPath(@"\theshare\myproject\www_myproj\App_Data\themegafile.txt", 35)
214/// Result: "\theshare\...\themegafile.txt"
215/// &lt;/example&gt;
216public static string ShortenPath(string path, int maxLength)
217{
218	string ellipsisChars = "...";
219	char dirSeperatorChar = Path.DirectorySeparatorChar;
220	string directorySeperator = dirSeperatorChar.ToString();
221
222	//simple guards
223	if (path.Length &lt;= maxLength)
224	{
225		return path;
226	}
227	int ellipsisLength = ellipsisChars.Length;
228	if (maxLength &lt;= ellipsisLength)
229	{
230		return ellipsisChars;
231	}
232
233
234	//alternate between taking a section from the start (firstPart) or the path and the end (lastPart)
235	bool isFirstPartsTurn = true; //drive letter has first priority, so start with that and see what else there is room for
236
237	//vars for accumulating the first and last parts of the final shortened path
238	string firstPart = "";
239	string lastPart = "";
240	//keeping track of how many first/last parts have already been added to the shortened path
241	int firstPartsUsed = 0;
242	int lastPartsUsed = 0;
243
244	string[] pathParts = path.Split(dirSeperatorChar);
245	for (int i = 0; i &lt; pathParts.Length; i++)
246	{
247		if (isFirstPartsTurn)
248		{
249			string partToAdd = pathParts[firstPartsUsed] + directorySeperator;
250			if ((firstPart.Length + lastPart.Length + partToAdd.Length + ellipsisLength) &gt; maxLength)
251			{
252				break;
253			}
254			firstPart = firstPart + partToAdd;
255			if (partToAdd == directorySeperator)
256			{
257				//this is most likely the first part of and UNC or relative path 
258				//do not switch to lastpart, as these are not "true" directory seperators
259				//otherwise "\\myserver\theshare\outproject\www_project\file.txt" becomes "\\...\www_project\file.txt" instead of the intended "\\myserver\...\file.txt")
260			}
261			else
262			{
263				isFirstPartsTurn = false;
264			}
265			firstPartsUsed++;
266		}
267		else
268		{
269			int index = pathParts.Length - lastPartsUsed - 1; //-1 because of length vs. zero-based indexing
270			string partToAdd = directorySeperator + pathParts[index];
271			if ((firstPart.Length + lastPart.Length + partToAdd.Length + ellipsisLength) &gt; maxLength)
272			{
273				break;
274			}
275			lastPart = partToAdd + lastPart;
276			if (partToAdd == directorySeperator)
277			{
278				//this is most likely the last part of a relative path (e.g. "\websites\myproject\www_myproj\App_Data\")
279				//do not proceed to processing firstPart yet
280			}
281			else
282			{
283				isFirstPartsTurn = true;
284			}
285			lastPartsUsed++;
286		}
287	}
288	
289	if (lastPart == "")
290	{
291		//the filename (and root path) in itself was longer than maxLength, shorten it
292		lastPart = pathParts[pathParts.Length - 1];//"pathParts[pathParts.Length -1]" is the equivalent of "Path.GetFileName(pathToShorten)"
293		lastPart = lastPart.Substring(lastPart.Length + ellipsisLength + firstPart.Length - maxLength, maxLength - ellipsisLength - firstPart.Length);
294	}
295
296	return firstPart + ellipsisChars + lastPart;
297}
298</pre>
299<p> </p></div>
300  <div class="post_meta">
301				Tagged: 
302
303				<a href="blog498c.html?filterby=Programming">Programming</a></div>
304</div>
305<div class="post">
306  <div class="post_title" id="post-1529">
307    <h1>
307<a href="blog/2011/1/2/glat---hvem-gaar-foerst-over.html">Glat - hvem går først over?</a></h1>
308  </div>
309  <div class="post_date">Sunday, January 02, 2011</div>
310  <div class="post_body"><p><img src="media/6067/glat_small_499x665.jpg"  width="499"  height="665" alt="Glat - 2010 01" class="imageNormal"/></p></div>
311  <div class="post_meta">
312				Tagged: 
313
314				<a href="blog5cd9.html?filterby=Diverse">Diverse</a></div>
315</div>
316<div class="post">
317  <div class="post_title" id="post-1522">
318    <h1><a href="blog/2010/12/7/reading-csv-files-on-64-bit-windows-server.html">Reading CSV files on 64 bit Windows Server</a></h1>
319  </div>
320  <div class="post_date">Tuesday, December 07, 2010</div>
321  <div class="post_body">
322<p>In the olden days I used the Jet-provider with a <a
323href="http://msdn.microsoft.com/en-us/library/ms709353(VS.85).aspx"
324 target="_blank" title="Description of schema.ini">schema.ini</a>
325to read CSV-files.</p>
326
327<p>Yesterday - after having just finished a small console app on
328our 32 bit developer box - I deployed it to our 64 bit production
329server..... crash.... "provider not found".</p>
330
331<p>After a fair amount of digging I downloaded one the many
332homemade CSV readers... Turns out it was written by an American, so
333there was no way to specify the charset of the file ;-)</p>
334
335<p>Then I found the <a
336href="http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&amp;displaylang=en"
337 target="_blank">"Microsoft Access Database Engine 2010
338Redistributable"</a> package (read this small note on how to
339specify the connection string).<br />
340It's a bit bloated just for reading a CSV file, but it installed in
341a few minutes, did not require restarting the server, and it works
342perfectly.</p>
343
344<p>&nbsp;</p>
345</div>
346  <div class="post_meta">
347				Tagged: 
348
349				</div>
350</div>
351<div class="post">
352  <div class="post_title" id="post-1519">
353    <h1><a href="blog/2010/11/24/async-made-simple(r).html">Async made simple(r)</a></h1>
354  </div>
355  <div class="post_date">Wednesday, November 24, 2010</div>
356  <div class="post_body"><p>If you have ever coded asynchronous stuff in .NET, this upcoming .NET feature should get you fairly psyched.... why handle all the plumbing yourself, when you can just use this new feature, as described in <a href="http://channel9.msdn.com/Blogs/Charles/Anders-Hejlsberg-Introducing-Async" title="Video on new async feature by Anders Hejlsberg">the Channel9 video by Anders Hejlsberg</a></p>
357<p>There's probably some sort of downside to this, but I couldn't spot it from what I heard in the presentation :-)</p></div>
358  <div class="post_meta">
359				Tagged: 
360
361				<a href="blog498c.html?filterby=Programming">Programming</a></div>
362</div>
363<div class="post">
364  <div class="post_title" id="post-1491">
365    <h1>
365<a href="blog/2010/10/22/captcha-with-a-twist---are-you-a-human-being.html">Captcha with a twist - Are you a human being?</a></h1>
366  </div>
367  <div class="post_date">Friday, October 22, 2010</div>
368  <div class="post_body">
369<p>Most sites have a captcha check on forms where users can
370contribute input such as comments or forum posts. However <a
371href="http://www.stackoverflow.com/" target="_blank"
372title="Stackoverflow">Stackoverflow</a> have added some twists to
373this otherwise standard mechanism - one sophisticated and one...
374not so sophisticated (but very humorous).</p>
375
376<p><strong>The sophisticated:</strong> By default there is no
377captcha - but if they cannot determine whether you are man or
378machine when you post your question/answer, they redirect you to
379the captcha page.</p>
380
381<p><strong>The humorous:</strong> Instead of just confronting the
382user with a standard captcha form, they have added a picture which
383must have been a lot of fun shooting, along with the following
384refreshingly down-to-earth text:</p>
385
386<blockquote>
387<p><strong>Are you a human being?</strong><br />
388 We apologize for the confusion, but we can't <em>quite</em> tell
389if you're a person or a script.</p>
390
391<p>Please don't take this personally.<br />
392 Bots and scripts can be remarkably lifelike these days!</p>
393
394<p>Enter the CAPTCHA displayed below, and we'll be out of your
395way.</p>
396</blockquote>
397
398<p><a href="media/5610/stackoverflow_captcha.png" target="_blank"
399title="View full resolution version"><img src="media/5615/stackoverflow_captcha_thumb_498x365.jpg"  width="498"  height="365" alt="StackOverflow_Captcha_Thumb" class="imageNormal"/></a></p>
400
401<p>... great stuff.</p>
402</div>
403  <div class="post_meta">
404				Tagged: 
405
406				<a href="blog498c.html?filterby=Programming">Programming</a>,<a href="blog9e30.html?filterby=Webdesign">Webdesign</a></div>
407</div>
408<div class="post">
409  <div class="post_title" id="post-1486">
410    <h1><a href="blog/2010/9/6/examining-and-testing-web-services.html">Examining and testing web services</a></h1>
411  </div>
412  <div class="post_date">Monday, September 06, 2010</div>
413  <div class="post_body">
414<p>When working with web services you sometimes just want to make a
415quick <em>"lets hit it, and see what it does"</em> test.</p>
416
417<p>For that purpose <a href="http://www.wcfstorm.com/"
418title="WCF Storm WS testing tool">WCF Storm</a> is the must-have
419tool, which a fellow developer recently pointed out to me. It
420quickly generates a proxy and lets you specify parameters of
421complex types, add custom headers and&nbsp; much more (none of
422which the older <a href="http://webservicestudio.codeplex.com/"
423target="_blank"
424title="WebServiceStudio at CodePlex">WebServiceStudio</a> I used to
425use could do)... It also lets speaks WCF.</p>
426
427<p>The lite version does everything you are likely to need. The
428paid versions contain functionality aimed at developers wanting to
429integrate their web services in test or build routines, or
430performance test them.</p>
431</div>
432  <div class="post_meta">
433				Tagged: 
434
435				</div>
436</div>
437<div class="post">
438  <div class="post_title" id="post-1363">
439    <h1><a href="blog/2010/4/7/afsted-til-vaerloese.html">Afsted til Værløse</a></h1>
440  </div>
441  <div class="post_date">Wednesday, April 07, 2010</div>
442  <div class="post_body">
443<p><img src="media/4255/ryetvej_plantegning_217x289.jpg"  width="217"  height="289" alt="Ryetvej plantegning" class="alignright"/>Der er nu skrevet under,
444financieret osv. - og jeg er dermed ejer af <a
445href="http://maps.google.dk/maps?f=q&amp;source=s_q&amp;hl=da&amp;geocode=&amp;q=ryetvej+61+v%C3%A6rl%C3%B8se&amp;sll=56.010666,11.228027&amp;sspn=7.929169,19.753418&amp;ie=UTF8&amp;hq=&amp;hnear=Ryetvej+61,+3500,+V%C3%A6rl%C3%B8se&amp;ll=55.787819,12.364082&amp;spn=0.032334,0.077162&amp;t=h&amp;z=14"
446 target="_blank" title="Ryetvej 61 på Google Maps">Ryetvej 61,
4472.mf.</a><br />
448 Pr. 1. juli tilbringer jeg derfor en del tid på den nye adresse,
449hvor der skal males/hamres/skrues/find-selv-på-flere, hvorefter jeg
4501. august endegyldigt forlader Vestergade *snøft* ;-)</p>
451
452<p><img src="media/4265/ryetvej_bagside_335x171.jpg"  width="335"  height="171" alt="Ryetvej bagside" class="alignleft"/></p>
453
454<p>&nbsp;</p>
455</div>
456  <div class="post_meta">
457				Tagged: 
458
459				<a href="blog5cd9.html?filterby=Diverse">Diverse</a></div>
460</div>
461<div class="post">
462  <div class="post_title" id="post-1346">
463    <h1><a href="blog/2010/1/15/structuring-extensive-soap-webservice-apis.html">Structuring extensive SOAP webservice APIs</a></h1>
464  </div>
465  <div class="post_date">Friday, January 15, 2010</div>
466  <div class="post_body">
467<p>Last year I spend some time building a webservice SOAP API for
468the <a href="http://www.metimus.dk/" target="_blank">Metimus
469system</a>. Although it only covers selected bits of the full
470system it is still fairly extensive.</p>
471
472<p>In the process I spend quite some time figuring out how to
473structure SOAP services when you go beyond the simple
474"RegisterForCompetition" type services... so I thought I'd share,
475since my attempts at Googling a solution where unsuccessful.</p>
476
477<p><strong>The problem I ran into</strong><br />
478 When you build a webservice API, the natural instinct is to
479attempt to make it look like a true OO API as much as possible. So
480you will want to:</p>
481
482<ul>
483<li>Use objects for parameters and return types instead of
484primitives, which is no problem with the complex types of WSDL</li>
485
486<li>Partition your solution into multiple services, as you would
487have multiple classes in an OO API (e.g. a CompanyHandler service,
488a UserHandler service etc.)</li>
489</ul>
490
491<p>Now the problem arises when you try to e.g. use a return value
492"User" object from one service operation as a parameter for an
493operation on another service. Your solution will not compile!<br />
494 The reason is that even though <em>you know</em> it's the same
495class, the client proxy-generator does not (whether it is .NETs
496WSDL.exe, Java or any other environment). There is no way around it
497- at least not without making life miserable for the client
498programmer (and the reason we wanted it OO'ish and shiny was to
499make it easy :-)</p>
500
501<p><strong>You have two basic choises:</strong> Either you
502partition it into multiple services and use primitives for all
503parameters - or you keep all operations in one big service and you
504get to use objects for parameters and return values.</p>
505
506<p>I ended up using the "one big service" option. To make it a bit
507easier to maintain I then used the <a
508href="http://www.4guysfromrolla.com/articles/071509-1.aspx"
509target="_blank">partial class</a> feature of .NET, so I didn't end
510up with one insanely large file.</p>
511
512<p><strong>Further info and examples<br />
513</strong> A full explanation of the problem including <a
514href="http://www.experts-exchange.com/Programming/Languages/.NET/Web_Services/Q_24814102.html"
515 target="_blank">sample code illustrating the problem</a> can be
516seen here in <a
517href="http://www.experts-exchange.com/Programming/Languages/.NET/Web_Services/Q_24814102.html"
518 target="_blank">this Experts-Exchange question</a> I wrote. In
519case you do not have an account, here are the resource-links that
520was posted in the answer:</p>
521
522<p>- <a
523href="http://msdn.microsoft.com/en-us/library/aa480505.aspx"
524target="_blank">Microsofts description</a><br />
525 - <a
526href="http://www.developerfusion.com/article/5155/web-services-interoperability-between-j2ee-and-net-part-3/3/"
527 target="_blank">Another explanation</a></p>
528</div>
529  <div class="post_meta">
530				Tagged: 
531
532				<a href="blog498c.html?filterby=Programming">Programming</a></div>
533</div>
534<div class="navigation">
535  <div class="left"><span>«</span><a href="index4658.html?page=2">Older entries</a></div>
536  <div class="right"></div>
537  <div class="clear"></div>
538</div>
539	</div>
540
541
542				</div>
543			</div>
544
545			<div id="sidebar_outer">
546				<div id="sidebar">
547
548					<div class="box"><div class="box_title">Who am I</div><div class="box_content"><h2><img src="media/2639/torbenrohde_about.jpg" width="224" height="83" alt="Torben Warberg Rohde" class="imageNormal"/></h2>
549<p>Programmer who enjoy various forms of endurance sports such as cycling and running - nothing too serious though :-)<br /> Living in Værløse - Working in Copenhagen.</p>
550<p><a target="_blank" title="Tabs or spaces discussion" href="http://discuss.fogcreek.com/joelonsoftware/default.asp?cmd=show&amp;ixPost=3978">Tabs or spaces</a> - Tabs!</p></div></div><div class="box"><div class="box_title">Links</div><div class="box_content">
551<ul>
552<li><span class="sidebarLinkList"><a href="http://www.subsero.dk/"
553target="_blank" title="Subsero.dk">Arbejder hos Subsero
554A/S</a></span></li>
555
556<li><a href="http://www.metimus.dk/" target="_blank"
557title="Metimus.dk">Arbejder hos Metimus A/S</a></li>
558
559<li><a
560href="http://onskeseddel.oenskedepotet.dk/onskeseddel/1/show/Torben+Rohde.aspx"
561 target="_blank"
562title="Ønskeseddel for Torben Warberg Rohde">Ønsker mig</a></li>
563</ul>
564</div></div><div class="box"><div class="box_title">Music</div><div class="box_content"><p>Recently played (<a href="http://www.last.fm/user/torbenrohde">via last.fm</a>)</p>
565<div id="lastfmrecords"></div></div></div>
566	
567					
568
569		<div class="box" id="blogSidebar">
570
571			<div class="box_title">Blog</div>
572
573			<div class="box_content">
574				<div>Categories</div>
575<ul id="blogCategoryList">
576  <li><a href="index.html">All</a><span> (16)</span></li>
577  <li><a href="index498c.html?filterby=Programming">Programming</a> (6)
578    			</li>
579  <li><a href="index5cd9.html?filterby=Diverse">Diverse</a> (7)
580    			</li>
581  <li><a href="indexd6b2.html?filterby=Cykling">Cykling</a> (1)
582    			</li>
583  <li><a href="index9e30.html?filterby=Webdesign">Webdesign</a> (2)
584    			</li>
585</ul>
586				<div>Archive</div>
587<ul class="archive">
588  <li class="year" id="year_2013">
589    <div class="yearHeader"><a href="#">2013</a></div>
590    <div class="yearList">
591      <ul>
592        <li class="month" id="month_2013March">
593          <div class="monthHeader"><a href="#">March</a> <span>(1)</span></div>
594          <ul></ul>
595        </li>
596      </ul>
597    </div>
598  </li>
599  <li class="year" id="year_2011">
600    <div class="yearHeader"><a href="#">2011</a></div>
601    <div class="yearList">
602      <ul>
603        <li class="month" id="month_2011May">
604          <div class="monthHeader"><a href="#">May</a> <span>(1)</span></div>
605          <ul>
606            <li class="topic"><a href="blog/2011/5/13/simpletextnet-released.html">SimpleText.NET released</a></li>
607          </ul>
608        </li>
609        <li class="month" id="month_2011April">
610          <div class="monthHeader"><a href="#">April</a> <span>(1)</span></div>
611          <ul></ul>
612        </li>
613        <li class="month" id="month_2011January">
614          <div class="monthHeader"><a href="#">January</a> <span>(3)</span></div>
615          <ul>
616            <li class="topic"><a href="blog/2011/1/2/glat---hvem-gaar-foerst-over.html">Glat - hvem går først over?</a></li>
617            <li class="topic"><a href="blog/2011/1/9/shortening-file-paths---c-sharp-function.html">Shortening file paths - c-sharp function</a></li>
618            <li class="topic"><a href="blog/2011/1/20/english-grammar---factoid.html">English grammar - Factoid</a></li>
619          </ul>
620        </li>
621      </ul>
622    </div>
623  </li>
624  <li class="year" id="year_2010">
625    <div class="yearHeader"><a href="#">2010</a></div>
626    <div class="yearList">
627      <ul>
628        <li class="month" id="month_2010December">
629          <div class="monthHeader"><a href="#">December</a> <span>(1)</span></div>
630          <ul>
631            <li class="topic"><a href="blog/2010/12/7/reading-csv-files-on-64-bit-windows-server.html">Reading CSV files on 64 bit Windows Server</a></li>
632          </ul>
633        </li>
634        <li class="month" id="month_2010November">
635          <div class="monthHeader"><a href="#">November</a> <span>(1)</span></div>
636          <ul>
637            <li class="topic"><a href="blog/2010/11/24/async-made-simple(r).html">Async made simple(r)</a></li>
638          </ul>
639        </li>
640        <li class="month" id="month_2010October">
641          <div class="monthHeader"><a href="#">October</a> <span>(1)</span></div>
642          <ul>
643            <li class="topic">
643<a href="blog/2010/10/22/captcha-with-a-twist---are-you-a-human-being.html">Captcha with a twist - Are you a human being?</a></li>
644          </ul>
645        </li>
646        <li class="month" id="month_2010September">
647          <div class="monthHeader"><a href="#">September</a> <span>(1)</span></div>
648          <ul>
649            <li class="topic"><a href="blog/2010/9/6/examining-and-testing-web-services.html">Examining and testing web services</a></li>
650          </ul>
651        </li>
652        <li class="month" id="month_2010April">
653          <div class="monthHeader"><a href="#">April</a> <span>(1)</span></div>
654          <ul>
655            <li class="topic"><a href="blog/2010/4/7/afsted-til-vaerloese.html">Afsted til Værløse</a></li>
656          </ul>
657        </li>
658        <li class="month" id="month_2010January">
659          <div class="monthHeader"><a href="#">January</a> <span>(2)</span></div>
660          <ul>
661            <li class="topic"><a href="blog/2010/1/11/retro-bonanza-webdesign.html">Retro-bonanza webdesign</a></li>
662            <li class="topic"><a href="blog/2010/1/15/structuring-extensive-soap-webservice-apis.html">Structuring extensive SOAP webservice APIs</a></li>
663          </ul>
664        </li>
665      </ul>
666    </div>
667  </li>
668  <li class="year" id="year_2009">
669    <div class="yearHeader"><a href="#">2009</a></div>
670    <div class="yearList">
671      <ul>
672        <li class="month" id="month_2009November">
673          <div class="monthHeader"><a href="#">November</a> <span>(4)</span></div>
674          <ul>
675            <li class="topic"><a href="blog/2009/11/17/cykelcross-i-folkeparken-4000.html">Cykelcross i Folkeparken 4000</a></li>
676            <li class="topic"><a href="blog/2009/11/18/slooow-deletion-as-recycle-bin-fills-up.html">Slooow deletion as recycle bin fills up</a></li>
677            <li class="topic"><a href="blog/2009/11/19/back-to-the-future---fysisk-taendsluk-knap%21.html">"Back to the future" - fysisk tænd/sluk knap!</a></li>
678            <li class="topic"><a href="blog/2009/11/28/subsero-flytter-til-1253.html">Subsero flytter til 1253</a></li>
679          </ul>
680        </li>
681        <li class="month" id="month_2009October">
682          <div class="monthHeader"><a href="#">October</a> <span>(1)</span></div>
683          <ul>
684            <li class="topic"><a href="blog/2009/10/29/nyt-website.html">Nyt website</a></li>
685          </ul>
686        </li>
687      </ul>
688    </div>
689  </li>
690</ul>
691				<!--
692				<h3>Latest Comments</h3>
693<ul>
694  <li><a href="/blog/2010/1/15/structuring-extensive-soap-webservice-apis.aspx#comment-15922">cheetah uggs on Structuring extensive SOAP webservice APIs</a></li>
695  <li><a href="/blog/2010/4/7/afsted-til-vaerloese.aspx#comment-15921">http://www.kimbertonwholefoods.com/amitriptyline/ on Afsted til Værløse</a></li>
696  <li><a href="/blog/2010/4/7/afsted-til-vaerloese.aspx#comment-15920">http://www.kimbertonwholefoods.com/anafranil/ on Afsted til Værløse</a></li>
697  <li><a href="/blog/2010/4/7/afsted-til-vaerloese.aspx#comment-15919">http://www.kimbertonwholefoods.com/amoxil/ on Afsted til Værløse</a></li>
698  <li><a href="/blog/2010/4/7/afsted-til-vaerloese.aspx#comment-15918">http://www.kimbertonwholefoods.com/arcoxia/ on Afsted til Værløse</a></li>
699  <li><a href="/blog/2010/4/7/afsted-til-vaerloese.aspx#comment-15917">http://www.kimbertonwholefoods.com/arcoxia/ on Afsted til Værløse</a></li>
700  <li><a href="/blog/2010/1/11/retro-bonanza-webdesign.aspx#comment-15916">normxnpi on Retro-bonanza webdesign</a></li>
701  <li><a href="/blog/2010/1/11/retro-bonanza-webdesign.aspx#comment-15915">normxnpi on Retro-bonanza webdesign</a></li>
702  <li><a href="/blog/2010/1/11/retro-bonanza-webdesign.aspx#comment-15914">normxnpi on Retro-bonanza webdesign</a></li>
703  <li><a href="/blog/2010/1/11/retro-bonanza-webdesign.aspx#comment-15913">normxnpi on Retro-bonanza webdesign</a></li>
704</ul>			
705				-->
706			</div>
707
708		</div>
709
710
711
712				</div>
713			</div>
714
715			<div class="clearer">&nbsp;</div>*
716
717		</div>
718
719		<div id="dashboard">
720			<div id="dashboard_inner">
721
722				<div class="clearer">&nbsp;</div>
723
724			</div>
725		</div>
726
727	</div>
728	</div>
729
730	<div id="footer">
731
732		<div class="left">
733			
734		</div>
735		<div class="right">
736			<a href="http://templates.arcsin.se/">Website template</a> by <a href="http://arcsin.se/">Arcsin</a> 
737		</div>
738		
739		<div class="clearer">&nbsp;</div>
740
741	</div>
742
743</div>
744</div>
745
746</form>
747
748<script type="text/javascript">
749var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
750document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
751</script>
vendor: 1 bytes, line 751
751
752<script type="text/javascript">
753try {
754var pageTracker = _gat._getTracker("UA-11374227-1");
755pageTracker._trackPageview();
756} catch(err) {}</script>
756
757
758
759</body>
760
761<!-- Mirrored from trsdomain.dk/ by HTTrack Website Copier/3.x [XR&CO'2014], Sat, 14 Jan 2017 13:20:24 GMT -->
762</html>
763

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.