If you need relational storage for your Cordova-based app, SQLite provides a lightweight and feature-rich database.  I will walk you through the steps to use SQLite with Telerik's Icenium IDE and build a demo Shopping List app that will select, insert, update, and delete records from a local database on the device.

First, add the SQLite plugin in Icenium.  Double-click your "Properties" folder, select the Plugins tab and check the "SQLite" plugin.  This will add the Plugins folder and SQLite scripts within that folder.

Database and Table Setup

Before you can use your SQLite database and tables, you need to ...

Falafel Software is pleased to announce that its current Director of Marketing, Mike Dugan, has been promoted to VP of Products. Mike is a software industry veteran with nearly 13 years of experience developing, managing and leading high tech projects. Mike’s strategic thinking and educational background as an MBA made him a natural fit as Director of Marketing the past few years, but his success with Falafel’s internal applications warranted a new strategic role.

Mike developed the business plan for EventBoard, Falafel’s mobile conference application and has managed the sales, marketing, support and development teams for the past two ...

I was recently helping a client code-sign their project for distribution over the Internet when we ran into a problem. They referenced a couple of pre-compiled .NET assemblies that were used by the main project but hadn't been strong named. To be able to sign code in .NET, all the assemblies contained in that code need to have a strong name. 

Normally, you'd just go into the project settings for any unsigned assemblies and set up strong name signing there. However, since I didn't have the original code, I had to follow a different path. Here's an outline of the ...

Falafel Dashboard now available on NuGet

The Falafel Dashboard has been updated today with new widgets, and better still, is now easily downloadable via NuGet! This release brings a few new widgets as well as some new features that will hopefully help developers more easily develop and add their own widgets to the dashboard.

New Widgets: Error Logs and Recent Comments

The Dashboard now includes two brand new widgets to give you even more at-a-glance info on your dashboard.

The Error Logs widget reads all of the log files from your Sitefinity Logs folder and displays them in a ...

Last week over on the Sitefinity forums a question was asked on whether or not the Twitter Bootstrap framework was (or could be made) compatible with Sitefinity. More specifically, would it work with Sitefinity's drag-n-drop layout editor, Mobile add-on and responsive design. 

Both use a grid system that at first glance seem not to work well together. Take for instance a 33%+67% layout in Sitefinity:

<div runat="server" class="sf_cols">
    <div runat="server" class="sf_colsOut sf_2cols_1_33">
        <div runat="server" class="sf_colsIn sf_2cols_1in_33">
             
        </div...

This goal is common in DB upgrade scenarios, yet problematic to achieve without a major impact on the contents of the script.

The Problems

The most obvious approach is probably just to start a transaction, and after each statement, check @@error and roll back the transaction yourself. This approach means writing a lot of extra error-handling code. You could start a transaction with XACT_ABORT ON, and after each batch, check if there is still a transaction. If there isn't one, an error occurred. But now what? Many DDL statements require that they are the first statement in a batch, and ...

The Cowtown Code Camp in Fort Worth Texas is this Saturday, Mar 16th. I'll be speaking about "Windows 8 & Windows Phone XNA graphics and sensor integration" at 4 PM. Nokia has seen fit to name me a "Nokia Developer Champion". I, along with Falafel Software, look forward to working with Nokia and working to improve the Windows Phone ecosystem.
My talk at the Cowtown Code Camp will be filled with lots of examples and hands-on demos. For those who are attending, I'll be giving away one of my custom designed and 3D printed phone stands for the Nokia 920 ...

In my conversations with customers and vendors, I find everyone abuzz about mobile. What to do, where to start, what approach to take, etc. We at Sitefinity CMS have taken a strong stance in support of Responsive Design. Only this approach enables a single website to address an unlimited number of devices. I’ve written and lectured about Responsive Design quite a bit. However, I’ve long recognized that there are indeed, other approaches to mobile.

Sometimes Device Specific, is Better than Device Agnostic

Device-specific experiences have a role and, if used properly, can create better experiences for mobile visitors. However, these ...

Telerik’s Sitefinity CMS has been advancing at a tremendous pace. We’ve loved all the great new features, most notably the support for MVC, the inclusion of Kendo UI and the various client side features that come along with these technologies. After building several Sitefinity widgets that relied heavily on JavaScript, including the wildly successful Falafel Dashboard, a slick HTML5 replacement for Sitefinity’s default, we realized that we were relying on Visual Studio less and less. We eventually reached a point where we didn’t really need Visual Studio at all. So we decided to build Falafel Tornado and empower Sitefinity developers everywhere ...
UPDATE (Mar 20, 2013): Icenium v1.3 was released yesterday with built-in zipalign format!

read more...

Last week I published a review of my first Icenium project. I wanted to go into a little more detail on one issue I ran into which confused me during the publication process of the Android version of my Icenium app.

Publishing for Android from the Icenium IDE signs the package file, but it doesn't do something else that is required. It's called zip aligning. If you try to upload the APK file that Icenium produces, you will most likely get the following error ...
UPDATE (Mar 20, 2013): Icenium v1.3 was released yesterday with the ability to target iPhone or iPad only on iOS, one of my suggestions below. Thanks, Telerik team!

read more...

I'm just wrapping up my first project using Icenium, Telerik's cloud-based IDE for creating Android and iOS apps using HTML5, CSS3, and Javascript. I must say that it's been a very enjoyable experience and I've been very impressed with the product that our friends at Telerik have created.

It's a bit unfair to do a full review of this product yet, since it's so new and still in v1. ...
When working with existing sites or content management systems, you have little say on where and when jQuery is loaded. To complicate matters, some pages may have jQuery auto-loaded, and others may not (yay for performance boosts, nay for client-side plugins). Do you bite the bullet and write unmanageable scripts? Or do you believe in RequireJS and dodge the bullet matrix-style? Let me show you how.

With RequireJS, you can asynchronously load JavaScript files when needed. For example, you can write a simple JavaScript module that depends on jQuery like this:

require([
   'jquery'
], function ($) {
   $('body').append(...
Building our EventBoard mobile solution for conferences was no easy task. The solution includes native applications for iOS, Android, Windows Phone and Windows 8, Windows Azure cloud services, a web based administration portal, and a separate product website.

Thankfully, we were able to use the tools from Telerik in nearly every facet of development. The tools saved us time and money, and now Telerik has featured our development story in a detailed case study. You can read all about what it took to build EventBoard here.
Entity Framework makes it very easy to get data from your database through mapped entities and having foreign keys mapped as navigation properties makes it really easy to traverse relationships in your database.  However, there is often a lot of overhead if you "include" your entire child entity along with the primary, parent entity.

For example, let's say we have an Order entity and each Order has a non-null ShippingAddressId that gives us a 1..1 to the Address entity.  We can use Include() to return that related Address entity:

public void IQueryable<Order> GetOrders(
{
    return this.ObjectContext.Orders.Include("Address");...
In a previous post, I showed how to create JavaScript widgets in Sitefinity using shared content blocks. This enabled you to create widgets like image carousels and blog rotators on-the-fly without having to compile or deploy. It was so useful in production and we received a lot of good feedback from the community. This is why we felt it deserved to evolve more and began creating a full-fledged Widget Builder for Sitefinity!

The idea is simple… when writing a web-based widget or control for a website, you need a mixture of HTML, CSS, and JavaScript. A portion sometimes goes ...
While developing web applications, it is common that you must test the site in SSL mode. Normally, this would be a pain and would require you to set up the site in IIS manually. From then on, you must attach the debugger in Visual Studio to the application pool process. There's an easier way!

IIS Express has been given a lot of attention with the Microsoft 2012 tools and it is certainly a better alternative to Cassini. And yes, IIS Express really is the full-fledged IIS except the config files are located in "C:\Users\%USERNAME%\Documents\IISExpress\config" rather than in the machine-wide location. ...
Capitola CA - 18th February, 2013 - Today Falafel Software is pleased to announce that two additional Sitefinity experts are joining the team: Jochem Bökkers and Josh Morales. Jochem and Josh are two of the most respected names in the Sitefinity development community and each brings in-depth Sitefinity knowledge and their own unique technical expertise to the Falafel family.

“It is a pleasure and an honor to add two established software engineers to the Falafel family.” said Lino Tadros, Chairman & CEO of Falafel Software. “Josh and Jochem are hard core Sitefinity architects that will be a tremendous help to ...
Navigation is one of the most important functions in any CMS. It is the doors you scatter throughout your site so your visitors can get around. It is no wonder there is an entire eco-system of menus... drop downs, horizontals, verticals, responsive design, tabs, panelbar, tree-view, content slide-outs, and the list keeps growing. This is one the most common requests for any web designer or developer. Just search the Sitefinity forums and you will see :)

The problem with using the Sitefinity navigation widget is that you have little control over the HTML that is rendered for the menu. ...
Falafel Software’s mobile conference solution EventBoard, has been chosen as the official application of the Microsoft MVP Summit.

The Microsoft MVP Award is given to technical experts who actively participate in the community, sharing both their knowledge and enthusiasm for Microsoft products. For 20 years, it has remained one of the most difficult awards to earn and wearing the badge of an MVP has signified supreme technical excellence with Microsoft technologies.

Each year, every MVP from around the world is invited to Microsoft headquarters for the MVP Summit. This private event gives MVPs early and direct access to ...

For years I've always liked the idea of having the ability to develop on the road. Few who know me would ever deny that I'm a true road warrior, although I'm beginning to slow down. Whether it was taking my kids all over the world to fence, chasing storms, hiking off the trail, or even jet skiing at the lake, I often had my laptop with me. I've come up with some of my best ideas while on the road. However, the size and bulk of my various laptops always had me wishing for something else.

 

The Surface RT ...