Bu aralar dersler de örnek olsun diye webpart uygulaması yapıyorum. Bazı çıkarımlar olmadı değil. Sürü ile kontrol hazırladım. İyi kötü yazıyorum birkaç tanesini :)

//google.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile
="googleSearch.ascx.cs"
Inherits="googleSearch"
%>
<script type
="text/javascript">
   var
req= N'
;
   function
GetXmlHttpObject()
   {
      try
      
{
         req = new
XMLHttpRequest();
      }
      catch
(e)
      {
         try
         {
            req = new ActiveXObject("Msxml2.XMLHTTP"
);
         }
         catch
(e)
         {
            req = new ActiveXObject("Microsoft.XMLHTTP"
);
         }
      }
   }

   function
stateChange()
   {
      document.getElementById('calImg').style.display = 'inline'
;
      if(req.readyState == 4
)
      {
         document.getElementById('calImg').style.display = 'none'
;
         document.getElementById('calDiv'
).innerHTML = req.responseText;
      }
   }

   function
search()
   {
      var url = './resources/search.aspx?text=' + document.getElementById("txtSearch"
).value;
      GetXmlHttpObject();
      req.onreadystatechange = stateChange;
      req.open("post",url,true
);
      req.send(N'
);
   }
</script
>
<
table
>
   <tr
>
      <td align
="center">
         <img src="images/google.gif" style="width: 200px; height: 68px" alt="google"
/>
      </td
>
   </tr
>
   <tr
>
      <td align
="center">
         <input id="txtSearch" style="font-family: arial, Helvetica, sans-serif; font-size: 12px
;
border: 1px solid #808080" type="text" />
         <
input onclick="search()" id="Button1" style="font-family: arial, Helvetica, sans-serif
;
font-size: 12px; border: 1px solid gray; height: 19px; width: 66px;" type
="button"
value="Ara"
/>
      </td
>
   </tr
>
   <tr
>
      <td
>
         <img src="images/circle.gif" id="calImg" alt="aranyor" style="display: none;"
/>
         <br
/>
         <div id
="calDiv">
         </div
>
      </td
>
   </tr
>
</
table
>

//search.aspx.cs

protected void Page_Load(object sender, EventArgs
e)
{
   string kelime = Request["text"
];
   string adres = @"http://www.google.com.tr/search?hl=tr&q=" + kelime + "&meta="
;
   WebClient client = new WebClient
();
   DateTime dt1 = DateTime
.Now;
   string
data = client.DownloadString(adres);
   DateTime dt2 = DateTime
.Now;
   TimeSpan
ts = dt2 - dt1;
   string pattern = "<h2 class=r>(?<Link>.*?)</h2>"
;
   Regex myRegex = new Regex
(pattern);
   MatchCollection
myCol = myRegex.Matches(data);
   int counter = 0
;
   StringBuilder sb = new StringBuilder
();
   sb.Append("<b>Sonuçlar</b> (<i>"
);
   sb.Append(ts.TotalMilliseconds);
   sb.Append(" toplam Milisaniye</i>)<br />"
);
   sb.Append("<table border=0 width=100% style=font-family:arial;font-size:10px;>"
);
   foreach (Match m in
myCol)
   {
      if ((m.Groups[0].ToString().IndexOf("aramalar:")) == -1
)
      {
         counter++;
         sb.Append("<tr><td width=10%>"
);
         sb.Append(counter.ToString());
         sb.Append("</td>"
);
         sb.Append("<td>"
);
         sb.Append(m.Groups["Link"
].Value);
         sb.Append("</td></tr>"
);
      }
   }
   sb.Append("</table>"
);
   Response.Write(sb.ToString());
}