This Blog


Favorite Posts


December 2008 - Posts

  • Finding information online

    Call me a grouch, but, since the halls of DevExpress Towers are quiet and people are wrapping up their individual 2008s, I thought I'd unload a little, gentle reader.

    I've been replying to a few questions from our info mailbox (info@devexpress.com). It's one of my jobs; a daily task, in fact. In general, the questions are pre-sales in nature and are well-formulated and seeking to gain information not found anywhere else. (Current customers tend to use our support services.) Some require me to do some research in order to find out the True Answer (tm) because even to me, as I approach my third anniversary here, some answers are not obvious. So, I fire up Google, that fount of indexed knowledge, and fire off variants of phrases together with the "site:" keyword to see if I can't get at them. Some use "info" to try and elicit some advance knowledge of our plans and goals for the products to which I can only reply in generalities and fuzzy timelines.

    And then there are some, which, to be frank, indicate the sender has spent little to no time in any investigation whatsoever but fires off an email because it's easier.

    Yes, we'll take it on the chin that our docs need improving. Yes, we'll agree that sometimes it can be hard to find the answer. Yes, we'll accept that sometimes our design isn't optimal so your intuition fails. We're continually trying to improve everything we do, from design, to implementation, to testing, to writing, to support, to shooting videos. to exhibiting, to whatever. We have to, our market is very competitive, natural selection has a field day.

    But, when it comes to the point of me answering one of these info emails, and I don't know the answer, but I find it within, say, a couple of minutes of searching and reading online then there's something wrong that no number of improvements we can implement will ever ameliorate.

    However, here's my general plan of attack should I not know the answer to a question involving our products.

    - If the question sounds like it should be covered by the documentation, I use the online version and drill down. A bit inefficient, I'll agree, but I find I gain some background knowledge as I do so (especially in reading the overview sections). As an example, the scheduler can be a bit confusing when it's time to talk about persistence, but I find the SchedulerStorage overview very well-written and illuminating.

    - If the question is about the end-user behavior of some control, I fire up the DemoCenter application and go take a look. This app is installed by the evaluation version, so is available to "pre-customers", and it's invaluable in determining what a control can (or cannot, for that matter) do. The dev teams spend quite a bit of time here making sure they can show off the features to the product, so if it's not there, it's unlikely we can do it. Of course, if the control in question is for ASP.NET, I hit the online demos.

    - If the question is about how to implement something, there are several places to look. First of all, I'll apply the above two strategies. Some newer demos, for example, have an option to display the code for a feature. If I see some code with identifiers that look about right, I'll use these in preference to natural English in Google. Another place to look is our knowledgebase, which of course leads to Code Central (where again I'll tend to browse filtered results instead of brute-force search). Again, if there's an identifier that looks interesting, I'll google for that, coupled with the product name — every now and then you can reach somebody's blog where they discuss something similar. Sometimes I'll even use the source, Luke, or at least Reflector.

    It's very rare that I give up and ask the support guys or the development team itself. But, hey, it has happened.

    My exposition here is more general than just for DevExpress. I use the same techniques when I'm searching for information on other products. For instance, I use Graffiti CMS as the engine for my personal blog and I've been playing around recently with its extensibility points. To find out how to do something with Graffiti, I apply these very same techniques (but, boy, I wish they'd called it BlogSplat or something, I'm getting tired of reading about urban graffiti issues).

    Anyway, if you do have a pre-sales question about our products, please don't hesitate to email info@devexpress.com. It's filtered through our sales team first, and they decide whether they can answer or pass it on. You may therefore get an answer from me, and you can rest assured it will have passed our grouchiness filter Wink.

    If you have our product already and have a question about it, then point your mail program at support@devexpress.com. If you have a question about purchasing or about a purchase you have made, write to clientservices@devexpress.com. If you have a deeper question about our strategy, or complaint about someone at DevExpress, or want to donate several million dollars to our retirement fund, management@devexpress.com is for you.

    And if you want to email me, I can always be found at julianb@devexpress.com. I enjoy hearing from everyone.

    With that, I and everybody here at Developer Express wish you all a very happy and prosperous New Year. We look forward to helping and being here for you next year.

  • Compliance is hard

    So I had occasion recently, courtesy of the Microsoft giveaway of a pre-beta installation of Windows 7 at PDC, to actually try out Internet Explorer 8.

    Lest you start piping up and saying "you can install it on Vista too you know", and pointing me to the URL, let me acknowledge that you are right, and Mehul has been prodding me to do so. But I feel a browser is a very personal choice and you will be wrestling Firefox out of my cold dead hands. Especially with all the plug-ins I have loaded in it now it feels like my browser and no one else's. I do my FTP through it, my Amazon S3 access, I explore the CSS from various websites with a nifty plug-in called FireBug, etc.

    Incidentally, the only thing I don't like about Firefox is that it doesn't work well when you're debugging a web app. Visual Studio doesn't notice that you've closed the window or tab in Firefox, and you have to manually go and click Stop Debugging. Am I missing some option or plug-in?

    Anyway, where was I? Oh yes, IE8. During the planning for this release there was this whole discussion about how IE8 should deal with, er, badly formed HTML and CSS. Or, rather, pages that included deliberate hacks to get around bugs in previous versions of IE, most recently and notably IE6. Should the new browser produce the same bugs, so all those millions of pages aren't broken in IE8? Should it announce itself in another way to fool all those JavaScript hacks? Etc.

    Well, if you've used it, you'll know you can mark certain websites to be accessed in "compatibility mode" (there's a little icon next to the address bar). In essence you go to your usual website and if it looks "funny", you click the icon and the browser pretends to be IE7 and redisplays the page.

    To which I usually go: it's not that hard to write a compliant page, come on. All this work the IE team has had to put in to get around the hacks that were put in the pages to get around the bugs in a previous version of IE. Brrr.

    And then yesterday for whatever reason I ran the home page on my personal website through the W3C validator. 650 errors. Now believe me, I've spent time on this sucker. Many evenings sweating over a keyboard, typing <div></div>, manipulating pixel widths and tweaking color values in TopStyle to get the best effect. I know that my damn HTML and CSS are squeaky clean.

    Ah, but, the problem with modern dynamic websites is that what gets on the page isn't necessarily just my HTML. I use a CMS called Graffiti (a younger, smaller sibling to Community Server, which we use here on the Community site), and it generates through the use of plug-ins, widgets — compiled code, essentially — HTML on my pages. Other people wrote those plug-ins and in certain cases hard coded invalid HTML or URL fragments in the assemblies that make their way onto a page.

    I also write posts with Windows Live Writer (as I do for this blog). I'd been using WLW in its default mode, which is to produce HTML. My web page template is XHTML (transitional). So, through my acceptance of the default options, WLW had been posting mal-formed XHTML to my website (things like <br>, <img> elements without the final "/>", and so on).

    And the browsers we use don't make developing websites any easier either. (Why don't Firefox, IE7, Safari, and Chrome have a "strict compliance" switch that will fail the loading of a page with an error? I had two <p>'s in a row with no </p>, do you think any of the browsers threw a visible error?). I have noticed that Firefox' log is a hot bed of interesting information about CSS and JS errors (visit gmail with it showing to have a merry laugh), and that has helped a bit.

    So all in all, 650 errors. And the realization that, even with someone who "knows" what he's doing and is aware of the issues, compliance is sheer hard work.

  • Show Me! Getting sample code from the docs...

    As part of our continuing efforts to improve our help documentation and to link it to online information — especially CodeCentral, where we can make changes very easily with low impact — we've been adding Show Me panels. Since you might not have noticed these unless you religiously read our help files with every new release (you mean you don't? Smile), I thought I'd quickly talk about them and what they are.

    image A Show Me panel is a box in a "How-To" help topic that links to the same example in CodeCentral. Pretty simple concept, but you immediately get the benefits of CodeCentral — easy download, automatic conversion to your installed products, simple compile.

    In DXperience v2008 vol 2, there were a few Show Me panels in our help, with the emphasis being on "few". Just enough to show that the design and implementation were viable, in fact. Now, in v2008 vol 3, the Show Me box appears in many more places in our documentation, especially in the XtraCharts and XtraReports help files — the designer of this feature is the tech writer for those teams. We are planning to add more examples to CodeCentral and link to them from the corresponding help topics in other product areas.

    Some benefits:

    1. This feature quickly allows you to recreate the example being discussed in the help topic. Sometimes this is not so easy because some trivial steps may have been omitted in the documentation.
    2. It gives us a better chance to keep our documentation up to date and see what needs to be changed, since our CodeCentral samples are constantly being tested against any new DXperience version. This, unfortunately, doesn't happen half as well with the help files.
    3. Show Me links allow users to get a sample converted and compiled for their current version of DXperience.

    Here's a few examples from the online version of our documentation (you'll see the same thing in the installed help as well):

  • DXperience and Delphi Prism, part deux

    I wrote an optimistic blog post right after PDC about DXperience and Delphi Prism, intimating that it should all just work. Of course, at that stage, for one reason or another, I'd not done very much testing so I was writing optimistically.

    Now that I have done a whole lot more testing, there is some really good news and some really not-quite-so-good news.

    First of all, the good. The main set of controls functions just fine in Delphi Prism. Drop an XtraGrid on the form and everything just works, including our designer, just as if you were using C# or Visual Basic. I ran into a couple of problems with ASP.NET involving the license licx file, but I'm looking into it.

    Now the not-so-good. There is a feature in Visual Studio called templates (these are different from ASP.NET templates). This feature enables Visual Studio to create a source file nicely populated with relevant code when you click Add New Item. Each of those items you select (for example, Class, Windows Form, etc)  for Add New Item is a separate template. The template provides the source code file, and, of course, that source code file has to be written separately for each language the template supports.

    When you install DXperience at present, it installs its templates for C# and VB, but, since it knows nothing about the Pascal language, it doesn't install anything for Delphi Prism. So, you'll find that XtraReports doesn't work in the Delphi Prism designer (step 1: Add New Item and select XtraReports Class; oops, it's not there). Of course you can write all the code yourself, and XtraReports will function just fine, but there'll be no support in the Visual Studio designer.

    So we need to convert our templates and our installer so that DXperience adds the Pascal templates to Visual Studio when necessary. I have added these items to our internal task list and we'll be producing them in our in-between minor releases — no need to wait for v2009 vol1, for example. Our goal here is to make sure that Delphi Prism is a full member of the languages we support with our controls and components.

    Ditto, our business frameworks. I'll admit though I haven't had a real chance to test XPO and XAF with Delphi Prism yet so I don't know what issues there may be.

    Our productivity tools, CodeRush and Refactor! Pro, are being evaluated for Delphi Prism support. These products require a whole new level of language understanding: this is no "translate a couple of templates while watching the telly" kind of work.

    If you are using DXperience in Delphi Prism, email me and I'll see if I can't get you beta code when we have it.


Chat is one of the many ways you can contact members of the DevExpress Team.
We are available Monday-Friday between 7:30am and 4:30pm Pacific Time.

If you need additional product information, write to us at info@devexpress.com or call us at +1 (818) 844-3383


DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, Delphi, HTML5 or iOS & Android development. Whether using WPF, ASP.NET, WinForms, HTML5 or Windows 10, DevExpress tools help you build and deliver your best in the shortest time possible.

Copyright © 1998-2018 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners