To go to GOTO or not to go to GOTO

by DotNetNerd 28. August 2012 17:37

imagesSorry but I just can’t help myself when a crazy sentence like the headline presents itself and actually makes sense. None the less it is a question I have been asking myself each year while I have been living and working in Aarhus. Every year something has kept me from going to GOTO – mostly some combination of the attendence fee and bad timing of other things I have been doing. This year I had kind of dismissed it having already gone to TechEd, so I figured my budget for conferences was spent.

Luckily I was offered to go to GOTO for free as a blogger by the kind folks at Trifork. More...

TechEd North America 2012

by dotnetnerd 22. June 2012 20:47

I had the pleasure of going to TechEd North America 2012 in Orlando. With a lot of interesting news comming out of Microsoft it was 5 very exciting days. While I was away I did some blogging on the company blog (in danish).

As you might expect Azure and Windows Metro style design were the big topics of the conference. With Azure finally taking a direction that I think makes it interesting, and Windows 8 in general looking like the next milestone for Microsoft it was really good.

DSC01462DSC01510

More...

Slides from ANUG lightning talk on webservices

by DotNetNerd 26. April 2012 14:30

567340630Thanks to everyone who participated in the first ANUG lightning talk this wednesday. It was a fun to dive into the subtle differences between Nancy, ServiceStack and WebAPI. As with everything else – it is always more fun when you win the battle of course :)

The demo and slides are available at dotnetnerd.dk/talks/webapi.zip - along with a small sample of using type providers in F# for building a WebAPI service.

F# Type Providers and WebAPI

by dotnetnerd 4. April 2012 10:35

imagesLater this month on the 25th I will be speaking along with two other speakers about webframeworks at an ANUG meeting. The frameworks covered are ServiceStack, Nancy and WebAPI where I will cover the latter.

While I have been preparing my eye cought a new feature in F#, which I think is one of the first really good stories for F# that makes sence outside akademia and science. Type Providers give us a way to access data sources that provide its own metadata, and this fits nicely with building WebAPI services.

More...

Nancy Bootstrapper for Castle Windsor

by DotNetNerd 18. January 2012 19:37

8e00fa6da668702f8b73ac4caebfbee4On a current project I have decided to use NancyFx for services that expose data to the client via Ajax. The solution already uses Umbraco for CMS capabilities and everything is wired up using Castle Windsor for DI.

From the start I was hoping to just install the nuget packages for hosting in an ASP.NET application and for bootstrapping with Windsor. As it turned out neither worked in my case.
Getting Nancy to run alongside an existing site is pretty well documented, so that went pretty smoothly, once I gave up on the package and just followed the documentation.

More...

Using the MVC-Mini-Profiler with Umbraco

by dotnetnerd 16. January 2012 08:50

Prelude

The last year I have been posting more or less the same blogposts here and at blog.vertica.dk – but my plan is to stop that going forward. I have been asked to do more blogging in Danish, and that fits pretty well with the fact that I have been postponing making a decision on which blog to stick with, since I don’t care much for the cross posting. So going forward this blog will be kept in English and It will contain the topics that are either micro-posts or a bit off topic for what I do at Vertica. So lets get started!

Mini-Profiler colliding with Umbraco

For some time I have been using the MVC-Mini-Profiler, to get a quick look at how my pages perform during development. The good thing about the mini-profiler is that it is so light weight, requires little setup and it is a lot less intrusive than most profiling tools.

In spite of its name the profiler works just fine with regular ASP.NET websites and applications, however I did run into a little twist when using it with Umbraco, which is what I want to share today.

To get started using  mini-profiler you simply add the nuget package to your project, and do the regular setup with adding scripts and calling start and stop methods on the profiler.  If you run your site now, nothing will happen that is visible to the naked eye – doh!

The solution

If you take a look at the DOM by using your favorite browsers developer-tools/firebug you will see that some container elements have been added to the page but with no content. This is because the elements are loaded asynchronously, but as the tab in your developer-tool that shows network traffic shows the call to mini-profiler-results returns a 404.

So as you may have guessed by now if you are used to working with Umbraco, you also need to add the mini-profiler-results to the umbracoReservedUrls in the web.config making it look something like this:

<add key="umbracoReservedUrls" value="~/config/splashes/booting.aspx,~/install/default.aspx,~/config/splashes/noNodes.aspx,~/mini-profiler-results" />

Now if you run the site, you should get the profiler box in the top-left corner of the site, and you are ready to go hunting for performance bottlenecks.

2011 debriefing

by DotNetNerd 23. December 2011 09:00

happy-new-yearsSo, the time has come to look back on the year that has passed, and reflect a bit. I am usually more focused on making plans than writing history books, but once in a while it can be beneficial to take a look at what you have been doing, so you can make better conscious choices in the future. I do tend to get lost in all my little projects, so sometimes it is a nice reminder to look back and get some ideas of why the year went by so fast.

So what were the more interesting parts of my year? Well, I

  • Built MiniMe, which has had > 370 downloads since july and a couple of contributors.
  • Blogged here and on blog.vertica.dk – writing 18 blog posts total. Getting a pat on the shoulder as blogger of the year at Vertica, along with another good colleague.
  • Hosted an ANUG code camp on IronRuby.
  • Did a ANUG podcast about the NHibernate 3.0 Cookbook.
  • Played around with a bunch of technologies, and found use for some of them at work – doing faceted search with MongoDB and KnockoutJS as one of the more exciting solutions.
  • Did hobby projects to fool around with WebMatrix, MVC3 and Entity Framework.
  • Read a handfull of books on webdevelopment rangeing from Ruby on Rails 3 Tutorial to Dependency Injection in .NET.
  • Attended HTML5 fasttrack, Commerce Server Training and a bunch of ANUG and Trifork events and code camps.
  • Was SEEE certified – mostly getting to know why not to use it.
  • Helped win the e-commerce award for start-ups in Denmark – which I actually worked on last year.
  • My first Windows Phone 7 app Blue Orb Player just turned one year and has been installed from marketplace > 285 times.

At work it has been a pretty versatile year, where I have had some consultant tasks, worked with Windows CE and Silverlight as well as the more regular ASP.NET projects - where BD, Bolia and Trollbeads have taken up the most of my time. I can only hope that 2012 will be just as exciting and with HTML5, devices and more client driven solutions shaping up to become important themes, I will probably have as much fun as I did this year.

Merry xmas and happy new year everyone :)

HTML5 fast-track

by DotNetNerd 20. December 2011 10:42

This December I spent a couple of days at the HTML5 fast-track course, getting up to speed on various new and coming browser features and API’s. The course was hosted by Trifork who had invited Peter Lubbers – who wrote the book Pro HTML5 Programming to go over the umbrella that is the HTML5 specification. He and his co-host Mathias Bynens did a great job at presenting the most important aspects of the spec. They also managed to communicate the more blurry parts in a way, so we left with a good overview of the maturity of the different browser implementations. So today I will write a bit about some of the things we went over, and hopefully help you learn a bit more about HTML5, while providing you with a bunch of links where you can learn more.

More...

Implementing faceted search with MongoDB

by DotNetNerd 8. December 2011 08:29

After my last post on the faceted search I was asked to elaborate on how it was implemented with MongoDB. So that is just what I will do with this post – giving me the chance to comment a bit on the good and the bad experiences. Even though it was a good overall experience, there will always be things to wish for – the day I say otherwise is the day I should stop being a developer.

More...

Faceted search with MongoDB and KnockoutJS

by DotNetNerd 5. November 2011 16:52

Almost two years ago I took my first look at MongoDB as my first exploration into the NoSQL. Today I still find it to be one of the most interesting NoSQL tools – rivaled mainly by RavenDB, for most what I would call common scenarios. Recently I finally had the chance to use MongoDB in a real project, when we were talking over our options for doing faceted search, where the main design criteria was speed.

To get a good smooth user experience, the performance of the faceted search is critical. One if the limitations of a traditional SQL database is that everything is modelled as rows and columns. So when you need to have complex structured objects, you rely on joining tabels together and mapping them into objects. This is all fine and well in most cases, but when you aim to get the very best performance and the objects are well defined we can do better with tools like MongoDB. Not having to deal with schema reduces development time, when building something that should be denormalized, and avoiding mapping and multiple joins cuts the cost of a query runtime.

Takes two to perform

Just as it takes two to tango, it also takes good performance both backend and frontend, to provide the experience of good performance. To facilitate this I chose to use KnockoutJS – another tool I have blogged about earlier. knockout was used to handle two-way binding of the model and elements on the page, and Ajax for requesting the search results from the server, and updating the model.

Snapping together the logo pieces

As Scott Hanselman often describes it, modern tools should fit together well, giving the same feeling as lego pieces that snap together. This really was the feeling I had when I implemented the faceted search. Defining the model serverside, passing objects on through a service, and then having them serialized to JSon which in turn was made into KnockoutJS observables just felt smooth and painless.

The only thing I had to reconsider was using the LINQ implementation in NoRM, which isn’t quite good enough yet. This was however a small hickup, as the more native API that NoRM provides worked fine and was easy to use.

Looking back the actual implementation including doing indexes did not take long, and the performance just rocks. So this is without a doubt one if the more fun challanges I have had lately, and a solution that I feel proud of.

Who am I?

My name is Christian Holm Nielsen, and I work as an independent consultant, in Denmark, where I write code, give advice on architecture and help with training. On the side I get to do a bit of speaking and help with miscellaneous community events.

Some of my primary focus areas are code quality, programming languages and using new technologies to provide value.

Month List