The Actipro Blog

All the latest UI control development news from Actipro

SyntaxEditor .NET Languages Add-on IntelliPrompt Improvements

We just released build 275 of SyntaxEditor and its add-ons.  This build has a lot of minor tweaks and bug fixes that have been made over the last 2-3 months.

In addition there have been some major enhancements in the .NET Language Add-on's IntelliPrompt capabilities.

Delegate Improvements

SEDelegates

A demo of how a delegate can be called like a method with full IntelliPrompt

 

Delegates now have full IntelliPrompt capabilities, just like calling methods.  Note how in the screenshot above, a generic delegate is called and a DateTime value is properly returned as the value.  The member list shows the members of the DateTime return value.

Generic Methods

SEGenMethods

A member list displayed for the result of a generic method call

Generic methods can have their return type defined by the parameter that is passed to them.  In the example above, a field called ADateProp which is of type DateTime, is passed as a parameter to the generic method Echo.  IntelliPrompt correctly recognizes that per the definition of Echo, the return type is also DateTime.

Constructed Types

SEConstructedType

Parameter info displayed for a method invoked directly off a constructed type

This feature has been highly requested... IntelliPrompt that functions on a constructed type expression.  In the screenshot above, the Append method's parameter info is displayed, following a new StringBuilder() call.

Beginnings of Lambda Expressions

SELambda

A member list displayed for a lambda expression variable

Lambda expressions are a new concept in the latest C# and VB updates by Microsoft.  In the example above, a member list is displayed for the x variable introduced in a lambda expression.  IntelliPrompt determines that x is a DateTime based on the Func<DateTime, bool> declaration.

Note that not all Lambda expression IntelliPrompt works at this time but we will continue to improve IntelliPrompt in all areas as we move forward.

Enjoy the updates!

Actipro's WPF Product Roadmap - June 2008

We've had a lot of interest from customers regarding our product roadmap for WPF development.  I wanted to post where things currently stand and where our future development priorities lay.  I also would like to give customers the opportunity to voice their opinion as to what they would most like to see added to WPF Studio down the road.

In addition, we are now announcing a new WPF product that will be available after the WPF Studio v4.0 release:  PropertyGrid for WPF.

WPF Product Roadmap

Here is the roadmap for WPF development as of June 2008.

WPF Studio v4.0 Release

The WPF Studio v4.0 release will be available in the next several weeks.  We are still finishing up the two new products that have been added and are in the process of adding samples, documentation, etc. 

Actipro Docking & MDI for WPF

The Docking product implements docking tool windows and MDI functionality for WPF.  We haven't talked too much about the feature set yet, however we'll get into that closer to release time.  Rest assured though that themes are created for all Windows system themes, along with all three Office themes.  It also will offer a huge number of options.

DockingAero

Docking and MDI in Windows Vista

Use the docking tag to search for info on this product in the Actipro blog.

Actipro Gauge for WPF

The Gauge product makes it easy to create any sort of circular, linear, or digital gauge.  These gauges can be used to represent data in digital dashboards, provide virtual instrumentation, and much more.

Clock

A circular gauge that shows how easy it is to create a working analog clock

Use the gauge tag to search for info on this product in the Actipro blog.

After WPF Studio v4.0

The following two products have had work started on them but were placed on hold temporarily while we divert our development resources towards getting WPF Studio v4.0 out the door.

PropertyGrid for WPF

A new product, PropertyGrid for WPF, will provide property grid functionality similar to that found in Visual Studio and Expression Blend.  We will get into more details about the product following the WPF Studio v4.0 release.  However its development is already fairly far along, and we expect it to be ready within a few weeks after the WPF Studio v4.0 release.

PropertyGrid

The first look at our upcoming PropertyGrid control for WPF

SyntaxEditor for WPF

SyntaxEditor for WPF will provide the high quality code editing experience you expect from Actipro, the industry leader in syntax highlighting editing controls and components.  One SyntaxEditor for WPF design goal is to make a common document/parsing library so that it can be shared with the next Windows Forms SyntaxEditor v5.0 and CodeHighlighter.  We also have a ton of new features planned that we will start posting about in the future.

As a WPF Studio Customer, Will I Receive These Products for Free?

As long as your WPF Studio subscription is active when a product is released, you will be eligible to upgrade to the new version and get any new products added to WPF Studio for free.  Each WPF Studio developer license includes a free subscription that can be renewed at its expiration date each year.

What Would You Like to See Added?

Let's hear your comments on what you'd like to see added that hasn't been listed in our roadmap above.

Some suggestions from customers have included:

  • Grid
  • Chart/graph
  • Scheduling
  • Reporting

Please post a comment and rank in order of priority which of these (or your own suggestions) that you would like us to work on.

At Actipro, the opinions of our customers matter and your feedback really will help steer our long term future development efforts.

SyntaxEditor Generic Method IntelliPrompt Enhancements

The latest build 274 of SyntaxEditor's .NET Language Add-on includes several improvements for generic method support.

First, if you call a generic method (defined as T GenMethod<T>()) passing the generic parameter type like (GenMethod<int>().), the member list that is displayed will be for int.

GenericMethods

Demonstrates how the generic extension method ElementAt is applied to a string array twice and SyntaxEditor correctly recognizes the final return value is a char

Second, generic methods on extension methods now resolve types properly as well.  This is especially useful with Linq as you can see in the screenshot above.  Above, ElementAt is a generic extension method defined on Linq's Enumerable class.  The first time it is applied, the string type is returned and the second time it is applied, the char type is returned.

We still have a little more work to do with generic methods but these are some great steps forward!

New SyntaxEditor .NET Languages Add-on IntelliPrompt Features

 

The latest build of the .NET Languages Add-on released today includes some great new features related to automated IntelliPrompt.

Extension Methods

This build adds IntelliPrompt support for extension methods, a new feature found in C# 3.0 and VB 9.0. 

Extension methods allow you to define new methods on existing types without having to sub-class or recompile the original type.  This means you can add functionality directly to types for which you don't have source code.

 ExtensionMethodsSource

The member list displayed for an Int32 parameter, showing how source-defined extension methods are applied

In the sample above, note the extension method ToStringExt is defined on the static ExtMethodProvider class.  In the TestMethod, we press "." to show a member list for its Int32 parameter val and that locates the ToStringExt method, including it in the available members for the Int32 parameter.

Extension methods can be defined in compiled assemblies or in code as above.  The most common use of extension methods is with LINQ.

ExtensionMethodsLinq

A member list displayed for a string array variable, showing how extension methods from LINQ's classes have been added to the normal members that appear on an array

Delegates

The latest build adds IntelliPrompt support for delegates.

Delegate

The parameter info tip displayed for a delegate invocation

EditorBrowsableAttribute Support

Support for recognition of the EditorBrowsable attribute is now available.

 EditorBrowsable

Note that the member list shows an entry for _AVisibleClass but not for _AnInvisibleClass since that class has EditorBrowsable(Never) applied to it

When the EditorBrowsable(EditorBrowsableState.Never) attribute is applied to a type or member, that type or member will no longer appear in member lists.

The attribute is recognized for both assembly-defined and source-defined types and members.

First Look: Docking and SyntaxEditor for WPF

A week or so ago in our newsletter we officially announced the development of Actipro Docking for WPF and Actipro SyntaxEditor for WPF.  These two products when completed will be added to our WPF Studio control bundle.

Also note that we have some other special controls in development as well, but we'll keep those under wraps for now. 

Docking

A WPF window showing tool windows that are docked and in auto-hide mode, along with a SyntaxEditor control in the content area of the DockSite

Actipro Docking for WPF

The Docking product is progressing very nicely and is expected to be the next major product added to WPF Studio.  Its design harnesses our themes framework, thereby making it easy for us to provide alternate themes such as Aero, or Office themes with minimal effort.

Docking includes many of the extremely flexible behavior options that have made our UIStudio Dock for Windows Forms product very popular.  We also have some surprises in store.  We'll get into some of these options and new features in future posts.

Actipro SyntaxEditor for WPF

We're approaching the SyntaxEditor product as an opportunity to do a lot of neat new things and make improvements to the SyntaxEditor for Windows Forms product that is recognized as the industry leader in syntax highlighting editor controls.

One design goal of ours is to try and separate out the document/parsing model to a .NET 2.0-based assembly that could be used by both SyntaxEditor for WPF, SyntaxEditor 5.0 for Windows Forms, and a future CodeHighlighter.

We are working on doing some big language design enhancements too.  Even though what we have now is great, we have a lot more ideas that we want to integrate, making it easier for you to develop both simple and complex language parsers for your editor.

More Sneak Peek Posts

Stay tuned to the blog for more information on Docking, SyntaxEditor and other new controls.  We'll continue to post new information as development progresses.

Filed under: Actipro, In development, WPF, XAML

SyntaxEditor .NET Languages Add-on Adds Generic Type IntelliPrompt

The latest build for SyntaxEditor's .NET Languages Add-on now includes complete generic type IntelliPrompt functionality.

DotNetAddOnGenericTypeMembe

A parameter info tip displayed for a generic type... notice how it has resolved the return type to String

This has been a highly requested feature by customers.  Now you can fully utilize the power of generic types such as generic collections, etc. with the .NET Languages add-on.

For instance, in the screenshot above, after you would complete the indexer reference and press ".", the member list that would display would be for type String.  Type String was declared as the "U" generic parameter in MyCollection, which was passed down to the base Collection generic type.  Therefore the String type was used to construct Collection.  With the most recent build, SyntaxEditor's .NET Languages Add-on can recognize that and provide proper IntelliPrompt related to it.

Enjoy the new features!