tisdag 18 mars 2008

Media Share Library Starter Kit

Det är Media Share Library Starter Kit som jag först tänkte ta mig en närmare titt på.
Media Share Library Starter Kit är ett Kit som är främst tänkt till och för nybörjare i ASP.Net. Egentligen är Media Media Share Library Starter Kit inte direkt en typisk open source applikation. Men koden är uppen för alla och du kan själv modifiera om den och göra det du vill med den så jag törs nog påstå att den är en open source applikation. Den finns att hämta hem på www.asp.net

Hädan efter i artikeln kommer jag kalla Media Share Library Starter Kit förkortat till MSL.
MSL är skapad av Bill Evjen och då var året 2005. Denna applikation är skriven för asp.net 2.0 och är en form av introduktion för nybörjare och de nya funktionerna i asp.net 2.0.
Bill Evjen jobbar för övrigt på Routers och har skrivit en del böcker, han är även hyllad för sin delaktighet i Asp.net och Web services.

Vad är MSL tänkt då för?
"The idea of this application is that it get installed for use by a small group to share their media (DVDs, XBOX games, music CDs, and more) with each other in an easy manner. "

- Alltså, tanken bakom denna applikationen är riktat till en mindre grupp eller större grupp av människor där man kan enkelt dela med sig av olika media format så som DVD, spel, musik osv.
Tanken blir alltså att det kommer fungera som ett riktigt medie bibliotek där man lånar ut saker till varandra.

Så om vi tittar på installationen av MSL.
Man får applikationen installationen i en msi fil vilket råder ganska gott då för oss Windows användare. Installationen är väldigt enkel..

Det intressanta var egentligen det 3'e steget på bilden längst ned. Där man väljer vart den skall installeras och anger namn. Egentligen gick det inte ovan att välja vart den skulle installeras utan tvingades installeras under 'C:\Inetpub\wwwroot\MediaShareLibary'. Var din Inetpub ligger kan variera, samt namnet på mappen ifall du anger den till något annat än MediaShareLibary.
Efter installationen är klar så stängs rutan ned och du får öppna applikationen med Visual Studio.
Intressant när man öppnar MSL i visual studio och ser filerna så ser vi att datat inte lagras till en extern lokalisation utan det finns en mdf fil i App_Data där all databas data sparas.

När man väl startar upp applikationen så kommer en admin roll skapas vilket sker i Global.asx filen. Detta kan man sedan bekräfta genom att gå in på konfigureringen för web sidan (Website - Asp.Net Configurations) och då kommer ett webbläsare fönster att öppnas där det finns en Security tab som visar antal registrerade användare och roller m.m. Härifrån kan du sköta även vilka roller en användare skall ha.

Applikationen är från början öppen för alla att komma åt men för att gå in och använda biblioteket så måste man registrera sig. Även administrativa funktioner kräver att man har en administrativ roll. Dessa begränsningar sker via web.config filerna.

Nu kan man gå över till att skapa en användare i join.aspx och som ligger i menyn till vänster 'Join Today!'. Sedan är det bara att fortsätta köra applikationen och allt fungerar som applikationen är tänkt att fungera utan några ingrepp i koden.

Överlag så gick det enormt snabbt att installera applikationen och få den att köras utan problem. En introduktion till MSL kan man finna på MSDN där de går igenom mer noggrant hur applikationen används.
Det finns massor av saker man kan göra vidare på denna. Några exempel skulle kunna vara att man förbättrar applikationen genom att man får ladda upp en blild till sin medie fil, skapa sin egen web service till denna, förbättrat gränssnitt och så vidare.
Nu är det upp till var och en och veta om man vill ta delar av denna applikation till sin egen eller bygga vidare på den från grunden om denna applikation kan tänkas vara till nytta för någon.

Eftersom denna applikation är skriven i grunden i VB.NET så hur går det då om jag inte har läst det programmeringsspråket? Jag själv programmerar ju i C# och inte i VB.NET.
Då är det inge problem om du vill programmera vissa av sidorna i C#. Här nedan har jag gjort exakt samma admin funktion som var skriven först från början i VB.NET.

Koden i aspx sidan skiljer sig minimalt. Den stora skillnaden är headern för aspx sidan som anger språket m.m. Om vi tittar i code behind filen så är skillnaden dessa mellan VB.NET och C#.

VB.NET
Partial Class _Default
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
' Insert new media type
SqlDataSource1.Insert()
End Sub
End Class



C#
public partial class Admin_addMedia : System.Web.UI.Page
{
protected void Button1_Click(object sender, EventArgs e)
{
SqlDataSource1.Insert();
}
}


Funktionen är densamma men språket utformar sig lite annorlunda bara. Däremot tycker inte jag det är så lämpligt att blanda olika programmerings språk så som att göra vissa sidor i C# och andrai VB.NET utan det är nog bättre för alla om man nog håller sig till ett å samma språk. Helst om man har tänkt att göra sin open source applikation offentlig för andra att man inte blandar in olika språk och då är det extra viktigt att man har kommenterat sina funktioner noggrant så andra kan förstå ditt programmerings sätt bättre.

Jag tycker personligen inte att MSL är rent och snygg skriven applikation. Då bland annat man inte alls håller isär koden från vad som ska ligga på presentations lagret och BLL. I lärande syfte och såhär till introduktion så är det kanske okej. Men det hade varit bättre att lägga kod som skulle höra till BBL i code behind filen för att man ser bättre struktur och jag tror att det är på så sätt ännu lättare att lära sig. Applikationen är väldigt simpel i sig vilket är bra för en nybörjare. Men som jag sa i början så känns inte MSL så mycket som en typisk Open Source applikation. Det kändes ändå viktigt att ta upp en mer grundlig variant av en open source applikation då det faktiskt inte behöver vara mer avancerat än såhär.

1 kommentar:

Anonym sa...

Intressant läsning. Vad det gäller VB vs. C# så är det som du säger lite små skillnader men eftersom ramverket är det saa så tror jag man ganska snabbt kan skifta över. Har några gamla studenter som nu jobbar i VB.NET och det tog kanske en vecka sedan var det inga som helst problem.

Konstigt dock att det är lite "ful-kod" i ett starter-kit. Men oftast när man tittar på MS-videor och annat där man presenterar tekniker så är det inga lagerlösningar.