Web Components is the next generation of web development. It consists of five pieces: Templates, Decorators, Custom Elements, Imports, and Shadow DOM. With these powers combined, they make a Web Component. You can use these pieces individually as well. In this post, I would like to focus on Shadow DOM and what it can do.

Why the Shadow DOM?

To understand the benefits of Shadow DOM, let me first start out with the problem. Today, your web widgets may look something like this:

<div class="img-caption-button">
I've set out on an adventure; not only to learn Xamarin inside out, Tight ropebut to build an app, in public.  I don't know if I'll finish it, I don't know if it will work, and I don't know just how much risk I'm taking blogging as I go, but life is risk.


The concept for the app came from my older daughter, Robin, who has recently accompanied us to buy both a new refrigerator and a new dishwasher (oh, the joys of home ownership).  

Each time we went to Sears, and attempted to figure out what features ...

Now available for instant download is Kendo UI Mobile Nuts and Bolts!

The toughest topics to ramp up on are presented in a clear, logical progression in thekendo ui mobilelatest Kendo UI Nuts and Bolts book from Falafel Software. You'll find binding to remote data sources, foreign keys, a thorough workup of the Kendo UI Grid, imperative and declarative widget instantiation and MVVM.

The book is intended for web developers and designers who want to use the Kendo UI framework and widgets to build responsive mobile applications with HTML5, CSS and JavaScript/jQuery.

Purchase the book now!

With a simple, step-by-step ...

One of the more interesting technologies I discovered during my recent trip to Tech Ed 2014 is SignalR, which is a library for ASP.NET that allows real-time communication between the server and browser. This exciting platform enables bi-directional communication between a page and the server, allowing updates to be instantly pushed in either direction. Best of all, SignalR automatically detects the best option for communication based on the capabilities of the client ensuring maximum compatibility across different browsers.

To learn more about SignalR and see it in action, I highly recommend you check out this session from Tech Ed: ...

In the previous posting in this series we navigated to a details page, but the display of the details left a lot to be desired.  Custom Book CellWe had a single string of information and not enough room to display it in the UITableViewCell in the BookListTableView.

Today, we'll take a look at customizing the UITableViewCell.  We return to the same code, but we'll add a new class, BookCell that will derive from UITableViewCell.  This cell will be used to describe how we want each cell in the table to display its data.

Subclassing UITableViewCel

We start by creating three member variables of ...

Developer mastermind Jesse Liberty will be presenting AngularJS For .NET Developers tomorrow at Boston Code Camp! AngularJS is a natural migration path for Silverlight andJesse Liberty other .NET developers, and Jesse will be covering AngularJS history, program structure, extending HTML, Controllers, Directives, Working with Data, Two-way data binding and more.

Those attending should have familiarity with JavaScript and preferably HTML5 and XAML, and be ready to learn!

Code Camp Details

Boston Code Camp 21 - June 2014
10:20 AM – 11:30 AM, Saturday, June 21, 2014
View the Schedule

Not in Boston? Catch Jesse Liberty at FalafelCON 2014 in San ...

SmartBear Software recently released TestComplete 10.3. Right along with it, Falafel has also updated Falafel Bridge for TestComplete. We are excited about some of the new features and functionality included in this release, particularly as it relates to XamarinFalafel Bridge Logo development.

Download Falafel Bridge Now

Some of the more notable new features included in the TestComplete 10.3 release include:

  • Mobile recording for testing mobile apps on both Android and iOS devices using gesture or keyboard inputs
  • Automatic instrumentation for Android devices allowing for object based testing right in TestComplete
  • Additional Android related capabilities such mocking GPS locations or enabling/disabling ...
In the previous installment in this series, I left off with Directionsbinding data. Today we take a look at page navigation and passing that data around. 

Navigation with Storyboards is accomplished with Segues.  This process is so easy it is almost frightening.  Passing data is almost as easy.


To get started, return to the application we left off previously, and reopen MainStoryboard.storyboard.  Drag a Navigation controller onto the design surface and notice that it brings a second controller with it.  It may be necessary to use the zoom feature to make enough room to see all three controllers.  Delete the second ...

laptop-coffeeWorking remotely via the Internet--or telecommuting as it's known--is something that's become a lot more common in recent years. I've been working remotely for Falafel for almost 5 years now, but telecommuting was almost the reason I didn't sign on for this job. At the time I'd never worked remotely before and I didn't know if I'd like it or if I'd be any good at it. I have by no means perfected working remotely, but I hope I have gotten better at it through trial-and-error.

In these last 5 years I've gone from being afraid of working remotely to forcing ...

In the previous entry in this series, I left off with a page with a button which did nothing.  The key question is how to handle the associated eventMaking a selection.  This brief posting will answer that question.

It turns out that handling the event is frighteningly familiar to .NET programers.  In fact, you can probably guess at the code and come pretty close.

First, we return to the ViewDidLoad method and we add an event handler for the TouchUpInside event for the button.  TouchUpInsde means that this event will fire when the button is released after touching and releasing inside ...
The Web Essentials extension for Visual Studio is an immensely helpful addition for web development.  I'll discuss other features in future blog posts, but today we'll look at keeping your Web Essentials settings in sync with your team.

Here's a scenario that came up for me lately.  I had a page that was referencing a min.css file that was generated from LESS.  My LESS settings in Web Essentials looked correct and it was creating the .css file correctly, but none of my changes were showing up on the page.  It turns out that you need one more change in ...

We last looked at how you can use Xamarin to port an App Studio Universal App to Android by making a few changes to the PCL that it generates. This time we'll try to do the same thing with a Windows Phone 8 Silverlight version of the same app.

The first thing we need to do is generate the Windows Phone version from App Studio, which I've done from the project generation page:


Now we can open up the solution in Visual Studio and run it.

App-Studio-Windows-Phone-8-Silverlight-Solution  App-Studio-Windows-Phone-8-Silverlight-App  App-Studio-Windows-Phone-8-Silverlight-Details

Create the PCL Project

The first thing you probably notice is that ...

The wildly talented J. Tower will be speaking tomorrow at the Twin Cities .NET User Group as he travels around the country on a one-year-long road trip. His session will be covering "30 Tools for Modern .NET Web Development in 60 j-towerMinutes."


Are you a .NET developer interested in crafting high-quality, modern web applications? I've got 30 tools I want to show you in just 60 short minutes. I'll introduce you to these 30 tools that I think will help make your software and life better.
Buckle your seat belts and come prepared to jot down some notes on ...
The first three posts in this series were all about Xamarin Forms.  That is because Forms are terrific, convenient and new.  But they are not the only game in town.  Ninja

It is possible to write iOS applications using native controls and reap the benefit of a visual designer.  Let's take a look at working with the Xamarin Storyboard.

[This is the fourth in a series that starts here.]

Getting Started

Create a new project and pick IOS->iPhone->Single View Application,  as you have done in the past.  I named mine StoryboardSample.

Notice that your application includes a MainStoryboard.storyboard file. ...
Every other control in Kendo's suite of widgets follows a familiar pattern: define one field to use for display and define another field to use for the value. When you work with Kendo's AutoComplete control, you will quickly find that there is only a dataTextField but no dataValueField. The top Google search result for "kendo autocomplete datavaluefield" at the time of writing is a Telerik support discussion on this topic, but the best suggestion to be found there is to perform a reverse lookup in the DataSource by the displayed text. Hardly robust and not at all elegant!

Here's the ...

Microsoft's App Studio is a fantastic tool to help you design and generate applications for Windows Phone as well as Universal Apps for both the phone and Windows. The online interface allows you to add content like RSS feeds, Facebook pages, Flicker photos and more with a few clicks, generating a complete Visual Studio solution that can immediately be launched on the phone or desktop.

Today we'll look at how we can enhance the App Studio solution’s Portable Class Library so that we can use Xamarin to add an Android version of the app.

Creating the Solution with App Studio...

We usually need to have our dynamic module items sorted in a particular sequence, regardless of their creation and publication date. The normal approach to do this is to add a numeric field to the module and enter values manually. This could prove to be really hard to manage ordinals when there are a lot of items.

To manage ordinal easily through UI, we will perform some steps with following points in mind.

  • Assign the correct ordinal to newly created items.
  • Create an ordinal service which will manage reordering items.
  • Same functionality should work for all dynamic modules.
  • Add action ...
Constructing dynamic LINQ expressions is a pretty niche requirement, however, if you're in the market for it you will likely want to extend some its expressions to fit your needs. Below I will demonstrate how to extend Microsoft's .NET 4.0 implementation of System.Linq.Dynamic.

The first step is to create a class and replace it with the following:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Web;
namespace System.Linq.Dynamic
    public static class DynamicQueryable

Next we are going to implement a FirstOrDefault() extension. Add the following to your new class:
Xamarin happily supports two-way binding, and the mechanism will be intensely Book Borrower Main Pagefamiliar to XAML programmers.  The more I work with Xamarin, the more I think this is where Silverlight went to heaven.

[ This is the third in a series that starts here.]

To illustrate this, let's create a simple Forms application that provides two way binding of information about books.

A short aside... One of the interesting and frustrating things when learning a new technology is that you read a blog post or watch a video and it all makes sense.  Then it is time to create something new and... ...

Get weekly updates in your inbox!