I was working with a client recently when I encountered a completely unexpected bug. Figuring out the problem reminded me of some facts about how C# (and all the .NET languages) work and got me thinking about the fact that object-type variables in .NET are basically pointers, even though it’s hidden from you most of the time.

The Problem

An object instance was passed into a method. If the parameter was not null, it was simply updated, but if the parameter was null, then it was instantiated first, then updated.

It looked something like this:

class Widget
{
    public...
Recently I had the task of getting an Apache Tomcat installation working on a windows machine as a service. By following the documentation that is available on the internet I tried several techniques including the service.bat and Tomcat6.exe the service. There are tons of options available to install the service and unfortunately almost all of them are necessary. Installing the service over and over to get it running was turning out to be quite time consuming until I found the Tomcat6w.exe. The Tomcat6w.exe is a graphical editing tool for any installed Tomcat service. The fastest way i found to get ...
Mobile applications and web sites provide the perfect platform for proximity-based services so users can find the nearest X to their current location.  I will demonstrate some code that will allow you to find the closest location in a list when compared to a current latitude and longitude.

While latitude and longitude provide precise coordinates, we can't use a Euclidean distance formula because latitude and longitude are not on a cartesian plane, but on a sphere (technically, an ellipsoid, but we don't need to be so precise here).  There are several pages that describe the differences between using the Haversine ...

Users in the Telerik Reporting Forums have been clamoring for a Stand-Alone Report Designer for a long time now. I’ve been working with Telerik Reporting for the past few years, which means I have spent my share of time researching issues in the forum. I have seen several posts by users asking for a Report Designer that doesn’t require Visual Studio. With the 2012 Q1 release of Telerik Reporting it is finally here.

The Telerik Report Designer allows a non-developer/report designer to have a separate tool to start working with the Telerik reports. This will free your developers up to ...

Using Claims Authentication with Sitefinity 5, you no longer "hit the wall" when integrating your site within a larger security context. Prior to version 5.x, Sitefinity used Forms Authentication for verification of user credentials to allow access to Sitefinity applications. Forms Authentication retrieved the user's name/password and checked it against data stored in the the database for that particular Sitefinity application. That works well enough for a single web site but comes up short in scenarios required by many organizations:

  • "Single Sign On" (SSO) where you have several Sitefinity sites that should have only one login for the user. SSO allows you to show a ...

I recently spoke at the Windows TechConference in Baden, Switzerland, on moving Windows Mango applications to Metro. You can see my slides here.

It has been said that good things come to those who wait. If you've been waiting to learn how to build Windows Phone applications, we have some good news. We are offering a 50% discount on our upcoming training class taking place April 4th - 6th. Join our expert trainers for 3 4-hour online sessions and they will walk you through Windows Phone Development, from project setup to submitting your app to the store. 

Just enter promo code: VALUEDCUST with your purchase. 

Sign up today!

Update:  We've released a full JavaScript development guide: JavaScript Nuts and Bolts, and are teaching a class explaining how to use JavaScript, KendoUI and ASP.NET MVC in Telerik's Sitefinity CMS. Sign up for Foundations of Sitefinity 5.1.

JavaScript uses unfamiliar patterns to simulate object oriented programming. Well, unfamiliar to class-based languages such as C# and Java programmers that is. For example, JavaScript has no classes and uses functions/objects somewhat interchangeably ("it's a desert topping and a floor wax!").

In JavaScript we can use functions as objects because functions are first class objects in JavaScript. Functions can have properties, ...

We were very excited last week with the release of Sitefinity 5.  It has been running fast and solid on several machines (servers) here at Falafel Software.

One blemish though was the major breaking change to the authentication of the REST APIs.  If you are upgrading from a 4.x site to 5.0, no worry that change will not affect you (not right away at least), but if you are setting up a brand new Sitefinity 5 Web Application, the default authentication has changed from FORMS authentication to CLAIMS authentication which will break any code previously written using the REST API ...

I’m a huge fan of the Microsoft Prism framework. In fact, I’ve blogged before about using its DelegateCommand to minimize your ViewModel code.

Lately, though, I noticed that once its CanExecute delegate returns false, your IsEnabled binding will not update, even when the property it’s bound to changes.


Try It Out: Live Example

Note: Silverlight 4+ Plug-in Required
Get Microsoft Silverlight

 

As you can see, the button entitled “Prism Command” starts out disabled and never enables, even though its IsEnabled property is bound to the same property of the ViewModel as the other buttons (see below).

 

<Button Content=...

There has been many features released in Sitefinity within the last year, but one of my most favorite is Module Builder! If you have read my previous blog post about migrating modules from Sitefinity 3.7 to 4.0, you must have been overwhelmed with the 8000+ lines of code it took to create a module in Sitefinity 4. And most of the it was cookie-cutter code from module to module.

Now with Sitefinity 4 and 5's Module Builder, you can create modules without writing any code! If you have manually created modules for Sitefinity 4, you should be asking ...

I was recently asked by a client to help upgrade their application from Silverlight 4 to Silverlight 5. The upgrade worked perfectly except for one third-party assembly that had not yet been upgraded to Silverlight 5. The client only needed to use this assembly to generate QR Codes--those black-and-white barcode squares you often see people scanning on their smartphones—so my task was to find them a replacement QR Code library.


Sample QR Code

My colleague, Josh Eastburn, pointed me to a free option that was created for use in WP7 apps, but works just fine in Silverlight 5. You ...

Each year, Microsoft’s Most Valuable Professionals (MVPs) are invited to Microsoft headquarters for the Global MVP Summit. The MVPs have access to exclusive technical content, participate in direct feedback sessions, and meet with Microsoft executives, product teams, and other MVPs from around the world. As a 10 year MVP, Falafel’s CEO Lino Tadros is always in attendance, but this year was special. Falafel’s efforts with the Windows Phone platform and our flagship mobile product, EventBoard, were on display for all to see. During the keynote, Lino was highlighted by Microsoft’s Vice President of Developer and Platform Evangelism, Mark Hindsbo. Mark ...

In case you haven't heard.. JAVASCRIPT IS MAKING A COME BACK!! And it is not the same JavaScript you fiddled around with in the pre-AJAX era. It has become reborn with the help of HTML5, mobile, and even Windows 8 (see Create your first Metro style app using JavaScript). Understanding JavaScript is becoming essential and can no longer be dismissed as a "weakly-typed, toy language with no compilation checks," but instead as a versatile, dynamic, cross-platform language.

Before jumping into code and learning JavaScript, I want to give some background of its purpose. It is important to know ...

Stretching a RadGrid to 100% of the browser height can show as "squashed" when the grid is AJAX-enabled. Even without AJAX involved, stretching RadGrid requires setting the grid Height to "100%" and the Height style of all parent controls to "100%".  Setting RadGrid Height alone outputs this disappointing view where the data is squashed to a single text line.

You'll see this same "compact" view of the data in IE, FireFox ,Chrome and Safari. Add the style below to set HTML, Body and Form tags height to 100% and hide margin, padding and scrollbars.

<style  type="text/css">
    ...

Apple does a lot of neat things with images in iOS, and many times we get the benefits of shiny, chrome-like effects on our images without really doing anything.

If you create a new tabbed application in XCode, the default setup will give you two tabs, with square and round images in the tab bar for the tabs.

Note the shiny blue appearance of the selected tab.  So, what do the original images look like?  Pretty boring, actually:  just a plain black circle and square.

Wow, that's a quite a difference.  Pretty cool, right?  I thought so too.  But then ...

In a previous post we outlined how to use KendoUI JavaScript Framework with Sitefinity. We defined our base class to utilize for the the coming KendoUI Sitefinity widgets. We also implemented the Kendo Panel Bar and showcased how to bind it to our Sitefinity content using server-side code.

In this post we are going to take a step further. First, we will illustrate how to employ the various themes that are available out-of-the-box with KendoUI and how to command the look and feel of the various KendoUI controls. Afterwords, we will create our first real Sitefinity widget.

KendoUI controls are ...

 

It has been over a year now that our team has been working with Sitefinity 4.x, from the first release of 4.0 through the other 9 releases and patches through 2011.

To say the least it has been a very painful year for Falafel to work with Sitefinity 4 and I can add that it has been equally or even more painful for the Sitefinity team at Telerik to go through this painful year with numerous punches from customers, media and experts all the over the place, but most painful probably from their own partners.

From the pricing change ...

The Sencha Designer 2 Beta is a full-on IDE for MVC based JavaScript applications built over Sencha Ext JS and Sencha Touch frameworks. That's a lot of acronyms for one sentence, so allow me to recap. Sencha Ext JS is a framework for building rich JavaScript applications complete with all the goodies we've come to expect like data grids, trees, charts, windows, tabs and so on. Sencha Touch does the same thing for mobile applications.

In this blog, we'll take a look at the environment and build a simple data-bound grid.

Sencha Designer 2 brings a visual designer with a ...

Silverlight provides a robust development environment and a rich user experience, but one shortcoming becomes evident when users ask "why can't I highlight and copy text in the application?"  Unlike standard web pages, when you use the Silverlight TextBlock, the text is inaccessible to the user and behaves almost like it is a background image.

There are several ways to remedy this, including building a custom control, but the simplest solution I've found is to use a TextBox control (which allows users to select and copy text) and style it to look like a TextBlock.  To do this, create a ...