How to add Options to Live Writer PlugIns

This entry explains how to have options associated with your Windows Live Writer plugin, including design patterns, dealing with the UI, persistence issues, and setup/uninstall implications .  See here for an example of writing a plugin.   What are good options? Some things that are nice to make as options are: Enabling / Disabling plugin…

0

Creating MSIs for Live Writer PlugIns

Windows Live Writer (WLW) is awesome. And writing PlugIns for WLW is easy.  Combine the two and you just have to write WLW plugins.  The one catch is that to put PlugIns on the WLW Gallery you need to upload an Windows Installer (MSI) file.  Putting plugins on the gallery has a few advantages over…

1

WiX Script for installing Live Writer Plugins

Here’s a WiX install script to build an MSI to install a Windows Live Writer (WLW) plugin dll, by xcopying the plugin dll to the Plugins directory. You can then upload your MSI to the WLW Gallery and share your plugin with others. WLW Plugins are very easy to write, so it’s nice to have…

0

Simple Tool for text substitution plus Design questions

I wrote a simple C# app to do text substitution. It takes a (key,value) mapping and then replaces any keys in between {% … %} with their value. It’s a really trivial app. But it also quickly opens a Pandora’s box of design questions.   It takes an xml file that provides the (key,value) ,…

2

Breaking changes in ICorDebug from 1.1 to 2.0.

Here are some random notes about specific ICorDebug breaking changes between .NET v1.1 (Everett) and .NET 2.0 (Whidbey). (I came across these as I was cleaning out old documents in preparation for my upcoming move). This would have been more timely 2 years ago, but better late than never. This can be viewed as the…

0

Paste-From-Console Live Writer PlugIn

I wrote a WLW PlugIn to paste from a console. You can download it from the Gallery here. The setup program needs Live Writer Beta 3. It will: Enclose the text in <pre> tags so that it has that wonderful console look (fixed-width font) optionally use a heuristic to remove line-breaks inserted for word-wrapping. optionally…

1

Transitioning off the CLR

After 6+ years on the CLR Debugging services, I’m going to be headed over to the Dynamic Language Runtime (think IronPython, Jim Hugunin, + co). (I’m the anonymous dev that John Lam refers to here) I’ve had a great time on the CLR. The main reason I’m moving is for variety. (Although my wife thought…

9

Things that what work in Native-debugging that don’t work in Interop-debugging.

Interop-debugging (mixed-mode) is managed + native debugging combined. Well, sort of. Native and managed debugging have very different paradigms. Native debugging tends to own the whole process, while managed debugging tends to require control of the whole process while only exposing a managed  view to the user. So some functionality restrictions were needed to get…

1

Trivia about the [Conditional] attribute

The System.Diagnostics.Conditional attribute has been on blog-todo list for a while, and I’m finally getting around to it.  For the quiz-loving folks, here you go: Quiz: First, some lingo: I’ll say a Conditional Function is a function with a Conditional attribute on it. The conditional function is active (within the scope of a symbol) if…

0

Quiz: What runs before Main()?

Quiz: What managed code runs before managed Main() in your program startup path?     Answers: I note “managed code”, because obviously the CLR startup code gets executed, as does other native startup code. 1) The common answer is static constructors referenced from Main(). 2) The less common answer would be managed code in the…

5