October 2008 - Posts

Simplifying our ASP.NET Control Suites

Writing for the web these days is very different from that a few years ago. The same goes for our control suites for ASP.NET: over the past decade we've evolved our original WebForms subscription in many different directions, and currently have five different suites, each different from each other, each providing slightly different capabilities:

  • DevExpress ASP.NET Classic WebForms Controls
  • DevExpress ASP.NET Classic MVC Controls
  • DevExtreme MVC Controls (for ASP.NET MVC and ASP.NET Core)
  • DevExpress ASP.NET Bootstrap for WebForms
  • DevExpress ASP.NET Bootstrap for ASP.NET Core

Of course, these choices don't even factor in the other parts of our DevExtreme product that cater to the pure client-side development community.

In essence, it has become more and more complicated and difficult for us to recommend a particular web control suite for new and existing customers. It is past time to simplify things.

We've taken a good long look at what we have, what is being installed and developed with out there, what feedback we have received from customers, and what would make the most sense to change. As a result we have come to the decision to retire the DevExpress ASP.NET Bootstrap for ASP.NET Core suite.

Rationale for the decision

So why simplify? The first reason: less confusion.

In providing two major libraries for use with ASP.NET Core, it was confusing for you, our customers, which library was the best choice. And similarly, confusing for us to make a recommendation. (The main difference between the two products boils down to the DevExtreme MVC controls providing client-side rendering and the DevExpress ASP.NET Bootstrap controls being server-side. As it happens, client-side rendering works extremely well with the ASP.NET Core framework.)

We therefore decided that we will focus on what we believe is the one best solution for ASP.NET Core: DevExtreme MVC Controls for ASP.NET Core.

Second, and more boring perhaps, is the resources problem. Simple and obvious enough to state: by maintaining one product instead of two means that we'll free up development and support resources so that we can introduce new features more quickly and with more impact to you, our customers.

Third, and perhaps more contentious, is that we believe the DevExtreme MVC Controls provide a much better alternative than the Bootstrap suite. For example, the DevExtreme MVC Controls work both with ASP.NET Core and ASP.NET MVC. They leverage modern web approaches by using client-side rendering (JavaScript) and supporting REST API. By having separate data services (Web API), it allows for:

  • Decreased maintenance costs
  • Improved scalability
  • Decoupled server and client (each can be modified independently)
  • Use of the same data API from mobile apps (native or hybrid)
  • Future-proof (client can be replaced with some new modern technology without rewriting the server-side)
  • Improved performance and user experience

This allows the DevExtreme MVC Controls to work better with the new ASP.NET Core framework than do the DevExpress ASP.NET Bootstrap for ASP.NET Core controls. And, of course, the DevExtreme MVC Controls also include support for Bootstrap themes.

Time for maintenance mode

In conclusion, from this point forward, we are placing the DevExpress ASP.NET Bootstrap controls for ASP.NET Core into maintenance mode. Maintenance mode means that the code will continue to work as is, the documentation and demos will stay online, the product is still supported, we will fix bugs when we (or our customers) find them, however, we will not be introducing any new features. Additionally, we have removed the option to purchase or renew the product.

In short, if you're using these controls today, then by all means continue to do so. We do not, however, recommend starting any new projects with this suite, and would ask that you consider switching to our other controls for ASP.NET Core: DevExtreme MVC Controls.

Migration?

The two suites are different enough that unfortunately a direct migration is not possible. If you are already using the Bootstrap-capable controls, here's what I recommend:

  • Just continue using them; after all, even in maintenance mode, they are still supported. Just be aware that you will not get any new features.
  • Start using the DevExtreme MVC controls in your projects (you can use both types of controls in one project), and slowly replace the Bootstrap controls you've used with the DevExtreme MVC controls.
  • For new projects, just use the DevExtreme MVC controls

Future Plans

We'll continue to grow these existing DevExpress ASP.NET offerings:

  1. DevExtreme MVC Controls (for ASP.NET MVC and ASP.NET Core) - This is a robust library that works great for both ASP.NET MVC and ASP.NET Core. If you want to use ASP.NET Core then use DevExtreme MVC Controls.

  2. DevExpress ASP.NET Boostrap for WebForms - Currently, we only offer 35+ controls for Bootstrap (WebForms). We plan to increase this number and bring over the major office controls too (Spreadsheet and RichEdit). In general, if you use our classic controls ASP.NET WebForms then you should consider using the DevExpress ASP.NET Bootstrap controls for ASP.NET WebForms instead.

  3. DevExpress ASP.NET Classic WebForms Controls - This amazing library of controls offers over 100+ controls and several great features.

  4. DevExpress ASP.NET Classic MVC Controls - The ASP.NET MVC version of our Classic WebForms Controls, this library is another popular choice for developers. Learn more about our MVC controls offerings here.

Feedback

We'd like hear your feedback about this topic:

  1. Have you used DevExtreme MVC Controls with the ASP.NET Core framework yet?
  2. What prevents your from using DevExtreme MVC Controls?
  3. What controls and/or features are you missing from DevExtreme MVC Controls?

Thanks.


Email: mharry@devexpress.com

Twitter: @mehulharry

Bootstrap ASP.NET WebForms - Layout Control Enhancements (v18.1)

Now that the DXperience v18.1 release is available, let's dive into the new features of our Bootstrap Form Layout control.

The DevExpress ASP.NET Bootstrap Form Layout control helps you to build efficient and adaptive form layouts using the Bootstrap grid system.

Layout Groups

Let's start with the new 'Layout Groups' and 'Tabbed Layout Groups'. These Layout Groups serve as containers for Layout Items and allow you to create well organized forms that look great.

Tabbed Login Form

For example, you can easily create a "Login and Register" tabbed form with the Bootstrap Form Layout control. All you need is one tabbed layout group in the control’s Items collection with two layout groups: 'Login' and 'Register'. These groups contain layout items (with editors) to input typical data that's required to login or register for a website. Here's the sample code outline:

<dx:BootstrapFormLayout runat="server" ID="BootstrapFormLayout1">
	<Items>
		<dx:BootstrapTabbedLayoutGroup>
			<Items>
				<dx:BootstrapLayoutGroup Caption="Login">
					<Items>
						...
					</Items>
				</dx:BootstrapLayoutGroup>
				<dx:BootstrapLayoutGroup Caption="Register">
					<Items>
						...
					</Items>
				</dx:BootstrapLayoutGroup>
			</Items>
		</dx:BootstrapTabbedLayoutGroup>
	</Items>
</dx:BootstrapFormLayout>

Adaptive

The Bootstrap Grid system provides classes for different screen sizes. The DevExpress Bootstrap controls help you to leverage these features of the Bootstrap Grid system.

To help you make your layouts more adaptive, some of the layout items support BootstrapLayoutItem.ColSpanXl / ColSpanLg / ColSpanMd / ColSpanSm / ColSpanXs properties. This allows you to define different values depending on the current screen resolution. For example, here the layout changes column count based on the width:

Non-tabbed

Non-tabbed layout groups are useful to visually separate and group a form's sections without using tabs.

Before the v18.1 release, you would need several Form Layout controls to create non-tabbed layout groups. Now, you can add the required groups or another layout group’s Items collection to the control:

<dx:BootstrapFormLayout runat="server" ID="BootstrapFormLayout1">
	<Items>
		<dx:BootstrapLayoutGroup Caption="Registration form">
			<Items>
				<dx:BootstrapLayoutGroup Caption="Authorization Data">
					<Items>
						...
					</Items>
				</dx:BootstrapLayoutGroup>
				<dx:BootstrapLayoutGroup Caption="Personal Data">
					<Items>
						...
					</Items>
				</dx:BootstrapLayoutGroup>
				<dx:BootstrapLayoutItem ColSpanXs="12">
					...
				</dx:BootstrapLayoutItem>
			</Items>
		</dx:BootstrapLayoutGroup>
	</Items>
</dx:BootstrapFormLayout>

Take a look at all of the new features of our Bootstrap Layout control here: ASP.NET Core & WebForms Bootstrap – Layout Control Enhancements (v18.1)

Like it?

We'd love to hear your feedback about the new features of the DevExpress ASP.NET Bootstrap control. Drop me a line below, thanks.


Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET Core Bootstrap - Insert Control Wizard (v18.1)

With the v18.1 release, we've added a helpful wizard for Visual Studio that makes working with the DevExpress ASP.NET Core Bootstrap controls easier. Let's take a look.

Insert DevExpress Bootstrap Core Control

The Insert Bootstrap Core Wizard helps by adding a fully functional DevExpress ASP.NET Core control to your project. It generates the code for you which saves you time. Any of the DevExpress Bootstrap for ASP.NET Core controls can be used.

To invoke the wizard in Visual Studio, right-click the design area of a view and select the 'Insert DevExpress Bootstrap Core Control' option:

Then from the dialog, select and customize the Bootstrap control you'd like to add to your view and click Insert:

Now the wizard will generate the necessary code and insert it into your View at the cursor position.

Take a look at this video that shows how to add a DevExpress Bootstrap Grid for ASP.NET Core using this new wizard:

Like it?

We'd love to hear your feedback about the new 'Insert DevExpress Bootstrap Core Control' wizard. Drop me a line below, thanks.


Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET Core & WebForms Bootstrap - New Scheduler Control (v18.1)

With the v18.1 release, we've added the powerful Scheduler control for both Bootstrap versions of our controls: ASP.NET Core and WebForms.

This new Scheduler controls is packed with several major features, let's take a look.

Various view types

The Bootstrap Scheduler control has several types of view that provide different arrangements and formats for scheduling and viewing appointments:

Day

The DayView enables end-users to schedule and view user events by day.

Demo

Agenda

The AgendaView enables end-users to list appointments by day.

Demo

Full Week

The FullWeekView enables end-users to schedule and view user events for the entire week.

Demo

Work Week

The WorkWeekView enables end-users to schedule and view user events by the working week (Saturdays and Sundays are not displayed).

Demo

Time Line

The TimelineView displays appointments as horizontal bars along the timescales and provides end-users with a clearer overview for scheduling purposes.

Demo

Month

The MonthView enables end-users to schedule and view the user events in a month.

Demo

Grouping

The appointments within the current view can be grouped by dates or resources to facilitate an appointments management.

Group by resources

Appointments are grouped by resources.

Demo

Group by dates

Appointments are grouped by dates.

Demo

No Group by

Appointments with out any grouping.

Demo

Edit Form Customization

The Bootstrap Scheduler provides a ViewModel-driven customization API. This allows to remove, replace, or modify existing form parts or add a new UI parts to the edit forms without re-creating the entire form from scratch.

It provides API methods like: GenerateDefaultLayoutElements, InsertBefore, InsertAfter, FindLayoutElement, and more that allow you to modify the existing layout with ease.

For example:

// generates default layout elements to work with
dialog.GenerateDefaultLayoutElements();
 
var resourceContainerGroup = dialog.LayoutElements.CreateGroup("resourceContainer", (g) => {
   g.LayoutElements.CreateGroup("resourceGroup", (resourceGroup) => { resourceGroup.LayoutElements.Add(dialog.FindLayoutElement("ResourceIds"));
   // moves existing ResourceIds to the created group
   });
   g.LayoutElements.CreateGroup("resourceDetailGroup", (detailGroup) => {
      detailGroup.LayoutElements.CreateField(m => m.Phone);
      detailGroup.LayoutElements.CreateField(m => m.Photo);
   });
});
 
dialog.InsertAfter(resourceContainerGroup, dialog.FindLayoutElement("StatusKey"));// inserts group before existing layout element

Demo

Reminders

Scheduler provides a capability to create reminders. Reminders are used to send alerts at specified time periods before an appointment's start time.

Standalone controls

Some parts of the Bootstrap Scheduler control's UI are available as standalone controls, which can be used side by side with the scheduler control.

Here is the list of standalone controls and check out their demos:

  • BootstrapSchedulerDateNavigator -Demo
  • BootstrapSchedulerResourceNavigator - Demo
  • BootstrapSchedulerViewNavigator - Demo
  • BootstrapSchedulerViewSelector - Demo

Adaptive layout

Last, but not least, the Bootstrap Scheduler provides adaptive features out-of-the-box! That means looks great on desktop and mobile browsers!

Like it?

We'd love to hear your feedback about the new Bootstrap Scheduler control. Drop me a line below, thanks.


Email: mharry@devexpress.com

Twitter: @mehulharry

ASP.NET Core Bootstrap - GridView Control Enhancements (v18.1)

With the v18.1 release, we've added several major features to the DevExpress Bootstrap GridView control for ASP.NET Core. Let's take a look.

Server Mode - Binding to Large Datasets

The Bootstrap Grid View control now supports data binding in server mode. In this mode, the Grid View loads only the minimum amount of data required for display purposes and delegates all data processing (such as grouping and sorting) to the database server.

Demo

Batch Editing

Our ASP.NET Core Bootstrap Grid View control supports data editing in batch mode. Batch modifications allow you to eliminate unnecessary server updates (visual, re-sorting, selection updates, etc.) and speed up grid performance. You update the grid once, after all necessary changes have been made on a client.

ASP.NET Core Bootstrap GridView - Batch Editing | DevExpress

Demo

Bands

With this release, our Bootstrap Grid View control supports column header and data cell bands.

  • Column Header bands allow yo to arrange column headers across multiple rows.
  • Data cell bands allow you to create banded data row layouts allowing cells to occupy multiple rows.

Demo

Cell Merging

Much like Microsoft Excel, the Grid's cell merging option allows you to improve usability by avoiding the duplication of common information. Neighboring data cells across different rows can be merged whenever they display matching values.

Demo

Column Resizing

End-users can now resize grid columns by dragging a column header's border.

Demo

Merged Column Grouping

Our ASP.NET Bootstrap GridView now includes a 'Merge Column Groups' mode. In this mode, you can merge grouped columns by dragging the appropriate column header(s) to the group panel and arrange them across a line.

ASP.NET Core Bootstrap GridView - Merged Column Grouping | DevExpress

Demo

Header Filter - Instant Find

v18.1 introduces a simple and quick way to find column filter values. The Find Panel allows users to enter a search string and initiate a search against all filter values displayed in the header dropdown.

ASP.NET Core Bootstrap GridView Control - Header Instant Find | DevExpress

Demo

Like it?

We'd love to hear your feedback about the Bootstrap GridView for ASP.NET Core improvements. Drop me a line below, thanks.


Email: mharry@devexpress.com

Twitter: @mehulharry

More Posts