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

Using a Secure WebAPI Web Service from a Mobile App

$
0
0


YouTube: Using a Secure WebAPI Web Service from a Mobile App

Check out the webinar video above which helps you learn how to:

  1. Create a secure WebAPI service
  2. Understand authentication & authorization
  3. Consume the service using a mobile app

Github repo

DXDevExtremeWebAPI

Fork the repo, send pull requests, and tell us what've you're using the 'educational' library for by leaving a comment below.

Common terms

Best Practices

Cloud API Service

Public API

Additional resources

Have you tried DevExtreme yet? I'd love to hear about it. Drop me a line below.

Thanks!


#OnlyTheBest

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).


XAF - Validation Module Enhancements for Windows and the Web (Coming soon in v15.2)

$
0
0

In our upcoming release of the eXpressApp Framework, data validation occurs immediately after input focus changes when validation rule evaluation does not require querying additional data from the server. These rules are RuleRequiredField,RuleRegularExpressionRuleStringComparisonRuleValueComparison and RuleRange.


In-place validation is enabled for the Save context by default. To enable it for other contexts, use the AllowInplaceValidation property of the Validation | Contexts | Context node in the Model Editor.


Since rule evaluation occurs on the client side, in-place validation does not occur when:


The asterisk (*) symbol is automatically appended to an editor label when the RuleRequiredField is applied.

In-place validation engine relies on Controllers provided in our platform-specific ValidationWindowsFormsModule and ValidationAspNetModule components.

Note: The ASP.NET module was introduced in v15.2. In order to use in-place validation after upgrading your existing ASP.NET applications to v15.2, be certain to add  this module from the Toolbox into the Application Designer.

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

The XAF Team would love your feedback. Please tell us what you think of these new features.

XAF - Web Map Module (Coming soon in v15.2)

$
0
0

With this release, we're shipping a new Map module for XAF Web apps - allowing you display business objects on different kinds of maps. The module integrates the client-side dxMap and dxVectorMap widgets from DevExtreme into ASP.NET XAF applications via specialized XAF server-side wrappers like List and Property Editors: WebMapsListEditor, WebVectorMapsListEditor and WebMapsPropertyEditor.


Primary Capabilities

While designing this module, we considered customer feedback received during the research we conducted earlier this year and also previous user requests from the Support Center and other sources. Let's take a quick look at the functionality implemented in the initial release:


1. Interactive map displays objects implementing the IMapsMarker interface using the Google Maps API or Bing Maps API:

2015-09-30_1040.png

2. Vector map displays objects implementing the IAreaInfo interface as areas with different colors:

2015-09-30_1056.png


3. Vector map displays objects implementing the IVectorMapsPieMarker interface as pie-chart markers:

2015-09-30_1059.png

You can experience a live demo of our Map module in the ListEditors | Maps section of the offline Feature Center demo that is installed with XAF or check its online version at demos.devexpress.com/xaf/featurecenter once v15.2 is officially released.


Configuration

You can configure map types via the Model Editor invoked from Visual Studio or in code:

1. Configuring WebMapsPropertyEditor for a DetailView:

2. Configuring WebVectorMapsListEditor for a ListView:

3. Customizing the underlying dxMap widget in code of a ViewController for a ListView:

usingDevExpress.Persistent.Base;

namespaceDevExpress.ExpressApp.Maps.Web.Controllers {

   publicclassMapCenterController:ObjectViewController<ListView, Store> {

       protectedoverridevoidOnViewControlsCreated() {

           base.OnViewControlsCreated();

           ((WebMapsListEditor)View.Editor).MapViewer.ClientSideEvents.Customize=GetCustomizeScript();

       }

       privatestringGetCustomizeScript() {

           return@"function(sender, map) {

      map.option('center', 'Brooklyn Bridge,New York,NY');

                      map.option('autoAdjust', false);

    }";

       }

   }

}

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

We'd love to get your feedback on this new Map module and whether you are planning to use it in upcoming XAF Web apps.

HTML5 Form Layout Widget (Coming soon in v15.2)

$
0
0

v15.2 will ship with a great new addition to our HTML5 / JavaScript widget collection - dxForm. As I'll explain in a moment, this client-side widget was designed to simplify how you create and layout forms. 

HTML5 JS Form Layout Widget
The screenshot above helps illustrate the power of this new widget - with dxForm, you can create form layouts of any complexity.  

You may be asking how easy is it to use...The answer is extremely easy. The following screenshot represents a simple form - with a single column layout. To generate this layout, you simply create a form instance and pass a data object to it.

HTML5 JS Form Layout - Default
 
When the dxForm widget generates a form item for a data field, it selects the appropriate data editor (based on data type) and transforms the data field name to a label with appropriate text. For instance, if a data field name is “firstName”, “First Name” will be used for the label. If the auto-generated label does not meet with your satisfaction, you can implement a custom algorithm for label text generation.

Form Layout Customization

Once a form is generated, dxForm gives you a number of customization options so you can fine-tune your forms to meet the exacting needs of your end-users. Layout customization features include:

  • Specify a fixed number of columns within the layout or force the widget to automatically choose the number of columns based upon current form width. The dxForm widget layout is adaptive: It uses a single-column on devices with small screens.
  • Organize items into groups and tabbed pages.
  • Customize label position.
  • Customize the visibility and appearance of “required” and “optional” validation text.
  • Display help/info text label for specific items.

HTML5 JS Form Layout
 

Validation

dxForm allows you to specify validation rules for individual items. If rules are defined for an item, it is marked as a required. Each editor is validated separately when it loses focus. You can, however, validate all editors simultaneously by calling the validate method (when validating all editors, a validation summary will be displayed at the bottom of the form).

HTML5 JS Form Layout and Validation


Updating Values

Form item values are automatically updated when you assign a new data object to the formData option. Alternatively, you can update the required data field using the updateData method. In this instance, the widget is not re-rendered...It only updates the required item values. Two-way binding for AngularJS and Knockout is also supported.

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

Tell us what you think of this new widget - We'd love to get your feedback.

 

HTML5 Scheduler & Calendar - Enhancements (Coming soon in v15.2)

$
0
0

Our upcoming release is going to include a number of enhancements to our HMTL5 JS Scheduler widget, including the ability to customize appointment detail forms. With the help of the new dxForm widget (read my blog post from earlier today), you can now modify all items on the form. Additionally, you can display appointment data using a custom popup.

HTML5 - JavaScript Custom Appointment Form

Timeline Views

Our HTML5 Scheduler widget can now display appointments horizontally across a timeline. The following views are available:

  • Timeline day
  • Timeline week
  • Timeline work week

As you'd expect, grouping appointments by resources is available for these views.

HTML5 - JavaScript - Scheduler Timeline View

Manage Appointment Editing

v15.2 allows you to control appointment editing actions available via the Scheduler's UI. You can now specify whether a user can edit, create, delete, drag or resize appointments.

Appointment Recurrence Enhancements

The Scheduler now allows you to exclude an appointment from a recurrence series. When you edit a recurring appointment, you are now prompted to edit the active appointment or the entire series. In the first instance, the widget creates a new appointment object and adds it to the data source. Otherwise, changes made to the appointment are applied to the entire series.

All Day Events

v15.2 allows you to manage visibility of the all-day event panel. If your scheduler does not contain all-day appointments, you can hide the all-day panel.

Custom Appointment Tooltips

If our standard appointment tooltip does not satisfy your needs, you can now define a custom template for tooltips used within your web app.

UI Events

This release includes new Scheduler widget events so you can perform custom actions when a user interacts with widget elements. These include:

  • onAppointmentClick
  • onAppointmentDblClick
  • onCellClick

Mobile UI Optimizations

Our Scheduling widget is now optimized for use on mobile devices. 

HTML5 - JavaScript Calendar for Mobile Devices

New capabilities include:

A compact drop-down menu is used to switch a view instead of tabs.
A popup with appointment details can be displayed in full-screen mode.
You can now scroll a calendar view horizontally.

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

We welcome your feedback - tell us how you plan on using our HTML5 Scheduler widget in your next web/mobile app.

 

XAF - Web UX Enhancements (Coming soon in v15.2)

$
0
0

In this release cycle, we've evolved our web page templates and themes optimized for touch devices (released in v15.1). While we still continue to refine things, we believe that this feature is ready to be used in production and we do not expect major breaking changes going forward.

In addition to numerous cosmetic enhancements and capabilities that were already test-driven in previous minor updates, let me highlight a few important features:

1. Adaptive and Responsive Layout

Our ASPxGridListEditor supports adaptive layouts and is enabled in the new web style by default. Columns are collapsed automatically when the browser window is resized.

You can control this behavior via the IModelColumnWeb.AdaptivePriority property in the Model Editor invoked for the ASP.NET project. 


This option specifies the column's priority. Columns with a lower AdaptivePriority value remain visible when the browser window shrinks, while columns with a higher value are hidden. Hidden column data can be accessed via the ellipse "..." button. In the image above, both the SUBJECT and PROJECT columns have a lower AdaptivePriority value than others.

2. Device-Specific Settings in ASP.NET Applications

Web applications can now have separate settings for desktop, tablet and mobile devices. Device-specific model differences are stored in the Model.Desktop.xafml, Model.Tablet.xafml and Model.Mobile.xafml files. Database settings storage is also supported.

3. Customizable ASP.NET Templates for Touch Devices

Page templates designed for touch devices can be easily customized. Corresponding project item templates are now available in Visual Studio:

  • DevExpress v15.2 XAF ASP.NET Default Template Content V2
  • DevExpress v15.2 XAF ASP.NET Dialog Template Content V2
  • DevExpress v15.2 XAF ASP.NET Logon Template Content V2
  • DevExpress v15.2 XAF ASP.NET Nested Frame Control V2


Reporting

With v15.2, the DevExpress HTML5 Report Viewer is used by default. 


Our Web Report Designer now supports parameters with complex types (including multi-value parameters for complex types).

Finally, XAF's Reports Module can now store a layout in XML format, making complex report rendering much faster (learn more)!



Confirm unsaved changes

ASP.NET applications can now prevent loss of unsaved data by displaying a warning dialog if a user attempts to close the browser tab, or clicks an Action whose execution may lead to loss of unsaved data.


This behavior is enabled by default. You can disable it using the ConfirmUnsavedChanges property of the Options node in the Model Editor invoked for an ASP.NET project:

The option above is global. To enable/disable the confirmation dialog for a specific Action, use the ConfirmUnsavedChanges property of the ActionDesign | Action node.

By default, the IModelActionWeb.ConfirmUnsavedChanges option is set to true for the following Actions: NextObject, PreviousObject, New, DialogCancel, DialogClose, ChooseTheme, Refresh, Cancel, Edit, Logoff, ChangeVariant

Batch Edit support

ASPxGridListEditor now supports Batch Edit Mode. Unlike other modes, Batch Edit allows you to edit multiple rows and then save all modified objects at the same time.


To enable Batch Edit Mode, set the InlineEditMode property of the ListView node to Batch in the Model Editor and ensure that the AllowEdit property of the same node is set to true.


Please note the following: 

    In Batch Edit mode, the Detail View is not invoked when a user clicks a row.
    A few data types cannot be edited: imagesreferencescriteriafile attachments.
    Initial property values for new objects are passed to the client when the grid control is created and are not updated each time you create objects using the New Command Item.

Batch Edit Mode supports our new ConfirmUnsavedChanges and Validation module features.


Master-Detail support

ASPxGridListEditor now provides built-in support for the master-detail data presentation. To enable it, run the Model Editor for an ASP.NET project, and set the DetailRowMode property of the Views | ListView node to DetailView or DetailViewWithActions.


In DetailViewWithActions mode, a Detail View specified using the DetailRowView property is shown in a detail row. In DetailView mode, the same Detail View is displayed, but the toolbar of its nested List View is hidden.


By default, DetailRowMode is None and the master-detail mode is disabled.

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

Please tell us what you think of these new features.

XAF - Enhancements to Core and other modules (Coming soon in v15.2)

$
0
0
Over the last few days, I've described some of the new features we've introduced into the eXpressApp Framework v15.2. In this post, I'll describe enhancements we've made to XAF's core and other modules.
Reset View Settings
The Reset View Settings Action re-opens the current View and resets all user customizations made to the View's model. This Action is disabled (grayed out) if there are unsaved changes.



Detail Form Layout Customization in Code

With this release, you can customize the Detail View's default layout in your Data Model code using the DetailViewLayout attribute. Please refer to the following example code/screenshot below:

publicclassContact{[Browsable(false)]publicintID{get;privateset;}[DetailViewLayoutAttribute(LayoutColumnPosition.Left)]publicstringFirstName{get;set;}[DetailViewLayoutAttribute(LayoutColumnPosition.Right)]publicstringLastName{get;set;}[DetailViewLayoutAttribute("FullName", 0)]publicstringFullName{get{returnFirstName+" "+LastName;}}[DetailViewLayoutAttribute(LayoutColumnPosition.Left)]publicstringEmail{get;set;}[DetailViewLayoutAttribute(LayoutColumnPosition.Right)]publicvirtualContactManager{get;set;}[DetailViewLayoutAttribute(LayoutColumnPosition.Left)]publicDateTime?Birthday{get;set;}[FieldSize(FieldSizeAttribute.Unlimited)][DetailViewLayoutAttribute("NotesAndRemarks",LayoutGroupType.TabbedGroup, 100)]publicstringNotes{get;set;}[FieldSize(FieldSizeAttribute.Unlimited)][DetailViewLayoutAttribute("NotesAndRemarks",LayoutGroupType.TabbedGroup, 100)]publicstringRemarks{get;set;}}



Non-Persistent Objects Enhancements

In this release we have extended support for usage scenarios when using non-persistent objects first introduced in v15.1:

  • The New, Delete and Save Actions are available for non-persistent objects. Modified objects are accessible using the NonPersistentObjectSpace.ModifiedObjects property.
  • The INotifyPropertyChanged.PropertyChanged event is now triggered for non-persistent objects.
  • The non-persistent Object Space is now accessible for objects that support IObjectSpaceLink.

Security System Enhancements

We continue making the new security system more capable with the following updates:

  • Security permissions are immediately refreshed once the administrator applies changes. You are no longer required to log off all affected users to refresh permissions (learn more...).
  • If the administrator grants certain permissions to a reference or collection property that participates in an association (one-to-many or many-to-many), the same permissions are automatically granted for a property at the other end of this association (learn more...).
  • The Data View mode in now supported.
  • Upcasting is now supported in List View columns.
You should expect more news in this regard after the official release.



General usability and API improvements:

The following is a list of minor features that should make using XAF a little easier. While you can see the full list of these smaller enhancements in our What's New docs, I would like to highlight the following items:

  • S38140 - Core - Introduce IObjectSpace.Evaluate method that will evaluate a criteria expression against both EF and XPO objects (including Domain Components)
  • Q483608 - Core - Make it easier to obtain IQueryable<T> collection through IObjectSpace for LINQ
  • S171061 - Core - Provide an option to avoid saving a master record immediately when a new non-aggregated child object is created in a nested List View
  • S170756 - Core - Provide Refresh method overloads allowing the refresh of the underlying data source
  • T204296 - EF.Usability - Support complex types that are not registered in DbContext and have no key property
  • T177760 - EFDataView - Support common criteria function operators
  • S172038 - Core - Provide a simplified database compatibility check mode; one that relies on the database schema and ignores module assembly versions
  • T312781 - ImagePropertyEditor - Support images declared as reference properties instead of byte array
  • T303205 - Workflow - Add an option to repeat the workflow multiple times while the target object fits criteria

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

I will post additional content on some of these items (like S172038) separatly, once we release v15.2. Please stay tuned and let us know what you think of these new features.

XAF – A Simpler Way to Check Database Compatibility (Coming soon in v15.2)

$
0
0

 

In earlier versions, to check the compatibility of an application and its database, a ModuleInfo table was created in the database. This table stores information on the module versions used in an application. When checking the compatibility of the database and the application, the versions stored in the ModuleInfo table are compared with actual module versions. A DatabaseVersionMismatch event occurs when there's a mismatch. By default, each module's version is set to "1.0.*" using the AssemblyVersion Attribute in the Properties\AssemblyInfo.cs file. The asterisk sign in the version indicates that the build and revision numbers in the version are autoincremented, and so version value is updated with each new build. As a result, WinForms and ASP.NET module versions may not be synced if you build WinForms and ASP.NET applications separately (e.g, when creating a ClickOnce installation or deploying to IIS).

  
With v15.2, we've introduced a new application and database compatibility check mode; one that utilizes native XPO methodologies. In this mode, the following checks are performed:

  1. The database exists.

  2. All required tables exist.

  3. All required columns exist.

 

The DatabaseVersionMismatch event occurs if any of these checks fails.


The new XafApplication.CheckCompatibilityType property specifies which mode to use. The CheckCompatibilityType.ModuleInfo value indicates that the old mode that relies on the ModuleInfo table is used. This mode is still used by default for applications created with earlier versions of XAF. In applications created with the Solution Wizard in version v15.2, the XafApplication.CheckCompatibilityType value is CheckCompatibilityType.DatabaseSchema, which corresponds to the new mode detailed above. This property value can be changed in the Application Designer:


Untitled (1)

 

Note that the use of ModuleInfo is more complicated, but it ensures business logic compatibility in addition to data model compatibility. The new DatabaseSchema mode relies on the database schema only.

A CheckCompatibilityType property has also been added to the IObjectSpaceProvider interface, allowing you to specify the mode individually for each Object Space Provider (when you use multiple databases). By default, it is set to null and the XafApplication.CheckCompatibilityType value is actually used. Another useful change with this interface is the new  IObjectSpaceProvider.SchemaUpdateMode property. You can now use it to specify handle compatibility checking for the database associated with the current Object Space Provider. The following values are available:

  • DatabaseAndSchema - Missing database is autocreated. The database schema is updated when the compatibility check fails.

  • None - Database compatibility issues are ignored.

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

That's my  last post prior to launch and hopefully you've liked what we've done with XAF. As always, we want to hear your thoughts. Please tell us what you think of XAF v15.2.


WinForms Themes - Office 2016 (coming soon in v15.2)

$
0
0

Thanksgiving weekend wouldn't be complete without a few screenshots for our WinForms customers.

Office 2016 Black WinForms Theme

WinForms Office 2016 Black Theme

Office 2016 Color WinForms Theme

WinForms Office 2016 Colorful Theme

We'd love to hear your thoughts on these 2 new themes? Are you likely to use them vs existing Office themes?

WinForms and MVVM

$
0
0

Our WinForms team recently told me that we should do a better job telling the world about our MVVM Framework for WinForms developers. Seems the news hasn't spread fast enough. :)

Reddit | https://www.reddit.com/r/csharp/comments/3u6pp5/modern_winforms_design_whats_your_goto_desigb/

Stack Overflow | http://stackoverflow.com/questions/595469/ui-design-pattern-for-windows-forms-like-mvvm-for-wpf

If you've not yet seen or used our MVVM Framework, please refer to the following blog post from June, 2015.

DevExpress WinForms and MVVM Blog Post  

I'd be curious to hear your thoughts on MVVM and WinForms. How many of you prefer it over traditional WinForms methodologies?

ASP.NET Query Builder (Coming soon in v15.2)

$
0
0

Good news, there is a new ASP.NET control, in the v15.2 release, that allows your end-users to visually build queries! And you can then apply those queries on existing DevExpress controls like the ASP.NET GridView.

Here's a screenshot of the new Query Builder control's UI:

The Query Builder functionality was first introduced as part of our XtraReports' new web report designer. Many of you have requested this as a separate/independent control (and we agree).

Your power users will love this feature as it provides them a visual way to create their own queries.

Query Builder (Preview)

We're introducing the new DevExpress ASP.NET Query Builder control as a preview version in the v15.2 release because it's we're still perfecting it. However, the new ASP.NET Query Builder control has enough of a feature set that we'd love for you to test drive it and give us your feedback.

Features

The DevExpress ASP.NET Query Builder allows your end-users to visually construct SQL queries and return a string containing a SELECT statement. So it contains great features like:

  • The database schema is automatically obtained and displayed within the QueryBuilder's UI.
  • Ability to visually edit 'WHERE', 'ORDER BY' and 'GROUP BY' query clauses.
  • Relationships between tables are automatically resolved based on foreign keys.
  • Query results preview.

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).

HTML5 Chart and Data Visualization Widgets - Enhancements (Coming soon in v15.2)

$
0
0

Our upcoming release includes a number of important enhancements/features to our HTML5 data visualization widgets - making them faster and more flexible than ever before.

Performance

We've been hard at work tuning performance and with v15.2, HTML5 Chart rendering has been improved significantly...In some instances up to 3 times faster.

HTML5 JavaScript Client Side Chart Rendering Performance

Quick Side Note: All DevExtreme HTML5 Data Visualization widgets now allow you to specify a Tile and Subtitle.

Multi-Series Pie Charts

With this release, our Pie Chart widget can display multiple series. Series are displayed as nested rings, which gives end-users an easy way to detect even the slightest differences between point values.

HTML5 Java Script Pie Chart with Multiple Series - Nested Pie Chart Rings

You'll find that we've made it easy to incorporate this new feature in your next web/mobile app - Simply specify several series objects as follows.

series: [

    { valueField: "year1998", name: "1998" },
    { valueField: "year2001", name: "2001" },
    { valueField:"year2004", name: "2004" }
],

We've also made it easier to analyze information with the HTML5 Pie Widget. You can now  interact with a point using its label; necessary when a point value is too small and is displayed as a thin pie or doughnut sector.

HTML5 JavaScript Client-Side Pie Chart Labels

Vector Maps

With v15.2, our HTML5 JS Vector Map widget gets support for the following map projections:


Mercator
Equirectangular
Lambert
Miller

You'll find these projections useful for a number of use-case scenarios  - for instance, a map with a custom projection for a floor plan:

HTML5 JavaScript Vector Map Projections

Another new HTML5 Vector Map feature is support of unlimited layers. As you'd expect with this capability, you can now display additional information on your map using layers (areas, markers and lines). Map layers accept GeoJSON formatted data.

HTML5 Java Script Client-Side Map Layers

You can allow users to select a single layer element or multiple elements. Layer elements support hovered states and can display a tooltip on hover. In addition, you can group layer elements by color or size and display the legend based on grouping.

HTML5 JavaScript Map Layers

 

As is evident in the screenshots above, when used together, multiple layers along with customizable projections provide you a broad range of data visuzliation capabilities/options.

============================
 
Tell us what you think. We want to hear your thoughts on these new features.


What’s New in CodeRush Classic 15.2

$
0
0

CodeRush Classic (CRC) gets two new features in 15.2.

Note that most of our development effort is currently directed toward CodeRush for Roslyn (CRR) which is driven by 45-day sprints between releases. We’ll talk about new features in CodeRush for Roslyn as those releases become available.

In CodeRush Classic, we’ve found clever ways to improve the speed of Quick Nav, making it significantly more responsive.

Also, CodeRush Classic gets two new features in this release:

Code Coverage

CodeRush classic gets Code Coverage, which tells you how much of your application is covered by test cases, which can be one indicator of overall code quality. This feature is also useful when maintaining code – you can get a clear picture of how safe it is to change methods or even individual lines of code. If the code you want to change is covered by test cases, it is safer to change that code (because the test cases covering the code you want to change increase the chances you’ll know immediately if you unintentionally break something).

To see Code Coverage, you need to first run your tests from the CodeRush Unit Test Runner using one of the two orange test tube icons at the top:

 UnitTestRunner

These icons run your tests so CodeRush watches for coverage.

The orange test tube button with only a single green triangle ( RunSelectedTests ) shows coverage provided by only the selected tests.

The orange test tube button with two green triangles ( RunAllTests  ) shows coverage provided by all your tests.

Regardless of which button you press, after the test run is complete, CodeRush reports the results in the Code Coverage window, which looks like this:

 image

The Code Coverage window provides a hierarchical view of the projects in your solution, and shows the code coverage results for each member, type, namespace or project. Results are summarized in the percent graphs on the right, showing the lines of code covered over the total lines of code.

The Code Coverage window optionally shows you a code preview in a separate pane, shown in the screenshot above. Code highlighted in green is covered – that means at least one of the test cases resulted in that line of code being executed. Code with a gray background is not covered by the tests that were run.

You can bring a method of interest to focus inside the Visual Studio editor by right-clicking that node in the tree view and choosing “Go to Method”.

Paste as Xaml/Svg

This is one of the more interesting features we’ve introduced in some time, and it’s for developers who are creating applications and web sites that need scalable graphics. Up until now, creating vector graphics for your applications has been relatively painful, especially if your team lacks a dedicated graphic designer. Existing vector graphic editors are either functionally weak or they require a sequence of tedious export/import steps to get those vector graphics from the graphic editor into Visual Studio.

CodeRush Classic 15.2 solves this challenge rather elegantly, with the new Paste as Xaml/Svg code providers. Just design or open the graphic in your vector editor of choice (Microsoft® Visio, Microsoft® PowerPoint, Adobe® Illustrator, etc.), copy it to the clipboard, and then paste the graphic inside Visual Studio (inside a XAML file or an HTML file using Ctrl+V or Shift+Insert). CodeRush will convert the vector data on the clipboard into XAML or SVG automatically. You can also press the CodeRush key to bring up the CodeRush menu and choose Paste as Xaml or Paste as SVG.

To be clear, here are the steps:

1. Create or open your vector shape in the vector editor of your choice: 
VectorPowerPoint
For example, I used PowerPoint to create the gear shown above by forming a union with four rounded rectangles and a circle, and then subtracting a circular hole from the center (you can create this custom shape in PowerPoint in about 45 seconds – it’s that easy).

2. Copy your custom shape to the clipboard.

3. Paste into the XAML code or into an HTML file inside Visual Studio:

PasteAsXaml 

Of course, you can adjust properties after the paste, such as height/width, fill, stroke, etc.

Here’s the same gear that I created in PowerPoint pasted inside Visual Studio as SVG (and then copied and pasted here into this post):

<svgheight="352px"width="351px"viewBox="0 0 351 352">
 
<defs>
    <
linearGradientid="gradient0"y2="0%"x2="100%"y1="0%"x1="0%">
      <
stopstyle="stop-color: #2e75b6; stop-opacity: 0.5"offset="0%"/>
      <stopstyle="stop-color: #2e75b6; stop-opacity: 0.5"offset="100%"/>
    </
linearGradient>
  </
defs>
  <
pathd="M173,85.0625C124.3125,85.0625,84.8125,124.6875,84.8125,173.5C84.8125,222.375,124.3125,262,173,262
    C221.75,262,261.25,222.375,261.25,173.5C261.25,124.6875,221.75,85.0625,173,85.0625z M153.6875,0L192.375,0
    C197.6875,0,202,4.375,202,9.75L202,33.5625 205.1875,34.0625C219.5,37,233.0625,42,245.5,48.8125
    L252.3125,52.9375 268,37.125C269.9375,35.25,272.375,34.3125,274.875,34.3125
    C277.3125,34.3125,279.8125,35.25,281.6875,37.125L309,64.5625C312.8125,68.3125,312.8125,74.5,309,
    78.25L294.75,92.5625 297.125,95.8125C305.0625,107.5625,311.3125,120.5,315.5625,134.25L318.1875,
    144.4375 336.375,144.4375C341.6875,144.4375,346,148.8125,346,154.125L346,192.9375C346,198.25,
    341.6875,202.625,336.375,202.625L319.9375,202.625 319.1875,207.5625C316.25,221.9375,311.25,235.5,
    304.5,248L298.375,258.125 309,268.8125C312.8125,272.5625,312.8125,278.75,309,282.5L281.6875,309.9375
    C277.9375,313.6875,271.8125,313.6875,268,309.9375L257.75,299.625 257.5625,299.75C242,310.3125,
    224.3125,317.9375,205.1875,321.875L202,322.375 202,337.3125C202,342.6875,197.6875,347,192.375,347
    L153.6875,347C148.375,347,144.0625,342.6875,144.0625,337.3125L144.0625,321.3125 132.125,318.25
    C118.375,313.9375,105.5,307.6875,93.8125,299.75L90.5625,297.3125 78.0625,309.9375C74.25,313.6875,
    68.125,313.6875,64.375,309.9375L37.0625,282.5C33.25,278.75,33.25,272.5625,37.0625,268.8125L51,254.75
    46.875,248C40.125,235.5,35.125,221.9375,32.1875,207.5625L31.4375,202.625 9.6875,202.625C4.375,
    202.625,0,198.25,0,192.9375L0,154.125C0,148.8125,4.375,144.4375,9.6875,144.4375L33.1875,144.4375 
    35.8125,134.25C40.0625,120.5,46.3125,107.5625,54.25,95.8125L54.375,95.625 37.0625,78.25C33.25,74.5,
    33.25,68.3125,37.0625,64.5625L64.375,37.125C66.25,35.25,68.75,34.3125,71.1875,34.3125C73.6875,
    34.3125,76.125,35.25,78.0625,37.125L95.8125,54.9375 105.875,48.8125C114.1875,44.25,122.9375,40.5,
    132.125,37.6875L144.0625,34.625 144.0625,9.75C144.0625,4.375,148.375,0,153.6875,0z"
 
    fill="url(#gradient0)"stroke-width="1"stroke="#1F4E79"/>
</
svg>

If you would like to see how this SVG renders in your browser (with an added animated spin), click here.

So now it’s easy to create your own custom vector graphics and use them inside your XAML applications and web sites.

As always, let us know what you think.

What’s New in CodeRush for Roslyn (preview) 1.0.7

$
0
0

CodeRush for Roslyn (preview) v1.0.7 is now available on the Visual Studio gallery.

Here’s an overview of new and improved functionality in CodeRush for Roslyn (CRR):

Unit Test Runner

The Unit Test Runner now detects and runs unit tests for the MSTest framework. The Test Runner also runs CoreCLR test cases in the DNX environment.

Structural Highlighting

This release includes Structural Highlighting support for C#, Visual Basic and XAML. Structural Highlighting helps you easily see the structure of your code.

Navigation Tools

The Quick Nav and Quick File Nav features have been ported to CodeRush for Roslyn, so you can quickly find symbols and files throughout your solution.

Refactorings

The Refactorings Catalog options page is now available. This options page lists all refactorings and enables you to control the availability of each refactoring.

Code Cleanup

The Make properties auto-implemented code cleanup rule is now available.

Code Coverage

Now you can export code coverage statistics to XML, HMTL, and an NDepend-compatible format. CodeRush for Roslyn also now collects and presents coverage information for MSTest unit tests.

Decompiler

Decompiled code structure now more closely matches the original structure of the code (before it was compiled), and the Decompiler now automatically names variables based on their usage or type.

Additionally, the following code structures are now supported:

  • for and foreach loops
  • using statements
  • auto-implemented properties
  • null-coalescing operators

Give it a Try

As always, you are encouraged to download the CodeRush for Roslyn preview and give it a try.

Side note: One of the new CodeRush 15.2 features, Paste as XAML/SVG, did not make it into the CodeRush for Roslyn v1.0.7 release due to tight development constraints. Our intention is to release this feature in the next CodeRush for Roslyn update, v1.0.8.

Earlier blog posts on CodeRush for Roslyn:

DataExplorer - Data Editing

$
0
0
You’ve been asking for it and here it is - DataExplorer for iOS now supports data editing! It took us some time to deliver this capability (we wanted to do it right) and we hope you'll be able to leverage this new functionality in your next iPhone/iPad app.

If your OData service supports editing, you and your users can:

• Insert new entities into both top level and detail data sources.
• Edit the following data types in form fields: text (including multiline text), number, boolean, date/time, duration, and enumeration.
• Delete an entity from the top level data source.
• Delete a reference to an entity from the detail data source.
• Link an entity to different entity (for instance, a supplier can be specified for a product) using a customizable entity picker.

To enable data editing for a form screen, you will set a single property: “Data Editing”. You can disable editing for specific fields by deactivating the “Data Editing” option for those fields. DataExplorer automatically determines your ability to insert/delete data (and displays the appropriate UI) based on the “Data Editing” option of a form screen.

You can play with this new functionality in the new “Data Editing” sample which supports both iPad and iPhone. Please let us know what you think (good or bad). Do you need additional data editing functionality to make DataExplorer your go-to solution for iOS? We appreciate all your feedback.

Announcing DevExtreme ASP.NET 5 TagHelpers - Available Now

$
0
0

I'm happy to announce the availability of the new DevExtreme ASP.NET TagHelpers for ASP.NET 5 (MVC 6).

And we want to hear your feedback about our new TagHelpers! So we're making these 7 new TagHelpers available while the ASP.NET 5 framework is being developed.

If you're not familiar with ASP.NET 5, then take a look at the many helpful links from this post.

Preview Version

We're introducing the new DevExtreme ASP.NET TagHelpers as a preview version because:

  1. ASP.NET 5 (MVC 6) has not been released. However, a release candidate is available now.
  2. We're still perfecting and improving our TagHelpers.

However, the new DevExtreme ASP.NET TagHelpers have enough of a feature set that we'd love for you to test drive them and give us your feedback.

What's included?

The following 7 major widgets from our powerful DevExtreme library are available as TagHelpers for ASP.NET 5:

  • Grid
  • Chart
  • Pivot Grid
  • Pie Chart
  • Range Selector
  • Scheduler
  • Sparkline

Demos of these widgets are available here.

Getting Started

To get started using the new DevExtreme ASP.NET TagHelpers, please take a look this getting started guide:

DevExtreme ASP.NET TagHelpers - Getting Started

Then give us your feedback here: Issue Tracker

Why is this awesome?

ASP.NET 5 is shaping up to be a great framework.

And by using the DevExtreme TagHelpers with ASP.NET 5, your end-users will get the amazing DevExtreme User Interface, features, and functionality that they have come to love.

And it will save you several development hours by using our robust tools.

The new DevExtreme ASP.NET TagHelpers will help you to deliver great web solutions on the ASP.NET 5 framework.

What is a TagHelper?

TagHelpers are a new feature of ASP.NET 5 (MVC 6) that allows preprocessing of HTML attributes with server side content. As Scott Hanselman demonstrates, TagHelpers provide cleaner code:

TagHelpers also replace the concept of Html Helpers in ASP.NET MVC 6.

Open-Source MIT License

The new DevExtreme ASP.NET 5 TagHelpers are provided on GitHub with an MIT license. The source is open for you to view, fork, submit pull requests, etc.

To use the DevExtreme ASP.NET TagHelpers, you will need a DevExtreme license.

-

Have you tried the new DevExtreme ASP.NET TagHelpers yet? I'd love to hear about it. Drop me a line below.

Thanks!

@mehulharry


#OnlyTheBest

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).

DevExtreme Mobile Enhancements: Performance, VS Tools, and Data Layer - (v15.2)

$
0
0

The DevExtreme Mobile framework has a ton of enhancements in the v15.2 release. And the release is available now but first, let’s take a closer look at the enhancements:

SPA Framework Performance Improvements

We have significantly improved performance of the DevExtreme SPA framework.

And we have implemented a caching mechanism to speed-up application loading and initialization on subsequent startups.

Click on the following images to see the charts in detail. They display the time in milliseconds spent on a particular operation performed using our SPA framework between versions 15.1 and 15.2, and the performance growth for different platforms.

 

Visual Studio Integration

A new Cordova Application project template enables you to use all benefits of an Apache Cordova application (capability to build the app for different platforms including Windows 10 and iOS 9) in addition to DevExtreme application features such as designer and view wizards.

This template is based on a standard Blank App (Apache Cordova) template shipped with Visual Studio 2015 and includes DevExtreme project files, Bower configuration file, and a Grunt task used to update DevExtreme libraries.

Of course, building of applications for iOS 9 is also supported by other DevExtreme application templates.

And starting with version 15.2, you can load Phone Gap plug-ins used to build your application from the npm repository. Just add the gap element with the plug in name to the config.xml file and build custom application template.

New Win 10 theme

With the Windows 10 theme, you can now create mobile applications that look native on Windows 10 devices:

Integration with Parse Core library

DevExtreme data layer is ready to be seamlessly used with the Parse cloud data storage. Now you can utilize all the advantages of cloud storage and the Parse Core library in your DevExtreme apps. The Parse Core handles your entire backend so your team can focus on making an engaging user experience. You don't need to worry about databases, performance, or scaling.

For interaction with the Parse Core library, we have implemented the ParseStore class, which supports the universal Store interface accepted within the DevExtreme data layer. It enables you to easily bind data stored in a Parse cloud to DevExtreme widgets.

-

Have you tried the DevExtreme v15.2 release yet? I'd love to hear about it. Drop me a line below.

Thanks!

@mehulharry


#OnlyTheBest

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).

Visit DevExpress at CodeMash 2016

$
0
0

Come by the DevExpress table at CodeMash 2016 this week. Mark Miller and I will be there and would love to meet you.

Mark will be showing off all the latest CodeRush Roslyn goodies that his team has been cooking up. And, I'll show you all the latest 15.2 release features including our new ASP.NET 5 TagHelpers

CodeMash is a great conference where thousands of developers from many different platforms converge at the Kalahari Resort (and water park).

DevExpress is happy to be a platinum sponsor and have the chance to meet and talk with so many developers in the mid-west region.

Live Session

Come to my talk on Friday at 1:30 pm in the Cypress room. I'll present the following session:

Title: Using a Secure WebAPI Web Service from a Mobile App

Abstract: Learn how to create a WebAPI service and then consume it using a hybrid mobile app (or any client-side framework). This talk will show you what it takes to create a secure WebAPI service on the server-side and what calls are needed to authorize and get the resulting JSON data.

Raffle

And stick around till the end of CodeMash when they do the raffle prizes. We're giving away DevExpress license and you could be a winner.

Are you going to CodeMash 2016? Drop me a line below.


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).

WPF Class In Germany - February 2016

$
0
0

2016 is off to a great start - Happy New Year, everybody! 

Something you may have missed in the run-up to Christmas as well as the excitement around our 15.2 launch is the announcement of a new WPF product training class that will take place in Bad Ems, Germany in February. 

Audiences at all our classes are international and the class language is English. A variety of other details can be found on this web page, including a syllabus for the class. (Please note that I just discovered a few inaccuracies in the syllabus and it's being updated right now - most importantly, the product suite version covered will be 15.2 for the February class. If you have other questions about the syllabus, please ask!)


So what's this class about then?

The class covers several of our WPF products, to varying degrees. It starts at the beginning, so you don't need much experience. There are presentation parts in the class as well as lots of practice tasks - plus of course the opportunity to ask questions and meet other DevExpress WPF users! If you have questions about the content or the format of the class, or you aren't sure whether it's the right thing for you, please check out the class details and feel free to send us email.


When does it take place and what's the time schedule?

February 24-26 2016 - three days, 9am to 5pm the first two days and roughly 9am to 3pm on the last day. There are breaks of course, but overall this comes to a scheduled total length of 16.5 hours.


And the location?

The class takes place at Häcker's Grand Hotel in Bad Ems, Germany. The location is easy to reach for customers in Germany as well as all those flying in from Europe (or indeed elsewhere!) into Frankfurt am Main airport (FRA). 


Isn't Bad Ems kind of hard to reach? I checked out Google Maps and now I'm scared!

Yeah, we've heard that before. It's not really true though! We have literally helped thousands of training class attendees reach Bad Ems in the past and we will gladly help you sort out travel arrangements or even do it for you. Feel free to get in touch and ask about it!


Cool, sign me up!

Excellent! Please follow this link and fill in the form at the bottom of the page. We will get back to you as soon as possible - and see you in Bad Ems! (By the way - I really recommend to go for the complete package and stay at the hotel. It's a great place, and the majority of our attendees usually stay there, which offers you a great opportunity to spend time with others who also use our products. A great additional benefit of a classroom training event!)


NDC London 2016 is just around the corner

$
0
0

I've had a very good start to 2016. On January 1st, Microsoft contacted me to inform me that I had been given the Most Valuable Professional award (MVP). In addition to that, I am happy to be attending NDC London this week, which is happening at the ExCel Centre from January 11th till 15th.

There is a great speaker line-up with dozens of interesting sessions. Make sure to check out my session which is my first one as a Microsoft MVP!

DevExpress is proud to be a sponsor of this event, and John and I will be available at the DevExpress booth to show you demos of the new features of our v15.2 release.

If you didn’t have time to watch our “What’s New” webinars, we’ll be more than happy to show you things like our new DevExtreme Cordova project template with NPM, Bower and Grunt support, our awesome DevExtreme Form Widget, new adaptive features on several of our WebForms controls and MVC extensions and much more!

If you’re up for a good Cappuccino, Espresso, Café Latte or other caffeinated drink, make sure to stop by our booth because we have a Café Barista on our booth with some real professional café artists.

image

While waiting for your coffee to be prepared, you can enter our daily raffle and pick-up a new DevExpress T-Shirts or maybe some other goodies.

Not interested in drinks, T-Shirts, prices? Just stop by to say “Hi”, and maybe tell us what you do (or want to do) with our products.

I hope to see you this week at NDC London 2016!

Viewing all 2370 articles
Browse latest View live