<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>WS &amp; Distributed Apps</title>
        <link>http://geekswithblogs.net/Mohamed/category/1315.aspx</link>
        <description>This is the third member of Microsoft Categorization of Applications, so, it should have it's own section too.</description>
        <language>en</language>
        <copyright>Mohamed Meligy</copyright>
        <managingEditor>eng.meligy@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title> dotNETwork 5th Gathering – Really enjoyed that Silverlight &amp; SOA Anti Patterns Mix (Part II / II) </title>
            <link>http://geekswithblogs.net/Mohamed/archive/2008/07/06/dotnetwork-5th-gathering--really-enjoyed-that-silverlight.aspx</link>
            <description>&lt;p&gt;I discovered just now that this blog post was not correctly cross posted from my new weblog to this one.&lt;/p&gt;
&lt;p&gt;Trying to copy it manually also does not work (tried in Firefox 3 as well as IE 7). It looks like a timeout or something (warning: yes, it is a big post).&lt;/p&gt;
&lt;p&gt;Anyway, if you are interested in my coverage of SOA Anti Patterns session in dotNETwork 5th gathering, you can find it here:&lt;/p&gt;
&lt;blockquote dir="ltr" style="MARGIN-RIGHT: 0px"&gt;
&lt;p&gt;&lt;strong&gt;&lt;a mce_href="http://weblogs.asp.net/meligy/archive/2008/07/05/dotnetwork-5th-gathering-really-enjoyed-that-silverlight-amp-soa-anti-patterns-mix-part-ii-ii.aspx" href="http://weblogs.asp.net/meligy/archive/2008/07/05/dotnetwork-5th-gathering-really-enjoyed-that-silverlight-amp-soa-anti-patterns-mix-part-ii-ii.aspx"&gt;&lt;strong&gt;dotNETwork 5th Gathering – Really enjoyed that Silverlight &amp;amp; SOA Anti Patterns Mix (Part II / II)&lt;/strong&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123606"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123606" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/123606.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2008/07/06/dotnetwork-5th-gathering--really-enjoyed-that-silverlight.aspx</guid>
            <pubDate>Sun, 06 Jul 2008 00:09:45 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/123606.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2008/07/06/dotnetwork-5th-gathering--really-enjoyed-that-silverlight.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/123606.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/123606.aspx</trackback:ping>
        </item>
        <item>
            <title>Top Ten Software Architecture Mistakes</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/10/15/Top-Ten-Software-Architecture-Mistakes.aspx</link>
            <description>Another top ten mistakes/DON"Ts &lt;a href="http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes"&gt;article&lt;/a&gt; I found. This time in a very interesting field, which is architecture.&lt;br /&gt;
Having read the mistakes. I can tell for sure, if you'd ever done architecture-related task, you must have done at least three of these mistake once or more.&lt;br /&gt;
&lt;br style="text-decoration: underline;" /&gt;
&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Quote from the article: Mistake #1:&lt;/span&gt;&lt;br /&gt;
&lt;div style="margin-left: 40px; font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Scoping Woes.&lt;/span&gt; "This is the sort of situation where a simple travel booking system ends up with full expense claim management facilities being built into it, with inevitable repercussions for project costs, timescales and quality...It is really true that no security is needed beyond simple login? Once logged into the system can users really perform any system operation?"&lt;/div&gt;
&lt;br /&gt;
Open your eyes, get a cup of coffee, and &lt;a href="http://www.infoq.com/news/2007/10/top-ten-architecture-mistakes"&gt;&lt;span style="font-weight: bold;"&gt;read the list&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold; text-decoration: underline;"&gt;P.S.&lt;/span&gt;&lt;br /&gt;
Note the "RelatedVendorContent" resource list just under the tags in the article.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116046"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=116046" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/116046.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/10/15/Top-Ten-Software-Architecture-Mistakes.aspx</guid>
            <pubDate>Mon, 15 Oct 2007 10:58:53 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/116046.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/10/15/Top-Ten-Software-Architecture-Mistakes.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/116046.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/116046.aspx</trackback:ping>
        </item>
        <item>
            <title>Using MSN and Google Search Webservices</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2006/07/16/85373.aspx</link>
            <description>&lt;P&gt;Yesterday, I was implementing site wide search functionality for the site I'm working on currently. The site consisted of both&amp;amp;;static XHTML pages as well as dynamic ones (dynamic in the sense that their content comes from DB based on query strings), and is going to be hosted on shared hosting service, so, implementing the search via DB queries or some sort of indexing service (or even writing my own index engine as windows service or so)&amp;nbsp;were all non-available options. I thought, why not use some online search service, and here how it went...&lt;/P&gt;
&lt;P&gt;If you know me well, you'd know I'm a 100% Microsoft guy, who wouldn't use a competetive technology unless have to, the first service I tried was MSN, later, I checked Yahoo service, and finally used Google as&amp;nbsp;the&amp;nbsp;last choice. To tell you the reasons, here're the services ordered &lt;U&gt;descending&lt;/U&gt; by my personal convinience:&lt;/P&gt;
&lt;UL dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;LI&gt;&lt;STRONG&gt;The common in all 3&amp;nbsp;services&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;U&gt;The good:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;All 3 services do not only provide web search, but other types as well, as news and local (best fits in US) and other search types. Also, even for web search, typical additional services like suggestions and safe search filtering&amp;nbsp;are provided. 
&lt;LI&gt;All 3 services allow you to restrict your search to a certain site, by putting something like "site:http://www.MyDomain.com" in the search query itself. 
&lt;LI&gt;All 3 have built in "paging" support by specifying the offset (start index) of the results returned and the count of the results for the service to return. Each resultset/search request returns only the requested count of results after the specified offset, still specifying the total number of results available for the submitted query.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;U&gt;The bad:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;Each of the services requires&amp;nbsp;every&amp;nbsp;site (domain) using the service to have&amp;nbsp;a certain Application license key sent when requesting search results.&amp;nbsp;Each service has a limited number of daily search queries per key. The number of keys available per user account also varies from service to another. (this is not really bad, as the minimal limit I found was 1000. I'll list&amp;nbsp;the limits later on here). 
&lt;LI&gt;Well, nothing is complete in this world! No service is issue-less, and all services are marked as pre-release.&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Yahoo Search Service&lt;/STRONG&gt; 
&lt;UL dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;UL&gt;
&lt;LI&gt;This one had all thegood parts mentioned above, with up to 5,000 daily query per key, but, the problem with it is that it doesn't return data in standard webservices WSDL format. Instead, it uses another XML-based data exchange format called "&lt;A title="" href="http://www.xml.com/pub/a/2004/12/01/restful-web.html" target="" name=""&gt;&lt;FONT color=#006666&gt;REST&lt;/FONT&gt;&lt;/A&gt;". To me, that was a stop point!&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;MSN Search Web Service&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;U&gt;The good:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;The daily query limit is 10,000 queries, and you can get seemingly unlimited number of keys per each .NET passport. That's sure&amp;nbsp;the best deal you may get for free. 
&lt;LI&gt;The web service API is very well designed. It seems like you can get multiple search type using a single request. 
&lt;LI&gt;The SDK is quite comprehensive (C#/VB.NET). 
&lt;LI&gt;The results returning include so many available fields about each result. You can still determine which fields to return. 
&lt;LI&gt;The service is very fast, at least, compared with the other 2 services. 
&lt;LI&gt;It can highlight the query words in the results if you configure it to, although this doesn't always work!&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;U&gt;The bad:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;Although the API is well designed, there're some odds in it like requiring to fille redundant fields, also, the flixability and power of the API makes it a bit complicated. Thanks for the SDK, this shouldn't be a real problem. 
&lt;LI&gt;There's a weird culture info field that&amp;nbsp;ONLY accepts US English and small number of east Europian cultures. You have to set this field as it has no default value (typically is set to "en-US"). This is not proved to be good in any thing and the problem I'm facing with setting it to "en-US" is that sometimes it shows a little squre on the both right and left sides of each result title (that's in IE6, in FireFox, these come as question marks. This is tested on a page using UTF-8 encoding for the page content, request and response), even English titles in English sites with English search query! Those appear and vanish appearantly randomly for the same result when re-quering!! 
&lt;LI&gt;The results are not so few, but not enough. Searching the same query in MSN search homepage itself returns more results. 
&lt;LI&gt;For many results, the title is&amp;nbsp;returned as the URL, and the descrption is just returned empty string! This happened&amp;nbsp;to about 30% to 40% of each query result set, even when all the results had English values in their HTML "&amp;lt;title&amp;gt;" tags, and didn't have META descriptions (but the description appeared for the rest of the result set althout they also didn't have META descriptions)! The most weird is that submitting the same query in MSN search homepage itself of course doesn't have this weird behavior. I first tried to play with the API and search for this online and finally had to&amp;nbsp;look for alternate solutions.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;U&gt;Code Snippet:&lt;/U&gt; (Part of what I had in code, without error checks and so)&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//You&amp;nbsp;can&amp;nbsp;have&amp;nbsp;multiple&amp;nbsp;search&amp;nbsp;types&amp;nbsp;per&amp;nbsp;single&amp;nbsp;search&amp;nbsp;request,&lt;BR&gt;//&amp;nbsp;then,&amp;nbsp;you&amp;nbsp;need&amp;nbsp;to&amp;nbsp;create&amp;nbsp;at&amp;nbsp;least&amp;nbsp;one&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.SourceRequest&amp;nbsp;source&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.SourceRequest();&lt;BR&gt;source.Offset&amp;nbsp;=&amp;nbsp;CurrentOffset;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Specifying&amp;nbsp;the&amp;nbsp;fields&amp;nbsp;I&amp;nbsp;need&amp;nbsp;to&amp;nbsp;be&amp;nbsp;returned&amp;nbsp;in&amp;nbsp;the&amp;nbsp;result&amp;nbsp;set.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;source.ResultFields&amp;nbsp;=&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;MSNSearchService.ResultFieldMask.Title&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;MSNSearchService.ResultFieldMask.Description&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;MSNSearchService.ResultFieldMask.Url;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Setting&amp;nbsp;my&amp;nbsp;offset&amp;nbsp;and&amp;nbsp;page&amp;nbsp;size&amp;nbsp;for&amp;nbsp;paging&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;source.Offset&amp;nbsp;=&amp;nbsp;CrrentOffset;&lt;BR&gt;source.Count&amp;nbsp;=&amp;nbsp;PageSize;&lt;BR&gt;&lt;BR&gt;MSNSearchService.SearchRequest&amp;nbsp;request&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.SearchRequest();&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//A&amp;nbsp;must-have&amp;nbsp;field&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;request.CultureInfo&amp;nbsp;=&amp;nbsp;"en-US";&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//This&amp;nbsp;didn't&amp;nbsp;really&amp;nbsp;affect&amp;nbsp;the&amp;nbsp;results&amp;nbsp;with&amp;nbsp;trying&amp;nbsp;different&amp;nbsp;values.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;request.Flags&amp;nbsp;=&amp;nbsp;MSNSearchService.SearchFlags.DisableHostCollapsing;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Setting&amp;nbsp;the&amp;nbsp;application&amp;nbsp;ID&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;request.AppID&amp;nbsp;=&amp;nbsp;"MY_APP_ID";&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Adding&amp;nbsp;the&amp;nbsp;search&amp;nbsp;types&amp;nbsp;I&amp;nbsp;added.&amp;nbsp;In&amp;nbsp;this&amp;nbsp;sample,&amp;nbsp;I&amp;nbsp;only&amp;nbsp;had&amp;nbsp;one&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;request.Requests&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.SourceRequest[]&amp;nbsp;{&amp;nbsp;source&amp;nbsp;};&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Testing&amp;nbsp;sending&amp;nbsp;my&amp;nbsp;query&amp;nbsp;and&amp;nbsp;limiting&amp;nbsp;the&amp;nbsp;search&amp;nbsp;to&amp;nbsp;a&amp;nbsp;certain&amp;nbsp;site.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;request.Query&amp;nbsp;=&amp;nbsp;Query&amp;nbsp;+&amp;nbsp;"&amp;nbsp;site:http://msdn.microsoft.com";&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;countFloat;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//This&amp;nbsp;is&amp;nbsp;the&amp;nbsp;webservice&amp;nbsp;object,&amp;nbsp;therefore,&amp;nbsp;it's&amp;nbsp;a&amp;nbsp;typical&amp;nbsp;IDisposable&amp;nbsp;object.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;using&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(MSNSearchService.MSNSearchService&amp;nbsp;service&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.MSNSearchService())&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Trying&amp;nbsp;to&amp;nbsp;fix&amp;nbsp;the&amp;nbsp;problem&amp;nbsp;with&amp;nbsp;having&amp;nbsp;'?'&amp;nbsp;and&amp;nbsp;'[]'&amp;nbsp;on&amp;nbsp;the&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;right&amp;nbsp;and&amp;nbsp;left&amp;nbsp;sides&amp;nbsp;of&amp;nbsp;result&amp;nbsp;title&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;service.RequestEncoding&amp;nbsp;=&amp;nbsp;System.Text.Encoding.UTF8;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Sending&amp;nbsp;the&amp;nbsp;query&amp;nbsp;to&amp;nbsp;the&amp;nbsp;remote&amp;nbsp;server.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;MSNSearchService.SourceResponse&amp;nbsp;response&amp;nbsp;=&amp;nbsp;service.Search(request).Responses[0];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Getting&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;pages&amp;nbsp;served&amp;nbsp;by&amp;nbsp;the&amp;nbsp;query&amp;nbsp;in&amp;nbsp;my&amp;nbsp;"TotalPages"&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//&amp;nbsp;using&amp;nbsp;the&amp;nbsp;service&amp;nbsp;response&amp;nbsp;"Total"&amp;nbsp;property&amp;nbsp;and&amp;nbsp;my&amp;nbsp;defined&amp;nbsp;PageSize.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;countFloat&amp;nbsp;=&amp;nbsp;response.Total&amp;nbsp;/&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)PageSize;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;count&amp;nbsp;=&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)countFloat;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;TotalPages&amp;nbsp;=&amp;nbsp;(countFloat&amp;nbsp;&amp;gt;&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)count)&amp;nbsp;?&amp;nbsp;++count&amp;nbsp;:&amp;nbsp;count;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Binding&amp;nbsp;the&amp;nbsp;returned&amp;nbsp;results&amp;nbsp;before&amp;nbsp;disposing&amp;nbsp;the&amp;nbsp;request.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;ResultsDisplay.DataSource&amp;nbsp;=&amp;nbsp;response.Results[0];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;ResultsDisplay.DataBind();&lt;BR&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;&lt;BR&gt;&lt;/DIV&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;UL dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;LI&gt;&lt;STRONG&gt;Google Web Service:&lt;/STRONG&gt; 
&lt;UL&gt;
&lt;LI&gt;&lt;U&gt;The good:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;The API is extremly simple (if you ignore the&amp;nbsp;parameters you don't know about). You just call a single method and pass it all the needed parameters. 
&lt;LI&gt;The search results are more accurate than any other service. Typical for Google! 
&lt;LI&gt;It has a simple &amp;#8220;&amp;lt;b&amp;gt;&amp;#8220; highlighting for the query terms in the results, and it seemed to not even be optional!.&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;U&gt;The bad:&lt;/U&gt; 
&lt;UL&gt;
&lt;LI&gt;You can have only 1,000 daily queries per key. This is the minimum among the 3 services. You can only have 1 key per Google account (which is something like .NET passport, not necessiraly a Gmail account). 
&lt;LI&gt;The total pages count returned is not always the right count. When moving withing pages, sometimes you suddenly find the total pages is different. This is a problem with Google search in general not only the webservice. 
&lt;LI&gt;The service is slightly slow. I didn't use any profiling tools or run persized performance tests, but, it's notably slow. It's not too slow to use anyway, but compared to MSN... 
&lt;LI&gt;The api doesn't describe the&amp;nbsp;weird paremeters for the single method (which are NOT well named). I had to&amp;nbsp;search for &lt;A title="" href="http://diveintopython.org/soap_web_services/google.html" target="" name=""&gt;them&lt;/A&gt;. 
&lt;LI&gt;Each reslt summary has line break &amp;#8220;&amp;lt;br&amp;gt;&amp;#8221; in a&amp;nbsp;fixed position,&amp;nbsp;and there's no clear way how you can&amp;nbsp;change the location of the line break or even remove it. This hurts when the results are displayed in a&amp;nbsp;space&amp;nbsp;with large width, the user just doesn't doesn't understand why the summary didn't continue till the end of the line before moving to the next.&amp;nbsp;(for me, I used typical String Replace method to get rid of it)&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;U&gt;Code Snippet:&lt;/U&gt; (Part of what I had in code, without error checks and so)&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"&gt;
&lt;DIV style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: black 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; BORDER-LEFT: black 1px solid; PADDING-TOP: 5px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: gainsboro"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Creating&amp;nbsp;a&amp;nbsp;reference&amp;nbsp;to&amp;nbsp;the&amp;nbsp;result&amp;nbsp;to&amp;nbsp;use&amp;nbsp;after&amp;nbsp;request&amp;nbsp;disposal&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Google.GoogleSearchResult&amp;nbsp;result;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//reatign&amp;nbsp;the&amp;nbsp;webservice&amp;nbsp;itself,&amp;nbsp;which&amp;nbsp;is&amp;nbsp;a&amp;nbsp;typical&amp;nbsp;IDisposable&amp;nbsp;object&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;using&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;(Google.GoogleSearchService&amp;nbsp;service&amp;nbsp;=&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;new&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Google.GoogleSearchService())&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Sending&amp;nbsp;the&amp;nbsp;query&amp;nbsp;to&amp;nbsp;the&amp;nbsp;remote&amp;nbsp;server.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;result&amp;nbsp;=&amp;nbsp;service.doGoogleSearch("MY_APP_ID",&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Limiting&amp;nbsp;the&amp;nbsp;search&amp;nbsp;to&amp;nbsp;a&amp;nbsp;sample&amp;nbsp;site,&amp;nbsp;my&amp;nbsp;copmany's&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;Query&amp;nbsp;+&amp;nbsp;"&amp;nbsp;site:http:/www.gnsegroup.com",&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//sending&amp;nbsp;my&amp;nbsp;offset&amp;nbsp;and&amp;nbsp;page&amp;nbsp;size&amp;nbsp;for&amp;nbsp;paging&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;CurrentOffset,&amp;nbsp;PageSize,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;true&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;,&amp;nbsp;"",&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;true&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;,&amp;nbsp;"",&amp;nbsp;"utf-8",&amp;nbsp;"utf-8");&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Getting&amp;nbsp;the&amp;nbsp;number&amp;nbsp;of&amp;nbsp;pages&amp;nbsp;served&amp;nbsp;by&amp;nbsp;the&amp;nbsp;query&amp;nbsp;in&amp;nbsp;my&amp;nbsp;"TotalPages"&lt;BR&gt;//&amp;nbsp;using&amp;nbsp;the&amp;nbsp;service&amp;nbsp;result&amp;nbsp;"estimatedTotalResultsCount"&amp;nbsp;(note&amp;nbsp;estimated)&amp;nbsp;property&amp;nbsp;&lt;BR&gt;//&amp;nbsp;and&amp;nbsp;my&amp;nbsp;defined&amp;nbsp;PageSize.&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;countFloat;&lt;BR&gt;countFloat&amp;nbsp;=&amp;nbsp;result.estimatedTotalResultsCount&amp;nbsp;/&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)PageSize;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;count&amp;nbsp;=&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;int&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)countFloat;&lt;BR&gt;count&amp;nbsp;=&amp;nbsp;(countFloat&amp;nbsp;&amp;gt;&amp;nbsp;(&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #0000ff; FONT-FAMILY: Courier New"&gt;float&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;)count)&amp;nbsp;?&amp;nbsp;count+1&amp;nbsp;:&amp;nbsp;count;&lt;BR&gt;TotalPages&amp;nbsp;=&amp;nbsp;count&amp;nbsp;&amp;lt;&amp;nbsp;100&amp;nbsp;?&amp;nbsp;count:100;&lt;BR&gt;&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #008000; FONT-FAMILY: Courier New"&gt;//Had&amp;nbsp;to&amp;nbsp;prepare&amp;nbsp;the&amp;nbsp;paging&amp;nbsp;numbers&amp;nbsp;before&amp;nbsp;binding&amp;nbsp;as&amp;nbsp;they&amp;nbsp;are&amp;nbsp;set&amp;nbsp;in&amp;nbsp;HTML&amp;nbsp;via&amp;nbsp;binding&amp;nbsp;expressions&amp;nbsp;&amp;lt;%#&amp;nbsp;...&amp;nbsp;%&amp;gt;&lt;BR&gt;//Doing&amp;nbsp;the&amp;nbsp;binding&lt;BR&gt;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: #000000; FONT-FAMILY: Courier New"&gt;ResultsDisplay.DataSource&amp;nbsp;=&amp;nbsp;result.resultElements;&lt;BR&gt;ResultsDisplay.DataBind();&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I hope that this can help anyone trying to implement any of the mentioned search services.&lt;/P&gt;
&lt;P&gt;By the way, both Google and Yahoo provide other AJAX based search services, using a standard AJAX data exchange format called &lt;A title="" href="http://www.json.org/" target="" name=""&gt;JSON&lt;/A&gt; (JavaScript Object Notation), which is said to be &lt;A title="" href="http://www.hanselman.com/blog/SerializingObjectsAsJavaScriptUsingAtlasJSONNETAndAjaxPro.aspx" target="" name=""&gt;supported&lt;/A&gt; by both ATLAS and AJAX.NET professional and even has dedicated .NET library "&lt;A title="" href="http://www.newtonsoft.com/products/json/" target="" name=""&gt;JSON.NET&lt;/A&gt;". I had no previous experience with JSON, and, had to get the search module up and&amp;nbsp;running REAL quick, so, for AJAX, I just used the relatvely old ATLAS&amp;nbsp;UpdatePanel, carrying a DataList, to which I bind the results, and implementing my own paging in the footer template.&lt;/P&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85373"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=85373" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/85373.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2006/07/16/85373.aspx</guid>
            <pubDate>Sat, 15 Jul 2006 23:36:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/85373.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2006/07/16/85373.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/85373.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/85373.aspx</trackback:ping>
        </item>
        <item>
            <title>Services Without Components!</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2005/01/13/19929.aspx</link>
            <description>When my group had the COM+ Course (#2557), we suffered much of deployment pain, we had to go through many scenarios that used to start with inherting from &lt;CODE&gt;System.EnterpriseServices.ServiceComponent&lt;/CODE&gt; and passing by attemptting to call the&amp;nbsp;component a first call, just to register it in the Component Service of the System, including some fair amount of security issues and so on.&lt;BR&gt;Today I foud a new technique for easier accompleshment of the use of Components without having to register them in Component Services or even inheriting &lt;CODE&gt;System.EnterpriseServices.ServiceComponent.&lt;/CODE&gt;&lt;BR&gt;The technique is available from &lt;A title=http://www.dotnetjunkies.com/ href="http://www.dotnetjunkies.com/" target=_blank&gt;.NET Junkies&lt;/A&gt; in&amp;nbsp;the form of a tiny how-to &lt;A title=http://www.dotnetjunkies.com/Article/17955D1E-411C-41FD-89A1-37B2ED986D6A.dcik href="http://www.dotnetjunkies.com/Article/17955D1E-411C-41FD-89A1-37B2ED986D6A.dcik" target=_blank&gt;article&lt;/A&gt;.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=19929"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=19929" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/19929.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2005/01/13/19929.aspx</guid>
            <pubDate>Thu, 13 Jan 2005 15:31:00 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/19929.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2005/01/13/19929.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/19929.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/19929.aspx</trackback:ping>
        </item>
    </channel>
</rss>