Monday, December 13, 2010

What a difference a release makes

It's been pretty hectic the last couple of months for me. I'm now involved in a one man enterprise project (yes they exist) and between vetting requirements, architecting and coding there really hasn't been a lot of writing time.

One of the things that is at the top my priority list for this project is to provide a high quality and consistent user experience. To that end I had planned to use the DevExpress Silverlight toolset. This looked like a good choice as they're support had been good and the control set looked to be expanding in areas that I would certainly need, such as Charting. But the DevExpress 10.2 release fell flat for me in more areas than it should of. From lack of documentation for new controls (in mean no documentation) to bugs that had not existed in DevExpress 10.1 and where now closed as "Microsoft's problem" (really it worked fine in the last release) to Themes not working with prisim modules, I decided I needed to rethink my choice.

I decided to take another look at Telerik. To be honest, I really didn't want to change, as it's always hard to say "hey maybe I was wrong", but sometimes you just have to rethink your approach. I was pleasantly surprised by the depth of the documentation and ease of use of the toolset. The Telerik controls provided a consistent data binding experience, so no longer did I have to ask "ItemsSource or DataSource or is it something more obscure?" or dig through reams of docs to find examples, it worked flawlessly with prisim and provides great support for commanding. The GridView also supports Hierarchical data, which is something that I will need. Overall I've been very impressed with the toolset and in the future will also make use of the MVC extensions as well.


 

Thursday, October 7, 2010

Silverlight and MVVM

I've been very heads down lately on a very large .Net project. The project team should be 5 or larger given the scope, but in the spirit of "do more with less", it's just me. Part of the application contains an internal facing UI, which is being done in Silverlight. In an effort to streamline the work I decided to go with the MVVM approach. While MVVM is the "end all be all" rage these days I am encountering a number of problems. First is in the application flow. I am working from screen designs rendered in photo shop by an offsite designer (he's not interested in xaml or learning). These screens tend to be busy and in my opinion very ADD. This makes it extremely difficult to isolate a clean View Model. What I've discovered is that a number of views may need to access the same data so you end up creating a Master View to coordinate the children. Also the no code model in the views is very difficult to achieve when complex interactions are required. I know that I can use Unity or any number of other MVVM frameworks to alleviate some of the issues, but add to the download overhead, which because of the inclusion of third party components is already larger than it need to be.

So while MVVM may be a panacea to some, I see a number of issues with the approach and until the model is built into the framework core it will continue to be a problem.

 

Tuesday, July 13, 2010

DXWindow and DXDialog as Silverlight a UserControl

Here is a quick example of making a DXDialog or DXWindow a user control in your Silverlight applications.

Add a reference to DevExpress.xpf.Core to you Silverlight application.

Modify the xaml so that it is a DXWindow (or DXDialog).

<dec:DXDialog x:Class="DevExpressWindow.Dialog"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:dec="clr-namespace:DevExpress.Xpf.Core;assembly=DevExpress.Xpf.Core.v10.1"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">    
    <Grid x:Name="LayoutRoot" Background="White">
        <TextBlock Text="Your UI here." HorizontalAlignment="Center" VerticalAlignment="Center"/>

    </Grid>
</dec:DXDialog>


 


 

And modify the code behind so that instead of deriving from UserControl, derive from DXwindow (or DXDialog) like so.

using System;
using DevExpress.Xpf.Core;


namespace DevExpressWindow
{
    public partial class Dialog : DXDialog
    {
        public Dialog()
        {
            InitializeComponent();
        }
    }
}


 

And to use it from within the application

  private void btnNewDialog_Click(object sender, RoutedEventArgs e)
  {
            Dialog dlg = new Dialog { Title = "My Dialog",Height=200 };
            dlg.ShowDialog();
  }


 

The result is a reusable dialog or window.


 


 


Wednesday, June 9, 2010

Controls follow up

I've had a chance now to use the DevExpress and Telerik control suites. Here are some observations which may be helpful to those of you in the market for controls.

Installers

DevExpress wins this hands down. They have a single installer for all products. You can select only the components your licensed for or trial those you don't own. The installer also updates existing products, so no uninstall reinstall dance.

Coding Tools

Code Rush beats Telerik Just Code. There is simply no comparison in the functionality between the two products. It's like comparing an Erector set to Lincoln logs (I may have dated myself).

Updates

Telerik seems to update like a person with ADHD. Every product has an update at a different time. This is a pain in the backside. Additionally, the highly touted visual studio extensions require you to run Visual Studio 2010 as an Admin to update, and then they fail with a "Program must be removed from Add/Remove Programs", major fail Telerik. DevExpress as mentioned earlier provides a unified update process which is easier to manage.

Controls

In this area both vendors are pretty evenly matched in functionality. I've found the DevExpress components to be more "Developer Friendly" in that they work as advertised and don't require any fiddling to get the components to work. As an example I created web applications with grids that rendered a set of image records that were retrieved as binary images from a simple database. The DevExpress Binary Image Column rendered right out of the box, I could never get the Telerik Binary Image column to display anything other than an "X". If it's documented somewhere I sure wasn't able to find it.

Support

I have had to use the DevExpress support and they are an outstanding group who addressed my issue in a timely and efficient manner. I cannot comment on the Telerik support as I haven't opened any issues with them at this time. The DevExpress issue was a help installation issue on Windows 2008, which was addressed and resolved in less than 48 hours. Pretty impressive in my opinion.

Monday, May 10, 2010

Component Switching Follow up

As I noted in my last post, I had switched component vendors. So far I'm quite happy with DevExpress and the tools I purchased. But I would be remiss if I didn't mention the follow up from Telerik. As I mentioned in my earlier post, the sales rep from Telerik wanted what amounted to a 2500 word essay. I was contacted by Brandon Strange the Customer Advocate Manager for Telerik. He stated that the original requirement was for 200 to 300 words total and that the sales rep had misstated the requirements. In addition he said they would evaluate this requirement in the future on a case by case basis. I think it was great that they should reach out like this to potential customers. Telerik is big enough that they could have blown my comments of and that would have been the end of the story. They didn't and that is very important. Also to make up for lost business, Telerik provide me with a complimentary license, now I have two great sets of components.

The flip side of course is the vendor I left after nearly 9 years of business. I know based on the traffic reports for this blog that Infragistics has in fact visited over a dozen times since my post. Yet they have not made any attempt to contact me and attempt to win my business back or even find out why I chose another vendor. That is poor customer relations in its most simple form. If you don't value you customers enough to engage with them, you should close your doors and sell of your assets. I for one will never recommend them, where in the past I would have. Instead I'd recommend DevExpress and Telerik because they take the time to listen and engage and provide quality tools.

Thursday, April 29, 2010

Switching from Infragistics to DevExpress

I have been an Infragistics customer for a number of years; as a matter of fact it's been over 9 years since I purchased my first controls from them. Recently though I've become quite unhappy with my experience with their products. Over the years they went from having a great set of UI tools to having one of the most complicated and useless sets of tools. Let me elaborate on what I mean; let's take the ASP.NET components for example. These components come in two flavors, 3.5 and 2.0; a lot of the functionality is similar if not the same. Yet they are not interchangeable. If you add a 3.5 component and then choose to add a 2.0 component your application will break in new and unusual ways. To fix this takes some time and manual intervention on the developer's part. I also have an issue with their increasing use of the nickel and dime sales approach. When the introduce a new product line , Data Visualization for example you'll get the first barely functional release for free, but then to maintain and get updates, you'll be forced to pay for version 2. At the end of the day, this just causes frustration and headache and unnecessary expense.

Since this is an out of pocket expense, I started with some simple criteria that I used to evaluate the competition.

  1. What does the toolset contain and the core quality and functionality of the tools?
  2. How responsive is support to inquiries and requests?
  3. How often is the product updated and new functionality added and does it cost extra?
  4. How responsive is sales to inquires?
  5. Do they offer upgrade pricing?
  6. Do they offer flexible Product Licensing?

Armed with this criteria is set out to evaluate the competition. I looked at a fair number of tool sets but, many of them didn't meet the first criteria, so that left me with two, Telerik and DevExpress.

Telerik has a decent suite of tools which I had used in the past and they meet all of the criteria except for the upgrade pricing. They wanted an essay 300 – 500 words for 7 questions, a minimum of 2100 words, about why you're leaving the other vendor in order to qualify for a competitive upgrade. This in my opinion is completely absurd. First since this was a personal purchase, I shouldn't also have to elaborate on why, if they don't want new customers then don't advertise upgrades. Secondly my time is valuable; I shouldn't have to justify my decision in writing.

So that left DevExpress. To be honest, I have used Code Rush and Refactor Pro for almost two years and have been completely satisfied with the sales and support from DevExpress. The tool set is fantastic so far, a really positive change from the hassles I encountered with Infragisitics. They have a complete set of ASP.NET (a single set) WPF, Silverlight, Windows Forms and Reporting. All of the products are easy to use and look great. The only real issue is documentation, which they have indicated is being updated, but asking a question in the forum yielded an almost instant, accurate, response. So I'm now using DevExpress going forward and I have some really exciting UI ideas to try out.

Monday, April 12, 2010

Microsoft burps another launch

VS2010 and SQL Server 2008 R2 are available to MSDN subscribers. But you'll be better off to wait. Apparently they once again failed to estimate the bandwidth requirements. Attempting to download will just lead to frustration as the transfer client continually tries to connect, then pops some obscure missing info message. Even after taking MSDN downloads over the weekend to "do maintenance".

Follow up 12:05 PM MST, it looks like they have the Akami download manager up and working. So downloads should be smoother

Thursday, March 25, 2010

Top 10 reasons to migrate to Visual Studio 2010

The release of Visual Studio 2010 is just weeks away and if your organization is typical, they will take a wait and see upgrade approach. Visual Studio 2010 has so many great productivity enhancements that it makes no sense to wait. The problem is most of the decision makers will not have had much exposure to make an informed decision so here are 10 reasons why you should upgrade immediately.

  1. Multi-Targeting support. Many of us have code in multiple .Net versions and many of spend time switching between Visual studio versions. Visual Studio 2010 greatly enhances multi – targeting between 2.0, 3.0, 3.5 and 4.0. In addition VS2010 can be installed side by side with Visual Studio 2003.
  2. Call Hierarchy. If you've ever spent hours staring at a complex piece of legacy code trying determining calls made from it of finding callers to it the Call Hierarchy tool will solve your problems. Select the method in question and it will map all the calls from and to the method.
  3. Zoom. What else can I say zooming in the editor is a great feature for working with just a single block of code or if you have old tired eyes.
  4. Navigate To. Rather than using Find All Navigate to allows you to search on types and filters the list while you type you can then jump directly to the code you're looking for.
  5. Highlight References. Selecting a reference highlight all instances in the method or class allowing you to quickly navigate between them.
  6. Improved Intellisense. Intellisense now has partial string matching as well as consume first mode.
  7. Add Reference Improvements. Anyone whose added references in earlier versions know how painfully slow it was to load. Now it loads asynchronously and starts at the "Projects" tab.
  8. Break point improvements. Break points can now be labeled, imported and exported allowing you to save break point setups and even share them with team members.
  9. Expanded Code Generation. Visual Studio 2010 expands the create method stub functionality allowing you to create classes, enums, structs and interfaces.
  10. WPF Editor. What else can you say? WPF comes of age in Visual Studio 2010, the font clarity and responsiveness of the editor will make you drool.

These 10 items are the tip of the iceberg when it comes to Visual Studio, there is some much more that greatly enhances developer productivity. Waiting to migrate to Visual Studio 2010 is like waiting until the 4th of July to open last year's Christmas presents, there is no reason to wait.

 

Monday, February 8, 2010

Visual Studio 2010 RC

Visual Studio 2010 RC is available to MSDN subscribers here. General availability is set for the 10th of February. The RC includes a "Go Live License" and upgrade from RC to RTM.

Saturday, February 6, 2010

Things keep changing

It's obviously been a while since the last post. In that time I've changed jobs, not by choice, but definitely for the better. My previous employer had an issue managing cash flow and like many other companies, cried recession and let go some of the best talent in the organization. Interestingly enough it appears that all of the development staff including myself found employment within just a few days.

So the past couple of months have been about integrating into a new organization and attempting to become a contributor as quickly as possible. One of the things that irritate me when changing jobs is that you have to completely reestablish yourself. This is an issue that I never dealt with in my military career.

I'll be continuing the workflow series shortly, as Microsoft is set to release VS2010 RC, so I'll pick up with that release so stay tuned.