Inventory of changes made to 2004/06/19 dasBlog codebase
As a first step to merging some of the changes I’ve made back into the common source code, here’s an inventory of all the changes made.
I’m looking for authorization and opinions on how and how much of this to merge back.
These changes can be seen at this site.
For anyone who’s interested, here’s a zip of the changed files, and here’s a zip of the originals.
Inventory of dasBlog source code changes:
|
|
Change |
|
BlogDataService.cs |
Added 3 methods to interface and implementation class. Part of bug fix for month containing off-by-one-day posts. |
|
CategoryCacheEntry.cs |
Splits categories on comma instead of pipe. Could split on pipe if its there, and comma if not. |
|
DayEntry.cs |
Added public bool MayContain(DateTime startUtc, DateTime endUtc) Returns true if this DayEntry may contain an entry in the UTC time interval from startUtc to endUtc. |
|
Entry.cs |
Added atomId field, public AtomId property, IsCategory method, IsLanguage method, InitializeEntryId method, and InitializeAtomId method. |
|
EntryBase.cs |
Changed value for EntryId set by Initialize from just guid to string.Format(@"{0:yyyy\/MM\/dd}/{1}", CreatedUtc, Guid.NewGuid().ToString()); This supports the readable-URL mapping implementation. After default initialization, additional code changes call InitializeAtomId and InitializeEntryId once a Title is set and before an entry is first saved, which locks in its permanent id. |
|
TimeZone.cs |
Added a FormatAdjustedUniversalTime overload and reimplemented the original in terms of the new overload which accepts a string.Format style format string to format the whole thing (DateTime, time zone name, time zone sign, time zone hour, time zone minutes). |
|
ActivityBox.ascx.cs AggBugs.aspx.cs ClickThroughs.aspx.cs Commentview.aspx.cs CrosspostReferrers.aspx.cs DeleteCommentBox.ascx.cs DeleteEntryBox.ascx.cs EditBlogRollBox.ascx.cs EditContentFiltersBox.ascx.cs EditCrosspostSites.aspx.cs EditNavigatorLinksBox.ascx.cs Eventlog.aspx.cs ftb.*.aspx Login.aspx.cs PermaLink.aspx.cs Referrers.aspx.cs ArchiveMonthsList.cs CategoryList.cs WeblogCalendar.cs AggregatorBugHandler.cs cdfHandler.cs ClickThroughHandler.cs CrosspostReferrerHandler.cs PingbackAPI.cs SyndicationServiceBase.cs SyndicationService TrackbackHandler.cs |
UrlMapper change, 1 or more link generation related changes |
|
AdminNavBar.ascx.cs |
UrlMapper, add 7 lines to map control NavigateUrl’s to absolute urls to work with 2004/06/17/foobar style URLs. |
|
CommentViewBox.ascx.cs |
UrlMapper, 3 lines session entryId is lower case |
|
EditConfigBox.ascx EditConfigBox.ascx.cs |
Added checkEnableUrlRewritingWithoutExtension propery & checkbox. UrlMapper |
|
EditEntryBox.ascx.cs BloggerAPI.cs MailToWeblog.cs |
Added call to InitializeAtomId, UrlMapper, many |
|
EditNavigatorLinksBox.ascx |
Changed “Blogroll Feeds” to “Add new link…”, an copy and paste bug. |
|
FormatControl.ascx.cs FormatPage.aspx.cs |
Change from calling Sever.MapPath to calling a new SiteConfig.MapPath. This was a bug. Serve.MapPath is request relative and won’t work as desired for any pages below the root folder. |
|
Logout.ascx.cs |
Factored logout logic to a static SiteSecurity.Logout() method. |
|
Search.ascx |
Added support for Google Free Site Search service. Since this is subscription based, it isn’t portable to other users unless they register and customize some hard coded properties. Should be factored differently but can also just be omitted. No dependencies. UrlMapper |
|
StringTables.resx |
Added “text config enable url rewriting without extensions” prompt for internationalization of edit config change. |
|
Web.config |
UrlMapper section is now a no-op. It would be simple to reinstitute it as an alternative to the optimized rewriting scheme or no-rewriting. Since all URL generation / mapping is routed through one file (2 classes), it would be easy to drop in a call to the original LinkRewriter and UrlMapper logic. |
|
Macros.cs |
UrlMapper MailTo() – bug fix, escape apostrophe in messageSubject. MapPath bug fix. Added AbsoluteUri, GetRssMainUrl, GetAtomMainUrl, GetStartPageUrl (UrlMapper suppot, required) , TraceWrite, TraceWarn (allow adding to the ASP.NET trace output), no dependencies. , DrawArchiveMonths (compact format of links to archive months with posts), no dependencies. , WhenFormatted(string) (calls the new TimeZone.FormatAdjustedUniversalTime method) |
|
SharedBasePage.cs |
UrlMapper Dropped in some performance timer stuff that I have to pull out or release Kizmet.Library.Diagnostics.dll. Modified LoadEntries to call new GetEntriesInMonthLocalTime method that fixes the off-by-one-day month view bug. |
|
SiteConfig.cs |
Added using newtelligence. Added enableUrlRewritingWithoutExtensions Boolean property. Added a UrlMapper instance field and property. Added a public default constructor to initialize urlMapper field. Added static MapPath method to fix users of Server.MapPath (wrong method for the job). UrlMapper |
|
SiteSecurity.cs |
Added static Logout method factored out of logout control. MapPath bug fixes. Removed fix by luke@jurasource.co.uk that’s no longer needed after MapPath bug fix. |
|
Themes.cs |
Changed replace of pipe with backslash to replace of comma to backslash. This could change again to support legacy users with pipe in their cats (as opposed to cats in their pipes ;-)) |
|
UrlMapperModule.cs |
Implements an optimized mapping and centralized generation of the URL api listed in the following table. Note that the native API remains unchanged and the url’s in the table are followed by “.aspx” if the configuration doesn’t call for hiding extensions (which requires a wildcard mapping in IIS). A minor change would allow supporting entries with legacy guid only EntryId values. Overhauled the HandleBeginRequest method and added a UrlMapper class. Would have to restore some support for the original mapping module. Could add the new behavior as a third choice after the original mapping scheme or no mapping scheme. Right now the new mapping scheme replace the old and requires a class recompile to make changes. |
|
Utilities.cs |
Many changes. Mostly migration of functionality to the UrlMapper class now living with the UrlMapperModule. |
|
SyndicationService |
Switched from using a url based AtomId to using the Entry.AtomId property. |
|
Mapping Name |
External (virtual) Url Pattern |
Internal (real) Url Pattern |
|
|
|
|
|
default |
|
default.aspx |
|
default |
default |
default.aspx |
|
default |
default?nc=1 |
default_nocache.aspx |
|
login |
login |
login.aspx |
|
logout |
logout |
logout.aspx |
|
search |
search?q=.* |
SearchView.aspx?q=.* |
|
accessdenied |
accessdenied |
FormatPage.aspx?path=siteConfig/accessdenied.format.html |
|
disclaimer |
disclaimer |
FormatPage.aspx?path=siteConfig/disclaimer.format.html |
|
pageerror |
pageerror |
FormatPage.aspx?path=siteConfig/pageerror.format.html |
|
post |
yyyy/mm/dd/[0-9a-z\-]{1,48} |
PermaLink.aspx?guid=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
postWithComments |
yyyy/mm/dd/[0-9a-z\-]{1,48}?c=1 |
CommentView.aspx?guid=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
day |
yyyy/mm/dd |
default.aspx?date=yyyy-mm-dd |
|
month |
yyyy/mm |
default.aspx?month=yyyy-mm |
|
category |
category/[0-9a-z\-\., ]{1,48} |
CategoryView.aspx?category=[0-9a-z\-\., ]{1,48} |
|
rssMain |
rss/main.xml |
SyndicationService.asmx/GetRss |
|
rssComment |
rss/comment.xml |
SyndicationService.asmx/GetCommentsRss |
|
rssCommentPost |
rss/comment/yyyy/mm/dd/[0-9a-z\-]{1,48}.xml |
SyndicationService.asmx/GetEntryCommentRss?guid=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
rssCategory |
rss/category/[0-9a-z\-\., ]{1,48}.xml |
SyndicationService.asmx/GetRssCategory?categoryName=[0-9a-z\-\., ]{1,48} |
|
atomMain |
atom/main.xml |
SyndicationServiceExperimental.asmx/GetAtom |
|
atomCategory |
atom/category/[0-9a-z\-\., ]{1,48}.xml |
SyndicationServiceExperimental.asmx/GetAtom?categoryName=[0-9a-z\-\., ]{1,48} |
|
cdfMain |
cdf/main.xml |
cdf.ashx |
|
clickThrough |
ct/yyyy/mm/dd/[0-9a-z\-]{1,48}?u=.* |
ct.ashx?id=yyyy/mm/dd/[0-9a-z\-]{1,48}&url=.* (maximum absolute url length is 128 for IE) |
|
trackback |
trackback/yyyy/mm/dd/[0-9a-z\-]{1,48} |
Trackback.aspx?guid=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
aggbug |
aggbug/yyyy/mm/dd/[0-9a-z\-]{1,48} |
aggbug.ashx?id=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
cptrk |
cptrk/yyyy/mm/dd/[0-9a-z\-]{1,48} |
cptrk.ashx?id=yyyy/mm/dd/[0-9a-z\-]{1,48} |
|
pingback |
pingback |
pingback.aspx |