Paul Sterling's Blog

Commerce for Umbraco as a Marketplace

Monday, April 28, 2008 by Paul Sterling

I haven’t written much about my motivation for creating the Commerce for Umbraco project but I think it’s time to highlight one of the core goals for this project. Aside from enabling commerce from with an Umbraco installation, the Commerce for Umbraco project allows the creation of Marketplaces. By Marketplace I mean allowing any number of sellers to offer any number of products via a common interface. (Think Amazon.com marketplace.)

This differs significantly from the single seller model and is (we believe) an area lacking in the open-source space (well, in the commercial space as well). In fact, if you look at the licensing models for most commercial web commerce products you’ll notice that a license typically corresponds to a single domain. If you have five-brands (and five-domains) you’ll need five-licenses.

Commerce for Umbraco is running in the Marketplace scenario at both Homax (googone.com, blackflag.com, gonzocorp.com, etc…) and at the Motus Connect Store (and soon at the Umbraco Store). Obviously the above is two different approaches, but the code base is identical.

We are doing our best to stick to the Beta release of Commerce for Umbraco at Codegarden’08.

-Paul


Commerce for Umbraco - Preview 1 Build 4 Complete

Wednesday, April 23, 2008 by Paul Sterling

The latest build (Preview 1, Build 4) of Commerce for Umbraco is nearly ready for (gasp!) Beta.  We've included all the defect corrections (about 250!) we've come across while putting together the Motus Connect Store and also a preview site for Jonas Bohlin of Jobolito

Also, we've accomplished a much improved PayPal integration which supports all of the PayPal currencies via either Direct Pay or Express Checkout.  (BTW - I completed my PayPal certification and am now a PayPal Certified Developer!)  Finally, we've further streamlined and further enhanced the checkout routine to catch and recover from more of the most common errors. 

We hope to have Beta 1 ready before Umbraco CodeGarden08 - which gives us just about 5-weeks.  The Beta release will (must) include an Umbraco package to get potential users up and running quickly without having to mess with copying files, running SQL scripts and the like.

As in the past please send us your feedback and/or create an issue on the Code Plex site.


Motus Connect Store for Umbraco Products - Launched!

Sunday, April 20, 2008 by Paul Sterling

We quietly launched the Motus Connect Store last Friday night (may have actually been Saturday morning unless you're in Hawaii) and then spent the weekend making refinements and working through a quirk with cross-currency payment handling with PayPal.  (Thanks to Graham Rupe from PayPal for help).  As it stands now the store is fully-functional with all the planned security in place and ready for business.    Until we resolve the PayPal cross-currency issue we've opted to offer listed prices only in USD, I fully expect to support our full-list prior to the end of the week.

Over the last two-weeks we've had several vendors sign-up but no actual products listed for sale yet.  So, if you have an Umbraco package, extension, of documentation please create a vendor account and list your products so the Umbraco community can start benefiting.  As I've said previously, having an eco-system of products, vendors, and solution providers is vital to broadening the adoption and further legitimizing Umbraco in the Enterprise.  If you have any questions please send us an email at any of the listed contact addresses and we'll get right back to you - thanks.

Here's the store home page.

Here's a sample product listing.

-Paul


Motus Connect Store for Umbraco products - open for vendors!

Thursday, April 03, 2008 by Paul Sterling

We've completed Phase 1 of the Motus Connect Store for Umbraco and it is now available to anyone in the community who has Umbraco related packages, extensions, components, documents, books, or other digital assets that relate to Umbraco they wish to offer for sale. 

http://store.motusconnect.com/

We've been working over the last four months to refine the concept and approach for the Motus Connect Store and feel we have met our primary objective in keeping it simple.  While we have the purchaser features of the store complete we wanted to hold off just a bit and allow vendors some time to register, investigate the site, and answer any questions that may arise.

The Motus Connect Store will act as a precursor to the 'official' Umbraco Store to be launched at a later date - see the site FAQ for more on this. 

As I've written and mentioned previously, every sale from the Motus Connect Store will include a 10% contribution to the Umbraco Core Team to help support the best open source project on Microsoft .NET.  More than anything, we want to see Umbraco and the Umbraco community succeed in a big way.

Phase 2, which includes the release of the browse, purchase, download feature set is due on or before 18 April 2008 - so stay tuned.

Please send your feedback our way at info@motusconnect.com.

I'd like to offer our sincere gratitude to the Umbraco Core Team for their excellent work on a platform that allows us build out a site like this.  In addition I'd like to thank Chris Cyvas, of dashCommerce, for all his work in keeping dashCommerce going and providing a great starting place for robust web commerce.

-Paul


Syntax Highlighting in the Umbraco Admin Back end - XSLT, CSS, HTML

Monday, March 10, 2008 by Paul Sterling

Now that I have more than a single "webmaster" interacting with the Umbraco Administration UI I've found that the plain-text display of the source in the XSLT, CSS, and Template editors has been a source of some frustration.  Relative to other webmaster tools, such as Visual Web Developer Express, the lack of formatting and highlighting tends to slow-down these folks.  In the course of looking for solutions I came across an older post from Per Ploug Hansen on just this topic.  His solution (originally suggested by Ismail Mayat) is to apply the EditArea editor from Christophe Dolivet to the editXslt.aspx page. 

This has been so well received by my folks that I thought I'd create this simple how-to:

 

  • Download the EditArea archive here
  • Extract the archive to your Umbraco install
  • ...<your umbraco root>/umbraco/js/editarea/...
  • Edit the the Umbraco files by adding a reference to the required script as follows in the <head> section
  • For the XSLT editor:
  • ...<your umbraco root>/umbraco/developer/editXslt.aspx
  • <script language="javascript" type="text/javascript" src="../js/editarea/edit_area/edit_area_full.js"></script>
  • For the Stylesheet editor:
  • ...<your umbraco root>/umbraco/settings/stylesheet/editstylesheet.aspx
  • <script language="javascript" type="text/javascript" src="../../js/editarea/edit_area/edit_area_full.js"></script>
  • For the Template editor:
  • ...<your umbraco root>/umbraco/settings/editTemplate.aspx
  • <script language="javascript" type="text/javascript" src="../js/editarea/edit_area/edit_area_full.js"></script>
  • Then, in the <head> of each file add this script:
  • <script language="Javascript" type="text/javascript">
    // initialisation
    editAreaLoader.init({
      id: "editorSource" // id of the textarea to transform
      ,start_highlight: true
      ,font_size: "8"
      ,allow_resize: "no"
      ,allow_toogle: false
      ,language: "en"
      ,syntax: "html"  //change to CSS for stylesheets
      ,toolbar: "search, go_to_line, |, undo, redo, |, change_smooth_selection, highlight"
    });
    </script>
  • Save the files, and you're done

 

Here's what it looks like in the Template editor...note the nice color-coding, line-numbers, and current line indicator.

 editarea

 

That's it.  I notice a small delay when the pages first load but in this environment, Administration, a bit of a delay is insignificant.

-Paul


Fetch for dashCommerce and Commerce for Umbraco

Tuesday, February 26, 2008 by Paul Sterling

Last week we were able to finalize our integration connector to Fetch for dashCommerce 2.2 and Commerce for Umbraco.  (The integration connector is in the works for dashCommerce 3.0)  This means that dashCommerce and Commerce for Umbraco users can now offer digital products from within a web store and let Fetch handle the secure download and package management.  If you're not familiar with Fetch, check it out here.

We will launch the Fetch Connector concurrently with the Motus Connect Store in the third week of March, 2008.  If you're looking to add digital products to your dashCommerce or Commerce for Umbraco store then this may be just what you need to get rolling.

If you're interested in participating in the private Beta post here and we'll put up a registration form soon.

-Paul


Commerce for Umbraco Gets Logo v1.0

Thursday, February 21, 2008 by Paul Sterling

dc4umb 

This week, in lieu of the big update we'd hoped to drop into CodePlex we have instead...a logo.  We've been heads down stabilizing the core bits (fixed a number of defects in the dashCommerce 2.2 code as well) and working on integrating the Administration UI with Umbraco CMS that, well, we broke the build.  I have a stint at Microsoft as part of my CV and so I still can't bring myself to do a commit that's broken.  (Thank me later.)  There's sure to be a commit of the latest build next week (25 February).  Until then, thanks for your patience. 

 

-Paul


Commerce for Umbraco - Administration Extension

Wednesday, February 13, 2008 by Paul Sterling

Not much to say here other than Umbraco makes this easy.  Here's the Products Administration area in the Umbraco UI:

commerceAdmin

(click for a larger view)

We also have the CodePlex site up and are making weekly (or more frequent) commits - http://www.codeplex.com/commerce4umbraco

 

-Paul


Commerce for Umbraco Goes SubSonic 2.0.3

Friday, February 08, 2008 by Paul Sterling

This week was largely spent reworking Commerce for Umbraco to SubSonic 2.0.3 (the latest release) from its previous affiliation with SubSonic 1.0.5 (a legacy of the CSK roots).  This update, in addition to adding stability and security, will allow Commerce for Umbraco users to extend the project easily without having to write, maintain, or worry about the DAL.  Of course, the tradeoff is that there is a very short, but steep learning curve with SubSonic. 

 

Earlier this week we released the early Preview Release 1 of Commerce for Umbraco and it has seen a fair number of downloads (about 200).  Some of the feedback from these early users prompted me to create my first Umbraco Package.  This was a breeze using Per Ploug Hansen's excellent Package Creator.

 

The membership bits of Commerce for Umbraco are working as expected and next up for us is to plumb in the member views for account information, addresses, orders, tracking, etc....  Once that's complete we'll finish up the product attributes (multiple images and variants) and promotions (discounts, etc...) and then we'll be ready for a Beta phase.

 

-Paul


Commerce for Umbraco - Preview 1 Release

Friday, February 01, 2008 by Paul Sterling

Due to the great feedback we're getting from lots of folks in both the Umbraco and dashCommerce communities we've decided to make a very, very early Preview Release of our Commerce4Umbraco Project.

 

It can be found here.

 

Please note there are many items we removed from this release and have included the bare minimum set of controls to create a store in an Umbraco installation.

 

Good luck and check back often for updates.

 

-Paul


A Brief Diversion

Wednesday, January 30, 2008 by Paul Sterling

Each Sunday my daughter and I head to Mt. Baker Ski Area for a few hours of skiing, soaking up some cold-air and taking a break from phones, email, etc....  Mt.Baker has a long history and still has no phones, no electricity, and no pretense.  At the end of the day we come home tired but relieved.

 

Here's a snap of Mt. Shuksan I made about noon on 27 January 2008.

 

IMAGE_044
Mt. Shuksan - Washington, US

 

I'll be there every Sunday until the end of February.

 

-Paul


Web Commerce with Umbraco (dashCommerce Integration)

Thursday, January 24, 2008 by Paul Sterling

Well, it's not the prettiest thing I've ever seen but it does prove that we're on our way to having a full-fledged web commerce solution for Umbraco.  www.gonzocorp.com

We completed the core commerce module integration with Umbraco and have pushed it out to a live site.  Granted, there's not much to see here but keep in mind this is the 'proof' of a dashCommerce - Umbraco integration. 

This site is running entirely from within an Umbraco installation (3.0.3).

Our next step (beyond bug fixes of course) is to complete the integration of the dashCommerce Administration Modules to Umbraco - via an Admin UI Extension.  In addition I noted several areas where the dashCommerce base code could be streamlined and I will address several of these areas.

Finally, given our earlier promises of making this project available to the community we've reserved a Code Plex name and will post the code as soon as it's consistently stable.

www.codeplex.com/Commerce4Umbraco

I'll update here as we continue to make progress.

 

-Paul


ASP.Net Membership and Profiles with Umbraco - dashCommerce Integration

Wednesday, January 16, 2008 by Paul Sterling

As our effort to integrate dashCommerce with Umbraco continues we have passed another milestone - which means we're getting closer!  We decided to use the ASP.Net Membership and Profile bits for this implementation even though this means not using the Umbraco membership feature.  No doubt this will be problematic for some folks who already have assets depending on the Umbraco membership piece.  All I can say is "sorry."  However, looking forward with dashCommerce and Umbraco this is the right choice.  With Umbraco 3.1 we'll (very likely) see support for the ASP.Net Membership and Profile providers.  This eventuality puts out integration in a better spot.  Though it is important to note that our implementation depends on the ASPMembership schema and the Umbraco Membership will depend on the Umbraco Membership schema - some data transition will be required.

So, what we've done is to encapsulate the Profile Properties in a UserProfile class.  This allows us design time access to these properties and greatly speeds our development.  dashCommerce, by default, defines Profile Parameters in web.config.  We're giving up some of the flexibility of the .config approach in order to gain the development acceleration.  If anyone has input on this I'd appreciate it.  (18 January Update:  I now see the issue here has more to do with the fact that we're using the Profile bits within a class assembly than with not defining the properties in .config)

 

The UserProfile class looks like this:

    public class UserProfile : ProfileBase
    {

    public UserProfile() {}

        public string firstName
        {
            get { return (string)base["firstName"]; }
            set { base["firstName"] = value; }
        }

        public Address lastShippingAddress
        {
            get { return (Address)base["lastShippingAddress"]; }
            set { base["lastShippingAddress"] = value; }
        }
        ...

As for Membership, our implementation is quite straightforward - we're just validating users:

 

Membership.ValidateUser(userEmail.Text,<Password>);

 

and if we don't have a user with the supplied user name, we create a new one:

 

Membership.CreateUser(userEmail.Text, <Password>, userEmail.Text);

 

Obviously there's a bit more to this with the required entries in web.config, references to dependencies, creating the ASP.Net user controls with the appropriate functionality, etc....  But all in all we feel we have a solid implementation in this regard.

Please stay tuned and, by the way, the first site based on this integration is due to be live Wednesday (23 January) night - http://www.gonzocorp.com/ .  (NB:  This isn't my design - ah!)

 

-Paul


On Demand Servers - Grid Computing for Windows Servers and the Average Web

Monday, January 07, 2008 by Paul Sterling

If you've had an opportunity to read any of my posts over the last few months you'll likely have noted that I tend to rave about the amazing potential of utility grid-based computing.  I particularly like to call out Amazon's EC2 service but have also noted the offering from ServePath (a host) and Media Temple (another host).  One characteristic of these offerings is that they're all based on a Linux grid - well, ServePath actually offers a Windows virtual machine but has the least progressive pricing model and appears to be selling it's 'grid servers' akin to a traditional dedicated server model.  Nothing wrong with this, but it's not really breaking the mold. 

Anyhow, one can certainly run a Windows Server on Linux using a VM.  In fact, I happen to have an AMI in the works for Amazon (which uses the Xen hypervisor) that's running Windows Server 2008 in a QEMU VM on Fedora Linux - as a platform for Umbraco and MySQL.  It works fine but will currently only run in the Amazon 'small' instance - with RAM set at 1.7 GB.  But at $0.10 USD an instance hour this is a very progressive offering and one I'm not giving up on yet.

Last week Michael Sheehan from ServePath clued me in to a new offering from his company - GoGrid.  This looks to be a super user-friendly grid server product offering native Windows machines.  Now we're talking!  If you look the the demo available on the GoGrid.com site you'll see a slick interface where adding a new machine instance is as easy as clicking 'Add.'  Michael declined to let me in on their exclusive beta but I have his blog in Google reader and plan to give GoGrid a try as soon as it's available.

The UI is cool but the most compelling part of this new offering is the pricing model.  Michael told me that there is an offering at the 'pay as you go' level - which I take to mean you only pay for what you use.  This is the model Amazon has as well.  In the case of Amazon there is no minimum charge - I'm not sure if there's a minimum for GoGrid.

So, just a few weeks later we're already closer to the Windows-based serverless internet company than in November 2007.  I see this offering, in conjunction with a cloud storage service (Amazon S3), has enormous potential to change the way start-ups structure their infrastructure and approach internet applications and services based on the Microsoft stack.  I know, for us here at Motus Connect, this opens many doors as we can scale up as needed and sink our precious resources into creating our offerings and not into (mostly) idle servers.

-Paul


dashCommerce - Umbraco Integration Progresses

Monday, December 31, 2007 by Paul Sterling

I was finally able to dedicate some time to working on the integration of dashCommerce and Umbraco that I started a few months back.  As of this post we have dashCommerce functioning as Umbraco macros and are able to complete a full web commerce shopping scenario - e.g., browse products, select product, add product to cart, edit cart, checkout, and view orders.

This is a milestone event for this effort as it signifies much of the work that has been done with dashCommerce to port it to a .Net Assembly (from a .Net Web Site) has been completed and functions as expected.  The process of converting a 'legacy' .Net Web Site (circa VS2003) to a .Net Assembly (.NET2.0) is relatively straightforward - see previous post - but exposes the 'underbelly' of an application.  I'm happy to report that - with only a single exception - dashCommerce has a very clean and well implemented code base.  For the purposes of simplicity I left out the PayPal functionality for this revision but plan to release the project with PayPal - and other payment providers - intact.

I will continue to post our progress in this effort and will make the final output available to both the Umbraco and the dashCommerce communities.

 

-Paul


Migrating a .Net Web Site to a .Net Assembly

Monday, December 31, 2007 by Paul Sterling

As part of the integration project for dashCommerce and Umbraco we decided to bundle the dashCommerce core functionality in a .Net Assembly (dashCommerce.Net.dll) rather than keep the project in it's current Web Site structure.  Principally this was done to simplify the integration with Umbraco.  In Umbraco the dashCommerce UI is implemented as .Net User Controls which reference the above assembly.  The user controls are rendered as Umbraco Macros within Umbraco Templates. 

 

Essentially I've replaced the .../App_Code/... and .../App_WebReferences/... folders with the .Net assembly (dashCommerce.Net.dll) . 

At present I've commented out the PayPal entries as updating the Web References is not working correctly in my VS project.  Also, I'm using a utility to create a proxy for the ASP.NET Profile that dashCommerce uses so I can work with it at design time.  Our design dictates that we'll use the Umbraco Members functionality in place of the ASP.Net Profile, but this is implemented as a provider with dashCommerce so I expect we'll have the option of either (depending on the state of the Profile Provider for Umbraco next week).

 

I used a post from Scott Guthrie to get started on this but took a slightly different approach.  Rather than suck over the entire web site into a new Web Application project I created a new C# Class project and just worked with the .../App_Code/... folder as well as adding in the required references.  Once this compiled successfully I simply referenced the new assembly in my Umbraco User Control Project (aka, the Commerce.* namespace).


Should I use SubSonic, LinqToSql, or NHibernate?

Wednesday, December 19, 2007 by Paul Sterling

Rob Conery has just made a nice post discussing (in his opinion) the merits of each of these ORM projects. 

I work with SubSonic frequently and so it is familiar to me - and I prefer it.  dashCommerce uses SubSonic as it's data provider.  Umbraco v4.* will, I hope, use SubSonic but, at the minimum, is planned to use LinqToSql.

ASP.NET MVC: Choosing Your Data Access Method

-Paul


CyberSource Payment Provider for dashCommerce - BETA

Thursday, December 13, 2007 by Paul Sterling

I've completed the dashCommerce Payment Provider using the CyberSource Simple Order API SOAP interface.  At this point I've had it in the test environment at Homax for a few days and it appears to work as expected but I'd appreciate some testing by other community folks.  Over the next few days I'll create the usage guide and dependencies list and put them up here http://www.motusconnect.com/dashcommerce/providers.aspx

 

If you're using CyberSource, or considering using it, please give this provider a try and send me your feedback.

 

-Paul


Working with Umbraco in Visual Studio

Monday, December 10, 2007 by Paul Sterling

I seem to remember seeing some of these tips in other posts from active Umbraco community members, but being fresh off the Level 2 course I thought I'd put down this quick list of the items I've set in my Umbraco Visual Studio 2008 development environment.

 

First, an important note:  I like to do my development in a Virtual PC instance of Windows Server 2003 with VS 2008 installed and using IIS as the web server.  After many years of spending the occasional frustrating day tracking down that one thing that changed and hosed my development environment I've decided the nominal additional effort required to run in this manner is worth is.  Additionally, being able to have a 'portable' development machine (albeit virtual) has served me well in moving between machines, employers, and clients.  Lastly, it's very useful to save your 'baseline' virtual hard disk image in case of catastrophic machine failure, new team members, etc....

 

Okay, enough of that topic.  Now for the tips:

 

  1. Install Umbraco in a different directory - using the installer - than you use for your Visual Studio solution - using Umbraco source code.
    1. I use c:\websites\umbraco\ for my Umbraco runtime directory
    2. and c:\work\umbraco\ for my Umbraco development directory
  2. Create a post build event (from Project > Properties > Build Events) to copy *.aspx and *.dll (and *.pdb) to your runtime folder - this assumes you're working with user controls, could be similar for other extensions.
    1. XCOPY "$(ProjectDir)\bin\Umbraco*.*" "c:\websites\umbraco\bin\" /y
    2. XCOPY "$(ProjectDir)\usercontrols\*.ascx" "c:\websites\umbraco\usercontrols\" /y
  3. To debug:
    1. Open the Umbraco IIS site in your target browser(s) - making a shortcut to the section you're working with helps
    2. In Visual Studio select the Debug > Attach to Process menu
    3. Select w3wp.exe from the list and press OK
      1. NB:  for IIS on XP/2000 select asp_net.exe and press OK
    4. From Visual Studio you can set breakpoints, step through code, examine runtime values, etc...
    5. NB:  make sure you copy the *.pdb file to the runtime directory, otherwise you may find your breakpoints are not hit

 

That's it.  A few minutes of work and you're on your way to Umbraco development happiness.  At least I am.  In my experience this work with all 'like' versions of Umbraco; I.e., I install 3.0.3 in the runtime directory and build 28441 in the development directory and I'm able to debug accordingly.

 

-Paul


Umbraco Level 2 - Day 2

Friday, December 07, 2007 by Paul Sterling

During today's course Neils covered Umbraco Members, extending the Umbraco UI, and Custom Macro Properties, among other things and we had several hours of Q & A.  With each topic the layers of Umbraco goodness were further revealed.  There are so many items that make Umbraco what it is and discovering them - with help from Neils - is actually exciting - really! 

 

IMAGE_002 
Copenhagen 8:00am - cold, dark, wet, just like home in Bellingham, WA!

 

I'm not sure where to start with all the things I picked up today, but this performance tip is useful for everyone:

 

  1. If you do any performance related tuning of your Umbraco install make sure to set the HTTP Headers to enable content expiration equal to 7 days.  This is not enabled by default in IIS.

 

image

 

-Paul


Manual SQL 2000 Install on Windows 2003 - Umbraco 3.0.3

Friday, December 07, 2007 by Paul Sterling

I've been happily using the Umbraco 3.0.3 MSI installer in our dev environments (both physical and virtual instances) since it was released.  Now I'm in the process of moving some sites to the staging servers.  For some reason the installer fails with a 'sys.sql_logins not found' error with SQL 2000 databases - all the dev databases are SQlExpress.  Numerous posts in the Umbraco forums indicate that SQL 2000 is supported on Win2K3 via the installer.  I tried both using the installer and manually copying the install files, configuring IIS, then running the web-based installer pointed at an existing database - and variations on this as well.  The short version is I was unable to get this to work. 

Incidentally, I also tried using the Umbraco Data Export tool, and the MS provided Database Publishing Wizard.  While both of these work well, but did not help in getting past the installer errors, they both generated scripts that resulted in numerous SQL errors in SQL 2000.  I'm sure these errors could have been fixed with a little bit of work - I was determined to do this a 'no touch' way based on the positive experience I've had so far with the installer.

Here's the 'not' no touch method I ended up with manually install Umbraco 3.0.3 on Windows 2003/SQL 2000/IIS 6:

 

  1. Using the .zip file distribution of Umbraco 3.0.3, extract the files to your web directory
  2. In SQL 2000 create a new database:  webCMS
    1. Create a new login:  webCMSUser
      1. Map the user to the webCMS database and add these roles:
        1. db_datareader
        2. db_datawriter
        3. db_owner (I expect this can be removed after install)
        4. public
  3. Locate the file 30clean.txt in the .../install/sql/ directory
  4. Remove the following four CREATE VIEW statements and keep in a new text file
       1: CREATE VIEW umbracoContentData AS     
       2: ...
       3:  
       4: CREATE VIEW umbracoContent AS
       5: ...
       6:  
       7: CREATE VIEW cmsContentTypes AS
       8: ...
       9:  
      10: CREATE VIEW umbracoContentAll AS
      11: ...
  5. Using Query Analyzer/Management Studio execute the 30clean and the 'new view' files against the webCMS database
  6. Update web.config with the connection information
  7. Remove the .../install/ directory
  8. Open a browser and login - NB: admin / default are the credentials set in the script

 

In retrospect a manual Umbraco install is really pretty easy.  Hope this helps some in the community.

-Paul


Umbraco Level 2 - Day 1

Thursday, December 06, 2007 by Paul Sterling

Today's training course was an anomaly based on my experience with product specific training.  Generally when I've attended courses focusing on a specific product in the past I've been disappointed at some point during the day as the realization set in that the product wouldn't live up to the marketing hype or, more frequently, that the next version of the product would do that, but not this version.  Not so with Umbraco!

 

Neils is as understated as Umbraco and very clearly communicates his message.  I feel leaps and bounds ahead of where I was just yesterday with Umbraco.  It's great to attend a training course and feel like you're really learning something. 

 

A couple of items I didn't know about Umbraco until today:

 

  1. While it's not officially 'workflow,' Umbraco can be configured to allow content 'authoring' by a given user without publishing, send a notification to the reviewer/publisher, and the publish user can reject/edit/publish.  Have a look at the Permissions selection on a Content node's right-click menu and the Action Handler section of Umbraco Books.
  2. There are macro syntax shortcuts that give access to the current page, the ASP.Net session, and the query string right in the XSL.  They're even documented in the wiki books.  This simplifies getting these commonly used items.
    1. # = current page
    2. @ = query string
    3. % = session
  3. You can get access to very helpful debug information by appending the following to the end of an Umbraco URL:
    1. ?umbdebug=true  displays macro parameters
    2. ?umbdebugshowtrace=true  displays full trace in the page

 

Looking forward to another day of great stuff tomorrow.

-Paul


Umbraco Level 2 in Copenhagen

Wednesday, December 05, 2007 by Paul Sterling

Today I'm off to Copenhagen to attend the Umbraco Level 2 developer training taught by Neils Hartvig - the founder of Umbraco. It's a bit of a trek from Bellingham to Copenhagen but not unpleasant as far as it goes. Bus to Seattle, fly to Paris, fly to Copenhagen, train to city, subway to the hotel. I left Bellingham at 9:15 (GMT - 8) and arrive in Copenhagen at 2:40 (GMT + 1).

I'm very much looking forward to meeting Neils and to attending the training. Umbraco has already proved itself to me and I'm counting on it to deliver for the efforts underway at Homax - not to mention the future of Motus Connect with Umbraco. If you'll be there also leave a reply here and we can meet up Wednesday evening.

-Paul


Host Your Own or Outsource Server Hosting?

Wednesday, December 05, 2007 by Paul Sterling

I've always been a believer in the hosted approach to infrastructure but with our software firm, Mold Inspection Solutions, we decided to host our own servers. It's a long story but the gist is that it was prohibitively expensive to maintain a dedicated server at a host. The upside was that we had redundancy in terms of connectivity and power.

Last summer we built out our infrastructure as follows:

 

  1. -Server :: 3GHZ dual core, 4GB RAM, 170GB RAID-1 disks, dual NIC
  2. -Connection :: Comcast cable + Earthlink DSL balanced using a PepLink load balancing router
  3. -Power :: dedicated circuit, 30 minute backup battery, auto shutdown/startup
  4. -Backup :: dedicated backup server with 'offline copy' to a duplicate external drive and offsite backup at Amazon S3

 

Understanding the tradeoffs in terms of reliability we have been able to reduce our costs by over 80%. That was enough to convince us.

This morning, for the first time, the server was offline - this happened just as I boarded the bus for the airport. An hour or so later it became apparent that the server itself was not the issue - the Comcast router had failed and was unable to be reset. We expected the PepLink router to take over and redirect traffic using the Earthlink connection - that didn't work. The Comcast tech showed up about two hours after the original incident - bravo Comcast for this amazing response time.

Within 90 minutes the tech confirmed the router wasn't working - after initially reporting there were no problems since he was looking at the Earthlink DSL router - and was able to replace the router (SMC) and reset the configuration. (Though we did loose all our firewall rules, port forwarding, etc...). The total downtime was a bit less than 5-hours.

Assuming you've read this far, what can we do to reduce the chances of this reoccurring? Are we risking too much by running our own servers? Does anyone else have experience with successfully using the PepLink load balancing routers?

-Paul


Umbraco is Second Most Downloaded on CodePlex Today

Tuesday, November 27, 2007 by Paul Sterling

I know Umbraco has been gaining momentum over the years and it seems the proof is here:

CodePlexUmbraco

 

-Paul