in
Forums
Blogs
Files
Devexpress.Com
ClientCenter

ctodx

Discussions, news and rants from the CTO of Developer Express, Julian M Bucknall
  • WPF Datagrid video: using cell templates

    This video explores how to create a cell template for a column in the DXGrid for WPF.

    image

  • WPF Datagrid video: using unbound columns

    Being in the office this week, under Jeff's firm nagging about recording more videos, I can continue the tutorials about using DXGrid for WPF.

    Here's one about how to create an unbound column for the datagrid.

    image

    I note on watching it that I neglected to show that the unbound column is fully supported by the grid's sorting and grouping facilities with no extra code. You just click on the column header to sort on the unbound data, or drag the column header to the group box to group on it. Didn't even think about this at the time, sigh.

  • WinForms Scheduler: setting up a toolbar and ribbon

    I quickly recorded a couple of videos this morning on setting up a toolbar or a ribbon tab to quickly and easily select the various views in a scheduler control.

    Both the ViewSelector and the RibbonViewSelector are DXperience-level composite controls since they use features that are not part of XtraScheduler (in particular they're part of XtraBars). So you'll need DXperience WinForms, Enterprise, or Universal to emulate the work done in the videos.

    The first video describes how to set up and use the ViewSelector:

    image

    The second video describes how to set up and use the RibbonViewSelector:

    image

    Before anyone comments that there's nothing particularly new here, let me say that these have been on my todo list for a while and I'm glad to have finally got them done.

  • Betas and forums for WPF grid and charts

    A two-headed post: first of all, the betas for both our DXGrid (the data grid) and DXCharts for WPF (3D charting) are now part of the DXperience install. These two are betas (not release candidates), since there is still quite a bit to add to each (for example, editing for the grid, and 2D charts for the charting product), but we're anxious to get some feedback on them both, especially the grid. We'll be releasing new betas for each as we go through the development cycle for v2008 vol 3.

    In order that you can provide said feedback, we've opened up some new forums for our WPF products. First of all there's a general forum for all discussions WPF, and then we have one forum each for DXGrid and for DXCharts.

  • Data maps? Map charts? Dashboard maps? Interactive maps?

    I bet there's a name for this, but it's not coming to me right now. Sigh.

    Oh well, since a picture is worth a thousand words, take a look at this:

    image

    This is a "proof of concept" that the Gauges team came up with. A new developer needed to come up to speed with what the team had implemented with our new WinForms gauges product, XtraGauges, especially the vector rendering engine and he wrote a preliminary datamap control. The image shows the demo program (Windows, not WPF, remember), which is loaded with some freely available state statistics (here showing the number of electors, and the shade of blue for the state denotes the elector count in the state).

    What I've also tried to capture in this static image is that the current state is highlighted with a red border as the mouse hovers over it; in this case, Colorado.

    The map is a vector drawing with the GIS information stored in an XAML file. Since it's rendered as a vector image, it grows and shrinks without pixellation as the form is grown/shrunk. And yes it's very smooth at doing so.

    As I said, at present this is a quick experiment to show that our XAML rendering engine is able to display other kinds of images and figures than it was first designed for. Yet I can guess that many of our customers would be interested in seeing this fleshed out into an actual product. But, instead of saying, would you like to have this product?, to which everyone would say, sure, next week would be great thanks, I'm going to couch this in a different way:

    1. If it were a choice between gauges for ASP.NET and this product, which would you choose? How about between gauges for WPF and this? Gauges for Silverlight and this?

    2. If this were an extra-cost product because we had to purchase/license the GIS data for other countries or for counties within a state/country, etc, would you still be interested?

    3. If this were a product without data, and you had to license the actual GIS data from a third-party (maybe we only had some basic free GIS data we shipped with the product itself, like the US or Europe), would you be bothered about it?

    Let me know. All feedback is welcome.

  • Labels, Grid with formatted text

    Someone in WinForms R&D obviously finished his work early and decided to add something we've been talking about for a little while: formatted text for labels and such like. It's not in the Release Candidate, but will be in the v2008 vol 2 release itself.

    The Label, CheckEdit, and GridView have all been enhanced to accept HTML-like markup in their text properties. Since a picture is worth a thousand words, here's what I'm talking about:

     clip_image002

    Obviously we're not suggesting you change all your business apps to look like ransom demands, but at least this gives a flavor of what you can do.

    The look of the label above was created with this text:

    <size=20><color=green>Color</color></size><br>labels<br><u>underline</u> and <b>bold</b>

    The look of the third column header was created with this text:

    Do<br><size=20>a<size=+2>n<size=+2>y<size=+2>t<size=-2>h<size=-2>i<size=-2>n<size=-2>g</size>

    Another thing we've added to the design-time experience with our controls is a new smart tag menu option called "Get support".

    clip_image002[4]

    If you are online, this starts up your browser and loads the Support Center search page, passing along the name of the product you're using and the control name itself.

    IE7 screenshot

    Clicking on "Report a Bug" or "Ask a Question" from here will also give you forms pre-filled with the version numbers of DXperience and Visual Studio that you're developing with.

  • Getting your fix: the DevExpress way

    We've recognized for a while that there's a minor flaw in how we disseminate fixes to our products. Sure, the primary method of doing so is to issue a new release, either minor or major, but sometimes it's necessary to post an intermediate fix in some fashion. At present this process is a little inefficient: you write to support asking for a fix, this message goes into the maw of our support system, lands on someone's desk and they then email you the required files.

    Now, in actuality, not everyone wants intermediate fixes. They'll use a workaround until the next release is published and then start using the new version. However, sometimes there is no workaround and we jump into this somewhat inefficient process.

    We thought about it a while and came to the conclusion that if we produce a code fix for an issue, we should make it available via the Support Center web UI for customers who need it urgently, as part of the page for that issue. We also decided that if no one actually wanted the fix that urgently, we should try and avoid doing the extra work in creating/updating the files (be they source files, DLLs, or assemblies) that a customer would need to download.

    In other words, the code fix would be available by request only. The first customer that wanted the fix would trigger the extra work on our side to prepare a download package. Subsequent customers who wanted the same fix would just download the already prepared package. In essence, we should have a "load on demand" type system.

    There are several types of fixes we produce

    • A small code fix for a certain file. This is of greatest benefit for our VCL customers since they are well used to modifying source code and recompiling. I would venture that our .NET customers wouldn't be that interested in this kind of fix. The extra work on our part here is not that great at all.
    • A complete set of source code files to replace the original files you've installed. Again this is of primary benefit to our VCL customers. .NET customers typically don't want to rebuild our assemblies (especially as we are not that likely to release our private signing key, sorry and all that).
    • A set of binaries, such as assemblies. This option is of primary interest to our .NET customers: they'd much prefer to download properly signed replacement assemblies that encapsulate the code fix. Of course, this is the option that requires the most amount of extra work for us, and if we can get away from doing it so much the better Smile.

    So we've implemented another automated system. We're not quite sure what to call it yet -- the code name PublicCodeFix is a little boring -- but it's ready for beta testing.

    The way it works under the hood is a little complex so I won't go into it here. However, how it's presented to you, our customer, is important, so let me go into that.

    The UI is extremely simple: it's a button on the page for the issue in question. First of all, this button is only visible if the issue has been fixed. (To which we all go Duh!). It's also not shown if you don't have a license that is able to take advantage of the code fix. For example, if your license doesn't include source code, you won't see the button for a fix that alters your source code.

    If visible, the button has three states. If the fix hasn't been generated yet, the button shows "Request Fix". If a customer clicks on the button in this state, a request is sent to support for the fix, and the button changes to "Requested". This indicates to other customers that the fix is being created and is on its way. You can click the button in this state and all that happens is that you get added to an internal list of people who want to be notified when the fix is available (the first requestor is obviously added to the same list). This list is essentially the tracking list that we already have. Finally, once we've prepared the files and the download package, we set the button to read "Available" and notify all the people tracking the issue that the fix is ready for download. In this state, you can click on the button and the fix is downloaded to your machine.

    Of course, when the next version of the product is released containing the fix, the button will finally disappear for good.

    We activated the PublicCodeFix application as a beta this morning so, if you see a fixed issue with this new button, you'll now know what it's all about. Needless to say, we'd love to hear your feedback about this new feature, so do please let us know using the usual support channels.

  • Code Central is here!

    Over the past two or three months we've been implementing a new feature of our Support Center web site that we're calling Code Central. We've been dropping hints for a little time while we've been testing it internally, but it's come to the point that we really need to get it out in front of you, our customers.

    I'm sure you know the feeling: there's a problem with your code, you stare at it, stare at it and you just can't see it, then someone comes along and points out the issue straight off. It's the same with Code Central in a way: we think it's great tool and we've covered all the bases and we've stared at it and stared at it, but it's time for new eyes to look at it and give us feedback.

    So, what its it? At it's most basic it's a search engine for finding and using sample code. But that's doesn't even begin to explain why we're so buzzed about it and, indeed, if that was all it was, we'd have released it ages ago.

    Code Central is both a web application and painstakingly indexed and updated data and code. It was designed to make it easier for you to locate sample code, knowledgebase code, code provided by us as part of solving a support incident, etc. Normally at this stage, once you've located the sample or demo code you want to look at, you have to download it, unzip it into some folder, update the assembly references using the ProjectConverter tool (because you can bet that you have a different version of DXperience than the code was written for), load it into Visual Studio, and then finally compile and run it.

    Of course, you're always a little anxious as to whether the code will actually work with your version of DXperience anyway. Maybe it was written for an older version and no longer applies. There's nothing worse than downloading some sample code, going through that entire process, only to find it won't compile or run.

    We looked at this scenario and recognized that it's not exactly conducive to efficient and helpful use of our sample code. In fact, the basic scenario is downright pathetic. So, we decided to do something about it as part of Code Central.

    The first part was taking our sample and demo code and meticulously checking, tagging, and categorizing it. We worked out which versions of DXperience it was valid for. Sometimes we found that the sample code applied to various versions of DXperience but was different for the later ones, maybe due to a later breaking change, so we created different samples in those cases. We created, in essence, a large database of indexed and categorized sample code.

    Next up, and note I still haven't reached the customer-facing parts of Code Central yet, we thought long and hard about how to maintain the validity of the data in the database. After all, it'd be bad to allow the data to "decay" having spent all that time verifying and classifying the sample code. We're releasing new versions of DXperience all the time (three major releases per year, and roughly one minor release every 3 or 4 weeks) and any release has the potential to "break" sample code.

    Once phrased like that, the solution was obvious: the sample code database must become part of our internal automated testing suite. That was the next stage of the Code Central project. We now get bug reports if the code changes we make for DXperience breaks the sample code. Breakages can be as simple as the sample code no longer compiles, or more complex such as when the behavior of a sample changes. In either case the automatic bug report means that a developer looks at the issue and makes a decision: was the change buggy, in which case it should be fixed, or is this a valid change, what we call a breaking change, in which case the developer has to create a new sample to reflect the new code in DXperience. Either way, you, the users of Code Central, can rest assured that the sample you download will work.

    Put another way, this merging of our sample code into our automated test system has the benefit of giving us a body of test code to help make sure we don't inadvertently introduce breaking changes where there shouldn't be any.

    At this stage we had a body of verified, indexed, categorized sample code waiting for the next improvement in the customer scenario: the download, compile and run experience. A few discussions later, we had the answer: a simple program called Example Runner needed to be written. What this program does is to execute all that tedious workflow of unzipping the sample code into its own folder, running ProjectConverter on it, and loading the sample project into Visual Studio so that you can compile and run it.

    DevExpress' Example Runner is simple to use. We've renamed our sample code zip files with a unique extension, dxsample, and Example Runner, on install, registers itself to open those kinds of files. It has two configuration options: the root folder in which to unpack the dxsample files and the version of Visual Studio to use to load the samples (after all, you may have two or more versions of Visual Studio on your development machine). Once that's all set up, Example Runner does its job: unpacking, updating references, loading the sample in Visual Studio. All you need to do is click on the sample download button on the website, answer the browser's "what should I do with this file?" security dialog, and after a moment or two you'll be presented with the sample project in Visual Studio ready for you to peruse the code, or compile and run it.

    After all that, we were ready to write the actual Code Central web application, the one that lets you search our sample code database, sort or group or filter the results (yes, we're using ASPxGridView, of course), view a preview of the sample in the grid, or click on it to see the whole thing.

    Rather than me describe it in utter detail, you should just go and use it. At the present time, we're publishing Code Central as a beta. We're anxious to get feedback on it, so that we can smooth out any rough edges we may have missed. Please use our usual support channels to report problems or to request enhancements.

    Enjoy!

  • Video: Group Summaries for the DXGrid

    A fairly simple tutorial for the DXGrid this time: adding group summary items.

    image

  • WinForms gauges: The XtraGauges dial goes to 11 not 10

    OK, I know, a little over the top, but please allow me a teensy bit of hyperbole. I've been playing around with the latest demo for XtraGauges for a couple of hours so that I could prepare this blog post and I'm wowed. Yep, ol' Mr Cynical here loves this product.

    Since I saw it last (and most definitely since you saw it last), there have been some amazing changes. About 10 days ago, we were a little anxious: looked good, but the performance wasn't anything to write home about. If you remember, XtraGauges has a little XAML parser and vector renderer embedded in it -- we don't assume WPF is installed -- so that the gauges scale beautifully from small to large without pixellation. Unfortunately, the drawing speed wasn't good. Real-time displays stuttered.

    Over the last 10 days Roman has woven some deep magic. The gauges' performance now rocks the house. On the demo's Zoom page, you can grab that slider and zoom the gauge from miniscule to gigantic and at every notch the gauge displays pretty much instantly. How about grabbing the slider for the value displayed by the gauge? The needle keeps up smoothly, no stuttering. These gauges are now extremely usable in a real-time dashboard.

    Of course, since we last talked about XtraGauges here on the blogs, we've done an awful lot more design work too. We now have 10 styles for the gauges. Since this blog is a static medium (and besides which, seeing as it's late on the Thursday before July 4th, it's too late to get any video editing done), I'll have to show you the styles as images. We certainly enjoyed inventing the names...

    Dark Night:

    Dark Night

    Deep Fire:

    Deep Fire

    Ice-Cold Zone:

    Ice-Cold Zone

    Gothic Mat:

    Gothic Mat

    Shining Dark:

    Shining Dark

    Africa Sunset:

    Africa Sunset

    Mechanical:

    Mechanical

    Silver Blur:

    Silver Blur

    Pure Dark:

    Pure Dark

    Clean White:

    Clean White

    Before I go, we're doing an experiment with the XtraGauges demo that we're hoping to repeat in other demos: getting "live" data from a web service. If you're connected to the internet, the demo will get its data from a web service rather than getting it from a static database that we ship with the demo. Here's the Weather Station demo page that gets the current weather from a web service.

    image

    Next time, I'll talk about the various options you have at your disposal, apart from the styles of course.

  • Ph.D. Computer Science

    I know we have some remarkably clever people working at Developer Express, but I guess I just didn't realize how clever.

    Roman Kalachik, one of our senior developers on the WinForms team (he's had a big hand in XtraLayoutControl, the docking code, most recently he's brought XtraGauges to fruition, and he keeps nagging me about Quicktest Professional support) received his Ph.D. in Computer Science last week. Completely nailed his thesis interview, apparently. Brilliant!

    And he was doing this whilst he was working at Developer Express. What? We don't give him enough work? Can't keep him occupied? Smile

    Do please join me in saying: Congratulations, Roman!

  • Due Diligence

    Now that we've opened our new office in Glendale, I find I'm traveling there quite often so that I can participate in the minutiae of office life, be videoed, have face-to-face discussions about development, support, documentation, marketing and all the other myriad issues that need to be sorted out.

    The cheapest flight -- about $200 cheaper than the nearest rival, in fact -- from Colorado to the Bob Hope Airport in Burbank (10 minutes away form the office) is a Southwest flight with a short stop-over at Las Vegas. Total time in the air: about 2.5 hours. Boredom factor? Way high.

    Since I have an iPod Classic and an insatiable desire to catch up on good British TV series from the last decade or so, I decided to find a DVD-ripper that could rip the DVDs I buy from Amazon.co.uk to the iPod and then watch them on these flights, especially on the ones coming back.

    A few googling moments later, I'd found lots of them. Pages upon pages of them. I clicked sponsored links with gusto, squandering the AdSense pennies with glee. Marketing phrases abounded:

    • "Convert DVD movies to iPod movies with the same quality"
    • "FooBar is the best choice for you to rip DVD and convert video to any format!"
    • "BarFoo is a revolutionary new program for converting video & DVD files"
    • "Wotsit is different"
    • "Rip your entire DVD collection at a single click"
    • "Hyperspeed conversion without any loss of quality"

    I must admit those last two were most persuasive. Hyperspeed? Warp Factor 9, Mr Sulu! And ripping my entire DVD collection with a single click? Do I pile all the discs onto the DVD player's drawer and hope for the best? Yeah, riiight. And the marketing genius who came up with "Wotsit is different" can write his own salary check the next job he has, providing it's less than the tea lady's.

    But, you know what? I ignored all the marketing crap. Good, bad, laughable: I didn't care. I wanted something that would

    • Rip a DVD: even the protected ones.
    • Convert it to an iPod-compatible movie file: in doing so it should use all the CPU cores I have but not lock me out from doing other things.
    • Batch the conversions: TV series usually have three or four episodes per disk.
    • Be easy to use: I wasn't really interested in tweaking the output, so the default had to be good.

    Other people might have different priorities, but those were mine. And so one weekend afternoon, I set about downloading trial-run versions and trying them out. If a manufacturer didn't have a trial-run, bad luck, I struck it off the list. If it failed to do what I wanted, zap, gone. If the result wouldn't play on my iPod -- yes, there were some! -- ditto, into the trash.

    In the end, I found the one I wanted, the one that worked for me. I've now spent many an hour ripping DVDs and watching them on my iPod, a very happy customer. In the end, I spent about $50 on the product. The comparison work I did was totally and utterly worth it.

    Yet I'm regularly baffled by developers who don't do this when they're selecting a UI control suite or a persistence framework. Or who want someone else to do it for them. Or who want a nice checklist comparing competing products. If I can do it for a $50 product, why can't others do it for a product that's going to cost 5, 10, 20 times the amount? And let's face it: a product that is going to affect their development lives day in day out for the next few months or years? That's just nuts.

    Yes, you guessed it: I reckon about once every couple of days, I'll get an email or phone call that says "why should I buy your product instead of FooBar's?" Search me, dude. I have no idea what you're trying to do, what your level of development expertise is (or, heck, plain old .NET expertise for that matter), what end-user experience you're trying to achieve, what familiarity you have with third-party tools in the past, what other application you're hoping to emulate, nothing. Also, believe it or not -- even me, the DevExpress CTO -- I find I'm continually learning about our products. Yep, I don't know everything about the stuff we sell and yet you expect me to know enough about our competitors' products that I can make a recommendation that ours is better? Wow. I certainly don't want to be the person you blame when something goes wrong because you didn't do the work in the first place.

    That's why we have as company slogan, Download, Compare, Decide. I'll admit I disliked our old one, Improving the Developer Experience, because it was so generic and pretty meaningless. It's like those signs you see on the Interstate: Drive carefully. Of course the state is asking you to drive carefully (they'd hardly say the opposite after all), and of course we'd tell you that we'd improve your developer experience (we'd hardly say the opposite: Degrading the Developer Experience, although it has a certain ring to it).

    But our current slogan I can get totally behind -- we're not even saying that you'll choose our products, although we hope you do. But we reckon that, if you do some due diligence and draw up your list of must-haves and should-haves and don't-give-a-damns, download the trial runs from the vendors, verify that your list of needs is satisfied with each, we'll be at the top, your first choice.

    (Some bonus links:

    )

  • Doing the Timewarp

    I know, I know. You're anxiously awaiting the DXperience v2008 vol.2 beta and all we seem to be doing is releasing new minor releases of v2008 vol.1. [UPDATE: Thu 3-Jul, 6am Mountain time - v2008.1.6 has just been released.]

    A bit of background: there was an issue with editing in the ASPxGridView. In essence the wrong values were passed to the server on clicking Update in a particular situation (a detail grid being embedded in an EditFormTemplate). This was pretty much a major issue that had to get fixed as soon as possible.

    Rather than cobbling together a quick hack just to get this bug out of the way, the guys on the ASP.NET grid team decided to generalize the whole editing methodology and in the process were able to fix several similar bugs at the same time. Life, as they say, was good. Version 2008.1.5 was prepared and released.

    Unfortunately, a new bug had crept in. In essence, we didn't have a test case or even a demo with an editable grid and the auto filter row enabled. The old method of getting the edited values didn't interfere with the AutoFilterRow (or vice-versa), but the new code did. The team quickly issued a Javascript fix that would work around the issue, but everyone felt that it fell into the "cobbling a quick hack" category and that we really should issue a new minor version, 2008.1.6, that really fixed the problem. So that's what we are going to do.

    We are currently in the final stages of testing DXperience 2008.1.6 and it should be released within the next 24 hours. The team is, shall we say, paying special attention to testing the new editing implementation.

    v2008 vol.2 beta is ready to go. The testing of the major release, at least prior to this change, has been completed. Once we've released 2008.1.6, we'll complete the merging and testing of this new editing implementation and then release. Given that it's now Wednesday and Friday is a holiday (at least in the US), I would have to estimate that the beta for v2008 vol.2 won't be released until early next week.

    So, hang in there as we get all this done :).  We're trying to get you the most stable product without it containing a bunch of temporary hacks.

  • The Usual Suspects

    I was reading a post from someone here at DevExpress to a customer that mentioned Mehul and myself and suddenly realized that we're starting to make the assumption that everyone knows who we are from our first names. To new customers this may not be true, so in an effort to redress the balance, I present the DevExpress Usual Suspects.

    Ray Navasarkian - The Boss. 'Nuff said. Never appears on camera, because he's shy. Or something. Is allergic to apostrophes.

    Julian Bucknall - CTO. That would be me. The Brit. Rumor has it I once wandered around Nice Old Town in a red velvet smoking jacket, pipe in hand. Since I own neither, this must be a complete fabrication.

    Mark Miller - Chief Architect. Recently acknowledged to have suffered a tragic hair loss accident, but mostly known for being the main designer and evangelist for our IDE productivity tools, CodeRush and Refactor! Pro.

    Mike (Falcon) Rozhdestvenskiy - Lead Developer. Known for buying all manner of electronic gear, always before the early adopters. So much so in fact, that Fry's lay out the red carpet whenever he draws near. Mike is one half of our grid designer/developer duo.

    Andrew Telnov - Lead Developer. Quiet, unassuming, just signs himself as "Andrew, R&D", and is the other half of our grid duo. If you get a reply from him on the forums, you'll know it's the Correct Answer(tm) because he wrote the original code. When he and Mike pair-program I have to rewrite the roadmap.

    Vlad Filyakov - Lead Developer. Used to be our Delphi guru, but now develops for Silverlight. He's responsible for Area51 and the various Silverlight layout controls. Must have immeasurable good taste, since he has an Audi A3 like me.

    Oliver Sturm - Technologist and evangelist (that is, I forgot his title and he's not online). Famous for being the German living in Scotland working for an American company, having a Dvorak keyboard on his laptop (you assuredly do not want to use his machine for a demo in front of customers), and for knowing the most about our frameworks. However, he's about to hand that mantle over to...

    Gary Short - Evangelist. Known internally as Gaddeh, generally said loudly, because of his Scottish accent. Well, he is, and he lives there, so that's his excuse. Newest member of the evangelism team, learning fast about our frameworks so that Oliver can start a new secret hush-hush project.

    Mehul Harry - Evangelist. The Indian guy and ASP.NET dude with the email signature longer than mine (which is saying something). Is renowned for always being the last person to arrive as we gather to go out to dinner.

    Azret Botash. Has already forgotten more about Silverlight than I've ever learned. Helps out with WinForms evangelism when he has time -- which is never. Sigh. Known to mutter numbers to himself as pretty women walk by, but I'm not sure our medical insurance covers the treatment.

    Max Evseev - Support Manager. Also God of our CommunityServer, that is, these blogs and forums. Indefatigable, it seems, and is rumored to have locked away a team writing a new NNTP server for CommunityServer.

    Jeff Cosby - Videographer. The Man Behind The Camera. Is rumored to be collecting out-takes from our video sessions, but he'd better have them under lock and key. Recently wrote the DX rap: "Whatever the plat-form / DX tools aren’t the norm / Grid Controls at high speed / Now that’s what you need." Again our medical provider tells us the condition is not covered.

    Plato, Nick, Serge, Vito, and so on - The Support Team. The real deal; I venture to say the hardest-working people in DevExpress.

    Courtney, Tina, Robyn - Client Center representatives. Without whom we'd have to shut up shop.

    Of course, there are many many others working ultra-hard in the background whose names you'll see only fleetingly if at all, but are instrumental in the smooth running of DevExpress and for the cool products we sell. These names above, however, are the Usual Suspects.

  • Breaking Changes for v2008 vol.2 (UI controls)

    This is the second part of the Breaking Changes for v2008 vol.2, covering changes to our ASP.NET and WinForms controls.

    I must add here that this list is not the What's New list, but merely the changes we've had to make to DXperience in order to fix bugs, add new functionality, or improve the user experience. If you already have projects using DXperience, you will need to peruse this list in order to understand the changes you might need to make to your source code to support this new major release.

    Another point to make is that we only publish the changes to the public interface of our controls. We reserve the right to change the protected, internal, or private interfaces when needed.

    ASPxperience Suite

    • ASPxUploadControl - the font size has changed to 10pt from 9pt.

    ASPxEditors Suite

    • ASPxButton - It was impossible to enable/disable the button control on the client if it was disabled on the server using the Enabled property. The new ClientEnabled property should now be used for this purpose.

    ASPxPivotGrid

    • The ASPxPivotGridExporter class has been moved into a separate assembly DevExpress.Web.ASPxPivotGrid.v8.2.Export.dll. This was necessary to introduce some new printing events.

    XtraCharts

    • We have improved the appearance for the various spline series. In version 2008.2 the line thickness for the Spline3DSeriesView is now constant along the full line. Also there are no additional corrections for the stacked spline area series. All of this has increased the presentation quality for the spline series.
    • The Full-Stacked Area Series View does not have a border, yet developers could change the AreaDrawOptions.Border property at will without any effect. The new FullStackedAreaDrawOptions.Border property has been introduced to hide the AreaDrawOptions.Border property. The new property currently always returns null.
    • The Padding class has been replaced by the new Margins class. Thus the old properties XYDiagram.Padding and RadarDiagram.Padding are now obsolete and the new properties XYDiagram.Margins and RadarDiagram.Margins should be used instead.
    • Design-time change: The ValueDataMembers property editor is no longer a modal dialog and the ValueDataMembersCollection is now represented by the set of properties that corresponds to the current series view. So, it's now possible to set value data members without adding a datasource to the chart first.

    XtraGrid

    • By default the grid in server mode does not restore the focused row anymore. To restore the previous behavior, set GridControl.AllowRestoreSelectionAndFocusedRow to true.
    • Suggestion S30054 has been implemented. In Master-detail mode, the current edit value is now saved when a detail view is being edited and the master (main) view is scrolled.

    XtraLayout

    • To improve performance, the DevExpress.XtraLayout.Utils.Paddng class has been made a structure. Since this low-level class was likely just used internally, this change should not affect customers.
    • The DevExpress.XtraLayout.Utils.Paddng.Changed and DevExpress.XtraLayout.Utils.Paddng.Changing events were only used internally and no longer exist.

    XtraPrinting

    • It's now required to reference the DevExpress.XtraTreeList assembly.
    • RichTextBoxLink now produces better output when aligning rich text in columns. This change may cause the print layout to be different by several pixels.
    • The obsolete DevExpress.XtraPrinting.EventInfo class has been removed.
    • Export to XLS: It's now required to specify the format string value for a cell that is bound to a floating value. This change enables better performance for exporting to XLS and also fixes several bugs.
    • By default, the PrintControl's background and page borders are drawn using the current skin. The PageBorderWidth, PageBorderColor, SelectedPageBorderWidth, SelectedPageBorderColor properties are only being used with the XP, Flat and Office2003 styles. The BackColor property overrides the skin background. To customize the page borders visibility you should use PageBorderVisibility property. To change the default appearance you should use a custom skin.

    XtraReports

    • It's now required to reference the DevExpress.XtraTreeList assembly.
    • The XRRichText control now produces better output when aligning rich text in columns. This change may cause the print layout to be different by several pixels.
    • The CanShrink and CanGrow options are now ignored for a label that calculates a summary.

    XtraScheduler

    • The type of the EditValue property in the DurationEdit control is now TimeSpan instead of String.
    • The CommandSourceType enum has been moved from the DevExpress.XtraScheduler namespace to the DevExpress.Commands namespace.
    • The IKeyboardHandlerService interface has been moved from the DevExpress.XtraScheduler.Services namespace into the DevExpress.Services namespace.
    • The KeyboardHandlerServiceWrapper class has been moved from the DevExpress.XtraScheduler.Services namespace into the DevExpress.Services namespace.
    • The IMouseHandlerService interface has been moved from the DevExpress.XtraScheduler.Services namespace into the DevExpress.Services namespace.
    • The MouseHandlerServiceWrapper class has been moved from the DevExpress.XtraScheduler.Services namespace into the DevExpress.Services namespace.

    XtraTreeList

    • Suggestion CS54856 has been implemented. The XtraTreeList drag-and-drop functionality has been improved in that there is no longer any need to hold the SHIFT key down to reorder nodes with drag and drop operations.

    Data library

    • A new FindIncremental() method has been added to the IListServer interface. All implementations of this interface must implement this new method.
More Posts Next page »
Copyright © 1998-2008 Developer Express Inc.
ALL RIGHTS RESERVED