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.

Inga kommentarer: