Thoughts from the Wet Coast
The musings of an ASP.NET Developer from Canada's We(s)t Coast
So its that time of the year again. Its 32 C outside here in Canada, so it must be time for the new English Premier League season to start. This year I feel bold enough to make predictions so here goes. My top eight this year are as follows
In my opinion last year Manchester United were actually lucky to keep it close right up to the last game, and while they have been strengthened by the addition of Robin Van Persie, I can’t see them beating City this year so I am predicting that Manchester City will repeat - but it will be close again.
In a number of articles last fall I discussed NoSQL Databases in general and showed how RavenDB – a .NET NoSQL Database - could be used as the Data Store for an ASP.NET MVC Application.
In this article, I will demonstrate how RavenDB can be used as the Data Store for a DotNetNuke Module. First lets assume I have created a Web Application Project for my DotNetNuke Module. My Module, surprise, surprise, is going to be a Tasks or To-do List module.
In the fall of 2011 I started a series of blog posts on NoSQL databases. Since then I have developed a conference session on the topic which I presented at DevTeach 2012 in Vancouver in May. In developing the talk I spent a good deal of time trying to understand the concept of Map/Reduce, as it can be a challenging topic.
As described earlier in this series, NoSQL databases can be partitioned across many systems (or servers). This gives rise to an interesting problem - how to query across these multiple servers. This problem was solved by the concept of Map/Reduce algorithms. Map/Reduce is a multi step querying process, which takes a big task and breaks it down into multiple smaller tasks, and as with many of the NoSQL innovations it was first developed at Google.
Welcome to my new blog.
Over the last few weeks I have been setting up my new “blog” site using DotNetNuke. My previous site used BlogEngine.NET – an excellent ASP.NET blogging platform. However, I have decided it is time to move to a new DotNetNuke based site.
Last week I gave two presentations at DevTeach in Vancouver. I am now making the slide decks and demo files available.
In the first post in this series I pointed out that DotNetNuke places few requirements on module developers, and this is often daunting to new developers – “where do I start?” being a common refrain.
So where do you start?
Before we actually start to build our first module lets look at what constitutes a module. In the default DotNetNuke skin/template that is used when installing DotNetNuke there are a number of examples of Text/HTML modules.
DotNetNuke has a rich eco-system of Modules, both Open Source and Commercial. In many ways this is our biggest strength as a CMS platform. No matter what you want to do with your site – there is often a module that already does it.
In my opinion this is due to the flexibility provided by the core DotNetNuke Framework. Many other platforms are very prescriptive – as an extension developer you have to follow a fixed shopping list of rules – there is invariably only one way to create an extension, which may not work for what you want to do.
Today Scot Guthrie, Corporate Vice President in the Microsoft Server and Tools Business announced in a blog that some of the ASP.NET technologies that are used by web developers, including me, were to be made available under an open source license.
In my previous post in this series on NoSQL Databases, I showed how RavenDB embedded could be added to an existing ASP.NET MVC 3 application using NuGet and how it can be configured to use a folder in the App_Data folder.
In this blog I will add the code needed for my TaskController class to use RavenDB to store its data.
In my continuing series on NoSQL Databases I have been mainly describing some of the concepts behind NoSQL (and in particular Document) Databases. In this post I will start to dive into some code.
As mentioned earlier I will be using RavenDB as this is a .NET friendly database.
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.