Hur man bygger en enkel Twitter Widget med ASP.NET

I den här handledningen går jag igenom hur du skriver en Twitter-widget för ASP.NET i form av en återanvändbar serverkontroll som är komplett med fina saker som att automatiskt ändra webbadresser till länkar och cache för att öka sidladdningstiderna.


Steg 1 Komma igång

För att följa denna handledning är allt du behöver Visual Studio (Du kan använda MonoDevelop om du inte är på Windows, även om det inte finns några garantier där.) Om du inte vill gaffla över pengar för den fullständiga versionen av Visual Studio, kan ta tag i den fria Express Edition.

Du behöver också kunskap om C # 3.0, eftersom denna handledning använder sig av några av de nyare funktionerna i språket, som lambda-uttryck och var nyckelord.


Steg 2 Skapa kontrollen

ASP.NET innehåller en praktisk funktion som kallas Server Controls. Dessa är anpassade taggar som syftar till att hjälpa utvecklare att strukturera sin kod. När en sida med serverstyrning begärs, kör ASP.NET runtime Göra() metod och inkluderar utmatningen på den sista sidan.

När du har skapat ett nytt webbprogram i Visual Studio högerklickar du i lösningsutforskaren och lägger till ett nytt objekt i lösningen. Välj ASP.NET Server Control och ge det ett namn. Här har jag ringt det Twidget.cs, men du är välkommen att ringa det vad du vill. Klistra in följande kod och oroa dig inte om det hela ser lite utländskt - jag kommer att förklara det hela inom kort.

 använder system; använder System.Collections.Generic; använder system.Linq; använder System.Web; använder System.Web.UI; använder System.Web.Script.Serialization; använder System.Net; namespace WebApplication1 public class Twidget: Control public string Konto get; uppsättning;  public int Tweets get; uppsättning;  skyddad åsidosätt tomt Render (HtmlTextWriter-skribent) writer.Write ("
    "); föreach (var t i GetTweets (). Ta (Tweets)) writer.Write ("
  • 0
  • ", HttpUtility.HtmlEncode (t)); writer.Write ("
"); offentlig lista GetTweets () var ls = ny lista(); var jss = ny JavaScriptSerializer (); var d = jss.Derialiserar>> (nya WebClient () .DownloadString ("http://api.twitter.com/1/statuses/user_timeline.json?screen_name=" + Konto)); foreach (var x i d) ls.Add ((sträng) x ["text"]); returnera ls;

Detta är ungefär lika grundläggande som du kan få för en Twitter-widget. Så här fungerar det:

När en användare begär en sida med den här kontrollen på den, Göra() Metoden utförs med a HtmlTextWriter passerade som en parameter. Det skriver ut