Quantcast
Channel: Developer Express Inc.
Viewing all 2370 articles
Browse latest View live

ASP.NET vNext - DevExpress Plans for ASP.NET 5

$
0
0

DevExpress ASP.NET customers have been curious about the changes coming with ASP.NET vNext (aka ASP.NET 5), so let me take this opportunity to announce our plans:

  1. We will support ASP.NET 5.
  2. In fact, we're working hard on an upcoming release that will support ASP.NET 5.

The new version now has an official name, "ASP.NET 5" and for the rest of this post, I'll use that term. To be clear, ASP.NET vNext is Microsoft's term for the next version of ASP.NET that they are working on.

Which release will support ASP.NET 5?

The specific DevExpress release is still to be determined because as ASP.NET 5 is still in beta. Here's Microsoft schedule:

ASP.NET 5 Schedule and Roadmap

Because ASP.NET 5 will be released in early 2016, we expect to support ASP.NET 5 with DXperience v16.1 release.

There is a possibility that we could release some bits in DXperience v15.2. Take a look at the feedback section below for more info.

What is ASP.NET 5?

ASP.NET 5 is a significant redesign of ASP.NET. -Daniel Roth, ASP.NET 5 Docs

The Microsoft ASP.NET team has been working hard on the next version of ASP.NET. And there are major changes. And yet, many of the things that you know, will still work the same.

To understand what's coming with ASP.NET 5, I highly recommend you:

  1. Watch this video:

Introduction to ASP.NET 5
2. Or, read the docs.
3. Or, check out the links that Jon Galloway has compilied on this blog post: A 30 Minute Look At ASP.NET vNext
4. Or, check out any of the other great resources listed here: http://asp.net/vnext
5. Or, all of the above.

DevExpress Plans

Here is our plan to support ASP.NET 5:

New Runtimes

Before I discuss our plans, it's important to understand the different runtimes. This image shows the two major runtimes:

.NET 2015

Full .NET Framework 4.6

The .NET Framework 4.6 runtime is an incremental upgrade to the existing .NET v4.5 line. And therefore, it's backward compatible and provides all the framework features (WebForms, MVC 5.x, etc.). This framework provides the easiest path for upgrading an existing .NET project.

All DevExpress ASP.NET WebForms controls and MVC extensions work with the Microsoft .NET Framework 4.6 runtime today.

.NET Core 5

As Daniel Roth mentioned above: "ASP.NET 5 is a significant redesign of ASP.NET". And at the heart of it is the new .NET Core 5 runtime.

The .NET Core 5 runtime is a new implementation of .NET that is server-focused and optimized for server and cloud workloads. It's also cross-platform which means you can run it on Linux and OSX:

.NET Core 5 is a modular runtime and library implementation that includes a subset of the .NET Framework. Currently it is feature complete on Windows, and in-progress builds exist for both Linux and OS X. -Steve Smith, ASP.NET 5 Docs

But writing for ASP.NET 5, using .NET Core 5, is very different than what you know today. WebForms and MVC 5.x are not included in this framework. It has been architected in a very different way for web development. Therefore, you cannot use current DevExpress ASP.NET controls with .NET Core 5.

However! There is good news. ASP.NET 5 favors client-side libraries for user interface. Therefore, we plan to leverage DevExtreme (DevExpress' client-side JavaScript framework and widgets).

Short Term Goal:

We plan to create wrappers and provide an easy experience for you to use DevExtreme widgets with ASP.NET 5. We have started this development work already and our non-visual documents library: Spreadsheet, RichEdit(Word), and PDF processing are close to being done.

Long Term Goal:

While the DevExtreme UI widget library does not have as many controls as our ASP.NET subscription, it is growing with each release.

And finally, we have do have some interesting ideas to bring you rich and powerful controls for ASP.NET 5. Stay tuned.

Feedback

If you are highly interested in ASP.NET 5 and DevExpress integration, then please leave a comment below. Your feedback will help us decide on what bits and which release we may target.

Thanks!


Your Next Great .NET App Starts Here

Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).


ASP.NET AJAX Control Toolkit - v15.1.3 - Maintenance update available

$
0
0

A new release of the ASP.NET AJAX Control Toolkit, v15.1.3, is now available. We've included several bug fixes and new features.

You can download the latest release here:

ASP.NET AJAX Control Toolkit v15.1

Click the download button above and the get the latest bits.

Or use the Nuget package: ASP.NET AJAX Control Toolkit Nuget package

(If you missed news about the latest v15.1 ASP.NET AJAX Control Toolkit release then please read this helpful blog post.)

v15.1.3 Includes:

1. Bug fixes

  • Item 15788 - UpdatePanelAnimationExtender OnUpdating runs on every postback
  • Item 27072 - SliderExtender within UpdatePanel causes vertical scrollbar to scroll in Chrome and Safari
  • Item 27243 - Double HTML attributes rendered by TabPanel
  • Item 27294 - Issue with multiple AsyncFileUpload Control
  • Item 27369 - AjaxFileUpload: Drag and Drop is not working on IE10 for Windows 7
  • Item 27373 - PieChart doesn't render all segments correctly
  • Item 27434 - Keyboard Selection not Working
  • Item 27470 - TextBoxWatermarkExtender causes autocompletetype not to work
  • Item 27481 - Error in Masked edit validator
  • Item 27511 - img/png
  • Item 27547 - HtmlEditorExtender Causing Javascript Error on IE 11
  • Item 27566 - Multiple image upload using html editor extender control
  • Item 27595 - Mask Edit Extender Issue
  • Item 27612 - Editor Extender JAVA script error
  • Item 27655 - Corrupted Files in AjaxFileUpload
  • Item 27717 - HtmlEditorExtender error with Chrome 36.0.1985.125
  • Item 27735 - FileUpload Control Displays Upload Button with No Files
  • Item 27745 - Javascript error in Chrome with HtmlEditorExtender: Uncaught IndexSizeError
  • Item 27764 - MaskedEditExtender type Date fails with "hu-HU" culture
  • Item 27812 - Version 15.1 TabContainer CSS Inconsistency for Disabled Tabs
  • Item 27813 - Focus hidden tabs
  • Item 27844 - CascadingDropDown populated event not working as (I) expected
  • Item 27846 - TabContainer in 15.1
  • Item 27853 - AjaxControlToolkit 15.1 Combobox VS2013
  • Item 27855 - Where is ComboBox predefind theme images?
  • Item 27857 - SliderExtender handle image align broken in vertical orientation
  • Item 27858 - MaskedEdit extender culture setting issue
  • Item 27860 - big issue: htmlextender bug
  • Item 27865 - Using AJAX Password Strength with Modal Popup
  • Item 27875 - v15.1.x ValidatorCallout static images - incorrect path with ScriptManager.EnableCdn= false
  • Item 27892 - HtmlEditorExtender: BackColor and ForeColor buttons is not working

2. Features and improvements:

  • Item 8626 - Slideshow effects
  • Item 27075 - Table Border/CellPadding/CellSpacing - Replace with CSS

3. Sample site updates:

4. Internal improvements:

Client testing introduced.

Documentation

Helpful documentation articles are available on the CodePlex site:

Feedback

Get the latest ASP.NET AJAX Control Toolkit v15.1.3 release and let us know your feedback by reporting it here.

How to upgrade to v15.1.3

Please take a look at the 'How to upgrade to v15.1 release' article to see how to migrate your existing ASP.NET AJAX Control Toolkit projects to the new v15.1.3 release.

Try DevExpress ASP.NET

We’d like to thank you for installing the DevExpress Edition of the AJAX Control Toolkit and look forward to your feedback as you begin its use.

When we took over the fabulous ASP.NET AJAX Control Toolkit, our goal was to reach those web developers who want to use great web user interface controls for their web projects and DevExpress ASP.NET provides that and much more.

Try the free DevExpress 30 day trial.

Email: mharry@devexpress.com

Twitter: @mehulharry


Your Next Great .NET App Starts Here

Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).

dotNed usergroup meeting

$
0
0

On the 27th of August, DevExpress hosted a dotNed user group meeting in Rotterdam, The Netherlands. I found a very nice location in the harbor of Rotterdam.

DSC00909

It is wood craftsmen shop / historical shipyard and museum where they are reconstructing one of the historical naval ships of the time of Pirates Of The Caribbean.

DSC00914DSC00939DSC00931

For all attendees, we had some sandwiches and drinks…

DSC00912DSC00913DSC00911

and after a short introduction of Dennis Vroegop, I did a session on how to consume Azure Mobile Services with a DevExtreme JavaScript App.

DSC00915DSC00927DSC00921

After the session, everybody got a UI Superhero shirt from John, and there was time to talk with us and other developers as well.

DSC00944DSC00935DSC00931

Are you involved in the developer community or organizing events in your area ? Let me know!

Update Ajax Control Toolkit to Patch Critical Security Vulnerability

$
0
0

If you are using the ASP.NET AJAX Control Toolkit, you'll want to make sure it's updated to the latest version as it patches a critical security vulnerability.

The "Directory Traversal" vulnerability affects ASP.NET AJAX Control Toolkit versions prior to v15.1.x.

The vulnerability existed prior to DevExpress taking over the ASP.NET AJAX Control Toolkit. DevExpress has patched this vulnerability with our first release of the ASP.NET AJAX Control Toolkit v15.1.

Details

Brian Cardinale, Principal Application Security Consultant, notified us of the vulnerability last year (thanks Brian!). To help you understand the vulnerability, I'll use Brian's excellent description:

There is a File Write Directory Traversal issue inside the AjaxControlToolkit “AjaxFileUpload” control. When uploading a file using this control, the framework should write the file to the environments “temp” directory. The framework is not validating the “fileid” parameter from being modified. This parameter is later used in the creation of the path in the “temp” directory. This parameter can be modified to write to any location on the disk, as long as file system permissions allows. This exploit can lead to Remote Code Execution if an attacker is able to upload an .aspx file into the web directory. - Brian Cardinale

To learn more, check out Brian's blog post on this issue.

Update to v15.1.x (or higher)

To patch this vulnerability, upgrade your ASP.NET AJAX Control Toolkit version to the latest versions. You can download our useful installer here:

Or use the Nuget libraries:

ASP.NET AJAX Control Toolkit Nuget package


Related posts:

CodeRush for Roslyn, v1.0.5

$
0
0

The CodeRush team, continuing its 45-day or less release pace, is ready to bring you the latest update to CodeRush for Roslyn, version 1.0.5.

Our previous release, CodeRush for Roslyn v1.0.4, included new refactorings, code providers, text commands, and test runner and code coverage support. You can download the latest version of CodeRush for Roslyn from the Visual Studio Gallery.

Zero Bug Policy

The team has a zero-bug policy, which essentially means we resolve all reported issues before we write new features. And so in this release, v1.0.5, we’ve prioritized quality and performance over new/ported functionality, resolving over 200 issues, including:

  • Templates:
    • Expansions in split views
    • Corrected context to prevent unintended expansions inside XML doc comments and interpolated strings
    • Corrected a number of template expansion issues in Visual Basic
  • Exceptions when editing code
  • Performance issues:
    • Toggle Comment
    • Test Runner in large files with a huge number of test cases
  • An edge case out-of-memory exception
  • Edge case deadlocks on solution open/close and Test Runner build
  • Edge case crashes (when rename is invoked in navigation link, or when double-clicking tests in the Test Runner)

Other feature areas receiving improvements in this release:

  • Code Cleanup
  • Code Coverage
  • Code Providers
  • IntelliRush
  • Linked Identifiers
  • Refactorings
  • References tool window
  • Shortcuts
  • Tab to Next Reference
  • Text Fields
  • Test Runner

We also added hundreds of test cases to help ensure these issues never appear again.

New in v1.0.5:

We added the following new features in v1.0.5:

  • CodeRush now updates test run progress on the Windows taskbar.

    TestRunnerProgressOnTaskBar 
  • The Test Runner filter now shows the full path to each test, so you can easily find the test you are looking for even if you have tests with identical names in different test fixtures.
  • We added the "Add Else Statement" and “Declare Interface” code providers.
  • Smart Constructor, Declare Class, Declare Property, and Declare Property (with field) are now available for Visual Basic developers.

Give it a Try

Give the 1.0.5 version a try and let us know what you think. You can download CodeRush for Roslyn from the Visual Studio Gallery.

DevExtreme now available on Bower

$
0
0

I'm happy to announce that DevExtreme is now available for download through http://bower.io.

So what is bower? A package manager for the web:

Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.

Bower works by fetching and installing packages from all over, taking care of hunting, finding, downloading, and saving the stuff you’re looking for.

Bower is based on Node.js and, therefore, works on OSX, Linux, and Windows environments.

And Bower is now the main tool for client package management in Visual Studio 2015.

Install

After your bower environment is set up, you can install the DevExtreme package by calling:

The "bower install devextreme" call will download and install all scripts, CSS, font icons files, type script definitions, etc to use DevExtreme.

And with Bower, updating your DevExtreme package is as easy as changing the version number in your bower manifest file.


Create highly responsive web apps for touch-enabled devices and traditional desktops.

From desktops to mobile devices, DevExtreme HTML5 Data Grid delivers the flexibility you’ll need to build apps that reach the widest audience and deliver touch-first user experiences to power your next great interactive website.

Download a free and fully-functional version of DevExtreme now: Download DevExtreme

Skinning WinForms: the Good, the Bad, and the Ugly

$
0
0

This may come as a shock to you – it certainly did to me – but it seems we provide over 50 skins to choose from for your WinForms projects. Well, I knew there were quite a few – you should see the number of pizzas we have to ship in to the graphic designer team when we do a new major release so they can update them all – but frankly this has got a little out of hand.

Consider this: we’ve been shipping skins now for some ten years, and over that time the general way we as computer/tablet/phone users view UI has changed dramatically. Like it or not, a modern flat style is de rigueur these days. All you need to do is look at Windows 10 and Office 2016, both very recently released, for what I mean. The problem is that pretty much all of the unique look-and-feel styles we ship at the moment (like, say, Halloween or Valentine) are very old-fashioned just from that particular perspective: they are decidedly not flat. And that’s what we hear from our customers about our skins: end-users want the same flat style they see in their smartphones and their tablets in the desktop apps they use every day. Yes, it’s a giggle to change to Halloween, say, but using that day in, day out, is not conducive to an efficient working environment.

WinForms Skins are a-changing

For us, we have a two–pronged issue when we publish a major release: first, we have to update the skins for the new release; and second, if we release a new control, we have to “skin” it for all of the skins we provide. This, frankly, is hard work for not much benefit, since I would guess the majority of our customers don’t actually use these older skins. Indeed I’d be willing to bet that a lot of customers “brand” a standard skin with their corporate colors and the other skins just aren’t exposed or used in any way.

Apart from “flatness”, there is another huge issue with UI that is starting to really make itself felt. I am currently writing this on my new Dell XPS 13 with the Infinity display running at 3200×1800. I love the sharpness of the resolution, but with my old eyes I cannot run it at a standard DPI. With Windows 10 making it a lot easier to set text sizes and DPI settings, I can configure a great visual experience across the board, except with older programs. They’re … well … not so good visually, shall we say. Our older skins fall into the same category. We’re doing a lot to improve our WinForms controls to work much better visually on these high-DPI screens, but we are being held back because of the skins.

So, what’s the plan?

First off, we want to find out how you, our customers, are using the WinForms skins we provide. To that end, we have drawn up a survey and encourage you to go fill it out. The more info and detail we get, the better all round.

Second, based on our current thinking, we’re going to reorganize our skin collection for v15.2.

  1. System/Application Skins. This will include the skins based on Microsoft Office and Windows, together with Mac OS: Office White, Office Dark Gray, Office Light Gray, McSkin. If Microsoft changes the Office theme in the future, for example, the relevant skins will be changed appropriately.
  2. High-contrast skin. For accessibility purposes.
  3. Holiday and seasonal custom skins. Spring, Summer, Xmas will be redesigned.  We’re planning on adding a Fall skin.
  4. A set of differently-colored skins, based on the same look and feel styles as above. These are going to replace all of the older skins: Blue, Black, Silver, Pink, Green, Coffee/Caramel.

The other skins will be removed and no longer supported. Note that depending on the answers we get from the survey, this reorganization may be more (or less) drastic than I’ve outlined here.

Third, if we see a cool new app with a cool new UI and we feel there’s going to be a high demand for replicating it, we may introduce a new skin. But in general we will just update the reduced number of skins in our collection to match changes in the general market. Our goal is to maintain and keep up to date the above selected skins only.

Of course, this is highly dependent on your feedback. So, I wholeheartedly encourage you to fill out the survey form– that’s going to be the best way for us to collate and analyze the responses and understand how you use our skins. You can also leave your opinions about this change as comments here, if you wish.

We will be at DDD East Anglia Cambridge…and you?

$
0
0

This Saturday, September 26th, is the third edition of DDD East Anglia, which takes place in Cambridge, UK. DevExpress will be there manning a booth with a selection of the latest in cotton apparel for the discerning conference goer, some cool demos of our components and, of course, free hugs from Rachel.

Yes! Rachel and I will both be visiting! Not only that, but I will also present a session on Responsive Web Design for Developers, where I will show you what this responsive business is all about and how to get started with it.

We are a proud sponsor of this event, and during the DevExpress-sponsored coffee breaks at 11.35am and 3pm grab a cup and check the raffle ticket on it to see if you have won a prize. Yes, that’s right, the DevExpress DDD East Anglia Bottle Tombola is back!

We’ve got a selection of brews, condiments and tipples from around the Eastern region and they could be yours if your number comes up!

East-Anglia-Bottle-Tombola-2014
Picture taken by Craig Murphy, Sept 2014.

If you are attending, come visit us.

See you in Cambridge!


DevExpress VCL Subscription v15.1.5 released, with full support for Delphi 10 Seattle

$
0
0

Just a quick note to say that we released v15.1.5 of the DevExpress VCL Subscription today. The main new feature of this release is adding full support for Delphi 10 Seattle (DX) and C++Builder 10 Seattle (CX), collectively known as RAD Studio 10 Seattle (RX). So download it today from your Download Portal if you are using DX, CX, or RX (and especially if you were using the “unofficial” support for them that had crept into v15.1.4).

There are a couple of new enhancements as well.

  • The biggest one (and the one that delayed us a little in our full support for DX, CX and RX because of the extra testing we had to do) is we’ve added the capability to print the ExpressRichEdit Control.
  • The grid’s main improvement has been speeding up its export capabilities, especially when the layout information is not required.
  • There have been numerous other resolved issues as is usual when we release a minor version. See here for the full list.

So, download, install, and enjoy!

DEVIntersection is coming to Amsterdam!

$
0
0

DEVintersection Europe, a cool new developer event is coming to Amsterdam from October 14th till October 16th with an awesome speaker line-up!

Print

The sessions are all about the latest technologies and tools, and I can assure you that you will leave the event fully reloaded with inspiration and ideas.

DevExpress is proud to be gold sponsor of this event, and John and I will be manning our booth where we will be giving away goodies, holding daily raffles, and showing you some cool demos of our products.

We are very grateful to our DevExpress customers in Europe for continuing to support us. As a demonstration of our gratitude, we have secured a substantial discount from the event organizers, so if you haven't bought your ticket for DEVIntersection yet, make sure to contact John Martin. He can give you details on how to get your ticket for a reduced price.

When you’re there, make sure to stop by our booth to say “Hi” and get a raffle ticket.

See you in Amsterdam!

Developing for the Universal Windows Platform? We’ve got you covered.

$
0
0

I’m proud to announce that today we officially released our suite of controls for the Universal Windows Platform (UWP). For those who are ready to develop native Windows 10 apps, or even prepare for developing apps for the future UWP form factors and devices, we now have a full suite of controls that will help you fulfill your goals.

Examples of apps created with the DevExpress UWP suite

Much as Windows 10 is a multi-faceted progression from the ideas first seen in Windows 8, we decided to leverage the work we had put into our Windows 8 controls in order to produce this new UWP suite. Over the past few months, pretty much every control was reevaluated for the new run-time, ported, optimized, and tested in production. Apart from the grid control and data editors (of course, we couldn’t say we properly support this new platform without having our famous grid present and correct!), we’re providing data visualization controls such as charts, gauges, a photo gallery, and a map control; app navigation controls such as the tile bar, tiles, and radial menu, together with page layout control; a ribbon; a PDF viewer; and much more. Windows 10 apps that allow for data entry and visualization, together with dashboard-type facilities should now be a breeze to create.

For full details of the suite go to devexpress.com/Win10Apps.

During the design process for the new suite, we naturally came to the point where we had to make a decision about the Win8 XAML control suite from which this new product was evolved. From everything we’ve seen and heard during the launch of Windows 10, it became readily apparent that Windows 8 as a target platform was going to rapidly become irrelevant. Windows 10 is a simple (and free!) upgrade to Windows 8, especially for retail customers – all of the laptops I personally look after are all now on Windows 10 – that it just made sense to discontinue the Windows 8 XAML product in our future major releases. Consequently, it will not be part of v15.2 when we release in December, whereas the Windows 10 Apps control suite will be. If you are still having to maintain a Windows 8 XAML app, the suite will still remain as part of v15.1, but no new features will be added. Our efforts in this space are going to be directed to the new form factors for UWP, as well as providing new features and controls for it.

As usual, we’d love to hear your feedback about the new suite.

CodeRush for Roslyn, v1.0.6

$
0
0

CodeRush for Roslyn v1.0.6 is ready for download. Here’s what’s new in this version:

  • The Decompiler is now included in CodeRush for Roslyn v1.0.6. Assembly structure, from namespace all the way down to class members, appears in the tree view on the left, while source code for the selected node appears in a pane on the right.

    DecompilerWindow.png

  • The Unit Test Runner shows test execution progress and summarizes test run results on Visual Studio’s status bar.
  • New test runner actions (which can be bound to shortcuts for fast invocation):

CommandBehaviorDefault Shortcut
UnitTestsRunCurrentClassExecutes all tests inside the active type (at the caret)Ctrl+T, C
UnitTestsRunFile Executes all tests contained in the active fileCtrl+T, F
ShowTestRunner Shows the Unit Test Runner windowCtrl+T, T

    • New Code Cleanup rules:
      • Collapse Accessors
      • Expand Accessors
      • Remove redundant ‘base’ qualifier
      • Remove redundant ‘this’ qualifier
      • Remove redundant type cast
      • Use explicit ‘this’ qualifier for field access
      • Use explicit/implicit visibility modifiers

    • Member Icons – select member scope.
      MemberIconMenu.png

    • Cycle Scope (member/type visibility) Up/Down with Alt+Up/Down
    • New Selection Embeddings wrap the selected expression inside parens when you press one of the paren keys. Enable these bindings if you want this feature:

      image 

      Also, if you work with a non-U.S. keyboard, check the bindings and redefine them if needed to correspond with the keys you press for the left and right parentheses, and the “!” character.

    • New for Refactorings and Code Providers:
      • Declare Constant - declares a constant for the primitive value at the caret.
      • Introduce Setter Guard Clause - introduces a value-changed check at the start of a property setter, exiting early if the assigned value matches what is already in the backing store.
      • Optimize Namespace References gets a new options page, letting you specify sorting options. You can also use this page to specify which references should be never removed even when they aren’t used.

        image
      • Rename File to Match Type - renames the file (and updates the project), so the file name matches the type name.
      • Remove Unused Member - removes empty and unused event handlers.
      • Now available for Visual Basic:
        • Improved support for code providers declaring classes and members.
        • Add Parameter
        • Declare Method
      • New refactorings for C#:
        • Collapse Property - collapses a property with backing store to a single line if its accessors are empty or contain a single one-line statement.
        • Collapse Accessor - Collapses an accessor to a single line if it is empty or contains a single one-line statement.
        • Collapse Method - collapses a method to a single line if its body is empty or contains a single one-line statement.
        • Expand Property - expands a property, placing its getter and setter on separate lines.
        • Expand Accessor - expands an accessor placing its content on a separate line.
        • Expand Method - expands a single-line method placing its content on a separate line.

     

    • Navigation Providers, accessible by pressing Ctrl+Alt+N:
      • Assignments
      • Base Types
      • Declaration
      • Derived Types
      • Implementations
      • Instantiations
      • Members
      • Overloads
      • Overridden Member
      • Overrides
      • Parent Type

    NavigationProviders.png

    The CodeRush for Roslyn preview is free, and updated every 45 days.

    As usual, please download, give it a try – and let us know how we can make it better (support@devexpress.com).

    WinRT Live Tile Manager: it’s being deprecated

    $
    0
    0

    Two years or so ago, we introduced a component that enabled you to start up and communicate with live tiles in Windows 8 from a WinForms application. So, you know, a non-Windows-RT application talking to a tile on the Start Screen. It was the WinRTLiveTileManager control.

    Let’s put it like this. It’s never been that popular. We can tell how well-used one of our controls is by just looking at tickets in the support center. The more people that use a given control, the more tickets we get about how to use it (our documentation needs improving, in other words), the more tickets we get about issues (our code needs fixing, in other words), and the more tickets we get about new features (our imagination needs a jolt, in other words ;) ). Much as we or any other control vendor would like to pretend, we don’t get things right first time. So in general “popular, widely-used control” means more support tickets. The Live Tile Manager has virtually none; the terms “popular” and “widely-used” don’t really apply.

    The issue for us is that Windows 8 has been replaced by Windows 10 and the Start Screen has gone away (and if I may make a personal comment here: Yessssss!). The desktop rules again and the weird dichotomy between desktop and Start Screen has gone. Ditto, the need for such a control has also pretty much gone. Corresponding to all this evolution in OS capabilities and UI, the “Live Tiles API”, if I may call it that, has drastically changed.

    The upshot of all this is that we have a little-used component, the need for it has pretty much disappeared, and the API has changed. Hence the decision is to not update it for Windows 10 at all and to deprecate it in v15.2. Although it will still be shipped with the install (at least to begin with), it will no longer be installed by default in the toolbox in Visual Studio. It will, in fact, only work with Windows 8:

    WinRTLiveTileManager Is For Windows 8 Only

    Of course, as with any announcements we make about features in our products, feedback is most welcome. Let us know what you think.

    ASP.NET AJAX Control Toolkit - v15.1.4 - Maintenance update available

    $
    0
    0

    A new release of the ASP.NET AJAX Control Toolkit, v15.1.4, is now available. We've included several bug fixes and new features.

    You can download the latest release here:

    ASP.NET AJAX Control Toolkit v15.1

    Click the download button above and the get the latest bits.

    Or use the Nuget package: ASP.NET AJAX Control Toolkit Nuget package

    (If you missed news about the latest v15.1 ASP.NET AJAX Control Toolkit release then please read this helpful blog post.)

    v15.1.4 Includes:

    1. Bug fixes

    • Item 27961 - HTMLEditorExtender dropdown sets “null” font face
    • Item 27955 - AjaxControlToolkit LineChart doesn't work with 3 values in IE11 or Edge
    • Item 27570 - Czech time mask switch between dop. and odp.
    • Item 27736 - HtmlEditorExtender doesn’t correctly handle html links
    • Item 27350 - Typing is not allowed in the ComboBox until list is shown
    • Item 25370 - Watermark CSS class overrides TextBox CSS class
    • Item 27101 - Background doesn't render properly with Multiple ModalPopupExtenders
    • Item 27942 - HtmlEditorExtender adds & symbol when typing < or >
    • Item 27346 - CalendarExtender year change bug when setting StartDate and EndDate
    • Item 26881 - Accordion sets incorrect height
    • Item 27300 - AjaxFileUpload StatusMessage is not updated on fail
    • Item 27315 - BalloonPopupExtender DisplayOnClick does not work
    • Item 27364 - LineChart control script error (can't find parent div)
    • Item 27376 - CalendarExtender updates seconds when clicking "today" button
    • Item 27939 - Tabs generates script fatal error in debug mode
    • Item 27530 - TabContainer CssClass property ignored
    • Item 27917 - MaskedEditExtender clipboard paste broken in IE11
    • Item 27929 - MaskedEdit.js uses functions that are missing in IE8
    • Item 27920 - MaskedEditExtender loses value
    • Item 27921 - Access of undefined array in MaskedEditBehavior
    • Item 27911 - CalendarExtender IE8 NaN error
    • Item 27906 - DropDownExtender HighlightBackColor property only works with basic colors
    • Item 13114 - NumericUpDownExtender IE error
    • Item 27379 - AjaxFileUpload remove button bug in IE10
    • Item 27112 - BalloonPopupExtender visibility problem if it is placed in TabPanel or TabContainer
    • Item 27956 - Autoscroll to TabContainer on AutoPostBack
    • Item 27151 - Vertical Scroll position not in top when page loaded
    • Item 27926 - MaskedEditExtender breaks CalendarExtender
    • Item 27936 - SliderExtender produces a JavaScript error

    2. Features and improvements:

    • Item 27390 - Charts option to hide the plot value display
    • Item 27734 - FileUpload ClearFileListAfterUpload property

    Documentation:

    AJAX Control Toolkit Documentation updated.

    Helpful links

    Helpful documentation articles are available on the CodePlex site:

    Feedback

    Get the latest ASP.NET AJAX Control Toolkit v15.1.4 release and let us know your feedback by reporting it here.

    How to upgrade to v15.1.4

    Please take a look at the 'How to upgrade to v15.1 release' article to see how to migrate your existing ASP.NET AJAX Control Toolkit projects to the new v15.1.4 release.

    Try DevExpress ASP.NET

    We’d like to thank you for installing the DevExpress Edition of the AJAX Control Toolkit and look forward to your feedback as you begin its use.

    When we took over the fabulous ASP.NET AJAX Control Toolkit, our goal was to reach those web developers who want to use great web user interface controls for their web projects and DevExpress ASP.NET provides that and much more.

    Try the free DevExpress 30 day trial.

    Email: mharry@devexpress.com

    Twitter: @mehulharry


    Your Next Great .NET App Starts Here

    Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

    Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).

    WinForms and WPF Diagram Control (Coming soon in v15.2)

    $
    0
    0
    It's that time of year again - time to talk about the new features/products we'll ship as part of v15.2.

    First on my list is our new Visio inspired Diagram Control.

    Before I start describing this new WinForms and WPF control, I want to ask those of you using or planning to use diagrams in a WinForms/WPF project to send an email to beta@devexpress.com. We want to engage you directly during our beta so we can better understand your needs, how you specifically use diagrams within your apps and how we can improve this product going forward.

    WinForms Diagram Control - Designer

    Because this is a significant control, I'm going to write a series of blog posts to detail its capabilities. For today, I'll share a few of its core options and as I mentioned a moment ago, ask active subscribers who are using diagrams to reach out to us so we can get you our beta.

    Standard Operations

    As you'd expect, the DevExpress Diagram Control for WinForms and WPF will support the following functionality:

    1. Drag & Drop
    2. Resizing
    3. Moving
    4. Rotation
    5. Zoom
    6. Cut/Copy/Paste
    7. Delete
    8. Undo/Redo
    9. Snap to Grid
    10. Snap to Items
    11. Animations (WinForms only - WPF will support animations in a later release)
    12. Rulers
    13. Dynamic Grid Background (grid size adjusts to zoom level)
    14. In-place Text Editing
    15. Context Menu + Popup Options Panel
    Shape Collection

    You can't have a diagram without shapes and in this release, we'll ship the following:

    Basic Shape category - 45 shapes
    Basic Flowchart Shape category - 14 shapes
    SDL Diagram Shape category - 21 shapes
    Arrow Shape category - 17 shapes
    Software Icon category - 22
    Decorative Shape category - 10 shapes

    These 130 shapes support parameterization, allowing you to customize shape path. And yes, we've laid the foundation for you to define custom shapes as needed.

    Connectors

    DevExpress Diagram will include Visio inspired connectors (straight, curved and right angle) and automatic routing algorithms. You can also select arrow type (15 options to choose from) and its size.

    ===============

    I'll stop there for now - please keep tuned to our website and these blogs over the next few weeks as I'll dig deeper into this new control and share more of its capabilities with you.




    WinForms Layout Control Enhancements (Coming soon in v15.2)

    $
    0
    0
    In our upcoming release, we've extended the capabilities of our form layout control with the following enhancements - all designed to make layout customization easier and more intuitive.

    Resizing

    During resize operations, you can view current item size within a tooltip for precise item positioning.

    WinForms Form Layout Customization

    In addition, the DevExpress Layout Control highlights items (in red - ok, I admit, it's really pink) that cannot be resized due to size constraints. This feature is disabled by default. It can be enabled via LayoutControl.OptionsView.DrawAdornerLayer.

    WinForms Form Layout Customization Constraints

    Search

    The new Search box within the Customization Form makes it extremely easy to locate items within your form layout. You simply enter the item's name and the Layout Control will highlight the appropriate item automatically.
    This functionality was implemented using the DevExpress Search Control (https://documentation.devexpress.com/#WindowsForms/clsDevExpressXtraEditorsSearchControltopic).

    WinForms Form Layout Control - Search

    Visual Enhancements

    With v15.2, we’ve modified selected item style when in customization mode. These items are now painted using a sky blue color. During drag & drop operations, item drop position uses the color azure.

    =========================

    We'd love to hear your thoughts on these new enhancements. Let us know what you think.


    ASP.NET Grid View - Data Range Filter, Adaptivity and More (Coming soon in v15.2)

    $
    0
    0

    In the v15.2 release, we've added powerful new capability and features to the DevExpress ASP.NET Grid View control. And I'm happy to announce that these features are available for both ASP.NET WebForms and MVC versions of our GridView!

    Responsive & Adaptive!

    This release ships with new options that make your web grid application responsive. Our ASP.NET GridView can now automatically adapt its UI based on the screen size (resize UI elements, hide cells of small columns, switch from a table to a card layout on smaller screens, etc.).

    Date Range Header Filter

    Two new representation modes inspired by Microsoft Windows Explorer are now available for the GridView's date column header filter dropdown. You can define a date range using a calendar or date editors. In both modes, the filter dropdown displays a customizable list of check boxes that allow you to select common date intervals: 'Last week', 'Last month', 'Last year', etc.

    Conditional Formatting

    With this release, our ASP.NET GridView supports Microsoft Excel inspired conditional formatting of individual cells. Your end-users can now highlight critical information, compare data, visualize trends by using data bars, color scales or icons. Format conditions applied to data cells can also be exported to PDF, RTF, XLS and XLSX.

    Truncated Cell Values

    Our ASP.NET GridView can now automatically truncate cell values if they don't fit into cell width. To indicate that the text is clipped, the grid displays an ellipsis ('...'). Point the mouse cursor over an ellipsis to display a tooltip with the full text.

    DevExpress ASP.NET GridView - Text Ellipsis

    Improved EditForm Layout Designer

    This release ships with the improved EditForm Designer available at design time. Its new features include:

    • Ability to move layout items via drag and drop.
    • Ability to assign a nested control to an item via a context menu.

    Sign up now to see the improved layout designer in the upcoming webinar.

    Register for v15.2 webinar

    To see all the new features coming out for the v15.2 release, sign up for the "v15.2: What's New for ASP.NET Developers":

    Click here to register

    Thanks!


    Your Next Great .NET App Starts Here

    Year after year, .NET developers such as yourself consistently vote DevExpress products #1.

    Experience the DevExpress difference for yourself and download a free 30-day trial of all our products today: DevExpress.com/trial (free support is included during your evaluation).

    PDF Document Processor: Updates to PDF creation API (Coming soon in v15.2)

    $
    0
    0

    In our previous major release we introduced the Document Creation API that is used to generate a document layout from scratch as well as create your own graphics on the PDF page using a rectangle, a path, an ellipse, a polygon and other graphic elements.

    v15.2 extends the PDF creation API and provides the document generation for PDF, PDF-A-2b and PDF-A-3b file formats as well as adding the capability to add a link to a page or URI, attach a file and create or modify bookmarks.

    Let’s take a look at what is involved…

    Creating PDF with Graphics

    After creating a new instance of the PdfDocumentProcessor object, you can call one of the CreateEmptyDocument overload methods. These methods have been introduced to reduce memory consumption and improve performance.

    For example, here we can see the CreateEmptyDocument method is called with some PdfCreationOptions.

    using (PdfDocumentProcessor processor = newPdfDocumentProcessor())
                {
                    processor.CreateEmptyDocument("..\\..\\Document.pdf", new PdfCreationOptions()
                    {
                        Compatibility = PdfCompatibility.PdfA2b,
                        DisableEmbeddingAllFonts = false
                    });
                }

    The document creation options are represented by an instance of the PdfCreationOptions class and contains the following settings:

    • Compatibility property - specifies PDF compatibility. This property returns one of the three enumeration values: Pdf,PdfA2b, and PdfA3b. The Pdf compatibility allows you to perform most operations with a document (e.g., document merging, page insertion and deletion), while the PdfA2b, and PdfA3b compatibility can be used only for document creation.
    • DisableEmbeddingAllFontsproperty - specifies whether to prohibit embedding all fonts in a PDF document. You can set this property to true if you wish to not embed all fonts in a PDF document (e.g, the font could not be embedded due to licensing).
    • NotEmbeddedFontFamilies property- specifies font families list that should not be embedded to a PDF document.

    The CreateEmptyDocument method can be called using save options represented by an instance of the PdfSaveOptions class. This class contains encryption options and PDF signature specified using the PdfSaveOptions.Signature property. The encryption options are used to protect a document with a password and permissions. These options can be accessed via the PdfSaveOptions.EncryptionOptions property.

    Once the document has been created you can add graphics to it.

    void doSomething()
            {// PdfDocumentProcessorusing (PdfDocumentProcessor processor = newPdfDocumentProcessor())
                {
                    processor.CreateEmptyDocument("..\\..\\Document.pdf", new PdfCreationOptions()
                    {
                        Compatibility = PdfCompatibility.PdfA2b,
                        DisableEmbeddingAllFonts = false
                    });using (PdfGraphics graph = processor.CreateGraphics())
                    {
                        DrawGraphics(graph);
                        processor.RenderNewPage(PdfPaperSize.Letter, graph);
                    }
                }
            }privatevoid DrawGraphics(PdfGraphics graph)
            {SolidBrush black = (SolidBrush)Brushes.Black;using (Font font = newFont("Times New Roman", 32, FontStyle.Bold))
                {
                    graph.DrawString("PDF Document Processor", font, black, 180, 150);
                }
            }

    Drawing any type of graphic content on a document requires an instance of the PdfGraphics class, so you will need to reference the DevExpress.Pdf.Drawing assembly. To draw graphics, create a PdfGraphics object using the PdfDocumentProcessor.CreateGraphics method and call the Draw method for corresponding elements (e.g., the DrawString method at the specified location with the specified SolidBrush and Font objects).

    To render a page with created graphics, call the PdfDocumentProcessor.RenderNewPage method, this optimizes memory usage (the resources that belong to the different pages are not doubled).

    Adding Hyperlinks

    The PdfGraphics class also contain methods that allow you to add links to a page or URI using either the corresponding PdfGraphics.AddLinkToPage or PdfGraphics.AddLinkToUri method. To add a link to a page, you need to supply an area, page number, and, if necessary, zoom factor and link destination to one of the AddLinkToPage overload methods. The link to URI is created using URI and link area as arguments of the AddLinkToUri method.

    privatevoid AddHyperlinks(PdfGraphics graph)
            {// Create a link to a page specifying link area, the page number and X, Y destinations.
                graph.AddLinkToPage(newRectangleF(180, 160, 480, 30), 1, 168, 230);// Create a link to URI specifying link area and URI.
                graph.AddLinkToUri(newRectangleF(110, 350, 180, 15), newUri("https://www.devexpress.com"));
            }

    Bookmarks Creation

    The Document Creation API provides properties and methods to generate bookmarks via code.

    A PDF bookmark is represented by an instance of the PdfBookmark class. It can be accessed as an item of the PdfBookmark objects list returned by the PdfDocument.Bookmarks property. The PdfBookmark class contains the following properties to customize bookmarks:

     

     

    Action

    Provides access to the bookmark action being executed.

     

    Children

    Specifies the collection of bookmark children for a document with a tree-structured hierarchy.

     

    Destination

    Gets or sets a destination (a particular view of a document) to which a bookmark is referred to

     

    IsBold

    Gets or sets the value indicating whether the bookmark text is formatted as bold.

     

    IsInitiallyClosed

    Gets or sets a value that indicates whether bookmarks are initially closed (bookmark children are hidden) in the navigation panel after a document is loaded.

     

    IsItalic

    Gets or sets the value indicating whether the bookmark text is formatted as italic.

     

    TextColor

    Gets or sets the color for a bookmark’s text in the navigation pane.

     

    Title

    Gets or sets the text that is displayed for a bookmark on the navigation pane.

    Below you can see an example of creating bookmarks via code using one of the PdfDocumentProcessor.CreateDestination overload methods, passing in a page number and page coordinates.

    privatevoid AddBookmarks(PdfDocumentProcessor processor)
            {PdfDestination destination1 = processor.CreateDestination(1, 180, 150);PdfDestination destination2 = processor.CreateDestination(1, 168, 230);PdfDestination destination3 = processor.CreateDestination(1, 20, 350);
                processor.Document.Bookmarks.Add(new PdfBookmark()
                {
                    Title = "PDF Document Processor",
                    Destination = destination1
                });
                processor.Document.Bookmarks.Add(new PdfBookmark()
                {
                    Title = "Display, Print and Export PDF Documents",
                    Destination = destination2
                });
                processor.Document.Bookmarks.Add(new PdfBookmark()
                {
                    Title = "Learn More",
                    Destination = destination3
                });
            }

    File Attachments

    You can attach a file to PDF by calling the PdfDocumentProcessor.AttachFile method as shown below.

    privatevoid AttachFile(PdfDocumentProcessor processor)
            {
                processor.AttachFile(new PdfFileAttachment()
                {
                    CreationDate = DateTime.Now,
                    Description = "This is a sample attached file.",
                    MimeType = "text/plain",
                    FileName = "MyAttachment.txt",
                    Data = GetData()
                });
                processor.SaveDocument("..\\..\\Result.pdf");
            }privatebyte[] GetData()
            {string s = "sample text inside my attached document.";byte[] data = Encoding.ASCII.GetBytes(s);return data;
            }

    The file attachments is represented by an instance of the PdfFileAttachment class. You can specify the attachment creation date, description, mime type, file name, and relationship using PdfFileAttachment.CreationDate, PdfFileAttachment.Description, PdfFileAttachment.MimeType, PdfFileAttachment.FileName, and PdfFileAttachment.Relationship properties. A data source must be specified by using the PdfFileAttachment.Dataproperty.

    Inversely, you can get access to an existing attachments via the PdfDocument.FileAttachments property.

    To delete an attachment, call the PdfDocumentProcessor.DeleteAttachment method.

    =========================

    We'd love to hear your thoughts on these new enhancements. Let us know what you think.

    DevExpress Dashboard - Conditionally Formatted Data Bars (Coming soon in v15.2)

    $
    0
    0

    Over the last few release cycles, we've added Excel inspired conditional formatting support to a number of our products, across .NET platforms. With v15.2, we'll extend conditional formatting support for DevExpress Dashboard with the introduction of formatted data bars.

    For those unfamiliar with this feature, I think a screenshot will best explain it's visual impact/business value when used within a Dashboard.

    DevExpress Dashboard Conditionally Formatted Data Bars

    DevExpress Dashboards allows you to add data bars to grid/pivot table cells that contain numeric values. The following format rules/options are supported.

    Bar - Visualize numeric values using bars. Different colors may be used for positive and negative values. 

    DevExpress Dashboard Formatted Data Bars - Negative Values

    Bar Color Ranges - Visualize numeric values using bars with colors contained in a specific color set.
    Bar Gradient Ranges - Visualize numeric values using bars with colors contained in a specific color gradient.

    Let me show you how to apply these format rules to data displayed within the Dashboard's Pivot Grid item. I'll demonstrate use of Bar Gradient Ranges (I'm going to assume you are already familiar with the Dashboard Designer)...

    Step 1 is to choose the appropriate measure - in this screenshot we're using Reseller Sales Amount. Once we know which measure to use, we'll activate the dropdown menu and select Add Format Rule -> Bar Gradient Ranges -> Red-Blue.


    DevExpress Dashboard Design Time

    Once the Bar Gradient Ranges dialog is displayed, we'll set Intersection mode to Specific level and select the State-province row dimension to highlight values corresponding to individual states.

    DevExpress Dashboard Formatted Data Bar Dialog

    The final step is to press Apply...Here's the resulting output within the Dashboard...



    =========================

    We'd love to hear your thoughts on Formatted Data Bars and how you might use them in your next Dashboard.



    DevExpress Scheduler controls: big changes are coming in v15.2

    $
    0
    0

    One of the more popular controls we have in our platforms suites is the scheduler control. Not every app needs a scheduler, but when you’re having to worry about scheduling resources and appointments, it’s invaluable.

    Although everyone is pretty happy with the scheduler user interface, for a while now we’ve been getting feedback related to performance. Consequently over the past few months we’ve put in a lot of effort into speeding up the scheduler, especially with regard to rendering the layout and data (in this version) and laying down some infrastructural improvements ready for speeding up data retrieval (in a future version). Fairly early on with this exercise we determined that some of our data structures were not optimal and so had to redesign and refactor them.

    First the good news: we have managed to achieve a significant performance improvement by adjusting the way the layout is calculated. For day-view-based views (that is, Day View, Work Week View, and Full Week View) scrolling the views and switching between them is a snap because response times have been significantly decreased. Appointments now scroll smoothly. We’ve tested with as many as 5000 appointments in a view and performance is smooth and fluid. To minimize the occasional “freezing” that can affect the scheduler in your app, calculations are now executed in multiple threads. This advanced asynchronous mode can be switched off if desired; however, even in synchronous mode the layout calculations are faster than before.

    Unfortunately – and here comes the bad news – these changes to the scheduler’s performance envelope have had to be percolated up into the public Scheduler API. And that in turn means some breaking changes, although we have tried to minimize the number and extent of these.

    The biggest change is that several classes have been abstracted out as interfaces, and we’ve introduced several others as well. For example. the most frequently used classes, such as Appointment, Resource, AppointmentDependency are now interfaces; and we’ve added the ISchedulerStorage, IAppointmentStorage, IResourceStorage, IAppointmentLabel, IAppointmentStatus interfaces. This dual approach enables us to leave any legacy code intact (pretty much) while implementing new cross-platform features. For example, different AppointmentLabel and AppointmentStatus classes (which expose IAppointmentLabel and IAppointmentStatus interfaces) exist for each platform. However, the AppointmentViewInfo.Status property now returns an IAppointmentStatus object because the AppointmentViewInfo class instances are used for all platforms and in Scheduler Reports.

    Having laid the foundations for why we have breaking changes in v15.2, I do have to mention that overall the logic used in the Scheduler API has not changed, nor have most of the method and property names and their signatures. It is all very similar, such that the number and nature of the changes you will have to make in upgrading your app are small and easily made:

    • Appointment: no longer has a constructor since it’s now an interface. To construct an Appointment object use SchedulerStorage.CreateAppointment() instead .
    • Resource: no longer has a constructor since it’s now an interface. To create a Resource object, use the SchedulerStorage.CreateResource method. The static property Empty has been removed, and you should use ResourceEmpty.Resource or ResourceEmpty.Id instead, depending on the context.
    • AppointmentDependency: no longer has a constructor since it’s now an interface. You now use the SchedulerStorage.CreateAppointmentDependency method to create an appointment dependency object.
    • The AppointmentViewInfo.Status property now returns an object that implements the IAppointmentStatus interface instead of an instance of the AppointmentStatusBase class.
    • The Appointment.RecurrenceInfo property now returns an object that implements the IRecurrenceInfo interface.
    • Several properties and methods has been marked as obsolete and will be removed in a future major version. You should be aware that this is going to happen at some point and make plans to rewrite your code to avoid them. You can defer these changes until after the v15.2 major release though.
    • Until v15.2 the Appointment.StatusId and Appointment.LabelId properties were declared to be Int32s, since they were in essence an index value into the label and status collections. From the developer point of view, this choice made it really difficult to bind such labels and statuses to fields in an external database. From v15.2 onwards, the new AppointmentStatus and AppointmentLabel objects have their own Id object property which is no longer related to an index of a collection. These objects are returned by the Appointment.StatusKey and Appointment.LabelKey properties (and, obviously, can now be represented as rows in a table in a database). This should help developers who had to devise various workarounds to deal with the original problem.

    Now for the new features!

    1. A new feature is a Brush property for the status that enables the developer to define the brush used to visualize and display the appointment status. In fact the label color and status brush properties are platform-specific in order to utilize native brushes and colors for each platform.

    2. We have implemented a new default appointment form used by your users to create an edit appointment details. This has been designed to mimic the Microsoft Outlook appointment dialog.

    The new scheduler appointment form

    3. The Scheduler control now can indicate the current time by drawing a line in the view. In the Day, Work-Week, and Full Week views the horizontal line can go across the entire view, or it can be restricted to the current date.

    The new time indicator for the current time

    In the Timeline view however, the time indicator is a vertical line drawn down the view.

    The new time indicator for the current time

    Viewing all 2370 articles
    Browse latest View live