I just posted newtelligence dasBlog version 1.2.3230.0 to the GotDotNet
workspace and to the download
section on the dasBlog site.
With this drop, I now have a feature set that makes me happy for my own blog
and which some of you out there hopefully find useful for your own blogs. It’s
been 5 weeks that were a lot of fun and I learned a lot about other user’s
requirements through the feedback that I’ve gotten in the three weeks that
the code has been public now.
And with this drop, I will therefore also stop the feature rush and likely
not post more than fixes or updates to the language files and templates. Don’t
expect significant new features from me in the upcoming weeks. What that
means is clearly that I expect that something happens in the GotDotNet
workspace from people other than me. There’s been a lot of complaining
in the BlogX workspace about BlogX being stalled in terms of features and that
the code-base has been locked and checked out the whole time. So, there you go:
dasBlog is not checked out and open for all workspace members to
change. I am going to be on the road for 3 1/2 weeks starting Wednesday, so
don’t expect me to organize anything in the workspace or watch it. It’s
yours. I’ll delegate accepting new members and begging to Microsoft for
more workspace resources to someone around here, but that’s about it.
That also means that my private copy I am carrying around on my notebook is
now forked off from the main code base and is going to be my own private little
playground for new things to try.
Even if you are not at all interested in running the software as-is, you may
want to go and grab the code base, because I am sure there’s a lot of
useful little things in there if you are developing ASP.NET apps. It turned out
to be so much new code and so many new little utilities and tricks that I could
hardly keep track of the “new new” things, let alone document them.
There’s a lot of fodder for articles, tips and tricks columns or for highlighting
aspects here on the blog.
One thing you’ll find digging into the code-base is that almost always
when there’s something that doesn’t need to be done synchronously,
I don’t do it synchronously. Every referral gets queued up in an in
memory queue and is written to the referrer-log on a secondary thread. All mail
notifications, pingbacks, trackbacks and the pining of weblogs.com and blo.gs
are also done on secondary threads.
You’ll also find that the little drop-shadows
on
the configuration page for the content-filter are neither rendered by IE, not
will you be able to find the displayed images anywhere in your site’s
directories. Instead, the drop shadows are all dynamically rendered. The magic
is done by the “ShadowBox” control that’s in the
newtelligence.Web.UI.WebControls assembly. You can configure the shadow depth,
the background color onto which the shadow is to be rendered, etc.
The DHTML editor is also a reusable component from that assembly. It loads its
toolbar from an embedded resource using the same technique: The
ControlImageHandler class is an IHttpHandler which is capable of redirecting
requests for images back to the controls that rendered the image links. So, in
essence, you get something similar to Windows Forms’ OnPaint() support
for WebControls.
There’s a complete (and working) implementation of a class
WindowsTimeZone, derived from System.TimeZone and a matching WindowsTimeZoneCollection
that grabs all the time zone information known to Windows and exposes that in a
.NET Framework compatible way, including daylight savings time and all that.
The UrlMapper is a generic component that lets you use regular expressions to
filter incoming URLs and map them to internal URLs, which comes very handy if
you change a site’s structure around, MailToWeblog contains a five-liner
showing how to create thumbnails from images, …
…. many things to explain in more detail and so little time. Stay
tuned. ;)