Thoughts from the Wet Coast
The musings of an ASP.NET Developer from Canada's We(s)t Coast
So far I have done a relatively high level review of the DAL 2 API. In this blog article I will start to take a deep-dive into the components that make up the API, beginning with the DataContext.
The IDataContext interface and the PetaPocoDataContext concrete implementation act as the entry point into most aspects of the DAL 2 API. While implemented as an Interface there is no expectation that any other implementation will be created, but the interface allows us to mock a concrete implementation for Unit Testing purposes.
My wife and I are members of the Anglican Church of Canada. Moreover, my wife is an ordained Deacon in the Church, and today she drew the short straw - it was her turn to preach. She had prepared her sermon on Wednesday, as she was planning to spend Friday - her normal sermon prep day - on a day out shopping with a friend. Given the events in Connecticut, she realized it needed a significant rewrite - Friday’s events were not something you could ignore. Eileen does not have a blog so I asked if I could reproduce it here on my Blog. And here it is in its entirety.
I don’t usually write about non-technical stuff on this blog, but today is not a normal day. Today, tragedy struck a small community in Connecticut as 20 children aged 5-10 yrs. old and at least 6 adults were tragically killed by what appears, at the time of writing, to be a lone gunman armed with an assault rifle- not a shut-gun that could be used for hunting or even a pistol but an assault rifle - and at least 2 other guns.
In my previous post I reviewed Icenium - a new ICE (Integrated Cloud Environment) that is based on Apache Cordova. But what is Apache Cordova?
About a year ago Adobe announced the purchase of Nitobe - a small Vancouver company - whose main claim to fame was PhoneGap - a framework for building cross-platform mobile Apps. With the purchase of Nitobe, the PhoneGap framework was released as an Open Source project and submitted to the Apache Software Foundation as an Incubator project.
Earlier this week Telerik released a cool new development tool for creating hybrid mobile apps. Icenium is an Integrated Cloud Environment that uses the SaaS - Software as a Service - model. By hosting the development environment in the cloud developers don’t have to worry about managing the SDKs required to develop mobile applications.
I presented a session on the DAL 2 at DNN World in Orlando, and a few people asked about “calculated” properties - or properties that do not have any matching column in the database. This is an important feature for any “auto-mapped” repository implementation, so we have added three new Attributes that control the mapping of properties and columns.
So far in my review of the new DAL2 I have focused on the features designed to improve developer productivity - i.e. the Repository. In this post I am going to step back and look at other features which mimic the existing DAL+, and provide the developer with a sense of working “close to the metal”.
This is the third blog in my series describing the new DAL 2 data layer that we are introducing in DNN 7. In the first I gave an introduction into why we were introducing a new data Layer, and some of the basic features it provides, and in the second article I introduced the new built in IRepository of T implementation.
In my previous blog on the new DotNetNuke Data Access Layer, I introduced why we were building a new Data Access Layer and the basics about what the layer includes. In this blog I will dive a little deeper into how module developers can take advantage of the new DAL 2 by using the built in IRepository of T implementation to simplify their module development.
So that you don’t have to refer back to the previous post, Listing 1 shows the same TaskInfo (model) class that I showed in the previous post, except I have renamed it to Task, and I have removed the ModuleId property, which means that any instance of the module will return the same set of Tasks. In a future blog I will discuss features of the DAL 2 API that allow you to scope your data.
DotNetNuke has essentially used the same data access layer since its earliest versions. This data layer uses an abstract DataProvider class together with a concrete SqlDataProvider class.
In theory this model supports the ability to use other database systems by building other concrete DataProvider implementations. However, in practice this is actually not very practical for a number of reasons, the main reason being the need to create database scripts for each concrete provider. As a result, there really aren’t any other database implementations available.
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.