netrenaissance.net

this.code();

I have been working on a variety of Sitecore projects during my immersion in the CMS world, and I have some interesting conclusions.

Firstly: Successful Sitecore development companies are sparked by the configuration over convention principle.
This is mostly due to the client indecision problem. Illustrated in full; when a client asks you to change something once, you change it. When they ask you to change it a second time, a successful development company will create a configuration option so that the client can do it themselves. This saves effort in that you are reasonably sure that the client will ask for a third option later, thus validating your time spent.
Since there is tendancy for Sitecore clients to be indecisive (why do you think they were sold on Sitecore in the first place), this rule works in general for dealing with these companies.

Secondly: Sitecore clients enjoy creating needlessly intricate Governance strategies.
Companies know levels of heirarchy, it is their folly that they expect to replicate this complexity inside of a modern day live website update process. Generally, updating a website becomes a needless beaurocracy to perform basic changes. Unless end users are involved from the start, these valient folks will generally hate you, so try to get them involved in a meaningful way from the start. These are the people who will object to email notifications at all workflow steps, or having to have 15 levels of approval for a textual change.

Thirdly: Sitecore documentation is insufficent, the API is redundant, and often unintuitive.
I looked for the ability to send Emails under the Sitecore.Mail namespace, and found it under the Sitecore.MainUtils.SendMail() method an hour later. Enough said.

UPDATE Alex is correct, I should have been looking under the System.Net.Mail namespace.

There are others, but I'll leave it at that for now.

API is redundant, and often unintuitive

This is funny, I'm a Sitecore employee but before joining, I've been working with Sitecore for 4 years now.
One of the best things about Sitecore is the pluggable and extensible API.

That you was searching for Mail under Sitecore.Mail is pretty strange. We use the identical way of dividing into namespace like the BCL. The BCL handles mail these days in System.Net.Mail, so we would do that in Sitecore.Net.Mail. But in this case, there's no need for doing that. We simply supply you a facade so you can quickly send out an email.
I recommend using tools like Resharper and Reflector for searching in bigger APIs. Especially the BCL but also the Sitecore API.

I'm very interested in what you think that is insufficent, redundant and not intuitive. We're always looking for feedback and ways to improve our product.
Feel free to drop me an email @ adg (at) sc -dot- net.
Or write it down here.

Kind regards,

Alex de Groot
Solution Architect

Thanks for taking the time to

Thanks for taking the time to read this!

I agree with your point that the API is very pluggable and extensible.
However, I find that the size of the API is somewhat intimidating to new developers.

I know that the middle ground here is not really by changing the API, although (to be honest) I would have been less ranty if there *had* been an equivalent Sitecore.Net.Mail, as you guys tend to mimic the System namespace fairly closely in general.

My main gripe is the following:
I deal with the Windows supported classes by and large by searching in MSDN. There is no Sitecore equivalent to this which is ranking highly enough in Google that I could find it, and the Sitecore sdn5 search steered me towards the mailer module, which wasn't what I was looking for at all.

Just so you get an idea of the type of searches I am doing here:
"sitecore sendmail"
"sdn sendmail"

Going to sdn5 and searching for "sendmail" only gets the mailer module snippets.

To your credit, I just did: "site:sdn5.sitecore.net" sendmail and it came up with the 5.x API, but why hasn't the 6.0 API been indexed yet? Also, why did I have to go to that level of granularity of search to pull up results?

I think here the people to get on are your SEO folks. IMHO, if I start the Google search with Sitecore or sdn, it should have the same effect as starting my Google search with msdn.

The contrast:
Google msdn mail