ctodx

This Blog

News

Favorite Posts

Archives

  • DevExpress VCL Subscription: Tokyo or Bust!

    Tokyo at nightLast week, Embarcadero released the next major version of RAD Studio, v10.2. In keeping with their new convention of naming major releases after major cities (Seattle for v10.0, then Berlin for v10.1), this particular version is named after Tokyo. Welcome to RAD Studio 10.2 Tokyo!

    As it turned out, supporting this particular version was not too onerous: the changes for code targeting VCL on Windows are small and easily catered for. (The main new feature is of course Linux support for server apps, something that  does not fall within our user experience purview.) Consequently, I am able to announce that we have already added support for RAD Studio Tokyo in v16.2.5.

    Even better: it’s already ready for downloading from the Client Center: just log in and click the download link. The trial version also has been updated to install with Tokyo.

    Enjoy!

    (Tokyo by Moyan Brenn, on Flickr. CC 2.0 license.)

  • Visual Studio 2017 launch: our products are ready, are you?

    Today, March 7, is a big day in the Microsoft developer world: Visual Studio 2017 has been released.

    VS2017 launch date - 7 March 2017

    So, where does DevExpress stand with regard to our .NET products? Will we be ready? Will you be able to download VS2017 on Day One and use your favorite user interface controls, tools and frameworks with it? I’m sure it will come as no surprise that we have been diligently working with the betas of VS2017 to ensure that you can start immediately.

    In fact, on February 28 (a week ago) we released DevExpress Universal and DevExtreme 16.2.5 as well as CodeRush 16.2.6, and it is these builds which have our official support for VS2017. So if you are a “real” active customer, staying abreast of our latest releases, you already have the right bits for the Visual Studio 2017 launch. There is nothing else to download.

    I’m certainly ready for this new version of Visual Studio. VS2015 is so passé! VS2017 is where it’s at!

  • DevExpress Logify: Readying for release

    Six weeks ago I announced a brand new product from DevExpress, a crash reporting tool codenamed DevExpress Logify, and invited customers to apply for the initial beta. I can report that the beta so far has been a success: we’ve been able to validate our expectations about the kinds and rates of crash reports third-party applications might produce, and have started fine-tuning our logging servers and reporting subsystems. That work continues (and I dare say will never stop), but we are getting very close to release.

    Logify

    In this post I would therefore like to expand on the pricing structure we’ve decided on for Logify. In essence, customers will be able to purchase one of several service bands or levels of Logify tooling.

    Firstly, we will be providing a 30-day trial of the product for new users. This gives those customers the ability to test Logify and the various clients, see what it can do, and even more importantly provide an estimate of how many logs their applications produce.

    Secondly, here are the various levels, and the pricing list for each. All levels provide for the use of all platform client libraries (currently: .NET, JavaScript, and node.js), a general template for notifications, predefined rules for automatically ignoring certain exceptions, and the ability to read and use map files for JavaScript applications (a.k.a. “unmapping”).

    Starter level: $50/month. This level has a limit of 30,000 reports per month, for up to 20 application keys, and allows for customized settings.

    Standard level: $150/month. This level raises the report limit to 300,000, for up to 100 application keys, and allows for customized notifications and provides access to all the auto-ignoring settings.

    Premier level: $300/month. This level includes: up to 500,000 reports per month, unlimited application keys, attachments, minidumps, and a programming API.

    Of course, should you have requirements for even greater customizations, or a greater report count, please contact us for some custom pricing.

    During this transitory period as we make the final preparations for release, we would still encourage you to apply for the beta, especially as we have now published the proposed pricing structure. Remember: In order to join the beta we will need to understand the basics of your application, what devices and run-times it runs on, the competency of your user base, and so on. If you wish to be considered for the DevExpress Logify beta, please contact us by email (support@devexpress.com), with a subject line of “Logify Beta”, and we’ll follow up with a short questionnaire.

  • DevExpress Logify: a New Exception Reporting Tool

    We at DevExpress write controls, components and frameworks. Before we make them available to our customer base, they are integrated into our internal applications for that extra battle-hardened test: can we ourselves use these libraries and tools? Obviously, part of that process is catching exceptions that may be raised and logging them for further reporting and analysis.

    To make this easier, we wrote our own logging tool, codenamed Logify.

    Logify: intro

    The tool has become so invaluable for our internal testing, that we now have packaged it as a new product. Currently DevExpress Logify is in beta: although it works for us, we need a lot more data and feedback from our customers using it in their applications.

    In essence, DevExpress Logify allows you, the developer, to catch all unprocessed exceptions in your applications, log them, and then process and report on them through a web interface. Let us explore the features of the product.

    What can DevExpress Logify do for you?

    We developed DevExpress Logify to simplify and expedite the collection and processing of application crashes. DevExpress Logify does this by:

    • Allowing you to customize notification types and times so you receive alerts where and when you want them.
    • Providing notifications to give you comprehensive and actionable information to help you fix crashes efficiently. You’ll always know when and why a crash happened.
    • Enabling you to maintain stable, robust, high quality apps through constant monitoring and crash reporting. You will no longer need to rely on inaccurate user reports or complaints.

    Why DevExpress Logify?

    There are several exception logging libraries and crash reporting tools available, some open source. Why do we think that DevExpress Logify is superior? There are six main advantages:

    Easy to begin using it

    DevExpress Logify doesn’t require any complex installation or registration. We provide you with an API key for your application and several lines to add to your application’s code. Recompile, and that’s it! Your application is ready to report all unexpected crashes to DevExpress Logify.

    Comprehensive reporting

    Along with a simple preview, DevExpress Logify provides you with an itemized, comprehensive report view that contains detailed information about the crash: exceptions and their call stacks, operating system details, application metrics, and many other actionable insights.

    Logify: Comprehensive Reporting

    Ability to focus on the real issues

    DevExpress Logify allows you to set up special rules to automatically reject or ignore unusable reports and instead concentrate on the real critical issues in your application.

    Using custom data

    The default logs collected by DevExpress Logify contain a number of predefined application metrics. However, you can also attach custom data to these logs, and then view this data within the generated reports in the DevExpress Logify web interface. In addition, the custom data can be used for filtering and detecting duplicate reports.

    Easy to use reporting UI

    Without a doubt, making it simple to provide actionable reports is part and parcel of an exception logging tool. DevExpress Logify makes the reporting process easy.

    1. Smart report preview.

    Typically, finding the reason for a crash doesn’t require that much information. For example, developers can, in general, determine the cause of an application crash by exploring the call stack only. DevExpress Logify initially provides a brief report preview that allows you to not only view the call stack, but also providing the most useful actions as simple buttons.

    Logify: Smart report preview

    2. Automatic translation of localized reports.

    If your application is used worldwide, under many locales, you can still get reports in English. DevExpress Logify automatically translates all reports with non-English locales. Hence, you can process your reports either in (translated) English or in the original language used by the report.

    3. Status highlighting.

    DevExpress Logify provides you with various report statuses that assist you in processing crash reports more efficiently.

    Logify: Status Highlighting

    4. Report sorting.

    You can use the DevExpress Logify built-in sorting to customize your reports. You can sort by report date, an application name, an application version, and so on.

     

    Logify: Report sorting

     

    5. Searching.

    DevExpress Logify has a powerful search function, allowing you to easily find almost anything anywhere within your crash reports.

    Logify: Searching

     

    6. Powerful report customization.

    You can easily customize your application reports’ appearance. Logify Alert allows you set up such parameters as:
    - Detecting “My Code” boundaries: used to divide lines in the call stack from your application and lines in the call stack from third-party libraries.
    - Call stack lines collapsing. You can use this feature to hide/show required call stack blocks within the report preview and within the detailed view.

     

    Logify: Powerful report customization

    7. Smart reports grouping.

    As a rule, users using your application on different devices could cause the same error. As a result, your application will send several unique reports to DevExpress Logify. In this case, our service will group all these reports into one, so that you will only receive that one grouped report for that issue instead of several. This allows you to focus on the issue and not have to identify and ignore repeated reports.

    Open-source Clients

    All DevExpress Logify clients are open source and stored in GitHub repositories. You can explore and analyze this client code to ensure that DevExpress Logify does not collect any personal or private information. Please note that at this time, Logify is for .NET, JavaScript and node.js applications only. In particular, it does not support VCL applications.

    DevExpress Logify Beta

    As stated earlier, DevExpress Logify is about to be released into beta. For that to happen we need to invite developers to join the beta, to incorporate the DevExpress Logify clients into their applications and deploy. Our service – which, it must be emphasized, will be a paid service when launched – will collect your application crash logs, and provide you with the reporting web interface to allow you to analyze and understand your application issues. There are various aspects of DevExpress Logify that we wish to further test in this beta, namely a broader set of applications than we’ve used so far, how people use the reporting UI, an understanding of possible ways of charging for the service, etc.

    The beta is an EXCLUSIVE beta. Participation is by INVITATION only. To join we will need to understand the basics of your application, what devices and run-times it runs on, the competency of your user base, and so on. Essentially, we want a set of developers who will use this crash reporting tool in their applications, and who will act upon the information it provides.

    If wish to be considered for the DevExpress Logify beta, please contact us by email (support@devexpress.com), with a subject line of “Logify Beta”, and we’ll follow up with a short questionnaire.

  • DevExpress VCL Subscription v16.2 released

    As is usual here at DevExpress during major release time, we like to stagger the publication of our .NET/web Universal and our VCL products. Our poor marketing folk need a bit of a breather between the two, so we give them a week or so to recover before we publish the VCL Subscription release.

    Well, there’s no need to wait any longer: the VCL team has completed their testing of the build and it was published to the Download Center early this morning, my time. If you have an active VCL subscription (whether it’s the full one or one of the Packs) you can go now to our Download Center, log in, and download the latest and greatest. Version 16.2.

    For what’s new in this release, please go to this page, click on the VCL button under the main banner, and read all about the enhancements we’ve provided.

    I shall be presenting a webinar tomorrow (Wednesday, 21 December, at 10:00am Pacific Time) on the new features. Please register.

    Some two or three months ago, we sent out an email to our customers with a survey about what we should/should not do with regard to FireMonkey controls. At the time, we specifically stated that nothing would happen for 2016 (which is why there’s no “FireMonkey Suite” being published alongside the VCL Subscription), but that once v16.2 was out, we in management would lock ourselves away in a room with the VCL team and discuss how/when/who/what with regard to where we go with our RAD-Studio-based offerings. We shall be making as much use of our partner relationship with Embarcadero as we can. Stay tuned, is really all I can say for now.

    I’d like to extend our thanks to our VCL customers, some of whom have certainly been with us since the very start of Developer Express. We hope that what we’ve provided in v16.2 is going to mess with your plans for Christmas and the New Year as you incorporate the new features inside your apps. Just joking! Seriously, if you have any feedback about the release or about our future plans, don’t hesitate to add a comment below, or email me or Client Services. Thank you, again.

  • DevExpress Universal v16.2 released

    From the myriad blog posts you’ve seen here on our Community Site recently, all labeled “Coming Soon in v16.2”, I’m sure you’ve been anticipating our second major release of the year, knowing that it is just around the corner. Well, wait no more: the teams completed their testing of the build and it was published to the Download Center early this morning, my time. If you are an active customer – er, that is, you have an active subscription, I’m not commenting on your level of exercise! – you can go now to our Download Center, log in, and download the latest and greatest.

    universal-16.2-awards-facebookFor what’s new in this release, please go to this page and read all about the enhancements we’ve provided.

    For every major release, no matter how hard we try, the new features and enhancements are bound to cause a few breaking changes. We do make an effort to minimize their number and impact, but there will be some. (I wrote about this last time for the v16.1 release.) You can read about the v16.2 breaking changes here. As it happens that new site is now fully interactive: you can select to see the breaking changes for a particular version, or the known issues and the resolved issues. You can even elect to view what changes are applicable when upgrading from a previous version.

    Part of the process of releasing a major version like this involves many people doing many jobs. Development, documentation, blogs, marketing, and so on. One of these jobs is writing the Press Release, and I was interested to learn in the one that’s just about to go out that, over the past 4 years, DevExpress has won 38 first place Visual Studio Magazine Readers’ Choice awards. Those are awards that are based on votes from the readers of VSM, and we are really grateful to the people who through their development work have decided that DevExpress products are so good, they’re worth voting for. Thank you. We hope that what we have in v16.2 (and what we are preparing for v17.1) is going to validate that trust in and appeal of our products.

  • DevExpress MVVM for WPF - New Module Injection Framework Coming Soon in v16.2

    Wait, what? What’s a Module Injection Framework – or MIF – and how is it used? The mile-high overview is that a MIF makes it easier to develop, test, maintain, and deploy applications built with loosely-coupled modules. Such a modular application is one that is divided up into a set of functional units, which are independent from each other. Although viewed as separate, these modules can, if needed, communicate with each other through well-defined contracts that you define. This separation of concerns means that modules can be developed and tested independently of each other.

    1. Common Concepts

    Using MIF terminology, a module is a set of Views and ViewModels (which can in turn contain submodules) that are injected into regions. A region is merely a placeholder in the application's UI.

    MVVM MIF regions and modules

    Using the DevExpress MIF, you can create modules and register them via the ModuleManager:

    ModuleManager.Register(
        regionName: "RegionA", 
        module: new Module(
            key: "Module1", 
            viewModelFactory: () => new Module1ViewModel(), 
            viewType: typeof(Module1View)
        )
    );

    A region is a control that is marked by an attached property:

    <TabControl dxmvvm:UIRegion.Region="RegionA" .../>

    Modules are injected to regions when you call the Inject() method:

    ModuleManager.Inject(regionName: "RegionA", key: "Module1");

    2. Navigation

    You can perform navigation tasks anywhere/anywhen in your application, only knowing the key of the module and the name of the target region:

    ModuleManager.Navigate(regionName: "RegionA", key: "Module1")

    You can also define navigation logic globally. For example, suppose you have two regions in your app: a navigation region and a document region, such as in the image previously shown. An end-user uses the navigation control in its region to navigate to a document, and this is then shown in the document region (which could be a TabControl, for example).

    With MIF, you can say:

    “When a module in the navigation region becomes active – activate the corresponding module in the document region.”

    And also:

    “When a document in the document region becomes active – activate the corresponding module in the navigation region.”

    ModuleManager.GetEvents(regionName: "NavigationRegion").Navigation += OnNavigationRegionNavigation;
    
    void OnNavigationRegionNavigation(object sender, NavigationEventArgs e) {
        ModuleManager.Navigate(regionName: "DocumentsRegion", key: ((MyNavigationViewModel)e.ViewModel).DocumentKey);
    }
    
    //...
    
    ModuleManager.GetEvents(regionName: "DocumentsRegion").Navigation += OnDocumentsRegionNavigation;
    
    void OnDocumentsRegionNavigation(object sender, NavigationEventArgs e) {
        ModuleManager.Navigate(regionName: "NavigationRegion", key: ((MyDocumentViewModel)e.ViewModel).NavigationKey);
    }

    3. Tests

    MIF makes it really easy for you to write unit tests for your navigation logic.

    ModuleManager.Navigate(regionName: "NavigationRegion", key: "NavigationItem1");
    Assert.AreEqual("Document1", ModuleManager.GetRegion(regionName: "DocumentsRegion").SelectedKey);
    
    ModuleManager.Navigate(regionName: "DocumentsRegion", key: "Document2");
    Assert.AreEqual("NavigationItem2", ModuleManager.GetRegion(regionName: "NavigationRegion").SelectedKey);

    4. Save and Restore Application State

    Like it or not, our users expect our applications to save its state and to restore it when restarted. There are several types of state an application is expected to manage in this manner:

    • The state of visual controls. Examples are, the selected grouping and column order of a GridControl, or the position of panels in a DockLayoutManager.
    • Dynamically injected modules, which can be automatically injected on startup. One example of this are the open tabs in a browser.
    • The state of particular View Models.

    The DevExpress MIF refers to the first type of state as visual state. The second and third types are grouped into logical state.

    The ModuleManager.Save() method allows you to query the current application state.

    void Save(string regionName, out string logicalState, out string visualState); 

    The ModuleManager.Restore() method restores the saved application state when called.

    bool Restore(string logicalState, string visualState); 

    5. MVVM MIF Template

    To get you started, we’ve added a new project template in our Template Gallery. It generates a simple MIF application.

    MVVM MIF app template


    Are you using our MVVM with our WPF controls? What do you think of this new feature? Do you think you’ll be trying out this new MIF? Please let us know either below or by emailing us at info@devexpress.com.

  • WinForms and WPF Spreadsheet Control – Exciting New Features Coming Soon in v16.2

    Microsoft Excel: ubiquitous, powerful, and familiar. Given its prevalence and breadth of functionality, there’ll always be a new feature to add to the DevExpress WinForms and WPF Spreadsheet control and for v16.2 it seems our dev team have gone above and beyond. Even so, I’m going to guess that the first feature I will introduce will have you installing the beta without hesitation.

    Two-Way Data Binding

    With this release, you can now bind a worksheet or specific range of cells to a standard data source. And that binding works both ways: for both reading and updating of data. While that sinks in, let me point out a few benefits. Last time, in v16.1, we added integrated cell editors. Suddenly you could create “forms” inside your spreadsheets and within your app. Data Entry forms, for example. Your users are up to speed with the whole spreadsheet UX (user experience), so designing forms in that familiar environment makes sense. And now, the data they enter can be read from and stored in your database, not just in the spreadsheet. It becomes shared. If you like, the spreadsheet is no longer an island, but is a gateway to the data you are already storing and processing.

    We’ve gone even further: A cell range inside an open spreadsheet in the control can also be used as a data source for any DevExpress or third-party data-aware control (so the Data Grid, Charts, etc) in your app. All data-related modifications affecting the worksheet are immediately propagated to bound controls and changes made within external controls are immediately reflected in the worksheet. The Spreadsheet control and its documents become highly integrated in your app.

    Another example before I move on: invoicing. This involves gathering data, often row-oriented data with summation, discounts and the like. That data is important, so much be saved in the database. Then there’s the need to generate the invoice as a report to be sent out. Which leads to…

    Print Titles

    The v16.2 DevExpress Spreadsheet control allows you to print titles for documents. If the worksheet is large enough to spread across two or more pages in the printed report, the titles (row and/or column headings) can be repeated on subsequent pages.

    Print titles in WinForms and WPF Spreadsheet Controls

    New Formatting Rule Dialog

    The Spreadsheet control in v16.2 ships with a new Formatting Rule dialog. This dialog helps end-users customize the appearance of cells and by using conditional formatting.

    Format Condition Dialog in WinForms and WPF Spreadsheet Controls

    XLSX/XLSM File Encryption

    Finally, in v16.2 we’ve added the ability to encrypt the spreadsheets created by the Spreadsheet Control. You can encrypt documents using either standard or agile XLSX/XLSM encryption.

    Encryption in WinForms and WPF Spreadsheet Controls

  • Using Visual Studio 2017 RC with DevExpress: some caution needed

    As I posted yesterday, the newly published DevExpress Universal v16.1.8 supports the Release Candidate for Visual Studio 2017. VS2017 RC is a pretty stable release; however, you should be careful: this is still a beta and you may encounter issues as you experiment with it together with our controls, frameworks, and tools.

    CAUTION SPEED BUMPAs a brief example, here’s an issue that’s simple to appreciate: VS2017 RC does not include an offline help viewer
    VS2017 RC Support: The IDE doesn't include an offline Help Viewer, CHM and PDF options are available as offline documentation

    Apart from this one, these are the issues we’ve identified so far (and be aware that these issues only occur with the VS2017 RC build, earlier IDE versions are fine). Some of them have been reported to Microsoft, and with some of them we’re investigating various workarounds.

    LINQ to SQL related issues:

    The Project Wizard's "Generate Sample Data" functionality requires LINQ to SQL components to generate data context from DBML data model. Visual Studio 2017 installation doesn't enable the necessary modules by default:
    VS2017 RC Support: ASP.NET WebForms/MVC Project Wizard - "Generate Sample Data" option on the "Choose Layout" tab is disabled

    The LINQ to SQL option in the WinForms and WPF Data Source Configuration Wizards requires the corresponding Visual Studio modules, which are not installed by default:
    VS2017 RC Support: Availability of "LINQ to SQL" option in WinForms and WPF Data Source Configuration Wizards depends on Visual Studio configuration

    DevExtreme:

    Because of changes in the IVsProject.AddItem method implementation in VS 2017, a null reference exception is thrown in the DevExtreme design dll:
    VS2017 RC Support: "Multi-Channel Application" template - NullReferenceException is thrown during project generation

    There seems to have been a change in the folder structure in VS2017 RC, which causes compile errors. We need more time to investigate:  
    VS2017 RC Support: "WCF OData Service" template - compile errors in generated projects

    XPO:

    XPO uses Visual Studio's Modeling SDK as the basis for the UML editor, but this is not yet shipped as part of VS2017 RC:
    VS2017 RC Support: Persistent class visual designer is not available

    XAF:

    The Model Editor does not load at first; the “fix” at the moment is to just try again:
    VS2017 RC Support: Model Editor does not load on first attempt

    CodeRush:

    Several issues here. We need more time to investigate.

    VS2017 RC Support: "g2x2" template produces incorrect results

    VS2017 RC Support: "Add Parameter" refactoring incorrectly resolves argument type

    VS2017 RC Support: Test Runner doesn't run xUnit tests in a .NET core app

    VS2017 RC Support: Test Runner doesn't run unit tests created with Visual Studio

    UWP:

    Not particularly associated with VS2017 RC per se, but instead to do with UAP (Universal APP Platform) 5.2.2. Something to do with non-generic collections, perhaps? Anyway, it’s been reported to Microsoft:
    VS2017 RC Support: BadImageFormatException is thrown in visual designer if XAML contains certain DevExpress controls

     

    Of course, if you do run into any other issues with VS2017 RC, please contact our support team. They’ll be happy to investigate and help.

  • DevExpress Universal v16.1.8 supports Visual Studio 2017 RC

    Earlier this morning we released v16.1.8 of DevExpress Universal. Normally such a minor release would not necessitate a blog post – after all, minor releases are about bug fixes and performance enhancements and not by definition about new features – but this time we wanted to highlight some fresh functionality that coincides with an important announcement by Microsoft at their Connect(); conference in New York.

    That announcement? Microsoft have released the Release Candidate of Visual Studio 2017. VS2017 has numerous new features and enhancements, too many to detail here, but one of them is kind of important from our viewpoint: they’ve changed the installation procedure for not only Visual Studio itself (you can install only what you want – biggest change: no need to install .NET support if you’re not developing for that run-time), but also of external components, libraries and plug-ins as well. To help you test out this new IDE with your favorite component and tools library, we’ve added VS2017 RC support to our installer.

    So, hurry over to the Download Center, download DevExpress Universal 16.1.8, install into VS2017 RC, and enjoy!

1
2
3 4 5 6 7 8 9 10
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