← Back to all blogs


Posts in 'dotnet'

2010 v2 Released!

Studio for Silverlight 4 (Build 80)

What's New in WinForms 2010 v2

In the 2010 v2 release we've really added a little something for everyone. We've added enhancements to 13 different controls including new ways to work with images in C1Ribbon and C1InputPanel, new Office 2010 Visual Styles in Menus & Toolbars and even new interactive features in C1Gauge. Check out the release details and watch this video below:

Interactive Mapping Control for WPF

With ComponentOne's new Maps for WPF you get a viewing container control, C1Maps, for online maps. C1Maps provides smooth zooming, panning and mapping between screen and geographical coordinates. It can display map tiles from various sources, including Microsoft Live MapsTM or it can import geographic image files (KML). Then you can display various elements on top of the map layer positioned to specific geographic coordinates. Use the Items Layer for displaying arbitrary items like buttons, charts and labels. Use the Vector Layer for displaying vector data, like lines and polygons, whose vertices are geographically positioned. There's also the Virtual Layer which can be used for a virtualized display of items, meaning only items in view are downloaded from the server.

Epic AdventureWorks Part 4 - The Style

This article is (finally) the fourth of a four part series: Epic AdventureWorks Part 1 - The Blueprints Epic AdventureWorks Part 2 - The Model Epic AdventureWorks Part 3 - The Web App Epic AdventureWorks Part 4 - The Style Check out the AdventureWorks ASP.NET Sample ASP.NET app online. And now, I introduce to you, Jon "Jebro" Coulter. This is the CSS ninja that styled the entire app. This entire article was written by him so kick back, relax and listen to how he styled AdventureWorks. There are a few VisualStyles that make up the controls in this page, the majority of them being custom or based on Windows7 BonusVisualStyle. Let's start with the menu. This is a hierarchical tab control used as a menu. The styling for this is very simple; it is a custom visual style with minimal styling added. Hierarchical tabs work by using levels, so here you can see 'level0' is styled as a dark bar, and 'level1' is styled as a brighter blue as it is going to represent where you are. The benefit of hierarchical tabs is that it can also function similar to a breadcrumb, as you can see the page you are currently on is in bold as well as the category you are in. #hd .menu {background:none repeat scroll 0 0 #333333;clear:both;display:block;margin:0;padding:0;width:100%;}#hd .level0 {border-bottom:3px solid #0099CC;}#hd .level1 {background:none repeat scroll 0 0 #007399;clear:both;color:#FFFFFF;display:block;margin:0;outline:medium none;padding:0 2%;width:96%;}#hd .menu .C1Selected {-moz-border-radius:3px 3px 0 0;background:none repeat scroll 0 0 #0099CC;color:#FFFFFF;font-weight:700;}

Hi, it's me


New DataGrid for WPF

Times are changing and so is Studio for WPF. In addition to the new C1FlexGrid control we've just ported the existing C1DataGrid from Studio for Silverlight to WPF in the 2010 v2 release. Back in 2007 we introduced the original C1DataGrid control for WPF which was heavily designer inspired. It had many visual and interactive features such as drag-and-drop grouping, a carousel view, built-in themes based on Microsoft Office products, and Excel-like horizontal and vertical splits. It was ahead of its time...at that time. But now, we here at ComponentOne have decided to port all of our Silverlight controls to the WPF platform so  we can deliver more controls with better performance and more functionality in much less time. This created a conflict because we already had a "C1DataGrid" (and C1Scheduler) in Studio for WPF. We ultimately decided to stick with the original Silverlight versions and thus move the old WPF versions to legacy, maintenance only mode. By porting controls from Silverlight to WPF we also strive to have more compatibility among our different platform studios. We now have C1DataGrid in Silverlight and WPF, we have C1FlexGrid in WinForms, Silverlight and WPF. We believe this not only improves the value of Studio Enterprise, but it creates a clearer migration path for components.

OLAP Tools for Silverlight

What are OLAP Tools?

Customizing Scheduler for Custom Data

The C1Scheduler control provides an appointment data model common to most scheduling applications. This model includes data storage for the default appointment fields:

OLAP for Silverlight Beta: Just Released!

OLAP for Silverlight Beta: Just Released! This suite of Silverlight controls provides analytical processing features similar to those found in Microsoft Excel Pivot Tables and Pivot Charts. Download and play with the Beta today! http://www.componentone.com/SuperProducts/OLAPSilverlight/

OLAP for Silverlight Beta Released

ComponentOne unleashes a whole new set of Silverlight controls specifically designed for analyzing data in the form of pivot tables and charts. These OLAP controls provide dynamic views of data. End-users can build and change views on the fly with a drag-and-drop interface similar to that found in Microsoft Excel. This type of dynamic analysis is great for discovering trends in data which cannot be uncovered by simply looking at tabular data.

CheckedListBox Editor for FlexGrid

There are many scenarios where we have fields containing nicely formatted lists (i.e. "item1, item2, item3" or "item1;item2;item3") and we'd like to provide users with an easy, error-proof way of editing these fields. The obvious solution is to use the CheckedListBox control provided in Visual Studio. But what if we want to use this as an editor in a datagrid? A CheckedListBox is not among the common datagrid editors to choose from and ultimately we would want it inside a drop-down. This blog post demonstrates how to create a drop-down CheckedListBox in a C1FlexGrid for editing and formatting lists.

Epic AdventureWorks Part 3 - The Web App

This article is the third of a four part series: Epic AdventureWorks Part 1 - The Blueprints Epic AdventureWorks Part 2 - The Model Epic AdventureWorks Part 3 - The Web App Epic AdventureWorks Part 4 - The Style Check out the AdventureWorks ASP.NET Sample ASP.NET app online. Now that we designed the blueprints and built an object model, its time to start to develop a website. I am going to create an ASP.NET 3.5 website project. I want to take advantage of the model I built with the Entity Framework and use LINQ to easily query the model. These two technologies will help me rapidly develop against this otherwise daunting database. To build a website I usually start with the most critical piece first and work down the chain from there. So in my opinion the most important part of a retail company's website is the product catalog. Some people might argue that it is the shopping cart, but the way I see it, no one is going to buy until they know what the product is. So we will assume there is a direct sales team to take orders until our shopping cart is launched. General practices Before we dig into code, here are a few of general practices I use when doing ASP.NET web development. Follow MVC Patterns (even in WebForms) I have been following this pattern subconsciously for years of WebForms development. It just makes sense. So how do I follow the pattern in WebForms? In a nutshell: loosely. I like to seperate all of my UI "chunks" or "modules" into UserControls and create Classes for them to inherit. I usually make the Classes more general like "ProductModule" and many UserControls inherit from it to take advantage of common data models and params. I then organize my UserControls into folders that group them logically. For this project I create "Products" and "Order" to section the modules into product catalog UI and shopping cart UI. In the root UserControls folder I add common UI elements like Header and Footer. Take Advantage of ASP.NET UI Features I like to utilize App_Themes, Skins and MasterPages to make UI development faster and more efficient. App_Themes are a nice way to stay organized and adding Skins to them helps to apply theme and behavior settings across the entire app. MasterPages are probably my favorite feature added in ASP.NET 2.0 and have saved me countless hours of work. I am also a fan of using nested MasterPages to really build rich UI templates across a large web app, but we will just use on in this project. Import a CSS Layout Framework Once of the biggest frustrations in web design is layout. I consider myself a CSS guru and still get stumped on some complex layout issues. If you want to spend your time actually styling things with CSS and not trying to hack your layout to work in all browsers then this practice is for you. In this app (and all my work) I chose to use YUI stylesheets including reset, base and grids. Reset will basically reset style on every html element to create a clean pallete across all browsers. Base (which requires reset) will give consistent styling to all html elements. Grids (which requires reset and base) creates a layout framework for you to build pretty much any type of column layout you need. It gets a little crazy when writing the markup, so they also provide a grid builder to make things easier. I can't recommend this practice enough. It has saved me so much time and prevented so many headaches. Use 3rd Party Controls As much as I would love to think I can build every aspect of my projects alone, it just isn't reality. I know it sounds like hot air coming from me, but using 3rd party controls is a great way to shift focus from the tedious code to the fun stuff. I have already wasted too many precious keystrokes writing sort algorithms and browser hacks. I had to draw the line and let the pro's do it for me. One of the most productive things you can do as a developer is know when to delegate work. For me, that delegation includes using custom controls that usually have more functionality than I would ever care to write for myself. Seriously, who really wants to sit down and write a PDF writer? No offense if that kind of programming is your cup of tea, but it sure isn't mine. I want to build the app, get it out the door and watch people use it. Then I can spend my time refining the UX and not trying to fix bugs in the chart control I was to stubborn to purchase. That's right, you need to think of how much effort you are going to spend supporting the custom controls you build on your own, not just how long it would take to develop. The next time you go to develop some controls I would ponder how valuable your time is and whether it's worth your keystrokes. I'm sure you get the picture, so I will stop with the C1 fanboy stuff. Let's Dev! Build the Navigation The AdventureWorks database products are organized by Category and SubCategory. So the first thing to do is make a few methods to build these lists.  Let's start with one we need to make the main menu. For the menu we will need a list of the the base categories in the database. So here is what that method would look like using LINQ against my Entity Model. public static List GetMainCategories(){ var cats = from cat in Common.DataEntities.ProductCategory select cat; return cats.ToList();}