RadControls for ASP.NET AJAX Dynamic Data update
This is just another update of RadControls for ASP.NET AJAX control integration with DynamicData for .NET 4.
What's updated:
- New BinaryImage FieldTemplate - uses RadBinaryImage in view mode and RadAsyncUpload in edit mode.
- Updated RadGrid support for Dynamic Data - implements IDataBoundControl interface
Survey Shows Continued Developer Shift To Java
WaveMaker recently conducted a survey of WaveMaker Community members. The survey focused on how and why developers are migrating from proprietary development platforms to standards-based Java.

Here are some findings:
What Platforms Are Being Modernized?Almost half of the developers in the survey are migrating from proprietary Microsoft platforms like MS Access (25% of responses) and MS .NET (24% of responses). Other common platforms include Oracle Forms (8%), PowerBuilder (8%) and Lotus Notes (4%).
What Are the Drivers for Migrating from Microsoft Tools to Java?Over half of all survey respondents are moving from proprietary development platforms to Java to get better support for web development and take advantage of less expensive, open source software. One third of respondents are choosing a new development platform to get better support for cloud development.
- - Better support for web development 69%
- - Moving to open source 58%
- - Moving to Java 42%
- - Better support for cloud development 33%
According to stackoverflow.com, the average time to learn the Java core is about 10 weeks for an experienced developer – that is just for the language and not for frameworks like Java EE, Spring, Hibernate and Ajax. Survey developers reported that their average time to learn Java using a visual development framework like WaveMaker was 4.4 weeks, less than half the time required to just learn the Java core.
Benefits of Visual Development Platform for JavaA visual development platform for Java such as WaveMaker can dramatically lower development costs. On average, developers reported writing 60% less code with WaveMaker than with a proprietary development platform like Visual Studio. In large part this is because WaveMaker includes a visual IDE that eliminates the need to write code to create basic, form-driven Java applications.
Developers also reported an average 50% improvement in productivity using WaveMaker and a 60% reduction in application maintenance costs. Again, this can be attributed to WaveMaker’s drag and drop IDE. Because WaveMaker generates standard Java applications, developers can switch back and forth between the WYSIWYG WaveMaker studio and a Java coding IDE like Eclipse or NetBeans.
Community Feedback Shows Benefits of Shift to JavaSurvey respondents also provided detailed examples of the benefits they have gotten from using WaveMaker to migrate from proprietary platforms like MS Access and MS .NET to standards-based Java. Community member quotes include:
“WaveMaker flat out saved my job! Using WaveMaker, I built an inventory tracking application using 80% less code than I would have needed in MS Access, making me much more valuable to my employer!” – Robert Manshack, New Development, IT, Texas Department of Criminal Justice
“WaveMaker allowed me to quickly build a web-based insurance claims application that was faster and provided more functionality than the original tool – MS Access. Best of all, I did it in only 20% of the time that it took to build the original MS Access application!” – Rob Geib, Partner, MarKur Networks, LLC
“WaveMaker is awesome because it simplifies everything, and for a cheaper price than all of the expensive, hard-to-use programs like Microsoft .NET. I love it!” – Cameron Winget, Cameron Inc.
Original link: http://www.prweb.com/releases/survey-shows-continued/developer-shift-to-java/prweb4322114.htm
Ask Satyam — and Be Eligible for a Free Copy of the New YUI 2.8 Book from Packt
Satyam (Daniel Barreiro) wrote last week about his experience writing YUI 2.8: Learning the Library, the new YUI 2 volume now available from Packt.
Packt has generously offered a few free electronic copies to YUIBlog readers. Suggest a question or tutorial you’d like to see from Satyam on a YUI 2.8-related topic as a comment on this post, and if Satyam picks your suggested topic for one of his three “Ask Satyam” blog posts Packt will make an electronic copy of Satyam’s book available for you to download.
Satyam will be posting answers to his three favorite questions here on the blog over the next month or so.
Forward mapping a model with associations
In this post we will discuss how to add associations in a forward mapping scenario with our Visual Designer. We will start from scratch and build a model with two entities – Category and Product where each Product belongs to at most one Category (a zero-or-one-to-many relationship from the categories to the products).
1. In the solution explorer right-click your project (where you want to add the persistent types) and select OpenAccess -> Add Domain Model. We will create an empty model.
2. The next step is to create a new database which we will name WarehouseDB. Creating a brand new database can be achieved when we select the New Connection option in the next dialog. There we can pick the server name and type our database name. When we click OK we are prompted to add the database to our server.
3. After our database has been ...
Announcing Ext JS 3.3 Beta – PivotGrids, Calendars and More
TeamPulse is LIVE!!
Here is a quick summary of the features for the Q2 2010 Release:
1. Community and Standard Editions
- Fully functional Community Edition is free with a limitation of 5 users and 1 project
- Standard Edition is $249 USD per user
2. Requirements
- Story Management
- Persona Management
3. Planning:
- Project Release Scheduling
- Iteration Planning
- Work Decomposition
4. Tracking
- Project Dashboard
- Story Board
- Current Iteration Tracking Grid
5. Analyze
- Best Practice Analyzer
You can download TeamPulse here: http://www.telerik.com/team-productivity-tools/download.aspx
Benefits of TeamPulse: http://www.telerik.com/team-productivity-tools/benefits.aspx
Here is a list of all of our produce videos to date:
- Lap Around TeamPulse
- Area and Iteration Manager
- Activation
- Decompose into Work
- Choosing TeamPulse
- Personas
- What Makes TeamPulse Different
- Tracking Overview
Check out our product page here: http://www.telerik.com/team-productivity-tools.aspx
Don’t ...
The new Telerik OpenAccess Schema Update wizard
One of the new features of Telerik OpenAccess ORM Visual designer is the forward mapping wizard that can be used to update the database schema from the model. Yes it is true! With just few clicks you are able to generate and execute either a schema definition or schema update script that will alter you database schema.
First you will need to open our Schema Update Wizard. You can do this by either right clicking in the schema explorer or in the model explorer: the command is named Update Database from Model… This will open the following page:
On the first page you can select from several schema update strategies (you can do so from the first panel):
- Generate schema definition script – Generates a complete schema definition script. This option will not take in consideration the current schema.
- Generate schema migration script – Generates a migration script. The migration ...
Explained: RadGridView for WinForms virtualization and its implications. The case with CellElement and RowElement
As the Logical vs. Visual Grid Structure help article states, RadGridView for WinForms uses virtualization for its cells/rows and as of Q2 2010 there is column virtualization as well. What is virtualization? To put it simply, when you bind RadGridView to a DataTable with 1000 rows, you get 1000 data row objects created in RadGridView (of type GridViewDataRowInfo). However, not all data row objects can be visible at the same time in the RadGridView estate in your application. This is why only the visual rows that can be shown in the estate get created (these visual rows are of type GridDataRowElement), or about 20-30 rows for an average application with medium sized RadGridView. These visual rows are reused during scrolling, filtering and other operations with the grid, meaning dramatically improved performance and memory footprint as we create only a small number of visual items, rather than all of them. This ...
JustMock. The tale continues... (Part 3)
Last time we saw how we can inject code at the beginning of generic methods. Today I will show you how to inject code in properties. I will cover the syntax for static classes as well.
So, let's start with a demo program that I will explain line-by-line.
using System; using Telerik.CodeWeaver.Hook; namespace ConsoleApplication4 { public sealed class TargetClass1 { public TargetClass1(string text) { Text = InitText = text; } public string InitText { get; private set; } public string Text { get; private set; } public int Integer { set { throw new NotImplementedException(); } } } public static class TargetStaticClass { public static void PrintText(string text) { Console.WriteLine(text); } } class Program { ...New videos for Telerik WebUI Test Studio
The new version of Telerik WebUI Test Studio has been out for a couple of weeks and we have already received a lot of positive feedback on the new features and improvements we have made. We have also produced a lot of new video content to help you get quickly started:
- Webinar: What's New In WebUI Test Studio Q2-2010
- Silverlight Child Windows And Popups
- Out of Browser Silverlight Applications
- Image Verification
- Manual Test Steps
- Export Storyboard To HTML
- Continue Recording From Step
- Connect To Existing Browser Instance
- Handling UnExpected Dialogs
- Getting Started With Silverlight
- Getting Started With AJAX
- Getting Started With Test Lists
Enjoy all these videos and let us know of any feedback you have. We are always open to your ideas for new features ... and new videos.
Read more on Telerik Automated Testing Tools
The first Ribbon Bar for Silverlight, to fully comply with the Microsoft fluent UI guidelines.
This week we will release new major feature for the RadRibbonBar – keyboard access.
KeyTips provide keyboard access to every control in the Ribbon. They are activated by pressing the ALT key, following by the key for the button you want to activate. KeyTips are very well explained at the Microsoft’s fluent UI guidelines, you can read more about KeyTips on msdn…
This feature is in the Required section from the Ribbon specification, but it’s nature and hard implementation details was preventing us from implementing it sooner.
Currently this feature is the one with most votes in our PITS system, thus we considered it for high priority.
Announcing the first keyboard support for Silverlight Ribbon Bar.Currently this is feature is not implemented by any other control vendor for Silverlight. Telerik is the first to offer this feature.
KeyTips are also available for the ApplicationMenu, QuickAccessToolbar, drop down items – ...
YUI 3.2.0 Preview Release 1: Touch Event Support, Gestures, Transitions, CSS Grids, ScrollView, Uploader, and More
The YUI contributor’s team is pleased to announce the first developer preview of the upcoming YUI 3.2.0 release. This preview provides an opportunity for developers and implementers to help test the release for potential regressions and to provide feedback on new features and components. If you have an existing YUI implementation, please exercise YUI 3.2.0pr1 in your development environment and let us know what you find.
There are three ways to get started with the preview release:
- Use from the CDN: YUI 3.2.0pr1 is available on the CDN via the 3.2.0pr1 version tag — so you can reference preview-release files like http://yui.yahooapis.com/combo?3.2.0pr1/build/yui/yui-min.js. If you switch to this seed file for the preview release, all subsequent use() statements will continue to load YUI 3.2.0pr1.
- Download the release: Download YUI 3.2.0pr1 from YUILibrary.com, including source code and examples for all components — including those new to this release.
- Explore the examples: As a convenience, we’ve posted the preview (along with the functioning examples roster) to YUIBlog. Feel free to explore the release there as a prelude to switching your CDN version reference (or downloading the preview) and testing it out in your own environment.
As with all YUI development work, you can track our current plans and progress on our YUI 3 tasklist, including a comprehensive list of YUI 3.2.0 (and some upcoming 3.3.0) changes; you can also check in on our progress addressing issues in the bug database. Here are some of the new and updated components featured in the 3.2.0 developer preview:
- Intrinsic support for touch events has been added (mynode.on("touchstart", function(e) {});). We’ve also added a Gestures module with two bundled gestures — gesture-flick and gesture-move — that work with both touch- and mouse-driven devices. Check out the API docs or the bundled sample page for ideas about how to start using Gestures.
- YUI’s intrinsic Loader now supports capability-based loading. This allows us to segregate, for example, IE-specific code into separate submodules and allow the Loader to bundle that code only for browsers that require it. We’re leveraging this new feature to avoid shipping IE-specific code in the Dom module to non-IE browsers, a performance/k-weight boost that will benefit all users of modern browsers with no code change required.
- YUI 3’s animation portfolio now supports transitions via the Transition module, providing browser normalization for this powerful, hardware-accelerated (where available) technique for handling transitions; check out the example for sample code. Animation, in its most basic form, has a streamlined dependency tree for modern browsers, significantly reducing the k-weight for simple animation in better browsers.
- YUI 3.2.0 will bring with it a new beta version of YUI’s CSS Grids component, and you can begin exploring this new approach to Grids in the preview release. The examples are the best place to start.
- We worked with Michael Johnston of the Yahoo! Mobile Engineering team to bring a new (beta) ScrollView widget to YUI 3.2.0. ScrollView provides a scrolling pane implementation familiar to users of native Apple iOS applications, emulating the elasticity of the element when scrolled to the beginning or ending limit. You’ll see in the 3.2.0pr1 examples for ScrollView that this component is device neutral, working well with a mouse as well as with touch events on your Android or iOS device.

- The Uploader component from YUI 2 is now part of the YUI 3 family as well, debuting as a beta in 3.2.0.
- The History module that debuted with YUI 3.0.0, which was a port of the YUI 2 version, has been deprecated (it remains available in YUI 3.2.0 as history-deprecated). A new beta History utility debuts in 3.2.0, based on Ryan Grove’s History Lite module from the YUI 3 Gallery. A preview-release example from the new component is a good starting reference.
- The JSONP and YQL Query modules from the YUI 3 Gallery have become canonical components, debuting as beta in this release.
The goal of a preview release is to make it as easy as possible for all of us in the community to evaluate progress of the upcoming release and provide feedback. Please take some time to test 3.2.0pr1 and let us know what you find by filing tickets in the YUI 3 bug database marked as “Observed in version” 3.2.0pr1. We’ll do our best to address preview-release questions on the YUI 3 Forums, too.
Dive Into Dojo Chart Theming
The previous installment of the Dive Into Dojo series shows how easy it is to Dive Into Dojo Charting to get started with Dojo’s charting library. It comes with dozens of stylish themes you can effortlessly plug into any chart. But what if you want your charts to match your website’s design or business’ branding? No worries: Dojo’s charting library allows you to create custom themes!
Setting Up Your NamespaceAll of Dojo’s charting themes live with in the dojox.charting.themes namespace. As is the best practice with custom class creation with Dojo, we’ll create our own namespace for our custom chart themes. Let’s give our custom theme the davidwalsh.charting.themes namespace. davidwalsh serves as my namespace for all custom Dojo classes and I’ve chosen to mimic the path dojox uses to themes.
/* declaring charts within my namespace */dojo.provide("davidwalsh.charting.themes.SitePen");
dojo.provide("davidwalsh.charting.themes.SitePenFTW");
Quick Peek at a Simple Theme
The levels of complexity within Dojo themes can vary greatly depending on your desire to use simply define colors or implement advanced features like gradations, markers, scrolling, panning, and chart events. Let’s start by looking at a basic theme called Dollar:
dojo.provide("dojox.charting.themes.Dollar");dojo.require("dojox.charting.Theme");
(function(){
dojox.charting.themes.Dollar = new dojox.charting.Theme({
colors: [
"#A4CE67",
"#739363",
"#6B824A",
"#343434",
"#636563"
]
});
})();
Dollar illustrates how simple creating a theme can be; provide a list of colors and you’ve created a custom theme!
Basic Custom Theme: SitePenNow that we’ve seen how simple it is to make a basic theme, we can easily create a custom SitePen theme base on the SitePen logo colors:
dojo.provide("davidwalsh.charting.themes.SitePen");dojo.require("dojox.charting.Theme");
(function(){
davidwalsh.charting.themes.SitePen = new dojox.charting.Theme({
colors: [
"#f2f2f2",
"#bed3d9",
"#7fc25d",
"#60b32b",
"#277085",
"#333"
]
});
})();
Your colors array can have any number of colors. Colors are repeated in sequence within the chart, if necessary. Check out a few different charts using the new SitePen theme:
Advanced Chart ThemingWith the basic SitePen chart theme, we simply defined a series of colors we’d like used in the chart. With advanced chart theming, you can customize everything from default plotareas, axis, series, and marker colors, fonts, and strokes. The amount of control you can have over your charts by creating your own theme is truly incredible. Using Tom Trenka’s “Tom” theme as a template, let’s further customize and enhance the SitePen theme.
/* requires and provides */dojo.provide("dojox.charting.themes.SitePenFTW");
dojo.require("dojox.gfx.gradutils");
dojo.require("dojox.charting.Theme");
/* define the theme */
(function() {
/* create shortcut references to dojox classes */
var dc = dojox.charting, themes = dc.themes, Theme = dc.Theme, g = Theme.generateGradient,
/* fill settings for gradation */
defaultFill = {type: "linear", space: "shape", x1: 0, y1: 0, x2: 0, y2: 100};
/* create theme */
davidwalsh.charting.themes.SitePenFTW = new dc.Theme({
/* customize the chart wrapper */
chart: {
fill: "#333",
stroke: { color: "#333" },
pageStyle: {
backgroundColor: "#000",
color: "#fff"
}
},
/* plotarea definition */
plotarea: { fill: "#000" },
/* axis definition */
axis:{
stroke: { // the axis itself
color: "#fff",
width: 1
},
tick: { // used as a foundation for all ticks
color: "#fff",
position: "center",
font: "normal normal normal 7pt Helvetica, Arial, sans-serif", // labels on axis
fontColor: "#fff" // color of labels
}
},
/* series definition */
series: {
stroke: { width: 2.5, color: "#fff" },
outline: null,
font: "normal normal normal 8pt Helvetica, Arial, sans-serif",
fontColor: "#fff"
},
/* marker definition */
marker: {
stroke: { width: 1.25, color: "#fff" },
outline: { width: 1.25, color: "#fff" },
font: "normal normal normal 8pt Helvetica, Arial, sans-serif",
fontColor: "#fff"
},
/* series theme with gradations! */
//light => dark
//from above: g = dojox.charting.Theme.generateGradient
//defaultFill object holds all of our gradation settings
seriesThemes: [
{ fill: g(defaultFill, "#fff", "#f2f2f2") },
{ fill: g(defaultFill, "#d5ecf3", "#bed3d9") },
{ fill: g(defaultFill, "#9ff275", "#7fc25d") },
{ fill: g(defaultFill, "#81ee3b", "#60b32b") },
{ fill: g(defaultFill, "#4dcff4", "#277085") },
{ fill: g(defaultFill, "#666", "#333") }
],
/* marker theme */
markerThemes: [
{fill: "#bf9e0a", stroke: {color: "#ecc20c"}},
{fill: "#73b086", stroke: {color: "#95e5af"}},
{fill: "#216071", stroke: {color: "#277084"}},
{fill: "#c7212d", stroke: {color: "#ed2835"}},
{fill: "#87ab41", stroke: {color: "#b6e557"}}
]
});
})();
You wont need to define every property created above; if a given property isn’t defined, a default value will be used. On the flip side, you may also override each and any of these settings when creating chart instances. This custom theme acts as a middle-ground between chart defaults and chart instance settings.
Take a look at some of our enhanced theme examples:
Using GradientsThe advanced SitePen theme we created above made use of gradients thanks to the dojox.gfx.gradutils class and dojox.charting.Theme.generateGradient method introduced in Dojo 1.5. Gradation instances can be passed to any property that desires a color (usually the fill property.) The signature of the new generateGradient method is:
generateGradient: function(fillPattern,
colorFrom,
colorTo
}
The fill pattern holds the gradient settings:
{type: "linear", //or "radial"
space: "shape",
x1: 0, //gradation direction
y1: 0, //gradation direction
x2: 0, //gradation direction
y2: 100 //gradation direction
}
Feel free to experiment with the gradation settings to find just the right gradient for you.
New to Dojo 1.5: Gradients, Themes, and Extended Support!Dojo 1.5 introduces great new features to the charting library, including:
- New Themes
- Gradients
- Experimental support for the SVGWeb plugin in addition to the existing support for SVG, VML, Canvas, Flash, and Silverlight.
- Dive Into Dojo Charting
- Dojox Charting Reference Guide
- Nightly Tests
- Theme Preview
- Introducing Dojox Data Chart
- A Beginner’s Guide to Dojo Charting, Part 1 of 2
- A Beginner’s Guide to Dojo Charting, Part 2 of 2
- Zooming, Scrolling, and Panning in Dojo Charting
While Dojo’s charting library comes with a variety of stylish themes, don’t feel as though you need to choose an existing theme; take a few minutes to create an eye-catching custom theme to match your branding!
Related posts:
New goodies in RadGridView for WinForms: Drag and drop with RadGridViewDragDropService
One of the new goodies that came with RadGridView Q2 2010 is the brand new drag and drop API, which offers a very flexible way to create custom drag and drop scenarios with ease.
Each instance of RadGridView is associated with RadGridViewDragDropService that handles user drag and drop operations. It gives you out-of-the-box reordering of columns and movement of items between the group panel and the columns header. The service is also responsible for rows reordering in unbound mode when grouping and sorting features are not applied.
In many cases, developers need to implement complex custom scenarios that are not covered by our products by default. This is why we have created the drag and drop API in a way that it will actually help the developer in accomplishing such scenarios, rather than hinder them. RadGridViewDragDropService provides very powerful events that give you full controls over the drag and drop ...
What is a Persona in TeamPulse?
Personas are fictitious characters created to represent the different user types of a system. Personas will help you visualize the people behind the keyboard using the features of the software your team is creating. You will can describe exactly how personas use your software by describing the interaction in a story.
When defining software requirements in the context of a persona (complete with a picture, a name, and a rich description of a personas goals, objectives, constraints, and day to day realities) teams can better define how to approach the design of the features the persona interacts with.
TeamPulse provides you with the ability to define and manage personas to help represent software specifications.
Personas in TeamPulseThere are two ways to work with personas in TeamPulse, from within the context of a story or by working with the persona definition directly.
(click image for larger view)
When defining ...
VS 2010 Disabled Deployment Trouble with UI Coded Tests
VS 2010 introduced a surprise for us – the deployment feature is disabled by default. Let me explain with this post how this hits everyone running coded tests and how to resolve the problem.
Here is a common scenario one can hit the problem with:
1. Add and record a WebUI Test Studio test in Visual Studio 2010.
2. Convert a step to code.
3. Go to Test View and run the test – you may get an error similar to the following one:
As you may note VS looks for the .dll in the TestResults and it’s Out folder by default. However it doesn’t copy the needed .dll there if the deployment is disabled (again, by default).
As stated in the error message above (we catch the exception to point users to the solution) one needs to enable the deployment setting from the Test Settings. Here are the ...
Fun with pointers in C#
Disclaimer: this post is all about fun. It is not about:
• turning a bug into a feature
• some new isolation/mocking practice
• wow, look what I will do with pointers in my next project
It is all about fun :) It shows some of CLR internals as well.
As far as I know since .NET 2.0 there is a bug in Microsoft C# compiler that makes it possible to compile the following source code.
class Class1 { unsafe public static void Method1(ref object* obj) {} }
Trying to compile it with .NET 1.1 Microsoft C# compiler produces an error:
error CS1005: Indirection to managed type is not valid
In my job I have to use both C++ and C# and sometimes switching the context is not easy. C# is lovely language and it is really fun to work with. So I thought wouldn't it be fun to use C++ style ...
Custom Code Generation
The good thing about the code generation is that you can easily modify it to suite your needs. Today I will show you how to modify the code generation template so that it generates string properties that HtmlEncode and HtmlDecode the values in their respective setter and getter. The desired outcome will look like :
private string firstName; public virtual string FirstName { get { return HttpContext.Current.Server.HtmlDecode(this.firstName); } set { this.firstName = HttpContext.Current.Server.HtmlEncode(value); } }
You can achieve this in a couple of steps.
First we need to locate the T4 templates that OpenAccess uses. The C# templates are usually located under C:\Program Files (x86)\Telerik\OpenAccess ORM\dsl\CodeGenerationTemplates\CSharp. Note that it would be better to copy this folder and not modify the default templates. You can specify which template the code generation is using through the model settings dialog.What ...
Unit testing LINQ to SQL
Unit testing LINQ to SQL repositories can be very challenging. Unit testing such requires faking hard to mock classes and requires simulation to return your custom data for a particular LINQ statement. In this post, i will show how you can mock your LINQ repositories easily without much digging in.
As, i was goggling [my start page is bing, its a matter of time when i will be bing-ing :-)] around, found a nice post by Ronnie Holm, where he shows how to unit test a LINQ to SQL repository. I will follow his trail and use some of the codes from his post. Therefore, first of all we have an employee class:
- public class Employee
- {
- public int ID { get; set; }
- public DateTime HireDate { get; set; }
- }
Secondly, we have an LINQ DataContext implementation that has the Table<Employee> which ...
The Telerik CAB Enabling Kit - RadDockableWorkpace w/RadDock Support!
Recently, Telerik released a new and improved version of the Telerik CAB Enabling Kit (TCEK). This latest version now provides support for using the RadDock control as a workspace in your Composite UI Application Block (CAB) applications. Previously, only the old DockingManager control had been supported. In this blog entry, I will show you how to begin using the RadDock as a workspace in your applications through the use of the newly updated RadDockableWorkspace.
In case you are new to CAB/SCSF or the TCEK - I highly recommend reading through my older series of blogs. You can access the introduction blog here. Also, there has been an update to the Smart Client Software Factory (SCSF) since my last series of blog entries. If you are using Visual Studio 2010, you will need to make sure to download the latest version of the SCSF. The latest version of the TCEK ...



