Visar inlägg med etikett dasBlog. Visa alla inlägg
Visar inlägg med etikett dasBlog. Visa alla inlägg

måndag 31 mars 2008

Sammanfattning av fördjupning i ASP.NET 2

En sammanfattning av min fördjupning i ASP.NET 2.

Om vi kort går igenom så tittade jag på 3st olika Open Source kits, applikationer. Dessa var:

Media Share Library Starter Kit Ett Kit som är främst tänkt till och för nybörjare i ASP.Net. 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.
Alltså fungerar den som ett riktigt medie bibliotek där man lånar ut saker till varandra.

Umbraco Ett content management system (CMS) och på svenska ett webbpubliceringssystem där man har ett webbadministrationssystem av typen WYSIWYG (What You See Is What You Get).
DasBlog. Vars funktionalitet är tänkt att fungera som ett blog verktyg. Det är från grunden uppbyggt på Open Source webb applikationen BlogX fast nu med förbättrade funktioner.

Det 4'e och sista skippade jag då jag hade ont om tid att kunna färdigställa utvärderingen. Detta var Yet Another Forum, En forums applikation.

Mycket fokus har legat på att kunna se möjligheter att själv bygga ut vidare på applikationerna själv. Detta är mycket viktigt då det kanske inte finns allt man önskat sig i applikationen men själv kan implementera på ett någorlunda smidigt sätt. Funktioner i applikationerna har tagits upp. Installations svårigheter. Dokumentation. Exempel.

Jag tycker det har funnits goda möjligheter till att bygga ut dessa applikationer vidare oavsett om man har käll koden eller inte. Vilket jag för övrigt inte gick igenom då, förutom Media Share Libary vilket levereras i endast en version. Det lättaste är att bygga ut med egna kontroller som inte berör själva kärnans kod. Ifall man måste implementera funktionaliteten från sin egen kontroll till ex en utbyggnad av en del eller flera delar av den befintliga koden som fanns vid leverans så kan det bli lite besvärligare. Då de levereras oftast inkapslat code behind filerna. Det kan vara en god idé att kanske arbeta från källkoden om så fall skulle behövas.

Även om nu det har funnits möjlighet till att bygga ut så har det inte alls varit det lättaste. Först måste man sätta sig in i ett nytt tänkande och hur just de specifika systemet fungerar. Man försöker lära sig ut ifrån dokumentation men dessa har i alla fall varit väldigt bristande och inte alls täckande. Det verkar vara över lag så att Open Source applikationer har mycket bristande dokumentation. Detta gör naturligtvis för en ny programmerare att sätta sig in i applikationen mycket svårare oavsett om man tänkt använda sig av det eller fortsätta utveckla. Vad jag kan tycka så brister det mer på dokumentation i fall man väljer att arbeta från källkoden. Vad som behövs göras för att komma igång. Det har funnits ibland Forum för hjälp vilket naturligtvis är bra men det är inte hållbart i längden att man ska behöva fråga gång på gång om hjälp hur man skall sätta sig in. Bara att kunna sätta sig in i en applikation kan vara ett väldigt stort projekt. Inget man räknar med att kunna efter en dag direkt.

Det kan kännas som en del funktioner i applikationen är halv färdiga eller inte har nått ända fram till vad de optimalt skulle kunnat fungera som. Man kan ta till hänsyn då att det kan ha varit någon utvecklare som inte lyckats ända fram eller möjligen hoppat av och funktionen blev inte fullbordad men den fungerade i alla fall.

Installationer av de Open Source kits, applikationer jag har gått igenom så har det inte varit några större problem att installera dem. Det har gått väldigt smidigt får jag nog säga. Men åter igen om det skulle handla om käll koden och inte installations versionerna så hade det nog inte alls varit lika lätt detta pga bristande dokumentation av installation. Det är en stor fördel att installationen går smärtfritt då om det inte skulle göra det med oväntade fel kanske det resulterar i att man inte alls kommer köra applikationen för man tycker den känns opålitlig om man nu lyckas installera den.

Och åter igen så har dokumentationen för dessa 3 varit väldigt dålig. De har antingen varit gammla för äldre versioner och utgått. Eller så finns det varianter som är halvt dåligt skrivna, difusa, dåligt förklarade. Och vissa som inte ens är fullbordat. Det känns som det saknas mycket dokumentation över kristiska bitar för en utvecklare att sätta sig in i koden. Dokumentation är bland det viktigaste i ett Open Source för att nya programmerare skall kunna sätta sig in i koden. Ett mardröms exempel för mig skulle ha varit om det inte fanns någon dokumentation alls till Drupal i PHP. Vilket hade varit en omöjlighet då. Jag tror ändå Umbraco var någorlunda så förklarande efter att man tittat igenom sektionerna och möjligheterna för en programmerare men detta skall och får givetvis inte tas som en självklarhet att det skulle vara så. APIt till Umbraco kändes väldigt bra dokumenterat däremot men mindre användbart däremot. Till Media Share Libary fanns det väl inte riktigt någon dokumentation. En artikel kunde man läsa däremot på MSDN om just Media Share Libary men å andra sidan så är applikationen väldigt liten.

Tittar man på funktionalitet mellan Umbraco och dasBlog så har vi sett att det finns en hel del likheter mellan dem. Dels att båda använder templates och macron. Dessa båda har samma syfte i båda applikationerna. En macro hämtar och renderar ut innehåll åt en template som sedan levereras. Möjligheter att göra det mesta finns i båda men det begränsas till en viss del om man inte arbetar mot källkoden och inte den installerade. Först då har man full kontroll.

Jag hade även några frågor som jag hade ställt mig själv i början för denna förjupning.

Hur fungerar open source i asp.net?
Funktionsmässigt så skiljer det sig inte på något sätt än vad man är van annars att arbeta med kod. Det är just strukturen i en open source applikation och tanke sättet som skiljer sig från hur man annars kan vara van att programmera i asp.net. Oftast levereras dessa inkapslade men detta för att det ska vara lätt att distribuera och hålla intakt.

Är open source applikationer i asp.net något som vi kommer se mer framöver?
Jag tror att vi kommer göra det. Främst för att det är lätt att tillgå, det är oftast gratis, det är många utvecklare kring det, det har blivit mer och mer populärt, många tillämpnings områden.

Hur bra fungerar open source i asp.net?
I stora drag så fungerar Open source applikationer inte mer annorlunda i asp.net än vad det skulle kunna göra i PHP. Det fungerar minst sagt lika bra.

Är open source kitten för alla?
Jag tror det finns en tillämpning som passar de flesta och de är smidiga att komma igång med. Till skillnad från en stängd källkod kan du aldrig själv vidare bygga ut utifrån den vilket gör dig helt begränsad till det du har. Det blir du inte i öppen källkod.

Jag tycker att vi skall börja se vad vi har för möjligheter idag med nuvarande open source innan man själv börjar skapa något större. Det finns faktiskt möjlighet där ute som reda är klara och kanske väl beprövade. Det kan spara en mycket tid. Det behöver inte heller vara en stor hel applikation utan det kan faktiskt bara handla om en viss del ut av en applikation som man vill ta del av till sin egen. Jag kan mycket väl själv tänka mig överväga att använda open source applikationer eller i alla fall delar ut av dem.

söndag 30 mars 2008

Das Blog

Detta inlägg kommer handla om DasBlog
DasBlog är en Open Source webb applikation. Vars funktionalitet är tänkt att fungera som ett blog verktyg. Det är från grunden uppbyggt på Open Source webb applikationen BlogX fast nu med förbättrade funktioner. dasBlog är skrivet i C#. Officiell webbsida för dasBlog.

Något som känns lite avvikande från vad man annars förväntar sig är att dasBlog inte är databas driven. Allt sparas i xml filer vilket känns bra. Detta medför att man kan spara pengar och installationen blir möjligen lite lättare.

dasBlog nyaste version är skriven för ASP.NET 2.0 men det finns även tidigare versioner i 1.o. Det är även möjligt att växla mellan olika themes själv och dasBlog kommer levererat med 24st olika.

Insallationen av dasBlog är inte speciellt avancerad. Det följer med en Readme fil i paketet som föklarar i steg hur man gör. Enkelt förklarat är det bara att föra över filerna till en server samt ändra om 2 configurations filer, site.config och SiteSecurity.config. Sedan när man väl kör sökvägen till bloggen för första gången så installeras det automatiskt vilket man inte hinner märka av.

Användar gränssnittet för inlägg av nya poster är mycket rikt och användbart.

Om man gämför med t.e.x. blogger.com som jag använder nu att skriva från så känns det plötsligt ganska fattigt med möjligheter till att ex. Lägga till bilagor eller podcasta.
En mindre kosmetisk minus är väl just allt som kommer nedanför text rutan där temat känns från Office XP till tråkigt system aktigt. Ett stort plus för en funktion som jag tycker saknas i andra bloggar är en Undo och Redo knapp som finns att tillgå i dasBlog!

En helt intressant funktion i dasBlog är att man kan skicka ett html e-mail för att göra ett inlägg med Microsoft Outlook eller vilket annat program som stödjer html e-mail. Man kan även där bifoga bilder och andra filer. Och då kan man undra varför jag tycker detta är så fascinerande kanske. Well, det är inte just för att man kan blogga något kult mail man har fått av en kompis. Utan det gör det möjligt att skapa inlägg utan att behöva interaktionera sig med användar gränssnittet samt att man kan enkelt blogga från sin Mobil om man har möjlighet att skicka mail med den, vilket jag ser som en stor fördel. Snabbt och smidigt skulle man kunna ladda upp direkt på sin blogg något intressant man har sett eller hört, när man inte har tillgång till sin dator eller liknande. För att kunna posta ett inlägg i bloggen med mail så måste man ange ett säkerhets ord för att dasblog skall publicera det. dasblog tittar med jämna mellanrum om några nya mail har kommit in.

Det finns en hel del inställningar man kan göra i sin blog även och en del intressanta utöver bas är.
  • Syndication settings för RSS feeden.
  • Notification settings för inlägg och kommentarer.
  • Service settings så som trackback, pingback, edit comments, crossposting osv.
En mycket intressant funktion är cross-posting. vilket gör det möjligt att kunna skapa inlägg i andra bloggar som använder sig av eller har stödj för Blogger API eller MetaWeblog API. Innehållet i bloggen kan då syncroniseras med de andra bloggarna även. Detta kan ju underlätta en hel del för dem som har flera bloggar.

Att ändra tema på sin webbsida är inte svårt heller. dasBlog kommer med 24'a theman som jag skrev i början. Genom att gå på Appearance settings så kan man välja i en rull lista nytt.
Till en början är temat tråkigt och grått men det finns en hel del att välja bland. Sedan är det ju inte omöjligt att skapa eller modifiera sina egna för den händiga.

Med det nya temat blev det finare...

Det finns även en liten statistik att tillgå om man vill vilket är ett plus tycker jag. Detta för att många blogg verktyg inte tillgår statistik till en som kan kännas viktigt.

Något som jag tycker saknas är lite cms funktionalitet. Det går inte att lägga till något i layouten i form av nytt innehåll som man kanske vill redigera själv från en administrations panel. Detta skulle kunna vara placering av saker och egen skript kod i form av html och javascript.
Detta är ju ett ganska stort ingrepp som behövs göras vilket jag inte tänker försöka ge mig på i denna artikel. Men det är något som är värt för utvecklarna att tänka på.

Att skapa sin egen layout och design för dasBlog är inte så invecklar för den som kan html och css. Man kan göra det enkelt för sig genom att kopiera en nuvarande mapp i themes och döpa om den till ett lämpligt namn. Så har man gratis fått de filer man behöver. Dessa är, dayTemplate.blogtemplate, homeTemplate.blogtemplate, itemTemplate.blogtemplate och theme.manifest. Man skall börja med att ändra till de rätta sökvägarna i theme.manifest och sedan är det klart att ladda in sitt nya tema om det nu inte eventuellt behövs även ändra sökvägar i homeTemplate. Du kan hädan efter välja att skapa om på helt nytt eller modifiera lämpligen den du kopierat. I templatserna så måste man ange macron som sedan renderar ut information. De börjar med '<%' och avslutas '%>' och där i mellan är metoden eller funktionen.
Mer om de redan inbyggda Macrona finns att tillgå här. Det går även givetvis att skapa sina egna macros. Mer om hur man gör egna custom macros finner du här.

Som i dasBlog för att kunan bygga ut vidare så är tankesättet väldigt likt Umbraco. Det finns 2st delar som är lik i tanke sättet och det är att det finns templates och dessa templates har macron. Dock är templaterna mycket begränsade till 3 i varje tema men inte macrosarna. Att skapa egna Macros i dasBlog sker inte med XSLT men däremot skulle man kunna bygga ut med egna user kontroller och egna andra kontroller.

Nedan har jag tagit och kopierat ett utdrag ur homeTemplaten.blogtemplate från ett tema jag valt att kalla Carljoel. Här kan man se utbyggdnaden i en template och hur macrona körs. Jag har valt att använda ett inbyggt macro nedan för att importera en user control som jag skapat själv. Se det blå markerade.

homeTemplate.blogtemplate exempel<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%radio.macros.headLinks ()%>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="content-language" content="utf-8" />
<meta content="all" name="robots" />
<meta name="author" content="<%authorName%>" />
<meta name="copyright" content="Copyright (C) 2005, <%authorName%>. All rights reserved." />
<meta name="description" content="<%subtitle%>" />
<meta name="keywords" content="Voidclass, blog, weblog, Sean Lu, Sean, Programming, Live, Internet, Music, Photo" />
<title><%title%></title>
<%styleSheet("style.css")%>
<script language="JavaScript" type="text">
<!-- Begin hiding from older browsers
//End hiding-->
</script>
</head>
<body>
<div id="centerColumn">
<div id="header">
<h1><%siteNameLink%></h1>
<h2><%subtitle%></h2>
<h2><%description%></h2>
</div>
<!--//end #headern//-->
<div id="fauxRightColumn">
<h2>Navigation</h2>
<p><%navigatorLinks%></p>
<h2>Search</h2>
<p><%newtelligence.search()%></p>
<h2>Categories</h2>
<p><%newtelligence.drawCategories()%></p>
<h2>On this page</h2>
<p><%titleList()%></p>
<h2>Archive</h2>
<p><%newtelligence.drawArchiveMonths()%></p>
<h2><%localString("Blogroll|DE:Weblog Liste|AR:&#1602;&#1575;&#1574;&#1605;&#1577;&#1575;&#1604;&#1583;&#1601;&#1575;&#1578;&#1585;&#1575;&#1604;&#1575;&#1604;&#1603;&#1578;&#1585;&#1608;&#1606;&#1610;&#1577;")%></h2>
<p><%radio.macros.blogroll("siteConfig/blogroll.opml")%></p>
<p><%newtelligence.disclaimer()%></p>
<p><%rssLink%> | <%atomLink%> | <%CdfLink%></p>
<p><%radio.macros.mailTo()%> E-mail</p>
<p><%blogStats()%></p>
<p><%newtelligence.loginbox()%><br /><%newtelligence.aspnetcontrol("themecombo.ascx")%></p>
<h2>Egen kontrolll</h2>
<p><%newtelligence.aspnetcontrol("egenkontroll.ascx")%></p>
</div>
<!--//end #fauxRightColumn//-->
<%newtelligence.adminBar()%>
<%bodytext%>
<div id="footer" class="clear">
<p>&copy; Copyright <%year%>, <%authorName%>. | <a href="http://validator.w3.org/" title="W3C HTML Validation">XHTML</a> | <a href="http://jigsaw.w3.org/css-validator/validator-uri.html" title="W3C CSS Validation">CSS</a> | <a href="http://www.w3.org/TR/WCAG10/" title="Web Content Accessibility Guidelines">WCAG</a> | <a href="http://www.csstinderbox.com">The CSS Tinderbox</a><br />
Theme Design by <a href="http://www.voidclass.com">Voidclass</a> with <%radioBadge%><br />
<%localString("Page rendered at|DE:Seite aufbereitet um|AR: &#1578;&#1605; &#1593;&#1585;&#1590; &#1607;&#1584;&#1607; &#1575;&#1604;&#1589;&#1601;&#1581;&#1577; &#1601;&#1610;")%>&nbsp;<%now%></p>
</div>
<!--//end #footer//-->
</div>
<!--//end #centerColumn//-->
</body>
</html>


Kopierat från min user controls.
egenkontroll.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="egenkontroll.ascx.cs" Inherits="egenkontroll" %>

<asp:Label ID="lbl_text" runat="server" />


egenkontroll.ascx.csusing System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using newtelligence.DasBlog.Web;
using newtelligence.DasBlog.Web.Core;
using System.IO;
public partial class egenkontroll : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
StreamReader sr;
sr = File.OpenText(Server.MapPath("kod.txt"));
lbl_text.Text = sr.ReadToEnd();
sr.Close();
}
}

Vad den gör är att den läser ut text från en text fil. Där i texten skulle man kunna ha vad som helst. Jag valde att skriva ett litet javascript dit som renderar ut en bild, tanken kan vara att man vill rendera ut en annons som är skrivet i javascript eller annan valfri html kod. Svårare än sådär var det inte att länka in sin egen user control. Jag hade istället kunnat göra så att man från administrations panelen ändrar texten för innehållet där ifrån. Men på grund av tidsbrist så har jag inte nog tid med att sätta mig in i att få det fungera. Däremot gjorde jag en litet bit in på det.

Nu känns det som jag har gått igenom klart dasBlog även en sväng. Jag har tittat på dess funktioner och även kortare visat hur man kan implementera sina egna kontroller till en template. Givetvis så hade det varit bättre ifall jag kunnat även sätta mig in kärnan för dasBlog för att integrera min user control i administrations panelen så man kunnat ändra innehåll. Men det blir lite väl mycket att göra på så kort tid som jag har kvar nu. Så jag får lämna dasBlog här.
Men det var en hel del jag tyckte bra om dasBlog, överlag så tycker jag detta var en bra blog veryktyg som jag kan själv överväga att använda i framtida behov och rekommendera.

Jag kan tycka även här att dokumentationen är bristande på sina håll. Men det går skapligt att sätta sig in i applikationen ändå men som sagt så är det väldigt bra med dokumentation. dasblog skulle även ha kunnat komma med fler mer teman som känns mer design mässigt aktuellt idag.
CMS funktionerna för att ändra på layouten skulle ha kunnat vara ett stort plus för dem som inte kan html och css. Finns som sagt en del för utvecklarna att fortsätta utveckla mot.