<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://weblogs.asp.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Blog - Chris Frazier Style</title><link>http://weblogs.asp.net/cfrazier/default.aspx</link><description>Blog Gratia Blogis.</description><dc:language>en</dc:language><generator>CommunityServer 2007 SP1 (Debug Build: 20510.895)</generator><item><title>Sql Server Management Studio Express - you suck.</title><link>http://weblogs.asp.net/cfrazier/archive/2007/05/25/sql-server-management-studio-express-you-suck.aspx</link><pubDate>Fri, 25 May 2007 19:03:13 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2659290</guid><dc:creator>Christopher</dc:creator><slash:comments>17</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=2659290</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/05/25/sql-server-management-studio-express-you-suck.aspx#comments</comments><description>
&lt;p&gt;I would like to know who thought it was a good idea to remove "import 
data..." and "export data..." from this particular flavor of the worst front end 
to an otherwise&amp;nbsp;badass rdbms. I shouldn't have to fight with a program to 
get my databases in order. What a joke.&lt;/p&gt;[ Nothing Playing. ]
&lt;p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2659290" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/As+if+you+cared/default.aspx">As if you cared</category></item><item><title>Exposing Hidden Events</title><link>http://weblogs.asp.net/cfrazier/archive/2007/04/25/exposing-hidden-events.aspx</link><pubDate>Wed, 25 Apr 2007 22:43:39 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2374947</guid><dc:creator>Christopher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=2374947</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/04/25/exposing-hidden-events.aspx#comments</comments><description>
&lt;p&gt;I recently ran into a neat little nugget of functionality in C# with events. 
Normally in C# when we define events we stop at something like this:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;event&lt;/span&gt; EventHandler&amp;lt;MyEventArgs&amp;gt; MyEvent;&lt;/pre&gt;
&lt;p&gt;The thing is, you can explicitly implement the add and remove accessors if 
you throw some curly braces into the mix. Why does this matter? Imagine that you 
have a MainForm, and a&amp;nbsp;usercontrol named ControlPanel. ControlPanel 
contains another usercontrol called hiddenControl that exposes an event that you 
want to handle in MainForm, but all MainForm has access to is 
ControlPanel...&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;event&lt;/span&gt; &lt;font color="#92dceb"&gt;EventHandler&lt;/font&gt;&amp;lt;&lt;font color="#92dceb"&gt;MyEventArgs&lt;/font&gt;&amp;gt; MyEvent{
	&lt;font color="#0000ff"&gt;add&lt;/font&gt;{
		&lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.hiddenControl.MyEvent += &lt;font color="#0000ff"&gt;value&lt;/font&gt;;
	}
	&lt;font color="#0000ff"&gt;remove&lt;/font&gt;{
		&lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.hiddenControl.MyEvent -= &lt;font color="#0000ff"&gt;value&lt;/font&gt;;
	}
}&lt;/pre&gt;
&lt;p&gt;Now you can subscribe to the event in MainForm without making the usercontrol 
member public in ControlPanel.&lt;/p&gt;
&lt;p class="media"&gt;[ Currently Playing : Burn Away - Foo Fighters - One by One 
(4:57) ]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2374947" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Windows Updates Make Me Nervous</title><link>http://weblogs.asp.net/cfrazier/archive/2007/03/22/windows-updates-make-me-nervous.aspx</link><pubDate>Thu, 22 Mar 2007 22:44:31 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2080708</guid><dc:creator>Christopher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=2080708</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/03/22/windows-updates-make-me-nervous.aspx#comments</comments><description>
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote&gt;
  &lt;p&gt;Rather surprised by the new 'updates are ready' message from Microsoft. 
  Hmmm. 
  &lt;p&gt;&lt;img alt="revised updates message from microsoft" src="http://secretGeek.net/image/updates.PNG"&gt; 
  &lt;p&gt;Perhaps they know just how much frustration we had on the home pc recently 
  due to their dodgy updates. 
  &lt;p&gt;(Fixed thanks to &lt;a href="http://www.google.com/search?hl=en&amp;amp;q=windows+updates+swigart"&gt;Scott 
  Swigart&lt;/a&gt;) &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Source: &lt;a href="http://www.secretGeek.net/update_nervous.asp"&gt;Windows 
Updates Make Me Nervous&lt;/a&gt;&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2080708" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/As+if+you+cared/default.aspx">As if you cared</category></item><item><title>skmMenu code change to work with xhtml doctypes</title><link>http://weblogs.asp.net/cfrazier/archive/2007/03/22/skmmenu-code-change-to-work-with-xhtml-doctypes.aspx</link><pubDate>Thu, 22 Mar 2007 17:09:37 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2079580</guid><dc:creator>Christopher</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=2079580</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/03/22/skmmenu-code-change-to-work-with-xhtml-doctypes.aspx#comments</comments><description>
&lt;p&gt;This is just a re-statement of a &lt;a href="http://www.gotdotnet.com/workspaces/messageboard/thread.aspx?id=a8ee64df-8f2a-483f-8594-10aaa66988ce&amp;amp;threadid=48c4a040-054b-49f3-b40a-bc3fffa2ee97"&gt;forum 
thread&lt;/a&gt;&amp;nbsp;that discusses the fix, but since gotdotnet is not going to be 
around very much longer I thought I'd post this little tidbit here as well. 
Basically, when I upgraded one of my sites to .net 2.0, skmMenu got upgraded 
right along with it. The only issue was that all of my menus would show up at 
the far left corner of the screen, and when you try to navigate to them over 
there they disappear thanks to the menu items between the cursor and the target. 
I think I only saw this behavior in firefox, but the code fix works in both 
firefox and IE. I just went thru the .js file and the javascript in the .resx 
for embedded javascript goodness and placed a 'px' after any integer value. The 
reason for this is that firefox requires measurement properties be set with 
appropriate identifiers when it's displaying a structured document. Anyways, 
here's a reprint of the code:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;function&lt;/span&gt; skm_mousedOverMenu(menuID,elem,parent,displayedVertically,imageSource){
	skm_stopTick();
	skm_closeSubMenus(elem);
	&lt;span style="COLOR: blue"&gt;var&lt;/span&gt; childID=elem.id+&lt;span style="COLOR: maroon"&gt;"-subMenu"&lt;/span&gt;;  &lt;span style="COLOR: green"&gt;// Display child menu if needed
&lt;/span&gt;	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (document.getElementById(childID)!=&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;){  &lt;span style="COLOR: green"&gt;// make the child menu visible and specify that its position is specified in absolute coordinates
&lt;/span&gt;		document.getElementById(childID).style.display=&lt;span style="COLOR: maroon"&gt;'block'&lt;/span&gt;;
		document.getElementById(childID).style.position=&lt;span style="COLOR: maroon"&gt;'absolute'&lt;/span&gt;;
		skm_OpenMenuItems = skm_OpenMenuItems.concat(childID);
		&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (displayedVertically){ &lt;span style="COLOR: green"&gt;// Set the child menu's left and top attributes according to the menu's offsets
&lt;/span&gt;			document.getElementById(childID).style.left=skm_getAscendingLefts(parent)+parent.offsetWidth+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			document.getElementById(childID).style.top=skm_getAscendingTops(elem)+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			&lt;span style="COLOR: blue"&gt;var&lt;/span&gt; visibleWidth=parseInt(window.outerWidth?window.outerWidth-&lt;span style="COLOR: maroon"&gt;9&lt;/span&gt;:document.body.clientWidth,&lt;span style="COLOR: maroon"&gt;10&lt;/span&gt;+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;);
			&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; ((parseInt(document.getElementById(childID).offsetLeft,&lt;span style="COLOR: maroon"&gt;10&lt;/span&gt;+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;)+parseInt(document.getElementById(childID).offsetWidth,&lt;span style="COLOR: maroon"&gt;10&lt;/span&gt;+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;))&amp;gt;visibleWidth) {
				document.getElementById(childID).style.left=visibleWidth-parseInt(document.getElementById(childID).offsetWidth,&lt;span style="COLOR: maroon"&gt;10&lt;/span&gt;+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;);
			}
		}&lt;span style="COLOR: blue"&gt;else&lt;/span&gt;{  &lt;span style="COLOR: green"&gt;// Set the child menu's left and top attributes according to the menu's offsets
&lt;/span&gt;			document.getElementById(childID).style.left=skm_getAscendingLefts(elem)+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			document.getElementById(childID).style.top=skm_getAscendingTops(parent)+parent.offsetHeight+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (document.getElementById(childID).offsetWidth&amp;lt;elem.offsetWidth)
				document.getElementById(childID).style.width=elem.offsetWidth+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
		}
	}
	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (skm_SelectedMenuStyleInfos[menuID] != &lt;span style="COLOR: blue"&gt;null&lt;/span&gt;) skm_SelectedMenuStyleInfos[menuID].applyToElement(elem);
	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (skm_highlightTopMenus[menuID]){
		&lt;span style="COLOR: blue"&gt;var&lt;/span&gt; eId=elem.id+&lt;span style="COLOR: maroon"&gt;''&lt;/span&gt;;
		&lt;span style="COLOR: blue"&gt;while&lt;/span&gt; (eId.indexOf(&lt;span style="COLOR: maroon"&gt;'-subMenu'&lt;/span&gt;)&amp;gt;=&lt;span style="COLOR: maroon"&gt;0&lt;/span&gt;){
			eId=eId.substring(&lt;span style="COLOR: maroon"&gt;0&lt;/span&gt;, eId.lastIndexOf(&lt;span style="COLOR: maroon"&gt;'-subMenu'&lt;/span&gt;));
			skm_SelectedMenuStyleInfos[menuID].applyToElement(document.getElementById(eId));
		}
	}	
	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (imageSource!=&lt;span style="COLOR: maroon"&gt;''&lt;/span&gt;){
		setimage(elem,imageSource)
	}
}&lt;/pre&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;function&lt;/span&gt; skm_shimSetVisibility(makevisible, tableid){
	&lt;span style="COLOR: blue"&gt;var&lt;/span&gt; tblRef=document.getElementById(tableid);
	&lt;span style="COLOR: blue"&gt;var&lt;/span&gt; IfrRef=document.getElementById(&lt;span style="COLOR: maroon"&gt;'shim'&lt;/span&gt;+tableid);
	&lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (tblRef!=&lt;span style="COLOR: blue"&gt;null&lt;/span&gt; &amp;amp;&amp;amp; IfrRef!=&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;){
		&lt;span style="COLOR: blue"&gt;if&lt;/span&gt;(makevisible){
			IfrRef.style.width=tblRef.offsetWidth+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			IfrRef.style.height=tblRef.offsetHeight+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			IfrRef.style.top=tblRef.style.top+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			IfrRef.style.left=tblRef.style.left+&lt;span style="COLOR: maroon"&gt;'px'&lt;/span&gt;;
			IfrRef.style.zIndex=tblRef.style.zIndex-&lt;span style="COLOR: maroon"&gt;1&lt;/span&gt;;
			IfrRef.style.display=&lt;span style="COLOR: maroon"&gt;"block"&lt;/span&gt;;
		}&lt;span style="COLOR: blue"&gt;else&lt;/span&gt;{
			IfrRef.style.display=&lt;span style="COLOR: maroon"&gt;"none"&lt;/span&gt;;
		}
	}
}&lt;/pre&gt;
&lt;p&gt;These were the only two functions that needed code adjustment. Enjoy.&lt;/p&gt;
&lt;p class="media"&gt;[ Currently Playing : Mannequin Republic - At the Drive-In - 
Relationship of Command [Japan (3:02) ]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2079580" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/cfrazier/archive/tags/ASP.NET+Server+Controls/default.aspx">ASP.NET Server Controls</category></item><item><title>ASP.NET - UrlRewriting with PathInfo and base urls</title><link>http://weblogs.asp.net/cfrazier/archive/2007/03/15/asp-net-urlrewriting-with-pathinfo-and-base-urls.aspx</link><pubDate>Thu, 15 Mar 2007 18:44:33 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:2034770</guid><dc:creator>Christopher</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=2034770</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/03/15/asp-net-urlrewriting-with-pathinfo-and-base-urls.aspx#comments</comments><description>
&lt;p&gt;I read &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx"&gt;this 
excellent post from ScottGu &lt;/a&gt;and decided to use it with a page that 
implemented a masterpage. I didn't have to use postbacks in my scenario, but 
there were links included from the masterpage. The problem is that if you use 
app-relative paths for your href attributes (ex: &amp;lt;a href="http://weblogs.asp.net/default.aspx"&amp;gt;) 
the browser (FF 2.0.0.2 and IE 7 anyways) interperets the url with pathinfo 
differently than a url without. The base url includes the original page (ex: &lt;a href="http://localhost:3333/rewriter.aspx/default.aspx"&gt;http://localhost:3333/rewriter.aspx/default.aspx&lt;/a&gt;). 
Guess what? The webserver&amp;nbsp;picks up the last .aspx extension, 
default.aspx,&amp;nbsp;that bad boy doesn't exist, and you get a 404 instead of 
going to &lt;a href="http://localhost:3333/default.aspx"&gt;http://localhost:3333/default.aspx&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In the comments, Ian Oxley suggested that you can re-base links in your 
page/css/other static files using the &amp;lt;base&amp;gt; element in the head of your 
page. I expanded on it a little, since this behavior is only on one page of my 
site currently, and added the following code into the Page_Load event of the 
offending page:&lt;/p&gt;&lt;pre&gt;&lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.Header.Controls.Add(&lt;span style="COLOR: blue"&gt;new&lt;/span&gt; LiteralControl(&lt;span style="COLOR: maroon"&gt;"&amp;lt;base href=\""&lt;/span&gt; + Request.Url.ToString().Replace(Request.RawUrl, &lt;span style="COLOR: maroon"&gt;""&lt;/span&gt;).Replace(Request.PathInfo, &lt;span style="COLOR: maroon"&gt;""&lt;/span&gt;) + &lt;span style="COLOR: maroon"&gt;"\"&amp;gt;"&lt;/span&gt;));&lt;/pre&gt;
&lt;p&gt;Now the base tag works on both the live site and the one that 
WebDev.WebServer spins up as well.&lt;/p&gt;
&lt;p class="media"&gt;[ Currently Playing : Them Bones - Alice in Chains - Nothing 
Safe: Best of the Box (2:29) ]&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=2034770" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category></item><item><title>SubSonic Scaffold control - a GridView with Class</title><link>http://weblogs.asp.net/cfrazier/archive/2007/03/08/subsonic-scaffold-control-a-gridview-with-class.aspx</link><pubDate>Thu, 08 Mar 2007 21:39:43 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:1968322</guid><dc:creator>Christopher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=1968322</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2007/03/08/subsonic-scaffold-control-a-gridview-with-class.aspx#comments</comments><description>
&lt;p&gt;So I've been able to dig my teeth into some asp.net hacking recently, and 
I've been &lt;strike&gt;wrestling with&lt;/strike&gt; learning to use &lt;a href="http://codeplex.com/actionpack"&gt;SubSonic &lt;/a&gt;in the process.&lt;/p&gt;
&lt;p&gt;In dealing with the scaffold control I ran into a funny issue: none of the 
exposed properties on the scaffold control will output any style info of the 
GridView that the control uses (that I could figure out anyways). I ended up 
with black text on a black background. :/ Seeing as I have the source, I decided 
to give the scaffold control's GridView a little class...hello GridViewCssClass 
property! I set it up just like the EditTable*CssClass properties, just a string 
property, with similar attributes to the other properties hanging around 
there:&lt;/p&gt;&lt;pre&gt;[Bindable(&lt;span style="COLOR: maroon"&gt;true&lt;/span&gt;)]
[Category(&lt;span style="COLOR: maroon"&gt;"Display"&lt;/span&gt;)]
[Description(&lt;span style="COLOR: maroon"&gt;"Sets the CSS class used by the gridview."&lt;/span&gt;)]
[DefaultValue(ScaffoldCSS.WRAPPER)] &lt;span style="COLOR: green"&gt;//CDF: just to have something to start with.
&lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt; &lt;span style="COLOR: blue"&gt;string&lt;/span&gt; GridViewCssClass {
	&lt;span style="COLOR: blue"&gt;get&lt;/span&gt; { &lt;span style="COLOR: blue"&gt;return&lt;/span&gt; _gridViewCssClass; }
	&lt;span style="COLOR: blue"&gt;set&lt;/span&gt; { _gridViewCssClass = value; }
}&lt;/pre&gt;
&lt;p&gt;Then, in the CreateGrid method make it actually do something:&lt;/p&gt;&lt;pre&gt;        &lt;span style="COLOR: blue"&gt;private&lt;/span&gt; &lt;span style="COLOR: blue"&gt;void&lt;/span&gt; CreateGrid()
        {
            Label lblTitle = &lt;span style="COLOR: blue"&gt;new&lt;/span&gt; Label();
            surroundingPanel.Controls.Add(lblTitle);
            lblTitle.Text = &lt;span style="COLOR: maroon"&gt;"&amp;lt;h2&amp;gt;"&lt;/span&gt; + schema.Name + &lt;span style="COLOR: maroon"&gt;" Admin&amp;lt;/h2&amp;gt;"&lt;/span&gt;;

            grid.ID = &lt;span style="COLOR: maroon"&gt;"grid"&lt;/span&gt;;
	    &lt;strong&gt;grid.CssClass = &lt;span style="COLOR: blue"&gt;this&lt;/span&gt;.GridViewCssClass;&lt;/strong&gt;

            surroundingPanel.Controls.Add(grid);

            &lt;span style="COLOR: blue"&gt;if&lt;/span&gt; (!Page.IsPostBack)
            {
                BindGrid(String.Empty);
            }
            &lt;span style="COLOR: green"&gt;//add a column to the grid for editing
&lt;/span&gt;        }&lt;/pre&gt;
&lt;p&gt;And now I can declaratively set the CssClass that the GridView uses to, oh, 
say, .whitetext :)&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=1968322" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category><category domain="http://weblogs.asp.net/cfrazier/archive/tags/SubSonic/default.aspx">SubSonic</category></item><item><title>RE: What about PostXING?</title><link>http://weblogs.asp.net/cfrazier/archive/2006/08/22/RE_3A00_-What-about-PostXING_3F00_.aspx</link><pubDate>Tue, 22 Aug 2006 23:58:46 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:477254</guid><dc:creator>Christopher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=477254</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2006/08/22/RE_3A00_-What-about-PostXING_3F00_.aspx#comments</comments><description>
&lt;blockquote&gt;
  &lt;p&gt;I love the &lt;a href="http://postxing.net/blog/"&gt;PostXING&lt;/a&gt; tool and the 
  ability to integrate the playing music. Feature wise they are all about the 
  same though. So it will interesting to see the evolution of the tool.&lt;/p&gt;
  &lt;p&gt;One positive out of the project is that I learned a lot about &lt;a href="http://search.msn.com/results.aspx?q=Subversion&amp;amp;FORM=QBRE"&gt;Subversion&lt;/a&gt; 
  and how to work with it.&lt;/p&gt;
  &lt;div class="shareblock"&gt;&lt;strong&gt;Share this post:&lt;/strong&gt; &lt;a title="Email What about PostXING?" href="mailto:?body=Thought%20you%20might%20like%20this:%20http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;amp;subject=What+about+PostXING%3f"&gt;Email 
  it!&lt;/a&gt; | &lt;a title="Submit What about PostXING? to del.icio.us" href="http://del.icio.us/post?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;amp;title=What+about+PostXING%3f"&gt;bookmark 
  it!&lt;/a&gt; | &lt;a title="Submit What about PostXING? to digg.com" href="http://www.digg.com/submit?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;amp;phase=2"&gt;digg 
  it!&lt;/a&gt; | &lt;a title="Submit What about PostXING? to reddit.com" href="http://reddit.com/submit?url=http://jazzynupe.net/blog/archive/2006/08/22/775.aspx&amp;amp;title=What+about+PostXING%3f"&gt;reddit!&lt;/a&gt;&lt;/div&gt;&lt;img height="1" src="http://jazzynupe.net/blog/aggbug.aspx?PostID=775" width="1"&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;i&gt;[Via &lt;a href="http://jazzynupe.net/blog/archive/2006/08/22/775.aspx"&gt;It's 
my life... And I live it...&lt;/a&gt;]&lt;/i&gt; &lt;/p&gt;
&lt;p&gt;Well, this post has been a long time coming. What about PostXING? What 
indeed? Well, unfortunately for the 1.5 users of PostXING, I had my son Ethan 
for 6 weeks this summer and spending time with him is 
&lt;strong&gt;&lt;em&gt;waaay&lt;/em&gt;&lt;/strong&gt; more important than hacking on a tool that is 
basically useful only to a handful of people. &lt;/p&gt;
&lt;p&gt;Then there's the issue of competition: I have always recommended &lt;a href="http://blogjet.com"&gt;BlogJet&lt;/a&gt;&amp;nbsp;for people that wanted a good solid 
blog posting tool that is way more polished than PostXING (and indeed Windows 
Live Writer) and whose project lead is a really nice, engaging dude. 
Heck,&amp;nbsp;Dmitry even gave me pointers on how to work with mshtml as I was 
writing code that competes with his (guess he wasn't &lt;em&gt;too&lt;/em&gt; worried about 
"competition" from PostXING. heh.) And of course the new hip kid on the block 
Windows Live Writer...what can I say? Even &lt;a href="http://tomergabel.com"&gt;Tomer&lt;/a&gt;, who was gracious enough to help me out 
on developing PostXING, agrees: &lt;a href="http://www.tomergabel.com/PermaLink,guid,8a9d12a0-4eb4-4cf1-aeba-ec956fc8be43.aspx"&gt;Windows 
Live Writer kicks ass&lt;/a&gt;. The fact that it's free doesn't help the 
situation.&lt;/p&gt;
&lt;p&gt;At this point I'm not 100% sure what I want to do with PostXING. I had been 
looking into yet another mshtml wrapper that supposedly handles focus better 
than the code I have, but my experience so far with mshtml is that it's a focus 
stealing *** child of wysiwyg editing. The good news: you can actually use a 
widget that gives you wysiwyg editing without having to install a browser plugin 
(I'm looking at you, Mono!) The bad news: didn't you read that *** child 
statement earlier? Geez.&lt;/p&gt;
&lt;p&gt;Tentatively what will happen is I will continue to quietly hack on PostXING 
in order to at least bring it out of beta. But I'm definitely going to be taking 
my time on it...I am in no hurry at all.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=477254" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/As+if+you+cared/default.aspx">As if you cared</category><category domain="http://weblogs.asp.net/cfrazier/archive/tags/PostXING/default.aspx">PostXING</category></item><item><title>RE: Finding calling method using reflection</title><link>http://weblogs.asp.net/cfrazier/archive/2006/08/11/RE_3A00_-Finding-calling-method-using-reflection.aspx</link><pubDate>Fri, 11 Aug 2006 21:59:58 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:467513</guid><dc:creator>Christopher</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=467513</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2006/08/11/RE_3A00_-Finding-calling-method-using-reflection.aspx#comments</comments><description>
&lt;p&gt;&lt;a href="http://geekswithblogs.net/opiesblog/archive/2006/06/29/83654.aspx"&gt;Exactly 
what I was looking for&lt;/a&gt;...I don't know a lot about reflection, so I wonder if 
there is a more elegant way to get this info.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=467513" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category></item><item><title>What's this? My Application won't Exit? </title><link>http://weblogs.asp.net/cfrazier/archive/2006/07/14/What_2700_s-this_3F00_-My-Application-won_2700_t-Exit_3F00_-.aspx</link><pubDate>Fri, 14 Jul 2006 16:39:49 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:457414</guid><dc:creator>Christopher</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=457414</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2006/07/14/What_2700_s-this_3F00_-My-Application-won_2700_t-Exit_3F00_-.aspx#comments</comments><description>
&lt;p&gt;There are a few things that have to happen for this "regression" to show up. 
First, you have to be working in .net 2.0 WinForms. Second, you must be using a 
custom application context. Third and most importantly, you must have at least 
one form open in your application that handles its closing event and sets 
CancelEventArgs.Cancel = true.&lt;/p&gt;
&lt;p&gt;What's the behavior? While operating under a custom ApplicationContext, what 
would be my Main form is closed by the user. Since the application context is 
not associated with that form, I decide to call "Application.Exit()" in an 
override of OnClosing. My Main form closes, but any hidden forms stick around, 
thus leaving the application running until you open up task manager (or 
something similar) and manually kill the process.&lt;/p&gt;
&lt;p&gt;Why does it happen? WinForms 2.0 introduced an overload to Application.Exit 
that accepts a CancelEventArgs parameter. This is what is called by 
Application.Exit(). If even &lt;em&gt;one&lt;/em&gt; of your open forms doesn't think it 
needs to close itself for whatever reason and sets its CancelEventArgs to true, 
Application.Exit stops processing and returns control to the application.&lt;/p&gt;
&lt;p&gt;Why did I call it a "regression"? This behavior has changed between .net 1.1 
and 2.0. In 1.1, if I call Application.Exit, by golly the application exits! I 
understand the reasoning behind the change. I just wish that there was some 
indication to it other than Reflector. A comment for intellisense perhaps? 
Something. &lt;/p&gt;
&lt;p&gt;Will it matter to most WinForm projects? Probably not. If you use the default 
application context (by calling Application.Run(new MainForm()), which is what 
VS.NET spits out for you from the template) you do not have the same problem. 
Closing the main form exits the application as expected. If you're using a 
custom ApplicationContext, tho, watch out.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=457414" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/Windows+Forms/default.aspx">Windows Forms</category><category domain="http://weblogs.asp.net/cfrazier/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Gaffling that ribbon style</title><link>http://weblogs.asp.net/cfrazier/archive/2006/07/08/Gaffling-that-ribbon-style.aspx</link><pubDate>Sat, 08 Jul 2006 06:36:04 GMT</pubDate><guid isPermaLink="false">c06e2b9d-981a-45b4-a55f-ab0d8bbfdc1c:455907</guid><dc:creator>Christopher</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://weblogs.asp.net/cfrazier/rsscomments.aspx?PostID=455907</wfw:commentRss><comments>http://weblogs.asp.net/cfrazier/archive/2006/07/08/Gaffling-that-ribbon-style.aspx#comments</comments><description>
&lt;p&gt;&lt;img alt="" hspace="0" src="http://chrisfrazier.net/images/thievn.png" align="baseline" border="0"&gt;&lt;/p&gt;
&lt;p&gt;Close enough. &lt;a href="http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=7858DBB6-6F4A-4A9D-B1B4-03C73AA16D15"&gt;This 
&lt;/a&gt;should be fun.&lt;/p&gt;&lt;img src="http://weblogs.asp.net/aggbug.aspx?PostID=455907" width="1" height="1"&gt;</description><category domain="http://weblogs.asp.net/cfrazier/archive/tags/As+if+you+cared/default.aspx">As if you cared</category></item></channel></rss>