It looks like Sandcastle has now moved to codeplex.
I've been looking at CI (primarily using CC.NET) a lot over the last few months and have been encountering issues with NDoc (given that it is no longer developed and there was never a proper .Net 2 release). I looked at Sandcastle a while back and wasn't happy with it (it seemed like it needed too much work to get working and it was slooooooooow).
I tried the last release and thanks to community projects like Sandcastle Help File Builder was able to easily hook it up to CC.NET. I ran it against a codebase that took 4 hours to generate documentation and that time was cut down to 20 minutes (so some definate improvements on that end).
Some things that still cause me some pain (could be Sandcastle Help File Builder):
It doesn't like interop assemblies (fails on my setup)
It requires your projects to have xml generation on (not a big deal I know but can be to some people)
Dependencies list (I wish there was an option to automatically detect this)
Speed (It still seems slower than NDoc)
Anyway haven't tried this latest release so let's see if things are even better (Msft have introduced a GUI in this release but mention it is not intended to compete with community projects).
UPDATE: Sandcastle Help File Builder (http://www.codeplex.com/SHFB) are coming out with an update for the latest release on the 22nd. I've not tested the latest version of Sandcastle yet (waiting on SHFB as the old version isn't compatible with the January release) but I hope that the BuildAssembler.exe improves as right now it is using up 837MB of memory and 50% CPU utilisation on a build server as I write this!!
One of my new resolutions was to look at Silverlight more closely, especially with regards to search engine optimisation which is something I raised back in May in my "Points of interest #6" post.
What are some of the things I like about Silverlight (this is not a complete list but some quick points in relation to this post):
- Easily enhance the user experience (I know Ajax and Flash can achieve this as well)
- Develop every aspect of your application with C# (or any other managed supported language) - yes I eagerly await Silverlight 2 Beta 1 (although I know you can still achieve a lot with Silverlight 1).
Now this is a reduced list (there are many posts out there explaining the benefits Silverlight 1.0 / 2.0 will bring) but point 1 and 2 add a lot of value and if you are not sacrificing seo then you are onto a winner (although in cases where you are building a pure application e.g. an insurance quote application seo plays a lesser role).
I thought I would gather links, posts and my own stuff under a custom domain so I bought http://www.silverlightseo.net and just before the new year (30th December) I knocked up a Silverlight page and uploaded it to see if I could get it indexed by the search engines.
Less than a week later I am glad with the initial results:
Now it surprised me how quickly I got in there (initially I added http://www.silverlightseo.net to my signature for my forum posts on asp.net/silverlight.net and recently I added a link to my blog and posted about it but other than that there are no links pointing to this site that I know of) but I'm glad to see that the approach was accepted and the content indexed.
Now two useful posts about SEO and Silverlight are Michael's October post where he talks about using xslt to extract the content from Xaml and put it into html and Nikhil's May post (I know there are more out there which I will be adding to www.silverlightseo.net as time goes on).
When I did this test I had the following in mind:
- If I generate content (at the moment it is a hard-coded text) where should I store it in the generated Xaml or the host html page?
- I selected to have the content rendered in html and have Silverlight extract the rendered text from the host page.
- How would a search engine view what I was doing (am I trying to show one thing to search engines and something completely different to users)?
- The content that is rendered on the html page (in the future by asp.net) is the same content that is displayed within the Silverlight application (consider Xaml as a different form of CSS. CSS can be used to style html tags and Silverlight is providing a style and displaying it using xaml tags).
- Now you wouldn't want to display the same text twice so I altered the Z index of the Silverlight control and made the height and width 100% (I thought I might get my hand slapped for that but it isn't being used for keyword stuffing or anything sinister so I would hope it continues to be accepted).
- Should I go Silverlight all the way or look for a hybrid asp.net/silverlight solution (now by this I do not mean an asp.net app with a silverlight control e.g. a slideshow or video player?
- Since Silverlight is so new I would say start off with a hybrid approach and take the lessons you learned developing asp.net sites and see if you can apply them to Silverlight. Now since this was a demo I haven't decided what I think the best approach would be (I've also not looked at Silverlight in enough depth to even pretend to know what the best approach is when Silverlight is concerned) but I am considering trying the following approach:
a) A Xaml file per view (instead of having everything within one file) that loads additional pieces of xaml (controls) if and when required.
c) Use either the new ASP.NET MVC Framework or Castle's MonoRail to navigate around the Silverlight Application/Site.
I've not tried this out fully yet but intend to in order to see if the hybrid approach presents the best of both worlds (yes moving from one view to another means a page load but you can still have a nice user experience for view related actions and it could still look very slick).
- What about accessibility or printing?
- Screen readers will be able to read the html text and as far as printing is concerned hopefully there will be a printing solution for Silverlight 2.0 but until then you can style the html text via css to look nice when it is printed in Firefox (I've not done that yet so it looks unsightly). Unfortunately IE print preview shows a skewed picture of the Silverlight content.
If you have any Silverlight / SEO related content please let me know and I'll look to add it when I have the site fully up and running.
Goodbye 2007, Hello 2008!
2007 had its ups and downs but it will always be considered a great year as 2007 was the year I became a dad.
Things to aim for in 2008:
- Learn Silverlight (I've had a quick play and read books but I really want to learn it by building an app or site of some kind).
One of the ways I'll be aiming to learn Silverlight is by looking at Silverlight and it's impact on SEO (Search Engine Optimisation/Optimization). I'll aim to do this through a site focused on that subject http://www.silverlightseo.net
- Learn LINQ and WCF
- Perhaps look into Iron Ruby or Iron Python to complement my C#
- Continue to focus on CI
- Spend more time with my family
- Run twice a week, swim at least once a week
- Catch up with old friends more often than I managed in 2007
- Try to learn a new language (not code related)
- Restart my POI (Points of Interest) posts
Happy New Year to you all.