Dec
16
2007
Imagine a straight forward informational website of around 25 pages including a few special features like an events calendar, publications section, contact form, and a simple membership management piece with maybe 40 members…and yes, it has an intergrated Content Management System — Sitecore. Sitecore is like an iceberg where the end-User Interface is just the “tip” as they say. The CMS functionality and databases (8 in this case) which exist below the surface is massive. This relatively simple informational website built with Sitecore requires more then 5 Gigabytes of disk space, yes that’s right 5 GB. Something to consider when building with this system.
Dec
14
2007
Lately I have been involved with migrating websites from one production server to another. All of these websites are CMS applications with databases on the back-end; implemented with Microsoft Technologies. This post will discuss the database aspect of website migration. There are a number of different methods to copy or move a database: detach-move-attach, backup-move-restore, export-import, DTS, Copy Database Wizard. Since we are not only moving the databases, we are also upgrading from SQL Server 2000 to SQL Server 2005, I decided to give Copy Database Wizard (CDW) a try…it’s a tool under SQL Management Studio full version. In theory CDW sounds great, but in practice you’ll pull your hair out getting it to work in some cases. CDW is very finicky about set-up, permissions, etc.
Preparation
- Check the source database ownership. If needed, change it to an account with sysadmin membership. For this example I used the sa account. To change DB ownership execute the following code in Query Analyzer:
use [currentdatabase]
go
sp_changedbowner 'yourusername', 'true'
go
- Check the source database for orphaned users and resolve or delete them. Here is an excellent article about orphaned users along with a Stored Procedure for identifying them:
http://vyaskn.tripod.com/troubleshooting_orphan_users.htm
Orphaned users will cause a failure at the destination during the DB copy.
- On the source server add an entry to the LMHOSTS database file which is the IP address and NTLM name of the destination server. For additional info: http://support.microsoft.com/kb/314108
- To avoid data loss or inconsistency, you must be sure there are no active sessions attached to the database being moved or copied. It’s probably a good idea to do it off-hours and take the website off line during the migration.
- Make sure the SQL Server Agent has the proper user account setting…should be set to the Local System Account (NT AUTHORITY\System).
Process
- Login to the destination server with admin credentials, fire-up Management studio and the CDW tool. Right click on a db, CWD is under tasks. CDW will step you through various screens to build the SSIS[DTS] package.
- Specify the Source SQL Server by name or IP, use SQL Server Authentication, enter credentials of the saaccount – ID and password.
- Specify the SQL Destination by name or IP, use SQL Server Authentication, enter sa account credentials of the sa account — ID and password.
- Select Transfer Method, use the SQL Management Object method. This will allow the DBs to stay online and operational during the copy.
- Select databases to be copied — use the copy checkbox…don’t move it.
- Configure destination database. For this example I just used the default destination name and location. I also selected “drop any database at destination if one exists” to overwrite it.
- Select the database objects. Leave the logins selected and nothing else. This will bring over the logins, so your connection strings should work at the destination with only a server name change.
- Configure Package screen. Select logging options. Sometimes it’s good to direct logging to a file for better debugging.
- Schedule package or run immediately — I have been just running immediately.
- Verify choices — go back if needed.
- Run the job — all steps should be all green [pass] or study the log file if debugging is needed.
- Refresh Management Studio database list. Right click top server node and select refresh. The new databases should now appear. Check tables, users, etc.
- Run sp_updatestats against the database on the destination server to
update statistics and make sure that the copied database is performing optimally.
- Update connection strings and test application.
Sep
30
2007
The Good:
- Built with native ASP.NET V2.0, C#, XML, and XSLT
- An excellent and well documented API
- A highly customizable system built upon an open development platform
- An active developer network with a responsive online forum
- A beautiful Windows-like desktop delivered over the web to your browser…with ribbon menus, smooth gradations, dimensional icons, and right-click context menus. This fancy interface is used to build and manage the website and it’s content by both developers and business users.
- Handles multiple languages well
- Good cache control and excellent front-end performance
- Good support for Web Standards
- Highly granular security control
- Customizable workflow
The Bad:
- Poor plugin [modules] architecture. What modules are available, are typically painful to install, and almost impossible to uninstall; and further more, many of the modules are buggy and poorly implemented.
- Out-of-the-box, Sitecore provides almost no Website/CMS functionality. You’ll have to build everthing, templates, layouts, navigation element, etc. As I said in a previous post “Sitecore is not a CMS, it’s a framework to build a CMS”.
- The beautiful Windows-like desktop is massively heavy which requires a high bandwidth connection and powerful desktop equipment.
- The developer interface is anything but intuitive, it’s complex, confusing, and sometimes buggy. It has serious usability issues…it’s designed by geeks for geeks. I love the core architectual concepts of Sitecore (templates, masters, layouts, renderings, etc) and how websites are constructed using these concepts; however, building a website through this interface is frustrating to say the least. Fortunately, the business user interface can be customized and simplified to be more usable and somewhat intuative.
- Managing security on large websites can be painfully difficult for developers and insane for business users.
The Ugly:
- A massive footprint. An out-of-the-box install will consume 543 MB of disk space with 24,057 files and 587 folders; also the system requires 6 databases. After this massive install, hit the website with a browser only to be greeted with a single blank white web-page page with the black text “Sitecore Welcome to Sitecore”.
- The administration side of this system is extremely heavy for web delivery. With beautiful graphics driven with Ajax, Sitecore gives the impression of Windows desktop which leads you to expect certain level of behavior and performance which simply the system can not fully deliver.
- Creating and managing multiple independentwebsites is a complete nightmare with or without the multi-site manager. Forget it; it’s not worth the pain. In-spite of what the folks at Sitcore might say, Sitecore is NOT a very good multi-site system – I learned this the hard way.
Conclusion:
After evaluating dozens of systems available on the market, Sitecore does in fact standout as being one of the better systems for many reasons. However, this system does have its place in your tool belt and is certainly not recommended for all types of websites. Sitecore is best suited for a large corporate portals, or institution websites, etc. Larger scale projects with many authors and editors requiring workflow. Sitecore can work well for multiple relatedwebsites which can share management function, templates, layouts, security, etc. I personal would not recommend Sitecore for small business brochureware websites or anything small scale, where simplicity is an important factor…Sitecore might work; but its a huge overkill.
Aug
20
2007
A Content Management System (CMS) is a tool to help you to manage (create, edit, organize) content of a website. You can build your own or use one of the thousands of systems available pre-built; some open source [free]…some proprietary [$$$].
One thing for sure, there is no one CMS that has it all…it’s always a matter of finding the right tool to do the job at hand. A small business brochureware website has different requirements then an enterprise portal–that’s obvious. However, granularity of choice is much finer.
If the only tool you have is a hammer, then everything looks like a nail.
A good development team should be well-versed with a number of tools [CMS] used to build websites. An excellent resource for exploring and comparing Content Management Systems is CMS Matrix:
http://www.cmsmatrix.org/
They currently have 789 systems to study and compare. CMS Matrix is only a starting point to find the right CMS tool. You’ll still need to do your due diligence with research and demoing products. You MUST demo any products being considered…it’s a requirement for so many reasons.
Aug
19
2007
Welcome to a new development phase of my website at feich.com. I decided to retire the old website and install a personal publishing system to allow me to maintain and update this website in a more timely fashion. I’m using a customized version of the very popular Wordpress…which I like very much. What is Wordpress? Here is a good description taken from the official Wordpress website:
Wordpress is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability. What a mouthful. WordPress is both free and priceless at the same time.
I like Wordpress because it’s easy to use and customize, there are tons of themes and plugins available, and it has good support. Wordpress is really a Content Management System (CMS) geared towards blogging, however it can easily be configured for other purposes. In the last two years or so I have evaluated dozens of Content Management Systems…probably more then 35. I have used and extended many systems, and built a few as well. With this experience behind me, I selected Wordpress as my personal publishing platform.
I will continue to discuss the merits of Wordpress, as well as other CMS’s in later posts.

The Bean of Chicago