ctodx

This Blog

News

Favorite Posts

Archives

November 2013 - Posts

  • DevExpress VCL 13.2 beta now available

    Our VCL team have been working diligently towards the 13.2 release of DevExpress VCL for mid-December, and as part of that work have just published the beta for active customers of the full VCL subscription. If you are such a subscriber, just login using your DevExpress credentials, go to the Download Center, and download the beta. Do note however that this is a beta: we’re pretty happy with it, but we’re still in polishing mode and there will be some issues that still need fixing.

    You can discover the new features by visiting the What’s New page, but just to whet your appetite, here are some of the improvements to the suite. You’ll notice in particular that we are continuing to concentrate on bringing your VCL applications into the modern era of easily available touch-capable devices like laptops and tablets.

    Touch

    VCL Touch-Enabled Controls

    Enhanced touch for the following controls: Filter Control, Page Control, Tab Control, Date Editor, Blob Editor. It can’t have come as any surprise, but the number of touch-enabled laptops and tablets running full Windows 8.1 is growing rapidly. Your users now expect touch capabilities in a modern app: with DevExpress VCL you can deliver.


    Pixel Scrolling

    VCL Tree List - Content Pixel Scrolling

    Added pixel scrolling – which is de rigueur for touch-enabled applications – to the tree list (ExpressQuantumTreeList), the property inspector (ExpressVerticalGrid), and the layout view for the grid (ExpressQuantumGrid). For the latter control that means we have flawless pixel scrolling for Table Views, Banded Table Views, and Layout Views.


    Themes

    New Metropolis Theme

    Four new application themes: Metropolis, Metropolis Dark, Office 2013 Light Gray, and Office 2013 Dark Gray. Nowhere else in the VCL community will you find such a breadth of choice for modern themes (in fact, we now have 45 skins to choose from).


    Icon Library

    DevExpress Icon Library - Image Picker

    New DevExpress Icon Library and Manager. Our design team had a few days off at a retreat and produced this rich set of icons. They’re designed expressly for our customers to cover the majority of application actions. We’ve packaged that library of icons up with a design-time image picker so that it’s much easier to style your controls.


    Tiles

    VCL Tile Control - Desktop App

    Windows 8.1 added more features to the Start Screen, including small square tiles, so we’ve responded by updating our tile control to cover these changes. Expect group captions and multi-tile rearrangement using drag and drop.


    Layout

    VCL Layout Control - Drag-and-Drop Indicators

    The Layout Control now has enhanced targeting: we’ve added intuitive indicators that show all place where a drop operation can take place. Layout items can now enforce size limitations when their size is dynamically calculated.


    I’m sure that you’ll be pleased with our continuing innovation in the VCL space. Our team is awaiting your feedback, so please try out the beta and let the support team know what you think.

    (For completeness’ sake: the DevExpress VCL Subscription supports Delphi 7, 2007, 2010, XE, XE2, XE3, XE4, XE5, and C++Builder 2007, 2010, XE, XE2, XE3, XE4, XE5, in both 32-bit and 64-bit flavors. I reiterate my usual warning that support for the older compilers – especially the “non-Unicode” versions – may be marked obsolete with the next major version. I’d strongly recommend you consider upgrading.)

  • WinForms and ASP.NET Charts: Automatic Data Aggregation (What’s New in 13.2)

    OK, call this both good news and bad news: this post is not only a “What’s New” but also partially describes some breaking changes.

    What is Data Aggregation?

    Starting from 13.2, XtraCharts (both ASP.NET and WinForms) will support automatic data aggregation. This is extremely useful in the situation where your charts are trying to display a very large amount of data (e.g., thousands or even millions of data points), and it is necessary to have a quick aggregated overview of this data. Our data aggregation feature works for an X-axis (the argument axis) that is showing either numeric or date-time data.

    To quickly demonstrate this feature, below is a chart with non-aggregated data:

    XtraCharts: Chart showing non-aggregated data

    And below is a chart with the same data, but automatically aggregated by years.

    XtraCharts: Chart showing data aggregated by year

    In addition, the WinForms Chart control supports automatic data aggregation when your end-users scroll, zoom, or resize a chart.

    How Does It Work for a Numeric X-Axis?

    Though data aggregation is by default disabled for numeric scales, you can easily enable it by setting the AxisX.NumericScaleOptions.ScaleMode property either to Manual or Automatic. In this case, the chart will split the entire X-axis into intervals (according to the AxisX.NumericScaleOptions.MeasureUnit property value) and automatically aggregate data for each interval. Predefined intervals for a numeric scale are Tens, Hundreds, Thousands, Millions, Billions, or you can define any custom value.

    The only difference between Manual and Automatic modes is that in Manual mode you need to specify the desired MeasureUnit, while in Automatic mode this measure unit will be chosen automatically by a chart according to its current size and zoom level. So, in most cases, Automatic is the recommended choice.

    XtraCharts: animated chart showing numeric data aggregation

    (Also, there is Continuous scale mode, in which an axis scale is not divided into intervals and therefore aggregation cannot be applied to chart data.)

    After you enable data aggregation, data for each interval on X-axis are aggregated using the function specified by the NumericScaleOptions.AggregateFunction property. By default it is Average, though you may change it to Minimum, Maximum, Sum and others.

    To disable aggregation, simply set AggregateFunction to None.

    How Does It Work for a Date-time X-Axis?

    For date-time data on the X-axis everything is even easier, because data aggregation is enabled by default. Just check out the AxisX.DateTimeScaleOptions.ScaleMode property value and either leave it Manual, or choose Automatic.

    XtraCharts: animated chart showing DateTime aggregate data

    Predefined measure units for date-time scales are Millisecond, Second, Minute, Hour, Day, Week, Month, Quarter and Year. By default, Day is chosen to provide backward compatibility.

    Video

    For those who prefer watching to reading, here is a short video describing this feature in detail.

    Breaking Changes

    To implement all these features, we had to do some significant work and had to rewrite some big chunks of the XtraCharts product. We didn’t stop there: since we were rewriting parts of the product, we took some time to optimize the code both for performance and for usability. As a result there have been some breaking changes. Whereas we’re certain these changes were necessary in order to move the product forward, we recognize that they might have an impact on your migration process to 13.2; nevertheless we’ve tried to minimize the effects to the public API.

    Here is a list of breaking changes in XtraCharts 13.2:

    • The drawing of all Area, Stacked Line, and Full-Stacked Line views has changed when series contain missing or empty points.
    • The series points are always aggregated for date-time arguments by default.
    • Setting the DateTimeScaleOptions.GridAlignment property to a value less than the current measure unit no longer affects data representation and calculation.
    • In previous versions, you could not set grid alignment to a value less than the measure unit specified in the DateTimeScaleOptions.MeasureUnit  (e.g., MeasureUnitMonth, GridAlignmentDay). Also, for example, the width of bars no longer depends on the GridAlignment property.
    • The AxisBase.GridSpacing property now specifies the number of grid alignment units.
    • The ColorEach algorithm has been changed for unsorted data with numeric or date-time arguments.
    • The current chart interlacing can become inverted in some scenarios.
    • The MeasureUnit property for date-time Y-axes is no longer supported.
    • The number and/or position of Tickmarks and Gridlines in X-Axes might be changed.
    • The order of qualitative arguments in X-Axis might have changed in some cases. (For example: suppose the first series has arguments A, B, D, and the second series has arguments A, C, B, D. Prior to version 13.2, the arguments on the X-axis would appear as A, C, B, D; with 3.2, the arguments will be in the order A, B, D, C.)
    • The SeriesPoint.Tag property now returns the list of tags for all aggregated points.
    • The ChartControl.DateTimeMeasurementUnitsCalculated event no longer exists. Instead, handle the ChartControl.AxisScaleChanged event, which is raised when the scale mode, measure unit, grid alignment or grid spacing of the axis scale has been changed.
  • New XtraRichEdit breaking change for 13.2

    A quick post to point out that we’ve just made a change to the default settings of XtraRichEdit that may affect users of the control. (I say “just” because this change is not in the current beta release.)

    The default font for the XtraRichEdit has changed from Times New Roman 12pt to Calibri 11pt.

    If you need the previous behavior, please use the following code before creating RichEditControl or RichEditDocumentServer:

          RichEditControlCompatibility.DefaultFontName = "Times New Roman";
          RichEditControlCompatibility.DefaultFontSize = 12f;
    
    If you have any issues, please contact our support team.
  • Let's keep raising money for Typhoon Haiyan Relief

    The eBay auction I talked about a couple of days ago is still running, but we thought we’d like to do something more for the relief fund for the Typhoon Haiyan disaster.

    We’ve been horrified about the news from the Philippines since November 7. Typhoon Haiyan caused incredible damage throughout the Leyte and Samar islands (part of the Eastern Visayas), destroying much of the towns, cities, and infrastructure in those low-lying islands. Houses and buildings were flattened, obliterated. Millions of people were affected by the devastation, having lost their homes, possessions, loved ones, jobs; whereas thousands of people have died or are still missing (unremarkably in this kind of disaster, even now, no one knows for sure how many victims there are).

    We wanted to do our small part and involve our community, so here’s the deal. For the first three people who correctly answer the question below, DevExpress will donate $500 in their name to the Typhoon Haiyan relief fund at the Red Cross.  I’ll reply here once we have the winners.

    I shall be very strict about what I accept as answers, so be careful when composing your comment to add below. (Also, our blog engine takes a little time to make comments visible, so don’t worry if your answer doesn’t show immediately.)

    The question is:

    Name the event and the year that saw Vern Troyer join the DevExpress team to launch CodeRush Xpress.

    On your marks, get set, GO!

  • Breaking changes for 13.2

    Today we released the beta for DevExpress 13.2, the .NET edition. If you have an active account for Universal or DXperience, you should have received an email (if our Client Services system is working properly) detailing what you have to do in order to get it. It’s pretty simple really: just go to the Download Center (after logging in of course), find the beta and download it. Install on a development machine (please, not your production machine – we may be good, but there might still be a couple of bugs left to fix ;) ) and have at it. You can find out what’s new in the release here. Please provide feedback to our support team via support@devexpress.com or by opening a ticket in the Support Center (it will be automatically marked as private for the beta feedback).

    It's get your hands dirty timeI’m writing this post, though, to give you some warnings about breaking changes. If you recall, we endeavor to not introduce breaking changes in our minor releases, but major releases – of which we have two per year – are open season. Well, OK, I exaggerate for effect, but there are some breaking changes you should be aware of, and there are some known issues as well. I’ll detail some of the more significant items here in this article.

    First of all, and this covers by far the longest subset of breaking changes, is that types and members that have been marked as obsolete for a year or more have been removed. If you have been skating by some of these “this thing is obsolete” warnings for a while, now’s the time to make the required changes to your code. In fact, I’d make a general recommendation: if you see something marked as obsolete, change your code now rather than wait for the proverbial rainy day. I know from bitter experience, those rainy days just never seem to turn up on time.

    Breaking Changes

    Now for some major breaking changes:

    Dashboard

    BC2012: Selection is no longer updated when using API to add or remove items in a dashboard assigned to the DashboardDesigner.

    Previously, when adding dashboard items to the DashboardDesigner.Dashboard.Items collection, the last added item received selection. Similarly, when removing one or several items in code, the first remaining dashboard item was selected.  From 13.2, the selection is not updated when modifying the Dashboard.Items collection. The previously selected item remains selected after adding a new item (or selection remains empty if it has been empty before). When removing the selected item, selection becomes empty. In place of the automatic selection updates, we have introduced the DashboardDesigner.SelectedDashboardItem property that allows for manual control over selection via the API. To retain the previous behavior, make sure to assign a dashboard item to this property after adding the item to the Dashboard.Items collection. When adding or removing dashboard items in the designer's UI, the selection is updated as usual.

    BC2004: The Dashboard Title is visible by default

    Starting with the 13.2 version, the default value of the dashboard.Title.Visible property is true. Dashboards created previously will contain a title after loading from XML with the new version.

    DevExpress WPF

    BC2017: BooleanNegationConverter and DefaultBooleanToBooleanConverter will no longer invert an indeterminate value (null and DefaultBoolean.Default, respectively)

    In previous versions BooleanNegationConverter inverted indeterminate values (null and DefaultBoolean.Default, respectively). These indeterminate values were treated as False and converted to True. In the current version we have changed this behavior. From now on, these converters will keep indeterminate values unchanged. Values will be inverted only if they are set to True or False. If the target property type is Boolean, any input indeterminate value will be converted to True.

    DXMap (Common to XPF)

    BC1980: The Template property has been removed from the MapShape class

    To customize the appearance of map shapes, use the corresponding properties of the MapShape class (e.g., MapShape.Fill, MapShape.Stroke, MapShape.StrokeStyle).

    eXpressApp Framework (XAF)

    BC1945: Сhanges to the ISupportAppearanceCustomization interface

    The ComplexWebListEditor class no longer implements the ISupportAppearanceCustomization interface. Now you implement it directly using the ASPxTreeListEditor and ASPxGridListEditor classes. The OnCustomizeAppearance method in the ComplexWebListEditor has suffered the same fate.

    BC1998: The ApplicationStatusUpdater and UpdateStatusEventArgs classes are obsolete.

    You should now use the XafApplication.StatusUpdating event instead of the ApplicationStatusUpdater.UpdateStatus event. Use the XafApplication.UpdateStatus or ModuleUpdater.UpdateStatus method instead of the ApplicationStatusUpdater.Notify method.

    Snap

    BC1991: The AppendSection method implementation has been changed to return the most recently added document section.

    In previous versions, this method returned the second to last document section.

    BC2014: The behavior of the DataSources and DataSource properties of the SnapControl.Document has been changed

    Starting with version 13.2, the Snap document data sources are reset when creating or loading a new document. The data sources assigned to a SnapControl (SnapControl.DataSources and SnapControl.DataSource) are not affected.

    Known Issues

    Here are some of the known issues with 13.2.3 (the current beta version):

    • B250979 - ASPxSpreadsheet does not show documents in native Internet Explorer 9
    • B250876 - Dashboard - The drill-down feature is not available on the Web when Multiple Master Filter is enabled
    • B251001 - DXGrid (WPF and Silverlight) - A project with the GridControl does  not work in "Debug" mode if the AutoGenerateColumns property is not set to "None" in .NET Framework 4.0
    • B250858 - DXRichEdit for Silverlight - Simple View does not display any document content
    • B250378 - eXpressApp Framework - Localization - XAF satellite assemblies are not included in the installation
    • B250899 - Snap - Demo - Hyperlinks do not work in the 'IList Data Source' module
    • B250900 - WPF Demos - The StockMarket demo crashes when the mouse is hovering over the ChartControl before data is loaded
    • B250385 - XtraCharts Suite - A stacked spline area chart incorrectly draws empty points
    • B250386 - XtraCharts Suite - A 3D Stacked Spline Area is drawn incorrectly
    • B250393 - XtraCharts Suite - The client-side PointToDiagram and DiagramToPoint methods do not work when using the DateTime scale
    • B250909 - XtraReports Suite - Demo Center - Reports demos for WPF do not work

    I would hasten to add though, that if you are going to test the beta with your code, to please keep our Support team apprised of any issues you may find. Please don’t assume that we know of them; yes, we are still testing and bug bashing, but we don’t want to let other bugs we don’t know about slip through the crack. Your feedback will be invaluable.

  • DevExpress auctions Universal license for Typhoon Haiyan relief

    Photo of destroyed house, used with permission, copyright Eoghan Rice - Trocaire

    A destroyed house on the outskirts of Tacloban on Leyte island. This region was the worst affected by the typhoon, causing widespread damage and loss of life. Caritas is responding by distributing food, shelter, hygiene kits and cooking utensils.

    (Photo copyright: Eoghan Rice - Trócaire / Caritas; used with permission from Wikimedia Commons.)

    Letterpress Charity Auction titleI’m sure it goes without saying that we’ve all been horrified about the news from the Philippines this past couple of weeks. Typhoon Haiyan caused incredible damage throughout the Leyte and Samar islands (part of the Eastern Visayas), destroying much of the towns, cities, and infrastructure in those low-lying islands. Houses and buildings were flattened, obliterated. Millions of people were affected by the devastation, having lost their homes, possessions, loved ones, jobs; whereas thousands of people have died or are still missing (unremarkably in this kind of disaster, even now, 10 days later, no one knows for sure how many victims there are). Wikipedia, unsurprisingly, have an extremely good article already on the typhoon and the devastation it wrought, and I’d recommend reading it.

    Needless to say, relief in the form of food, housing, money is pouring into the Philippines to try and help. We at DevExpress want to do our share and so we’ve set up an auction on EBay, proceeds from which will go directly to the Red Cross to provide aid to all the victims.

    On the auction block then is a single user license to DevExpress Universal. Normally this goes for $2199.99, but this time you’re in the driving seat: all proceeds will be donated to the Red Cross’ Typhoon Haiyan Relief and Recovery Fund. So bid early and often. I’ve put in my bid, so watch out. (Do note: by winning you will also get some eBay bucks for the next quarter, so it’ll be like winning twice!)

    Please consider helping out the Philippines by bidding on this item.

  • Localizing your .NET app, now with custom translations

    The .NET Framework, from time immemorial, has provided extensive support for localizing your applications. Providing that you have followed some general, common sense guidelines from the outset, you won’t have to tear your application apart in order to provide a user interface that isn’t just in American English. Without going into great detail, this involves the use of and linking at run-time to localized resource assemblies that contain translations of every displayable string in your application.

    Translate Computer Key In Blue Showing Online TranslatorAs a control developer and vendor, we’ve supplied these localized resource assemblies for all of our controls for free for all of our customers for some time. In fact it’s more than that: we’ve relied on our customers to provide these translations in the first place and to continue to give us updates and to correct mistakes. It’s a herculean effort. (I like to think I’m bilingual – English and French – but my French comes nowhere near the quality for any of this.)

    The effort is large, not only because of the resources needed to gather, edit and recompile the translations, but because people, rightly so, ask for little tweaks to the translations for their particular applications. Since the resource assemblies have to be signed with the same key we use for our main assemblies, it adds an extra burden to our support team’s work.

    So, a year or so ago, some key developers here at DevExpress took another look at the problem and used a bit of lateral thinking to come up with another way of doing this. The problem space boiled down to this:

    • We need to provide localization resource assemblies for our controls at no extra cost.
    • We want to have a base set (a default set, if you like) of translations for a particular language.
    • We want to provide custom translations to those customers who want to fine-tune for a particular application or vertical market.
    • Oh, and those custom translations have to be saved somewhere for the next time the customer wants to edit them.
    • We want to remove the need for human creation of these localized resource assemblies.

    Finally, after a year of design and implementation work, we are announcing the beta of the DevExpress Localization Service.

    DevExpress Localization Service Main Page

    After logging in and accepting a License Agreement, you are presented with a page that lists the translations you’ve already created or edited. The first time you visit the page this list will be empty, of course. (There is also a link here to watch a video on how to use the DevExpress Localization Service and how to use the custom translations in your app.) From this page you can add another translation (that is, language coupled with DevExpress version) or modify one you have already created.

    DevExpress Localization Service Edit Page

    The edit page shows you all (!) the strings in the resource (together with their names in the source code) that can be translated. There are over 15000, so beware. You can filter the list to include those strings that still need translating (together with a suggested translation – we use Bing), those that have a translation already (these are our default set), or all of them. You can search through the strings (otherwise this edit page would be unusable!) to find the ones you are most interested in modifying. Once you are done fine-tuning the translations for your particular app or market, click the Save button to save your translations. The Localization Service saves your translations in the cloud on DevExpress’ servers so that they are available to you for editing again at some future point.

    You can also click Download here as well to initiate a build process for your custom localized resource assemblies (or you can click Download on the main list of translations to get several at once).

    Once the build process has completed, you will get an email with a link to download your particular signed custom assemblies. The link will remain active for a couple of days, after which you will have to initiate another build process. Once downloaded, the assemblies are ready to be added to your particular project and deployed.

    And with that I welcome you to the new DevExpress Localization Service! Please do try it out if you are interested in localizing your applications and particularly if you want to create custom assemblies. I’d love to hear what you think, so please do provide feedback. Our support team are also ready to answer your technical questions. It’s pretty solid right now, but I will remind you that it is in beta, so there might be some issues that can only come from throwing a lot of people at it all at once :).

  • Happy Anniversary! DevExpress is 15 years old

    Once upon a time in a land far far away there was a group of developers who had been writing financial apps in Borland Delphi for banks. After a couple or so of these, they noticed that they were writing the same UI code over and over, but just applying it to different scenarios. Abstract out the scenario details and … they had a UI control that can be used in lots of applications. Lather, rinse, repeat a few times and they soon had lots of them.

    Enter a knight in shining armor (as it were), a guru at marketing and selling, also in the app-writing business. He was contacted by this group of developers: can you help us package these controls and sell them?

    First DevExpress LogoThe rest is history. A company was formed, and the first UI control product was released in November 1998 (I’m reliably told November 22) under the company name of Developer Express (and pretty soon that was abbreviated to DevExpress). Yes, it was fifteen years ago.

    Speaking personally, I would have to say that the first time I became really aware of DevExpress was at the Borland Conference (BorCon) in Philadelphia in July 1999, eight months later. At that time I was working for a competitor, TurboPower Software, who, as it happened, also wrote and sold UI control packages (my readers from that time will remember Orpheus was the name of this control set) as well as other kinds of libraries for Delphi. I say “really aware” because TurboPower had other competitors, more well established than this new upstart.

    That BorCon was the first time I met Ray Navasarkian, the President of DevExpress (and who is now my boss). We’d meet up regularly at every BorCon from then on, until essentially they didn’t happen anymore, and TurboPower was eventually closed down.

    During those early years DevExpress continued to produce new UI libraries for Delphi on a regular basis. The founders stayed on, the dev teams increased in size, and suddenly there was another opportunity on the horizon: Visual Studio .NET and this new language called C#. DevExpress seized the initiative: rewrite all their controls in C#, using everything they had learned about writing and marketing UI controls in the meantime. The whole company was involved to such an extent that the first third-party .NET WinForms product was released by DevExpress in 2001 while Visual Studio .NET was still in beta. Even more than that, unlike the older Visual Studio and support for VBXs, DevExpress released the full source code as well, setting the stage for the market we are in now.

    Second DevExpress LogoSince then, DevExpress have supported new .NET platforms as they came along: ASP.NET, WPF, Silverlight, Windows 8 XAML, ASP.NET MVC and ancillary libraries and features such as Entity Framework, Azure, Coded UI, and so on. I joined as CTO some seven and a half years ago (meaning my tenure here is half as old as DevExpress itself) – I’d used DevExpress’ very first ASP.NET grid in a large application for a non-profit, so considered myself somewhat of an expert – and the company has grown dramatically from then on, until reaching the point where we’re now releasing HTML/JavaScript frameworks and tools. And we’re not stopping now: we have some very interesting ideas for the future.

    More impressive to me perhaps is the morale and health of the company as we’ve grown. DevExpress is a fantastic company to work for. Everyone is enthusiastic about the products and their colleagues, turnover is very low (all the founders are still here and ditto those early developers), the support team are the best in our business, our tech writing team (which includes the proofing team) produce some sterling documentation, the developers write great features and enhancements, our designers have learned to beat down and tame the developers – all in all, a great group of people.

    Current DevExpress LogoOf course, we couldn’t have become what we are now without you, our customers. You’ve been supportive, you’ve cheered, you’ve complained, you’ve provided great feedback, you’ve cajoled us into providing features, you’ve been along for the ride. Customers are important enough that we have just set up our new Developer Advocates team to give you a point of contact should you need more from us.

    To mark this occasion, throughout the month of November, we’ll be running some contests with great prizes, we’re going to give away gifts, and we’ll be raising money for charitable organizations via eBay auctions. To join the celebration, follow us on our blogs, Facebook, Twitter, Google+ and YouTube and watch out for the announcements.

    On behalf of all of DevExpress, I would like to thank you for the first 15 years and here’s to another 15!

LIVE CHAT

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

FOLLOW US

DevExpress engineers feature-complete Presentation Controls, IDE Productivity Tools, Business Application Frameworks, and Reporting Systems for Visual Studio, along with high-performance HTML JS Mobile Frameworks for developers targeting iOS, Android and Windows Phone. 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-2017 Developer Express Inc.
All trademarks or registered trademarks are property of their respective owners