Szymon Kobalczyk's Blog

A Developer's Notebook

  Home  |   Contact  |   Syndication    |   Login
  106 Posts | 6 Stories | 579 Comments | 365 Trackbacks

News

View Szymon Kobalczyk's profile on LinkedIn

Twitter












Tag Cloud


Article Categories

Archives

Post Categories

Blogs I Read

Tools I Use

January 2006 Entries

Joel Spolsky is one of most popular and influential authors in developer community. He publishes frequently on his site Joel on Software. A few years ago, a few hundred volunteers graciously offered their time to make Joel on Software available in over 30 languages. Coordinating this archive turned to be so much effort that this week Joel decided to turn it into a Wiki and let people do the work themselves. It's all set up and ready to go. Because my native language is Polish and I translated few ......

In most applications certain user interface areas are shared among various modules. Examples are all kinds of menus, tool bars, status bars, Outlook style sidebars and others. What is common for all of them is that they serve as containers for collections items (menu items, toolbar buttons, etc.) that user can activate to trigger some actions in the application. For example, the File > Open menu item normally would invoke the action of opening a file. However same action could be also accessible ......

Here is another gem from the message boards (thanks to Justin Burtch): One of the advantages of MVP is that it allows easier unit-testing. For this you need to declare all public methods of view that the presenter uses as an interface, and then you can easily substitute the actual view with its mock implementation. But to test all your components properly you need to run them in the same environment as when you run it in a GUI. By this I mean that you have some WorkItem that adds these items into ......

Yesterday I was reading CAB message boards and came across number of threads with questions about implementing MVP patter in CAB. Indeed, among provided samples only the walk-through uses MVP but its rather simplistic. Luckily some of these questions got answered. First of all I've learned of the Smart Client Baseline Architecture Toolkit project, that aims to provide collection of guidance for implementing Smart Clients (including Hands-On-Labs, How-Tos and Reference Applications). Although the ......

Next important part of Composite UI, if not the most significant, is the WorkItem. According to documentation it “a run-time container for components that are working together to fulfill a use case. These components may consist of SmartParts, controllers, services, UIElements, and other components.” So if we look at Outlook as example here, we have use cases like: browsing email, scheduling appointments or looking up contacts. As I understand, these would correspond to main WorkItems ......

First lets see what are the basic elements of CAB and then lets try to discover them in the PetShop application. I will start with the parts that are actually visible on screen and later work my way to more abstract elements that form the inner architecture. So the simplest of all things is the SmartPart. Basically this is any visible part of application; in other words a control. In most cases it would be a UserControl. What's surprising there is no special base class that you must inherit from. ......

I spent last two days trying to learn the Composite UI Application Block (CAB) recently published by Microsoft's patterns&practices group. This application block provides practices and components to build complex smart client user interfaces. I've been working on similar frameworks in the past but I always wasn't quite happy of my design. The problem such frameworks are trying to solve is to allow to build the application from independent modules. The module here can consist of views (i.e. forms ......

Not long ago I came across some cool demos showing new features in Windows Forms 2.0. Some of these show how to emulate look and feel of some well know applications (like MS Outlook, Money, Quicken, File Explorer or MSN Messenger). In particular I found there an interesting example of customizing the DataGridView control to implement multi-view schedule component emulating the Outlook Calendar. This sample supports rendering calendar events in day, week and month view. I think it would be quite interesting ......