Introduction to dasBlog 1.9
The dasBlog 1.9 release comes almost a year since the release of dasBlog 1.8 and brings a number of new features, fixes, and some new themes. This readme file assumes that you have already downloaded the dasBlog 1.9 Web Files (if you downloaded the Source, please download the Web Files unless you know how to build the source yourself).
DasBlog and other web applications can be set up in one of two ways—it all depends on whether you have control of the computer (server) where the application will be installed. These instructions assume that you have control over the server where dasBlog is being installed.
Note: If you are installing this onto a shared server, such as a web host where you’ve rented space, the details are covered in the section Detailed Install Instructions below and may require you to request help from your web host to set permissions correctly.
The next section will step you through installing dasBlog. If you get stuck, look at the section that follows (and also requires a higher technical understanding). If you still have problems, use one of the links below:
To begin, you’ll need to install the dasBlog application, configure your site security file, and then browse to your new blog!
Note: If you are running DasBlog on ASP.NET 1.1 you can skip this section. If you are running DasBlog on ASP.NET 2.0 you need to read the supplied web.config carefully as this issue apply to you.
Add cookieless="UseCookies" to the <forms> element of your web.config (Details)
New Install (Web Files)
You’ll need to make sure you have IIS and ASP.Net on your computer before you begin. IIS is the Microsoft web server but it is not available on Windows XP Home Edition.
- Unzip the Web-Files.zip into a new directory. You’ll want to keep the source in the dasblogce/ directory (star #1 below).
- Run CreateDasBlogVdir.vbs (star #2 above) which will create a Virtual Directory in IIS that points to the dasblogce/ directory.
- You’ll be prompted for the name of the Virtual Directory you’d like to use for your application. It defaults to dasBlog but you may want to use Blog, Notes, or something else that appeals to you.
Note: If you are installing the source, the source files expect to find the application at http://localhost/DasBlog/
Note: If you are running DasBlog on ASP.NET 2.0 you need to read the supplied web.config carefully as this issue applies to you.
Add cookieless="UseCookies" to the <forms> element of your web.config (Details)
Security and Multi-User
Be sure to change your username and password by editing sitesecurity.config. You can also add additional adminstrators or "contributors." Contributors can add content, but only edit or delete content they've added.
For example:
<?xml version="1.0" encoding="utf-8"?>
<SiteSecurityConfig xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Users>
<User>
<Name>MrAdmin</Name>
<Password>MyStrongPassword</Password>
<Role>admin</Role>
<Ask>true</Ask>
<DisplayName>Your DisplayName here!</DisplayName>
<EmailAddress>myemail@myemail.com</EmailAddress>
</User>
<User>
<Name>MrIAmNotAnAdmin</Name>
<Password>MyStrongPassword</Password>
<Role>contributor</Role>
<Ask>true</Ask>
<DisplayName>Your DisplayName here!</DisplayName>
<EmailAddress>myemail@myemail.com</EmailAddress>
</User>
</Users>
</SiteSecurityConfig>
Note: Not everything that is accessible via an URL exists on the file system! Please do not automatically assume we've left a file out of the distribution. For example, deleteitem.ashx does not exist as a file! It is a line in your web.config. Read this file carefully for more details on merging these new features into your web.config.
Detailed Install Instructions
1. Create a IIS Web Site (Either on a local server or via a commercial host provider)
Create a virtual IIS web site from folder /dasblogce or you can use your IIS root if you understand the requirements. You can also use the script CreateDasBlogVdir.vbs to create the site, if you are installing local.
2. Copy files
Copy all files into your dasblogce folder or IIS site root keeping the folder structure intact.
3. Important Pemissions & configuration files:
On IIS 5.0 (Windows 2000), the account used to execute web applications (IWAM_xxx or IUSR_xxx) needs read/write permissions to the content/, siteconfig/, and logs/ subdirectories.
- The ASP.NET worker process identity, usually {machinename}\ASPNET on IIS5.0 (Windows 2000 and Windows XP) or NETWORK SERVICE on IIS 6.0 (Windows Server 2003) also need read/write access to the content/, siteconfig/, and logs/ subdirectories.
- Go to the siteConfig directory in (likely in c:\inetpub\wwwroot\{sitename}) and open the site.config file. In that file, change the settings (quite obvious when you look at them). The most important change is to set the <Root> value to the proper URL for your weblog.
- Open the siteSecurity.config in the same directory and set up your own account with a proper password.
For more detailed information on setup/install or upgrades see the great information http://DasBlog.info/ site or join the discussion on http://DasBlog.us/
New Install (From Source)
To install the dasBlog source code, you can start with the Source.zip files.
- Run CreateDasBlogVdir.vbs to create a virtual directory and set proper permissions
- Leave the virtual directory at the default, DasBlog so that the Visual Studio project will find the source correctly through IIS). For the source distribution, the web files are located in build\source\newtelligence.DasBlog.Web\
Upgrades
DasBlog has been around for quite some time and keeps improving. The benefit is new features and bug fixes, but the downside is some extra difficulty when upgrading the application. To upgrade an existing dasBlog installation, find the version of the application you are using now and then execute the steps in each section to bring your version up to date.
Merging
If you are upgrading from a previous version, you WILL need to manually merge some new lines into your web.config if you want to maintain your existing web.config. I suggest Beyond Compare from ScooterSoftware for your comparing and merging needs or WinMerge, an excellent Open Source program.
Finding Your DasBlog version
Your DasBlog version information is posted on your blog’s web page (for most themes). Look for the section indicated by the arrow below.
You can also use the version information for the newtelligence.DasBlog.Web.dll file (found in your /bin directory).
Upgrading from 1.6 or Earlier
DasBlog 1.6 stored data like comments and trackbacks in *.dayextra.xml files. It also had a bug that stored entries in the wrong timezone. To fix these older bugs and improve performance you’ll need to run a one-time upgrade process on your dasblog/content folder. You’ll also have the opportunity to mark all your entries as Public, as the new version of DasBlog respects that setting.
Run the upgradedasblog/DasBlogUpgrader.exe with your content directory as a parameter.
For example:
DasBlogUpgrader.exe c:\dasblog\content
This utility will also give you the opportunity to clean your posts of old referral spam. You can edit the DasBlogUpgrader.exe.config to include other naughty words that you want removed from your files. Your posts will not be changed, only referrals, pingbacks and trackbacks.
Next, proceed to the instructions to upgrade from 1.7 below
Upgrading from 1.7
In the interest of simplification, some DLLs aren't needed from your existing installation. You can delete your bin folder and redeploy completely, but if you just copied DasBlog 1.9 files over your existing files, note that newtelligence.DasBlog.Util.Html.dll and newtelligence.Web.UI.WebControls.dll are no longer needed and may be safely deleted.
NOTE: DasBlog 1.9 includes a few new configuration changes. After upgrading, be sure to visit your Admin’s Edit Configuration page and peruse all the new settings and confirm the existing ones.
If you have an existing web.config, be sure to merge it with the web.config in this archive. Significant changes to the web.config in 1.9 are as follows.
We suggest that you do a line by line merge comparing your web.config with the new one using a diff tool like BeyondCompare or KDiff. Alternatively, you can use our default web.config if you’ve made no changes to yours.
NOTE: The goal of these changes mean to simplify DasBlog and remove lines you have to care about from the web.config.
- The newtelligence.Web.UI.WebControls assembly is REMOVED, with all its classes moved to newtelligence.DasBlog.Web.Core.
- The newtelligence.ControlImages configSection has moved to a different assembly:
<section name="newtelligence.ControlImages" type="newtelligence.DasBlog.Web.Core.WebControls.ControlImageModuleSectionHandler, newtelligence.DasBlog.Web.Core" />
- The <newtelligence.ControlImages> type has moved:
<add type="newtelligence.DasBlog.Web.Core.WebControls.ShadowBox" name="shadowbox" />
- The newtelligence.DasBlog.Themes isn’t required at all anymore (see Themes below) and you can remove the <configSections> element and the whole < newtelligence.DasBlog.Themes > section lower down in the file. Make sure the file is still well-formed XML.
- These files don't exist in your file system. They are not real files. They are HTTP Handlers/Endpoints. You need to add a few new elements in the <httpHandlers> section to get these new features, including
<add verb="*" path="cptrk.ashx" type="newtelligence.DasBlog.Web.Services.CrosspostReferrerHandler, newtelligence.DasBlog.Web.Services" />
<add verb="*" path="deleteItem.ashx" type="newtelligence.DasBlog.Web.Services.DeleteItemHandler, newtelligence.DasBlog.Web.Services" />
- The <forms> section has changed a little. We have changed the cookie name, although this is optional.
<forms name=".DASBLOGAUTH" protection="All" timeout="60" path="/"/>
IMPORTANT: If you are running multiple instances of DasBlog on the same machine/domain, set the path=”” attribute to the value of the virtual directory. For example, if you’re running http://www.foo.com/myblog1 then make path=”/myblog1
Next, proceed to the instructions to upgrade from 1.8 below
Upgrading from 1.8
If you have an existing web.config, be sure to merge it with the web.config in this archive. Significant changes to the web.config in 1.9 are as follows.
We suggest that you do a line by line merge comparing your web.config with the new one using a diff tool like BeyondCompare or KDiff. Alternatively, you can use our default web.config if you’ve made no changes to yours.
NOTE: The goal of these changes mean to simplify DasBlog and remove lines you have to care about from the web.config.
- Just as in the 1.7 upgrade instructions, some files can be referred to in a URL but do not exist in the file system—these are HTTP Handlers/Enpoints. You need to add two new elements. Find the section that starts <httpHandlers> and add the two lines below:
<add verb="GET" path="microsummary.ashx" type="newtelligence.DasBlog.Web.Services.MicrosummaryHandler, newtelligence.DasBlog.Web.Services" />
<add verb="*" path="autoSaveEntry.ashx" type="newtelligence.DasBlog.Web.Services.AutoSaveEntryHandler, newtelligence.DasBlog.Web.Services" />
<add verb="GET" path="googleSitemap.ashx" type="newtelligence.DasBlog.Web.Services.GoogleSitemapHandler, newtelligence.DasBlog.Web.Services" />
<add verb="*" path="approveItem.ashx" type="newtelligence.DasBlog.Web.Services.ApproveItemHandler, newtelligence.DasBlog.Web.Services" />
- The URL mapping structure has undergone some refinement. This has created a number of changes. The simplest upgrade step is to go to the bottom of your web.config file and replace your existing <newtelligence.DasBlog.UrlMapper> section with the code below:
<newtelligence.DasBlog.UrlMapper>
<add matchExpression="(?<basedir>.*?)/atom\.ashx" mapTo="{basedir}/SyndicationServiceExperimental.asmx/GetAtom?" />
<add matchExpression="(?<basedir>.*?)/rss\.as[hp]x" mapTo="{basedir}/SyndicationService.asmx/GetRss?" />
<!-- TSC: LINK rewriting -->
<add matchExpression="LINKRW(?<site>.+).aspx\?(?<param>.+)=(?<value>.+)"
mapTo="{site},{param},{value}.aspx" />
<!-- TSC: URL rewriting -->
<!-- (?<basedir>.*?)/(?<site>.*?),(?<param>.*?),(?<value>.+)\.aspx -->
<add matchExpression="(?<basedir>.*?)/(?<site>.*?),(?<param>.*?),(?<value>.+)\.aspx"
mapTo="{basedir}/{site}.aspx?{param}={value}" />
<!-- .TEXT archive compatibility -->
<!-- Translates
FROM: /blog/archive/2004/07/27/194.aspx
TO: /blog/default.aspx?date=2004-07-27
-->
<add matchExpression="(?<basedir>.*?)/archive/(?<year>\d{4})/(?<month>\d{2})/(?<day>\d{2})/(?<postid>\d+)\.aspx"
mapTo="{basedir}/default.aspx?date={year}-{month}-{day}" />
<!-- .TEXT archive compatibility -->
<!-- ALTERNATIVE: Translates
FROM: /blog/archive/2004/07/27/194.aspx
TO: /blog/permalink.aspx?guid=194
-->
<!--
<add matchExpression="(?<basedir>.*?)/archive/(?<year>\d{4})/(?<month>\d{2})/(?<day>\d{2})/(?<postid>\d+)\.aspx"
mapTo="{basedir}/permalink.aspx?guid={postid}" />
-->
</newtelligence.DasBlog.UrlMapper>
Finally, if you’re running under Asp.Net 2.0, make sure you read the section above: Running DasBlog on ASP.NET 2.0
Upgrading Themes
One of our goals is to make it easier to share Themes for use within DasBlog. However, earlier versions would require you to copy/unzip the theme into the themes folder AND include a bunch of information about the themes paths and assets within the web.config. Users and Theme Authors alike found this tedious. So, DasBlog 1.8 introduced the concept of “Theme Manifests” to promote xcopy installation and distribution of new themes.
Each theme directory needs a theme.manifest file that describes the name, title, and relative directory of that them, including any optional “named assets.” For example, this manifest includes custom images for the itemLink and dayLink.
Note, however that 99% of themes DO NOT use named assets, so chances our yours doesn’t either. So, the first time your theme loads, if there isn’t a theme.manifest we will generate one for you. If your theme looks funky or changes between 1.7 and 1.8, perhaps you need to include your named assets in the theme.manifest file that were previously expressed in your web.config.
<?xml version="1.0" encoding="utf-8" ?>
<theme name="discreetBlogBlue" title="Discreet Blog Blue" templateDirectory="themes/discreetBlogBlue"
imageDirectory="themes/discreetBlogBlue">
<image name="itemLink" fileName="images\bryanbell\discreetBlogBlue\bluePermaLink.gif" />
<image name="dayLink" fileName="images\bryanbell\discreetBlogBlue\bluePermaLink.gif" />
</theme>
Again 99% of users won’t need to do a thing to get themes working in 1.8; they will just work.
Tip: Check your themes templates if you think something odd is happening. There may be hardcoded text in the HTML for disclaimers or links.
FreeTextBox
DasBlog uses an external component called FreeTextBox (http://www.freetextbox.com) for Rich Text editing support. We’ve shipped with versions 3.0.5000.1 and up, and DasBlog 1.9 ships with version 3.1.6.35504.
WARNING: DasBlog 1.8 shipped with FTB 3.0.5000.6 and earlier versions of DasBlog with FRB 3.0.5000.5. This release updates FTB to 3.1.6, so make sure your web.config is updated to match the example below and that you update your FreeTextBox.dll.
NOTE: Make sure you upload the whole /FTB folder from this release.
However, folks want to upgrade FreeTextBox independently of DasBlog. So, we’ve included this new section in the web.config to enable you in the future.
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="FreeTextBox" publicKeyToken="5962a4e684a48b87" culture="neutral"/>
<bindingRedirect oldVersion="3.0.5000.0-3.0.5000.5" newVersion="3.1.6.35504"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
If a new version of FTB came out, this section lets you tell ASP.NET “I know you asked for one of these versions, I’d rather you use THIS version. This evaluation happens at runtime when ASP.NET starts up. Hypothetically, if you wanted to use some theoretical new version like 3.2.5000., for example, you could change oldVersion=”3.0.5000.0-3.1.6.35504” and newVersion=”3.2.5000.0” and you would be all set.
We are working on providing other alternative Rich Text Editing components in the future. This version include support for FireFox and IE. However, if you’re really not happy with this component, you might consider composing your posts offline with BlogJet (http://www.blogjet.com)
Breaking Changes
- The stylesheet() macro previously (and mistakenly) assumed your CSS stylesheet would be in the theme’s images folder. Now it generates URLs to your CSS that do NOT include the images folder. Be sure to View Source on your HTML to ensure you are getting the output you expect if you are using this macro.
- Your blog themes are cached in memory for performance reasons. If you edit an existing theme template DasBlog will recognize the change and invalidate the catch. However, if you ADD new files to an existing theme, like category specific templates, you will need to restart your application. This can be done by “touching” (adding a space to) the web.config if you don’t have administrative access to your web server.
Wrap-Up
Hopefully you now have a working version of dasBlog. If not, try some of the links below to locate helpful information.