Saturday, December 8, 2007

WiX toolset

I need more control over my whole build process and Installshield's little querks and ludicrous cost has forced me to look into the WiX toolset.

Friday, December 7, 2007

Uninstall applications via C#

I recently had to uninstall applications programmatically and it was quite simple. All the information needed resides in the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall registry key.

Wednesday, November 21, 2007

Dependency properties in a MTA thread, Part 2

It seems it is easier accessing dependency properties on the STA (UI) from some MTA thread than it is to access dependency properties on the MTA thread from the STA (UI).

So I decided to go for the 'clipboard' approach, before calling the STA thread first copy the DP's to the clipboard and then paste from the clipboard in the STA, and vice versa.

Seems to work fine sofar.

Dependency properties in a MTA thread

I have to bind to dp's from my UI (STA thread) that lives on a MTA thread. This post might have the solution.

Friday, November 16, 2007

Vista Remote Desktop to XP

I need to use Remote Desktop to connect to my office but Vista keeps on nagging me about security. This article shows how to disable it.

Wednesday, November 14, 2007

Context Sensitive Help in WPF

The new WPF paradigm does not have a context sensitive help option, but this article shows a quick and easy way to add it.

Tuesday, November 13, 2007

Xceed Grid and ComboBoxes

I am currently struggling to make my Xceed grid use my custom combo boxes but the forums has a few posts related to the grid and combo boxes.

Thursday, November 1, 2007

Adding custom DataTemplates to custom user controls

I struggled for a while to figure out how I can add DataTemplates to my custom WPF user controls but this article helped in that regard.

Smart Client Technology

Some useful articles relating to Microsoft Smart Clients, I have not read it myself yet, but a friend of mine recommends these articles
The SCS factory is part of the open source initiative from Microsoft and is available at CodePlex.

Another article on version 1.0 of the factory is available here.

A quick start to CAB or composite clients is available here.

Tuesday, September 18, 2007

Custom size for WF activities

I need to customize my activity's size in the WF designer. It seems this article has the answer. Will test it out later.

Wednesday, August 15, 2007

Calling WPF windows from WWF workflow

I struggled for a long while to get my WPF forms to work from a workflow activity. This article was very helpful in accomplishing it.

Wednesday, August 8, 2007

Composite Activities

I created a new composite activity that allows the execution of WPF windows from the workflow. Articles to fast track this development is available at

Tuesday, August 7, 2007

Convert ExportedInstance to a class

While busy traversing my domain model I needed some way of converting my ExportedInstance to the actual class I am interrested in.

This article helped in that, but basically all I needed was the following line of code:

EntityPlaceholder entityPlaceholder =
dis.ResolveExportedInstanceInDocument(dslNamespace, MELString, true) as
EntityPlaceholder;

Why cheap programmers are expensive

I found this article and I can only hope that the industry wakes up very soon. Trying to develop software with cheap resources are really very expensive at the end of the day.

Friday, July 27, 2007

UML Composition and Aggregation

To try and remember the difference between composition and aggregation the following articles are quite useful

Where should the business logic live?

The following article says it all.

Monday, July 23, 2007

Property Collection Serialization, Part 3

A full description and example of what I wanted to accomplish with my designer serialization is available here.

Property Collection Serialization, Part 2

I managed to accomplish what I intended doing with the Designer Serialization. The following articles helped me along the way. I still only barely scratched the surface of CodeDOM but it was sufficient enough for what I wanted to accomplish.

The articles are:

Thursday, July 19, 2007

Property Collection Serialization

I have problems serializing my collection properties. I want to specify exactly how the collection must be serialized and the following article might help in this regard.

Also to do custom designer serialization this article might help. Some more information is available in this article.

Currently is it like a lot of pieces of a puzzle I need to assemble. Very tedious and frustrating.

WWF Serialization

I am experiencing a lot difficulty using WWF and its serialization mechanism. I am going to study the following articles, maybe it proofs to be helpful

  1. Workflow custom designer, nothing to do with serialization but interesting still
  2. GetWorkflowDefinition, explanation surrounding the workflow definition class
  3. Serialization Part One
  4. Serialization Part One and a Half
  5. General WWF thoughts
I hope this will help in my serialization dilemma.

Workflow and ASP.NET

A very in depth article about Workflow and ASP.NET is available here.

It is an article in the MSDN Magazine.

Matevz Gacnik also has some tips on publishing a workflow as a web service.

Workflow tracking

To get workflow runtime properties Matt Milner suggest making use of a tracking service.

It sounds good but there is a performance overhead related to tracking.

Wednesday, July 18, 2007

XPath syntax

For a quick reference to the XPath syntax just go over to w3schools.

To actually get some values from an XML using XPath the following code snippet might help:

Cider is still CTP

I also just realized that Cider is a CTP release and there will be no more releases of Cider. The new version of Cider will be released with Orcas.

References
John Rayner
WCF, WPF VS 2005 RTM Extension

XAML Window inheritance

The XAML window inheritance is proving to be a challenge. I changed my XAML to inherit from my base window, but now Cider refuses to open my Window. It gives the following error:




Microsoft's Expression Blend has no problem opening, compiling and running my XAML window.

WPF Window Inheritance

I tried the inheritance suggested by this article but unfortunately my base window may not be XAML defined apparently.


This is a bit of disappointment but I guess I can work around this somehow.

Tuesday, July 17, 2007

WPF Windows inheritance

I need a base WPF window with common functions inside of it and then all my WPF windows will derive from this window. It is a bit of a hassle to say the least. This article explains it in more detail.

WPF and XAML coding options

There are three ways of coding WPF windows:
  1. Code only
  2. Code + Markup, runtime parsing and
  3. Code + Markup, compiled binary
This article has more detail with some pros and cons.

Monday, July 16, 2007

Instantiate Generic Types via Reflection

I recently had to instantiate an instance of a generic type at runtime via reflection. The following article was quite useful.

Friday, July 13, 2007

WPF performs slow with Office 2003 Updates

According to Rob his WPF started performing poorly after he installed some Windows updates relating to Office 2003. Read more about this over here.

WPF does not support MDI

According to Chris Anderson1, WPF does not support MDI and if you want to use MDI he recommends using Windows Forms rather. Very interesting, I had a discussion with a colleague of mine back in 2004 and he insisted SDI is better than MDI. At that point I did not agree and I still prefer MDI over SDI in many cases but I am guessing it is time to go with the main stream then.

1. p52 Essential Windows Presentation Foundation, Chris Anderson

Thursday, July 12, 2007

Custom WPF controls

A small introductory article about custom WPF controls.

WPF Commands

WPF controls has something called a Command which links to an ICommand interface. For a better in depth explanation this article is quite useful.

Wednesday, July 11, 2007

DepencyObject and DependencyProperty explanations

I am still a bit new to the DependencyObject and DependencyProperty concept so for later reference these articles may proof useful

Monday, July 9, 2007

Install components in VS 2005

The following article has a link to a helpful library to install components as part of the Installshield setup process.

Synchronous WWF

To use synchronous WWF with ASP.NET this article seems to give a solution.

To use synchronous WWF with standard .NET this article seems to have the solution and it has some explanations surrounding dependency properties and WWF.

Some more detail WWF example over here.

An outdated article explaining a custom activity to allow synchronous workflow is available here.

Saturday, July 7, 2007

10 usability heuristics

This article has some informative points regarding usability heuristics. The 10 heuristics is platform independent and to the point. Very good guidelines when designing new applications.

Wednesday, July 4, 2007

Online Analytic Processing (OLAP)

When considering OLAP two points may be of help to increase speed
  • OLAP does not require the latest version of the data, so OLAP services do not need to run on a live transactional database
  • Execute OLAP services on a centralized repository or datawarehouse
For more information refer to p848-p854 of Database Management Systems by Ramakrishnan.

Tuesday, July 3, 2007

Distributed Database Concepts

A distributed database should have the following desired attributes1
  • Distributed data independence, users should be able to ask queries without specifying the referenced relations
  • Distributed transaction atomicity, users should be able to update and access data across sites
When a slow connection is used between sites these attributes may not be achievable or desirable.

Data storage across multiple databases can use one or both of the following techniques2
  • Fragmentation
  • Replication
to increase speed and responsiveness.

Fragmentation may use
  • Horizontal or
  • Vertical fragmentation
Replication allows
  • Increased availability of data
  • Faster query evaluation
The current approach we are considering is fragmentation paired with replication. We will fragment the data to manage ownership of data to avoid the sync problems associated with multiple changes to the same record of data from multiple sites. Read only queries will be executed on the local replicated data because this will allow better data availability and faster query evaluation.

References:
  1. p736 Database Management Systems, Ramakrishnan
  2. p739-p741 Database Management Systems, Ramakrishnan

Introduction to Windows Workflow Foundation

The following article has a nice introduction to the WWF.

Some interesting features of WWF includes

  • The BPEL library that allows the WWF workflow to be exported as BPEL to be used by any standard BPEL engine.
  • Custom Activities has themes.
  • Workflow can be dehydrated and rehydrate using SQL Express.
Hosting sections of a workflow on multiple machines is acceptable.

Wednesday, June 27, 2007

IT Distilled

I decided to create a blog to keep track of all the little IT articles I stumble across. So this blog is just an easy way of cataloging my article finds or just excerpts of articles.