Introducing ‘Hälsningsgeneratorn’ – en demo av flera olika Silverlight 2 och .NET 3.5-tekniker

Under sommaren och hösten har vi på MSDN tagit hjälp av Anders Bursjöö, Carl Kenne och Johan Normén på Dotway för att utveckla en komplett flerskiktad demo-applikation i syfte att visa på några intressanta koncept och tekniker i Silverlight 2 och .NET 3.5.

Applikationen är en hälsningsgenerator där du kan använda kylskåps-poesi tillsammans med bilder för att skapa en personlig hälsning till någon och sedan skicka en länk till hälsningen via e-post, eller bädda in hälsningen via en iframe i din blog eller andra webbsidor.

Målet med projektet har varit att ta fram en applikation som:

  • vi på Microsoft ska kunna använda för att demonstrera hur den är byggd - i våra seminarier, screencasts osv.
  • vi ska även kunna använda den internt på Microsoft – t.ex. på vår egna MSDN-sajt eller för andra virala kampanjer som vi gör
  • du ska kunna ladda hem och modifiera för att använda själv – i rent utbildningssyfte eller för att använda funktionaliteten på din webbplats, för att ge besökare möjligheten att skapa roliga och anpassningsbara hälsningar som de kan skicka till andra.

Här är några skärmdumpar från applikationen:

greeting0

greeting1

greeting2

Alla kontroller i gränssnittet är ‘custom’-kontroller, byggda för att vara enkla att ‘skinna’ om i Expression Blend för att enkelt kunna skapa andra teman, t.ex. ett alla-hjärtans-dags-tema eller ett jul-tema. I bilderna ovan visas standardutseendet som är ett höst-tema.

Här är en av kontrollerna som används i hälsningsgeneratorns bakgrunds-animering öppnad i Expression Blend:

backgroundAnim

Men det är inte bara gränssnitts-teknikerna som är intressanta i den här lösningen. Den visar också hur Silverlight kommunicerar med en WCF-tjänst som hanterar lagring av nya hälsningar och hämtning av redan sparade. För dataaccess används LINQ to SQL och hälsningarna sparas i en SQL Server 2008-databas. Tjänsten hanterar också e-postutskick när en hälsning sparas. Det här möjliggör också att hälsningsgeneratorn kan skapas i flera olika versioner som läggs på olika serverar men som går mot samma back end server:

SLGreetingArkitektur

 

För att förhindra att tjänsten uttnyttjas av spam-tjänster så krävs att användaren klarar av en Captcha-utmaning för att bevisa att det är en människa som försöker skicka hälsningen:

greeting3

Captcha-genereringen och valideringen ligger också på serversidan (i WCF-tjänsten) för att förhindra att utmaningen kan kringgås av klientsideslogik. Jag har tidigare skrivit ett ganska utförligt blogg-inlägg om hur jag skapade den med hjälp av WPF-klasser och lösa XAML-filer på serversidan.

Du kan testa hälsningsgeneratorn live här.

Du hittar mer information om och kan ladda hem källkoden för 'hälsningsgeneratorn’ – eller Greeting Creator som den heter på Codeplex.