Monday, July 23, 2012

Some thoughts on the Metro UI in Visual Studio 2012

The Metro UI in the Visual Studio 2012 is horrible  The icons and graphics make navigating a solution nearly impossible. The Light Theme and Dark Theme are equally unreadable. The geniuses that came up with this UI concept should be tarred and feathered. Even with the improvements in search and the solution explorer I still find myself being less productive because I have to study each file to make sure that’s what I want to work with. Lets not even start on the ALL CAPS MENU, really?

I appreciate the IDE improvements but how about a choice? Dear Microsoft, Metro doesn’t work for everything. 

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.