Peter Hahndorf

Software development and IT Pro stuff

Topas CMS
My main pet project is called Topas, it is a content management system for twee.net and my other web properties.
Concepts:
Most Content Management Solutions allow the owners to manage their content in a database. The system then creates web pages on the fly when a user hits a web page. There may be some caching involved by the database plays an important role during the display of content to the user.

Topas also saves the content in a database, but it creates stand alone web pages which are served to the user without having to access the database. This has several advantages
  • The web site is faster because the web server just has to load a file from the file system and does not have to access the database and generate dynamic pages.
  • The web site can handle more load, because the server needs very little CPU when serving pages compared to dynamic generation. This is important for high volume sites.
  • The site is much more secure because it serves static content rather than dynamically generated pages. Problems like "SQL injection" do not exist, because there is no SQL.
History:
The first version was created in 1994 to support my then new web site.
The data was hold in a database system on an Atari ST. It was then transfered to a PC where a lot of VB code created HTML pages which were then uploaded via FTP to a Unix server.

In 1995 the data was moved to an MS Access Datebase and a user interface was created to manage the content. Code then created flat HTML pages and uploaded them to the live server. Various improvement were made over the years, including replacing VBA code with XSLT as the templating language.

Finally in 2005 the system was ported to a web application using asp.net with C#. The database was move to SQL Server 2005.
The following technologies and concepts are used:
138 tables in SQL Server
569 Stored Procedures
Over 21000 hand written lines of C# code in assemblies
20 Projects
My own specialized data access layer
N-tier and n-layer design
My own security framework
Pure Javascript AJAX
ASP.NET Ajax
jQuery
Linq To XML
Generics
Delegates
Interfaces
Regular Expressions
ASP.NET web applications
SOAP Web services
Console Applications
Windows Forms Applications
Windows Service
Custom XML Serialization
Extension Methods
Provider Pattern
Facade Pattern
Powershell Scripts
SQL Fulltext Search Engine
Custom search term parser
Common Table Expressions
500+ unit tests
Advanced user state management framework
XSLT
Custom Code Generation tools
MVC 3 with Razor
Entity Framework
The following technologies were but are no longer used:
Linq to SQL
Ajax Controltoolkit
Windows Cardspace


Search this site
On this site
My Travels
Tech Stuff
My Tech Blog
Hahndorf Consulting
At work
In this section
IT Blogs I'm reading
IT books I've read
IT Podcasts I'm listening to
Kampot Tool
Kotor Tool
Manually finding and removing malware
Monitoring Task Scheduler (MoTaSh)
Powershell for Developers Presentation
Setting up Windows PCs in Hostels
Sites I'm visiting
Smart database backup for SQL Server
The Costa Rica pattern
Topas CMS
About me
Contact Me
My CV / Resume
Short Bio on TweeNet
Photos of me
Page
Updated 30-Jan-2012
© 1994-2012, Peter Hahndorf