Welcome to MSDN Blogs Sign in | Join | Help

October 2007 - Posts

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
Posted by jmstall | 0 Comments

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
Posted by jmstall | 1 Comments
Filed under:

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
Posted by jmstall | 0 Comments

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
Posted by jmstall | 2 Comments
Filed under: ,

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

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
Posted by jmstall | 1 Comments
Filed under:

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
Posted by jmstall | 9 Comments

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

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
Posted by jmstall | 0 Comments
Filed under:

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
Posted by jmstall | 5 Comments

My daughter, the QA tester

I was on a plane with my 2.75 yr old daughter (yeah, the state-machine one). She noticed the air-jet above her passenger seat and switch that controls it. She turned it on and off. But to fully test the switch's functionality, she also tried other essential
Posted by jmstall | 2 Comments
Filed under: ,

How to tell if a function is managed code?

This is a moot point for pure C# apps, but what if you're writing in MC++ (or some other 'mixed' language) and you want to know if a function is getting compiled as managed or native code? You can try and inspect the source and infer from the language

The debugger is not just an extension to BCL + Reflection

Don't have your non-debugger app use the debugging services just to get some cool functionality. The managed debugging services are not just another library that picks up where BCL/ Reflection left off. The BCL + reflection provides some basic ability
Posted by jmstall | 1 Comments

3 years!

I just noticed that my blog had birthday #3 (Sep 30th) . In tradition, some various stats... 384 posts. (~70 within the last year) I'm almost double the TV rerun mark . So I'm blogging less. Part of it is running out of things to say about .Net debugging
Posted by jmstall | 2 Comments

Why debugging breaks in optimized (production) builds.

You may have noticed that debugging optimized builds (eg, what you commonly get when you attach to a end-user instance of your app that wasn't launched from your debugging environment) is usually a degraded experience. At an architectural level, there's
Posted by jmstall | 7 Comments

Debugger.Break()

System.Diagnostics.Debugger.Break() is a BCL method that causes a program to issue a User Breakpoint when run under the debugger. This translates to a Break() debug event on ICorDebugManagedCallback. (Not to be confused with Breakpoint(), which corresponds
 
Page view tracker