<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Paul On Technology</title><link>https://weblogs.asp.net:443/psperanza/</link><description>Exploring technology</description><item><title>JQuery selectors – selecting elements by a partial id</title><link>https://weblogs.asp.net:443/psperanza/jquery-selectors-selecting-elements-by-a-partial-id</link><description>&lt;P&gt;Recently a coworker had a grid like the one below in an ASP.Net page. He wanted me too see if there was any way to make the javascript the manages the checkboxes easier to maintain.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/psperanza/CheckboxGrid_6F9D4218.png" mce_href="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGrid_6F9D4218.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=CheckboxGrid border=0 alt=CheckboxGrid src="http://weblogs.asp.net/blogs/psperanza/CheckboxGrid_thumb_5A3F8CB0.png" width=244 height=72 mce_src="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGrid_thumb_5A3F8CB0.png"&gt;&lt;/A&gt; +&lt;/P&gt;
&lt;P&gt;The checkboxes on the left check or uncheck the day check boxes for the corresponding row. When the checkbox next to Barney Rubble is checked the grid looks like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/psperanza/CheckboxGridDays_052E1EB0.png" mce_href="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGridDays_052E1EB0.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=CheckboxGridDays border=0 alt=CheckboxGridDays src="http://weblogs.asp.net/blogs/psperanza/CheckboxGridDays_thumb_79986170.png" width=244 height=86 mce_src="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGridDays_thumb_79986170.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The SO button checks all signoff checkboxes in the grid and when it is clicked the grid looks like this:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://weblogs.asp.net/blogs/psperanza/CheckboxGridDaysSO_643AAC08.png" mce_href="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGridDaysSO_643AAC08.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title=CheckboxGridDaysSO border=0 alt=CheckboxGridDaysSO src="http://weblogs.asp.net/blogs/psperanza/CheckboxGridDaysSO_thumb_186ED54F.png" width=244 height=98 mce_src="https://aspblogs.blob.core.windows.net/media/psperanza/Media/CheckboxGridDaysSO_thumb_186ED54F.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;The original programmer had a load of javascript to select the day checkboxes for the row, and to select all of the signoff checkboxes he did a post back to do the work on the server.&lt;/P&gt;
&lt;P&gt;Right away I knew this would be easy to do with JQuery. The only problem that I had was how to get just the day checkboxes or just the signoff checkboxes. Luckily, all of the day checkbox Ids had the word “Day” in them and the signoff checkboxes had the words “IsSignedOff” in their Ids.&lt;/P&gt;
&lt;P&gt;Here is how I check all of the day checkboxes in the row that the select all checkbox resides in:&lt;/P&gt;
&lt;P&gt;The function call from the select all checkbox’s onclick event:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;input&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="ctl00_ContentPlaceHolder1_grdTest_ctl03_SelectAll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;type&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="checkbox"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;onclick&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="javascript:onSelectAll(this);" &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="ctl00$ContentPlaceHolder1$grdTest$ctl03$SelectAll"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000 size=2&gt;I pass “this”, which is the checkbox, to the function. Now for the &lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;function that does the work:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;function&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;onSelectAll(checkbox) {&lt;/FONT&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; cb = $(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"#"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; + checkbox.id);&lt;/FONT&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; td = cb.parent(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"td"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/FONT&gt; 
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;var&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; tr = td.parent(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"tr"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/FONT&gt; 
&lt;P&gt;tr.children().children(&lt;/P&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"input:checkbox[id*=Day&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;]"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).attr(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;'checked'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, cb.attr(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;'checked'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;));&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Let’s break the function down. It has to get checkboxes with html like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;td&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;style&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;="border-color: Black; border-style: Solid;"&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;input&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;="ctl00_ContentPlaceHolder1_grdTest_ctl03_Day1"&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;type&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;="checkbox"&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;="ctl00$ContentPlaceHolder1$grdTest$ctl03$Day1"&lt;/FONT&gt;&lt;/FONT&gt; &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;/&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;td&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The actual select all checkbox is passed as an argument. I then get the JQuery handle to that checkbox by using a JQuery id selector built using the actual id of the checkbox passed in.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Next I get the TD that contains the select all checkbox using the JQuery parent function on the checkbox. Then I get the TD’s parent row using the JQuery parent function on the TD.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Now that I have the rows I can get all of the checkboxes that are descendent children of that row, but I only want the checkboxes that contain the string “Day” in their ids. Remember, that last checkbox in the row has “IsSignedOff” in it’s id and the first one in the row is the select all checkbox.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;Using a css selector of &lt;FONT color=#a31515&gt;input:checkbox[id*=Day]&lt;/FONT&gt; says give me the input controls that are of type checkbox that have an id that contains the string “Day”. The *= is the JQuery operator for contains.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;So this function gets me all of the day checkboxes and sets their checked attribute to the checked attribute of the select all checkbox that initiates the function call.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;The last piece is to get the is signed off checkboxes in all rows, one per row. This is really easy. The button html looks like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=2&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515&gt;&lt;FONT color=#a31515&gt;input type=”button”&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;FONT color=#ff0000&gt;&lt;FONT color=#ff0000&gt;onclick&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;="javascript:checkSignOffs();" value=”&lt;/FONT&gt;&lt;/FONT&gt;Sign Off” &lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff&gt;&lt;FONT color=#0000ff&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;The function is this:&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;
&lt;P&gt;function&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;checkSignOffs() {&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;$(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"#grdTest&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt; input:checkbox[id*=IsSignedOff&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;]"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).attr(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;'checked'&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;true&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;);&lt;/FONT&gt; &lt;/P&gt;
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;It has to get checkboxes with html like this:&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;input&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="ctl00_ContentPlaceHolder1_grdTest_ctl03_IsSignedOff"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;type&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="checkbox" &lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;name&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="ctl00$ContentPlaceHolder1$grdTest$ctl03$IsSignedOff"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;/&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;The selector says for a table with an id of “grdTest”, get me the input controls of type checkbox that have an id that contains the string “IsSignedOff”. When JQuery gets the set of checkboxes, set the checked attribute of each one to checked.&lt;/P&gt;
&lt;P&gt;Not&amp;nbsp; bad for a few lines of code. Now maintenance will be much easy. We ripped out alot of javascript, removed a post back and best of all, I now have JQuery in another application.&lt;/P&gt;
&lt;P&gt;If anyone has a cleaner, more concise way of doing this please leave a comment. I know I can get the table row in the first set of code easier, I just need to figure it out. I will post an update when I do. I was in a hurry to share this :0)&lt;/P&gt;</description><pubDate>Fri, 08 May 2009 00:28:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/jquery-selectors-selecting-elements-by-a-partial-id</guid><category>.Net C# JQuery</category></item><item><title>Toggling visibility with JQuery</title><link>https://weblogs.asp.net:443/psperanza/toggling-visibility-with-jquery</link><description>&lt;P&gt;There is a subtle issue with the JQuery toggle method. I had a page that had a div set up similar to this&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="divGoodbye"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;style&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;border&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;: &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;1px&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;solid&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;green&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;visibility&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;: &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;hidden&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;float&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;: &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;right&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;"&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;Goodbye&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;I was trying to toggle it from not visible to visible by doing this&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;function&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; toggleGoodbye() {&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT size=2&gt;$(&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;"#divGoodbye"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;).toggle();&lt;/FONT&gt; 
&lt;P&gt;}&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;It didn’t work; however, if the div was initially styled with visibility:visible it worked perfectly. So I logged a bug report and the JQuery team got back to me with this&lt;/FONT&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;In jQuery, visibility is defined as taking up no space in the document. &lt;BR&gt;Most commonly that would be via {{{display:none}}} or {{{width:0}}}. There &lt;BR&gt;are other ways that an element might not be visible in the browser's &lt;BR&gt;viewport, including {{{visibility:hidden}}}, {{{opacity:0}}}, {{{margin- &lt;BR&gt;left:-10000px}}}, or being completely obscured by other elements higher in &lt;BR&gt;the {{{z-index}}} order. Those do not count as hidden as far as jQuery is &lt;BR&gt;concerned. &lt;BR&gt;&lt;BR&gt;If you need to use the {{{visibility}}} (or {{{opacity}}}) attribute as &lt;BR&gt;your method of making an element invisible, just track and toggle it &lt;BR&gt;yourself.In jQuery, visibility is defined as taking up no space in the document. &lt;BR&gt;Most commonly that would be via {{{display:none}}} or {{{width:0}}}. There &lt;BR&gt;are other ways that an element might not be visible in the browser's &lt;BR&gt;viewport, including {{{visibility:hidden}}}, {{{opacity:0}}}, {{{margin- &lt;BR&gt;left:-10000px}}}, or being completely obscured by other elements higher in &lt;BR&gt;the {{{z-index}}} order. Those do not count as hidden as far as jQuery is &lt;BR&gt;concerned. &lt;BR&gt;&lt;BR&gt;If you need to use the {{{visibility}}} (or {{{opacity}}}) attribute as &lt;BR&gt;your method of making an element invisible, just track and toggle it &lt;BR&gt;yourself.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;So I changed the style to this&lt;/FONT&gt;&lt;/P&gt;&lt;FONT size=2&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;id&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="divHello"&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;style&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;="&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;border&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;: &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;1px&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;solid&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;red&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;display&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;none&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;; &lt;/FONT&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;FONT color=#ff0000 size=2&gt;float&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;:&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;left&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt;;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;"&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT size=2&gt; 
&lt;P&gt;Hello&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;lt;/&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#a31515 size=2&gt;&lt;FONT color=#a31515 size=2&gt;div&lt;/FONT&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&amp;gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt; 
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;This works every time as expected. Hopefully this will save someone a bit of frustration. All scenarios worked in IE7, Firefox and Safari.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#0000ff size=2&gt;&lt;FONT color=#000000&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;/FONT&gt;&lt;/FONT&gt;</description><pubDate>Thu, 07 May 2009 21:30:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/toggling-visibility-with-jquery</guid><category>.Net C# JQuery</category></item><item><title>My new love - jQuery</title><link>https://weblogs.asp.net:443/psperanza/my-new-love-jquery</link><description>&lt;p&gt;I have been learning &lt;a href="http://jquery.com/" target="_blank"&gt;jQuery&lt;/a&gt; for about a month now. All I can say is wow! Where were they hiding this? I have been trying to write a post on it for about a week but everytime someone beats me to what I was going to say.&lt;/p&gt;  &lt;p&gt;I am going to start sharing some knowledge on jQuery but I wanted to get this one out. Along with the great joy that jQuery brings there is also some sadness. Once again I am reminded of how fallible Microsoft is. Now I am definitely a .Net fanboy, but while Mr. Resig was cooking up jQuery Microsoft was cooking up that useless pile of bloat called ASP.Net Ajax. Once again, like the iPhone, this should have been what Microsoft unleashed.&lt;/p&gt;  &lt;p&gt;Maybe it is better that they didn’t. Take a look at the crappy Ajax controls in the box and from that community. Then look at what jQuery has. Why is that?&lt;/p&gt;  &lt;p&gt;So I am trying to wade my way through getting and keeping any MS Ajax stuff out of my webforms, including the script manager. I want it clean. I am going to learn MVC to see if there is anything in there for me. But I’ll still be using webforms, just finding ways to do it better with jQuery. I was going to learn Silverlight but I think at this point, until I see what the next version has, jQuery will keep me working in more places.&lt;/p&gt;  &lt;p&gt;Yes, I am excited about front end stuff again. And its starting to fell good, hey!&lt;/p&gt;</description><pubDate>Wed, 29 Apr 2009 22:47:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/my-new-love-jquery</guid></item><item><title>Curly braces and C# Code generation using Sparx Systems' Enterprise Architect</title><link>https://weblogs.asp.net:443/psperanza/curly-braces-and-c-code-generation-using-sparx-systems-enterprise-architect</link><description>&lt;p&gt;When I write code I like the curly braces to be on the next line&lt;/p&gt;  &lt;p&gt;public class Customer&lt;/p&gt;  &lt;p&gt;{&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;I use Enterprise Architect by Sparx Systems to create my UML. Unfortunately, the code generated looks like this&lt;/p&gt;  &lt;p&gt;public class Customer{&lt;/p&gt;  &lt;p&gt;}&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;There is no option to change this behavior in EA. To get this to happen in EA you need to modify the code generation template for C#. Go to Settings, Code Generation Templates and select C#. Using the code below update the EA templates for the sections in the headers with ======== underneath. For properties the item you need to select Operation Body and then in the list box below the main list box select Property. Remember to click save for each section that you modify. If you don't like the changes you can click the Get Defaukt Template button for each section.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Namespace Body   &lt;br /&gt;===============&lt;/p&gt;  &lt;p&gt;$COMMENT=&amp;quot;WARNING: THIS IS AN ADVANCED TEMPLATE&amp;quot;   &lt;br /&gt;$COMMENT=&amp;quot;DO NOT MODIFY UNLESS YOU ARE AN&amp;quot;    &lt;br /&gt;$COMMENT=&amp;quot;ADVANCED USER!&amp;quot;    &lt;br /&gt;%if packageHasGenClasses != &amp;quot;T&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Namespace&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;&amp;quot;%    &lt;br /&gt;%endTemplate%&lt;/p&gt;  &lt;p&gt;%if packagePath == &amp;quot;&amp;quot; or genOptCSGenNamespace != &amp;quot;T&amp;quot;%   &lt;br /&gt;%PI=&amp;quot;\n\n&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Namespace&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Class&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;&amp;quot;%    &lt;br /&gt;%endTemplate%&lt;/p&gt;  &lt;p&gt;\n{   &lt;br /&gt;%PI=&amp;quot;\n\n&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Namespace&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Class&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%    &lt;br /&gt;}//end namespace %packageName%&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Class Body    &lt;br /&gt;==========&lt;/p&gt;  &lt;p&gt;%if elemType == &amp;quot;Interface&amp;quot;%   &lt;br /&gt;{\n    &lt;br /&gt;%list=&amp;quot;Operation&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%    &lt;br /&gt;%PI=&amp;quot;&amp;quot;%    &lt;br /&gt;}//end %className%    &lt;br /&gt;%endTemplate%&lt;/p&gt;  &lt;p&gt;\n{\n   &lt;br /&gt;%PI=&amp;quot;\n\n&amp;quot;%    &lt;br /&gt;%list=&amp;quot;InnerClass&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%    &lt;br /&gt;%list=&amp;quot;Attribute&amp;quot; @separator=&amp;quot;\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%&lt;/p&gt;  &lt;p&gt;$ops=&amp;quot;&amp;quot;   &lt;br /&gt;%if genOptGenConstructor == &amp;quot;T&amp;quot; and classHasConstructor != &amp;quot;T&amp;quot;%    &lt;br /&gt;$ops+=&amp;quot;\tpublic &amp;quot;+%className%+&amp;quot;()\n\t{\n\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;%if genOptGenDestructor == &amp;quot;T&amp;quot; and classHasDestructor != &amp;quot;T&amp;quot; and classHasFinalizer != &amp;quot;T&amp;quot;%   &lt;br /&gt;$ops+=&amp;quot;\n\n\t~&amp;quot;+%className%+&amp;quot;()\n\t{\n\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;%if genOptCSGenDispose == &amp;quot;T&amp;quot; and classHasDispose != &amp;quot;T&amp;quot;%   &lt;br /&gt;$ops+=&amp;quot;\n\n\tpublic &amp;quot;    &lt;br /&gt;$ops+=%classHasParent==&amp;quot;T&amp;quot; ? &amp;quot;override &amp;quot; : &amp;quot;virtual &amp;quot;%    &lt;br /&gt;$ops+=&amp;quot;void Dispose()\n{\n\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;%if genOptCSGenFinalizer == &amp;quot;T&amp;quot; and genOptGenDestructor != &amp;quot;T&amp;quot; and classHasFinalizer != &amp;quot;T&amp;quot; and classHasDestructor != &amp;quot;T&amp;quot;%   &lt;br /&gt;$ops+=&amp;quot;\n\n\tprotected &amp;quot;    &lt;br /&gt;$ops+=%classHasParent==&amp;quot;T&amp;quot; ? &amp;quot;override &amp;quot; : &amp;quot;virtual &amp;quot;%    &lt;br /&gt;$ops+=&amp;quot;void Finalize()\n{\n&amp;quot;    &lt;br /&gt;$ops+=%classHasParent==&amp;quot;T&amp;quot; ? &amp;quot;\t\tbase.Finalize();&amp;quot; : &amp;quot;&amp;quot;% + &amp;quot;\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;%if genOptGenCopyConstructor == &amp;quot;T&amp;quot; and classHasCopyConstructor != &amp;quot;T&amp;quot;%   &lt;br /&gt;$ops+=&amp;quot;\n\n\tpublic &amp;quot;    &lt;br /&gt;$ops+=%className%+&amp;quot;(&amp;quot;+%className%+&amp;quot; the&amp;quot;+%className%+&amp;quot;)\n\n{\n\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;$ops   &lt;br /&gt;%list=&amp;quot;Operation&amp;quot; @separator=&amp;quot;\n\n&amp;quot; @indent=&amp;quot;\t&amp;quot;%&lt;/p&gt;  &lt;p&gt;}//end %className%&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Operation Body   &lt;br /&gt;==============&lt;/p&gt;  &lt;p&gt;%if elemType == &amp;quot;Interface&amp;quot; or opTag:&amp;quot;delegate&amp;quot; == &amp;quot;true&amp;quot; or opAbstract == &amp;quot;T&amp;quot; or opTag:&amp;quot;extern&amp;quot; == &amp;quot;true&amp;quot;%   &lt;br /&gt;%PI=&amp;quot;&amp;quot;%    &lt;br /&gt;;    &lt;br /&gt;%endTemplate%&lt;/p&gt;  &lt;p&gt;{\n   &lt;br /&gt;$wrap = %genOptWrapComment==&amp;quot;-1&amp;quot; ? &amp;quot;-1&amp;quot; : &amp;quot;40&amp;quot;%    &lt;br /&gt;$behavior = %WRAP_LINES(opBehavior, $wrap, &amp;quot;\t//&amp;quot;, &amp;quot;&amp;quot;)%    &lt;br /&gt;%if $behavior != &amp;quot;&amp;quot;%    &lt;br /&gt;$behavior\n\n    &lt;br /&gt;%endIf%    &lt;br /&gt;$destName = &amp;quot;~&amp;quot; + %className%    &lt;br /&gt;%if opCode != &amp;quot;&amp;quot;%    &lt;br /&gt;%WRAP_LINES(opCode, &amp;quot;-1&amp;quot;, &amp;quot;\t&amp;quot;, &amp;quot;&amp;quot;)%    &lt;br /&gt;%elseIf opName == className or opName == $destName%    &lt;br /&gt;%elseIf opReturnType == &amp;quot;byte&amp;quot; or opReturnType == &amp;quot;char&amp;quot; or opReturnType == &amp;quot;decimal&amp;quot; or opReturnType == &amp;quot;double&amp;quot; or opReturnType == &amp;quot;float&amp;quot; or opReturnType == &amp;quot;int&amp;quot; or opReturnType == &amp;quot;long&amp;quot; or opReturnType == &amp;quot;sbyte&amp;quot; or opReturnType == &amp;quot;short&amp;quot; or opReturnType == &amp;quot;uint&amp;quot; or opReturnType == &amp;quot;ulong&amp;quot; or opReturnType == &amp;quot;ushort&amp;quot;%    &lt;br /&gt;\treturn 0;    &lt;br /&gt;%elseIf opReturnType == &amp;quot;bool&amp;quot;%    &lt;br /&gt;\treturn false;    &lt;br /&gt;%elseIf opReturnType == &amp;quot;string&amp;quot;%    &lt;br /&gt;\treturn &amp;quot;&amp;quot;;    &lt;br /&gt;%elseIf opReturnType != &amp;quot;void&amp;quot; and opReturnType != &amp;quot;&amp;quot;%    &lt;br /&gt;\treturn null;    &lt;br /&gt;%endIf%    &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Operation Body : Property    &lt;br /&gt;=========================&lt;/p&gt;  &lt;p&gt;%if elemType == &amp;quot;Interface&amp;quot; or opAbstract == &amp;quot;T&amp;quot;%   &lt;br /&gt;$att=%opTag:&amp;quot;attribute_name&amp;quot;==&amp;quot;&amp;quot; ? &amp;quot;&amp;lt;unknown&amp;gt;&amp;quot; : value%    &lt;br /&gt;%if opTag:&amp;quot;writeonly&amp;quot; == &amp;quot;&amp;quot;%    &lt;br /&gt;$read=&amp;quot;\tget;&amp;quot;    &lt;br /&gt;%endIf%    &lt;br /&gt;%if opTag:&amp;quot;readonly&amp;quot; == &amp;quot;&amp;quot;%    &lt;br /&gt;$write=&amp;quot;\tset;&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;{   &lt;br /&gt;$wrap = %genOptWrapComment==&amp;quot;-1&amp;quot; ? &amp;quot;-1&amp;quot; : &amp;quot;40&amp;quot;%    &lt;br /&gt;$behavior = %WRAP_LINES(opBehavior, $wrap, &amp;quot;\t//&amp;quot;, &amp;quot;&amp;quot;)%    &lt;br /&gt;%if $behavior != &amp;quot;&amp;quot;%    &lt;br /&gt;$behavior\n    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;$code = %WRAP_LINES(opCode, &amp;quot;-1&amp;quot;, &amp;quot;\t&amp;quot;, &amp;quot;&amp;quot;)%   &lt;br /&gt;%if $code != &amp;quot;&amp;quot;%    &lt;br /&gt;$code    &lt;br /&gt;%else%    &lt;br /&gt;$read    &lt;br /&gt;$write    &lt;br /&gt;%endIf%    &lt;br /&gt;}    &lt;br /&gt;%endTemplate%&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;$att=%opTag:&amp;quot;attribute_name&amp;quot;==&amp;quot;&amp;quot; ? &amp;quot;&amp;lt;unknown&amp;gt;&amp;quot; : value%    &lt;br /&gt;%if opTag:&amp;quot;writeonly&amp;quot; == &amp;quot;&amp;quot;%    &lt;br /&gt;$read=&amp;quot;\tget\n\t{\n\t\treturn &amp;quot; + $att + &amp;quot;;\n\t}&amp;quot;    &lt;br /&gt;%endIf%    &lt;br /&gt;%if opTag:&amp;quot;readonly&amp;quot; == &amp;quot;&amp;quot;%    &lt;br /&gt;$write=&amp;quot;\tset\n\t{\n\t\t&amp;quot; + $att + &amp;quot; = value;\n\t}&amp;quot;    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;\n{   &lt;br /&gt;$wrap = %genOptWrapComment==&amp;quot;-1&amp;quot; ? &amp;quot;-1&amp;quot; : &amp;quot;40&amp;quot;%    &lt;br /&gt;$behavior = %WRAP_LINES(opBehavior, $wrap, &amp;quot;\t//&amp;quot;, &amp;quot;&amp;quot;)%    &lt;br /&gt;%if $behavior != &amp;quot;&amp;quot;%    &lt;br /&gt;$behavior\n    &lt;br /&gt;%endIf%&lt;/p&gt;  &lt;p&gt;$code = %WRAP_LINES(opCode, &amp;quot;-1&amp;quot;, &amp;quot;\t&amp;quot;, &amp;quot;&amp;quot;)%   &lt;br /&gt;%if $code != &amp;quot;&amp;quot;%    &lt;br /&gt;$code    &lt;br /&gt;%else%    &lt;br /&gt;$read    &lt;br /&gt;$write    &lt;br /&gt;%endIf%    &lt;br /&gt;}&lt;/p&gt;</description><pubDate>Wed, 17 Sep 2008 01:31:50 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/curly-braces-and-c-code-generation-using-sparx-systems-enterprise-architect</guid></item><item><title>What should Microsoft do next?</title><link>https://weblogs.asp.net:443/psperanza/what-should-microsoft-do-next</link><description>&lt;p&gt;Ok, so the Yahoo! thing seems to be dead for now. So what does everyone think they should do with the money that they obviously have lying around to invest in other companies?&lt;/p&gt;  &lt;p&gt;I think they need some drastic changes. Take the iPhone for example. Windows Mobile is up to version 6 right? How does Apple come along and get it so right on version one? Go ahead, tell me what the iPhone doesn't have and WM does. Apple just disrupted the whole cell phone industry with the iPhone. Even the new phones coming out still suck for the average user. I don't need to see the start menu on my cell phone. And there in lies the root of the problem. Microsoft should have made the iPhone in the first place. &lt;/p&gt;  &lt;p&gt;Look at &lt;a href="http://www.salesforce.com" target="_blank"&gt;Salesforce.com&lt;/a&gt;. Again Microsoft should have been there first. What a great story that could have been tied in with desktop and web versions of Office. Incrementally. when Salesforce started a few years back it sucked but it supported every browser and grew better as the browsers got better. Spend some cash and put Office on the web and make a big deal out of it. Look at what &lt;a href="http://www.zoho.com" target="_blank"&gt;Zoho&lt;/a&gt; is doing. Why aren't you doing the experimenting in this space?&lt;/p&gt;  &lt;p&gt;We have Silverlight coming - hopefully we can get away from HTML and CSS which to me is a big hack on top of a lump of crap that was never meant to do the things that it is being made to do. That's right, you read it right. We basically have the same 15 html controls we started with 10 years ago. We just found some new ways to put 5 pounds of poop into a 2 pound bag. Web apps are just so obnoxious to develop. Don't you think we have been working like jackasses for 10 years to long? I say you do it right, embrace whatever &lt;a href="http://www.adobe.com/products/air/" target="_blank"&gt;Adobe&lt;/a&gt; does and do them 100 times better in addition to Silverlight. Leave no one out. Truly support linux, which I believe that you are doing with Novell. &lt;/p&gt;  &lt;p&gt;The whole Microsoft stack is a great set of technologies. To me it trumps everything else out there, hands down. Yet so many developers hate them. You know what? Stop being a bunch of pricks - you don't own the universe anymore, but you could if you do it right. I saw a major project get done without even considering the superior Microsoft product out of pure hatred and contempt.&lt;/p&gt;  &lt;p&gt;There are a lot of great alternatives out there. Better? Maybe, maybe not, but follow this logic. How many entity-data frameworks are you going to throw at us? I'm confused and to make matters worse your frameworks only seem to work with SQL Server. Spend the money and support the 2 next biggest players. And stop making me have to hunt for and download 10 different files from different CTPs from 10 different web locations (yes you from the extensions teams). If you are giving me the next rev of Visual Studio tools give me everything I need in one download. I now have a headache. &lt;/p&gt;  &lt;p&gt;One of my friends, a complete java / open source bigot, is trying to get me to take a look at NHibernate. Let's see - something similar, works with all databases, it's free. Why aren't you guys doing this? As soon as you see these things coming, help the teams and support at least the .Net version. Make it better than the Java version, which shouldn't be to hard.&lt;/p&gt;  &lt;p&gt;When you create a web property don't make people have to have a Live Id. Let people create an id using their own email address and a password, just like most other sites do. With all of the resources that you have people should be looked at like total freaks if they want to use any other platform.&lt;/p&gt;  &lt;p&gt;Don't become irrelevant&amp;#160; like IBM did. Google is a search engine with advertisements. They are the darlings of the tech world. Are you kidding me? This should be you. It still could. Remember what you learned from your mother and in kindergarten? Play nice.&lt;/p&gt;  &lt;p&gt;So anyway, I know this could have been a more cohesive post but I just wanted to get some thoughts out there. Fire away.&lt;/p&gt;</description><pubDate>Mon, 05 May 2008 01:50:50 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/what-should-microsoft-do-next</guid></item><item><title>Getting calendar items using Exchange Web Services</title><link>https://weblogs.asp.net:443/psperanza/getting-calendar-items-using-exchange-web-services</link><description>&lt;P&gt;I am no expert at exchange, let alone Exchange Web Services (EWS), but I recently had to use it to get at calendar information for a project. Let me tell you that the documentation for EWS sucks and the API is not very intuitive. That said, I was able to piece together what I needed. The code is not perfect and could definitely use a good once over by someone with more than 2 days experience.&lt;/P&gt;
&lt;P&gt;The code will show how to get at calendar items, how to use a date range and how to get the body of the calendar item. I racked my brain for a while to get the body - you have&amp;nbsp; to make a call to get the calendar items and then for each item you have to go and use the ID to get its body in another call. The&amp;nbsp; idea is that the first call gets only the small parts of an item. If you want things like attachments then you make another call to get it. &lt;A href="http://msdn.microsoft.com/en-us/library/bb508824(EXCHG.80).aspx" target=_blank mce_href="http://msdn.microsoft.com/en-us/library/bb508824(EXCHG.80).aspx"&gt;Here&lt;/A&gt; is a link to an article that gets into it.&lt;/P&gt;
&lt;P&gt;The code is not perfect but I want to save someone the time that I spent. Please leave comments with suggestions and improvements. &lt;/P&gt;
&lt;P&gt;UPDATE: I have attached some code. I don’t have access to an exchange server. It&amp;nbsp;compiles but at least the classes are there for you.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="COLOR: blue"&gt;private &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;List&lt;/SPAN&gt;&amp;lt;CalendarInfo&amp;gt; GetCalendarEvents()&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;List&lt;/SPAN&gt;&amp;lt;CalendarInfo&amp;gt; calendarEvents = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;List&lt;/SPAN&gt;&amp;lt;CalendarInfo&amp;gt;();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;ExchangeServiceBinding &lt;/SPAN&gt;esb = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ExchangeHelper&lt;/SPAN&gt;().GetExchangeBinding(&lt;SPAN style="COLOR: #a31515"&gt;"myUserName"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"myPassword"&lt;/SPAN&gt;, &lt;SPAN style="COLOR: #a31515"&gt;"myDomain"&lt;/SPAN&gt;);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Form the FindItem request.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;FindItemType &lt;/SPAN&gt;findItemRequest = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;FindItemType&lt;/SPAN&gt;();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;CalendarViewType &lt;/SPAN&gt;calendarView = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;CalendarViewType&lt;/SPAN&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; calendarView.StartDate = &lt;SPAN style="COLOR: #2b91af"&gt;DateTime&lt;/SPAN&gt;.Now.AddDays(-1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; calendarView.EndDate = &lt;SPAN style="COLOR: #2b91af"&gt;DateTime&lt;/SPAN&gt;.Now.AddDays(1);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; calendarView.MaxEntriesReturned = 100;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; calendarView.MaxEntriesReturnedSpecified = &lt;SPAN style="COLOR: blue"&gt;true&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findItemRequest.Item = calendarView;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Define which item properties are returned in the response.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemResponseShapeType &lt;/SPAN&gt;itemProperties = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemResponseShapeType&lt;/SPAN&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Use the Default shape for the response. &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //itemProperties.BaseShape = DefaultShapeNamesType.IdOnly;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;itemProperties.BaseShape = &lt;SPAN style="COLOR: #2b91af"&gt;DefaultShapeNamesType&lt;/SPAN&gt;.AllProperties;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findItemRequest.ItemShape = itemProperties;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;DistinguishedFolderIdType&lt;/SPAN&gt;[] folderIDArray =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DistinguishedFolderIdType&lt;/SPAN&gt;[1];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderIDArray[0] = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;DistinguishedFolderIdType&lt;/SPAN&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderIDArray[0].Id = &lt;SPAN style="COLOR: #2b91af"&gt;DistinguishedFolderIdNameType&lt;/SPAN&gt;.calendar;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(!&lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(criteria.EmailAddress))&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderIDArray[0].Mailbox = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;EmailAddressType&lt;/SPAN&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderIDArray[0].Mailbox.EmailAddress = &lt;SPAN style="COLOR: #a31515"&gt;"myEmail.com"&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; findItemRequest.ParentFolderIds = folderIDArray;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Define the traversal type.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;findItemRequest.Traversal = &lt;SPAN style="COLOR: #2b91af"&gt;ItemQueryTraversalType&lt;/SPAN&gt;.Shallow;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;try&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Send the FindItem request and get the response.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;FindItemResponseType &lt;/SPAN&gt;findItemResponse = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; esb.FindItem(findItemRequest);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Access the response message.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ArrayOfResponseMessagesType &lt;/SPAN&gt;responseMessages =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; findItemResponse.ResponseMessages;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;ResponseMessageType&lt;/SPAN&gt;[] rmta = responseMessages.Items;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;int &lt;/SPAN&gt;folderNumber = 0;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;foreach &lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;ResponseMessageType &lt;/SPAN&gt;rmt &lt;SPAN style="COLOR: blue"&gt;in &lt;/SPAN&gt;rmta)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// One FindItemResponseMessageType per folder searched.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;FindItemResponseMessageType &lt;/SPAN&gt;firmt = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rmt &lt;SPAN style="COLOR: blue"&gt;as &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;FindItemResponseMessageType&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(firmt.RootFolder == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;continue &lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;FindItemParentType &lt;/SPAN&gt;fipt = firmt.RootFolder;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;object &lt;/SPAN&gt;obj = fipt.Item;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// FindItem contains an array of items.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(obj &lt;SPAN style="COLOR: blue"&gt;is &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ArrayOfRealItemsType&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;ArrayOfRealItemsType &lt;/SPAN&gt;items =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (obj &lt;SPAN style="COLOR: blue"&gt;as &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ArrayOfRealItemsType&lt;/SPAN&gt;);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(items.Items == &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderNumber++;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;else&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;foreach &lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;ItemType &lt;/SPAN&gt;it &lt;SPAN style="COLOR: blue"&gt;in &lt;/SPAN&gt;items.Items)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(it &lt;SPAN style="COLOR: blue"&gt;is &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType &lt;/SPAN&gt;cal = (&lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType&lt;/SPAN&gt;)it;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CalendarInfo ce = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;CalendarInfo();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ce.Location = cal.Location;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ce.StartTime = cal.Start;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ce.EndTime = cal.End;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ce.Subject = cal.Subject;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ce.Body = GetMeetingBody(esb, cal);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; calendarEvents.Add(ce);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; folderNumber++;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;catch &lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;Exception &lt;/SPAN&gt;e)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;throw&lt;/SPAN&gt;;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;finally&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return &lt;/SPAN&gt;calendarEvents;&lt;BR&gt;}&lt;BR&gt;&lt;BR&gt;&lt;SPAN style="COLOR: blue"&gt;private string &lt;/SPAN&gt;GetMeetingBody(&lt;SPAN style="COLOR: #2b91af"&gt;ExchangeServiceBinding &lt;/SPAN&gt;binding, &lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType &lt;/SPAN&gt;meeting)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;meetingBody = &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.Empty;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType &lt;/SPAN&gt;temp = &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Call GetItem on each ItemId to retrieve the &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // item’s Body property and any AttachmentIds.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Form the GetItem request.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;GetItemType &lt;/SPAN&gt;getItemRequest = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;GetItemType&lt;/SPAN&gt;();&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getItemRequest.ItemShape = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemResponseShapeType&lt;/SPAN&gt;();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// AllProperties on a GetItem request WILL return &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // the message body.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;getItemRequest.ItemShape.BaseShape = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;DefaultShapeNamesType&lt;/SPAN&gt;.AllProperties;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getItemRequest.ItemIds = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemIdType&lt;/SPAN&gt;[1];&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; getItemRequest.ItemIds[0] = (&lt;SPAN style="COLOR: #2b91af"&gt;BaseItemIdType&lt;/SPAN&gt;)meeting.ItemId;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// Here is the call to exchange.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;GetItemResponseType &lt;/SPAN&gt;getItemResponse =&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; binding.GetItem(getItemRequest);&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: green"&gt;// We only passed in one ItemId to the GetItem&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // request. Therefore, we can assume that&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // we got at most one Item back.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemInfoResponseMessageType &lt;/SPAN&gt;getItemResponseMessage = &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getItemResponse.ResponseMessages.Items[0] &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;as &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ItemInfoResponseMessageType&lt;/SPAN&gt;;&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(getItemResponseMessage != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(getItemResponseMessage.ResponseClass ==&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: #2b91af"&gt;ResponseClassType&lt;/SPAN&gt;.Success &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; getItemResponseMessage.Items.Items != &lt;SPAN style="COLOR: blue"&gt;null &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&amp;amp;&amp;amp; getItemResponseMessage.Items.Items.Length &amp;gt; 0)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; temp = (&lt;SPAN style="COLOR: #2b91af"&gt;CalendarItemType&lt;/SPAN&gt;)getItemResponseMessage.Items.Items[0];&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(temp.Body != &lt;SPAN style="COLOR: blue"&gt;null&lt;/SPAN&gt;)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; meetingBody = temp.Body.Value;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="COLOR: blue"&gt;return &lt;/SPAN&gt;meetingBody;&lt;BR&gt;}&lt;/P&gt;&lt;PRE class=code&gt;&lt;SPAN style="COLOR: blue"&gt;private &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ExchangeServiceBinding &lt;/SPAN&gt;GetExchangeBinding(
      &lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;userName, &lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;passwotrd, &lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;domain)
  {

      &lt;SPAN style="COLOR: #2b91af"&gt;ExchangeServiceBinding &lt;/SPAN&gt;binding = &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ExchangeServiceBinding&lt;/SPAN&gt;();

      &lt;SPAN style="COLOR: #2b91af"&gt;ServicePointManager&lt;/SPAN&gt;.ServerCertificateValidationCallback =
              &lt;SPAN style="COLOR: blue"&gt;delegate&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #2b91af"&gt;Object &lt;/SPAN&gt;obj, &lt;SPAN style="COLOR: #2b91af"&gt;X509Certificate &lt;/SPAN&gt;certificate, 
              &lt;SPAN style="COLOR: #2b91af"&gt;X509Chain &lt;/SPAN&gt;chain, &lt;SPAN style="COLOR: #2b91af"&gt;SslPolicyErrors &lt;/SPAN&gt;errors)
              {
                  &lt;SPAN style="COLOR: green"&gt;// Replace this line with code to validate server certificate.
                  &lt;/SPAN&gt;&lt;SPAN style="COLOR: blue"&gt;return true&lt;/SPAN&gt;;
              };

      System.Net.&lt;SPAN style="COLOR: #2b91af"&gt;WebProxy &lt;/SPAN&gt;proxyObject = 
          &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;System.Net.&lt;SPAN style="COLOR: #2b91af"&gt;WebProxy&lt;/SPAN&gt;();
      proxyObject.Credentials = 
          System.Net.&lt;SPAN style="COLOR: #2b91af"&gt;CredentialCache&lt;/SPAN&gt;.DefaultCredentials;

      binding.Credentials = 
          &lt;SPAN style="COLOR: blue"&gt;new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;NetworkCredential&lt;/SPAN&gt;(userName, password, domain);
 
      &lt;SPAN style="COLOR: blue"&gt;string &lt;/SPAN&gt;server = &lt;SPAN style="COLOR: #2b91af"&gt;ConfigurationManager&lt;/SPAN&gt;.AppSettings[&lt;SPAN style="COLOR: #a31515"&gt;"ExchangeServer"&lt;/SPAN&gt;] &lt;SPAN style="COLOR: blue"&gt;as string&lt;/SPAN&gt;;

      &lt;SPAN style="COLOR: blue"&gt;if &lt;/SPAN&gt;(server == &lt;SPAN style="COLOR: blue"&gt;null &lt;/SPAN&gt;|| &lt;SPAN style="COLOR: blue"&gt;string&lt;/SPAN&gt;.IsNullOrEmpty(server))
          &lt;SPAN style="COLOR: blue"&gt;throw new &lt;/SPAN&gt;&lt;SPAN style="COLOR: #2b91af"&gt;ArgumentNullException&lt;/SPAN&gt;(&lt;SPAN style="COLOR: #a31515"&gt;"The Exchange server Url could not be found."&lt;/SPAN&gt;);

      binding.Url = server;
      &lt;SPAN style="COLOR: #2b91af"&gt;Console&lt;/SPAN&gt;.WriteLine(&lt;SPAN style="COLOR: #a31515"&gt;"***** " &lt;/SPAN&gt;+ server);

      binding.Proxy = proxyObject;

      &lt;SPAN style="COLOR: blue"&gt;return &lt;/SPAN&gt;binding;
  }&lt;/PRE&gt;&lt;A href="http://11011.net/software/vspaste" mce_href="http://11011.net/software/vspaste"&gt;&lt;/A&gt;</description><pubDate>Tue, 18 Mar 2008 22:59:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/getting-calendar-items-using-exchange-web-services</guid><category>.Net C# Exchange Calendar items</category></item><item><title>Setting up Sandcastle</title><link>https://weblogs.asp.net:443/psperanza/setting-up-sandcastle</link><description>&lt;p&gt;I just spent an interesting few hours setting up &lt;a href="http://www.codeplex.com/Sandcastle" target="_blank"&gt;Sandcastle&lt;/a&gt;. The whole process is absolutely insane. Sandcastle itself is no problem, and neither is &lt;a href="http://www.codeplex.com/SHFB" target="_blank"&gt;Sandcastle Help File Builder&lt;/a&gt; (by the way, nice job). The problem is finding the help compilers. The Help File Builder home page provides a link to resources for all of the compilers which I completely missed. My bad.&lt;/p&gt;  &lt;p&gt;You have to install the Visual Studio 2005 SDK. Or is the the VS 2003 SDK? Wait, I have VS 2008, so is it the VS 2008 SDK?&amp;#160; It depends on if you want the Help 1.x files generated or the Help 2.x files generated. The VS 2005 SDK puts HXCOMP.exe in an archive directory.&lt;/p&gt;  &lt;p&gt;Why is&amp;#160; this so hard? Even though the Help File Builder seems to be the piece that requires the compilers, when you pull down Sandcastle it should give you everything you need for help files, after all, isn't this the whole point? &lt;/p&gt;  &lt;p&gt;In the end I decided to go with the website version for my needs. I am building a help file for a set of WCF services. These will be outward facing and we don't know what our consumers will be using for their apps. Why does the HTML version of the help require an ActiveX control for the browser?&lt;/p&gt;  &lt;p&gt;Maybe I am missing something so if anyone has any thoughts please pass them along.&lt;/p&gt;</description><pubDate>Sun, 17 Feb 2008 17:44:19 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/setting-up-sandcastle</guid></item><item><title>The Big Switch</title><link>https://weblogs.asp.net:443/psperanza/the-big-switch</link><description>&lt;p&gt;In December, Michael Arrington had a &lt;a href="http://www.techcrunch.com/2007/12/18/the-big-switch-12-signed-pre-release-copies-for-techcrunch-readers/" target="_blank"&gt;post&lt;/a&gt; that held a contest to win a copy of '&lt;a href="http://www.nicholasgcarr.com/bigswitch/" target="_blank"&gt;The Big Switch&lt;/a&gt;' by Nick Carr of '&lt;a href="http://www.amazon.com/Information-Technology-Corrosion-Competitive-Advantage/dp/1591394449/ref=pd_bbs_sr_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1197968399&amp;amp;sr=8-2" target="_blank"&gt;Does IT Matter&lt;/a&gt;' fame. It talks about computing services becoming a utility. I won a copy by giving my thoughts on the topic.&lt;/p&gt;  &lt;p&gt;It was a fast read, provided some background on the history of electric utilities and then makes the parallel with computing services. Corporate infrastructure departments should give it a gander. His theory makes sense as the foundation is already being laid. Smaller shops are already there.&lt;/p&gt;  &lt;p&gt;One interesting note - he claims Bill Gates' time has come and gone. I can see that and I guess with the impending changing of the guard at Microsoft, so does Bill.&lt;/p&gt;  &lt;p&gt;Anyway, its an interesting book.&lt;/p&gt;</description><pubDate>Sun, 27 Jan 2008 21:58:01 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/the-big-switch</guid></item><item><title>Overloaded again</title><link>https://weblogs.asp.net:443/psperanza/overloaded-again</link><description>&lt;P&gt;I have just read Keith Harvey's post &lt;A href="http://weblogs.asp.net/keithharvey/archive/2008/01/24/slow-down-microsoft-i-can-t-take-it.aspx" target=_blank mce_href="http://weblogs.asp.net/keithharvey/archive/2008/01/24/slow-down-microsoft-i-can-t-take-it.aspx"&gt;Slow Down Microsoft, I Can't Take It!&lt;/A&gt; about the pace the development of .Net technologies. He says it's not so bad but wow, my head hurts.&lt;/P&gt;
&lt;P&gt;With the release of Visual Studio 2008 and .Net 3.5 we have several new things to play with, in addition to the CTPs for &lt;A href="http://www.asp.net/downloads/3.5-extensions/" target=_blank mce_href="http://www.asp.net/downloads/3.5-extensions/"&gt;MVC, Entity Framework&lt;/A&gt;, &lt;A href="http://astoria.mslivelabs.com/Default.aspx" target=_blank mce_href="http://astoria.mslivelabs.com/Default.aspx"&gt;Astoria&lt;/A&gt; plus whatever else I have heard about and can't think of at the moment.&lt;/P&gt;
&lt;P&gt;LINQ, with all of its flavors is a monster. Thanks to Scott Guthrie for his tutorials &lt;A href="http://it-box.blogturk.net/2007/10/19/linq-to-sql-tutorial-series-by-scott-guthrie-pdf-book-format/" target=_blank mce_href="http://it-box.blogturk.net/2007/10/19/linq-to-sql-tutorial-series-by-scott-guthrie-pdf-book-format/"&gt;here&lt;/A&gt; and &lt;A href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx" target=_blank mce_href="http://weblogs.asp.net/scottgu/archive/2007/07/16/linq-to-sql-part-5-binding-ui-using-the-asp-linqdatasource-control.aspx"&gt;here&lt;/A&gt;. What is going to be interesting with LINQ is to see how and when Oracle supports it, but I heard its coming.&lt;/P&gt;
&lt;P&gt;So here we go again. I can't master it all, heck, I can't even use it all, but for now the goal is to gain a decent understanding of it so I'll know its there for a deeper dive when I start my next project.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;UPDATE&lt;/STRONG&gt; As Robert pointed out in the comments, I forgot Silverlight. So, while&amp;nbsp;I am at it - WCF which I work with, WPF which I read a book about,&amp;nbsp;WF which I ran a few tutorials for, CardSpace&amp;nbsp;an on an on an on!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Sun, 27 Jan 2008 21:19:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/overloaded-again</guid></item><item><title>Ajax and security</title><link>https://weblogs.asp.net:443/psperanza/439556</link><description>&lt;p&gt;&lt;font face="Tahoma" size="2"&gt;I have been toying with Ajax on and off for a few months now. I like the idea and there&amp;nbsp;seems&amp;nbsp;to be a never ending stream of ajax samples, tools and ideas. What I have&amp;nbsp;yet to see is how these calls are secured. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;Maybe&amp;nbsp;I am missing something, but I really don't think that I have seen any examples. Maybe I am just getting hung up on the fact that javascript is making the calls but I would like to see some concrete examples just to be sure. The way I see it is that there might be something in calling from javascript that throws something off. Its not as much the things that I might be looking for as much as the things that I don't know to look for.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Tahoma" size="2"&gt;I found &lt;/font&gt;&lt;a href="http://searchwebservices.techtarget.com/qna/0,289202,sid26_gci1164745,00.html"&gt;&lt;font face="Tahoma" size="2"&gt;this&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; from&amp;nbsp;&lt;/font&gt;&lt;A href="http://weblogs.asp.net/rhurlbut/archive/2006/02/16/438365.aspx"&gt;&lt;font face="Tahoma" size="2"&gt;Rob Hurlbut's&lt;/font&gt;&lt;/a&gt;&lt;font face="Tahoma" size="2"&gt; blog.&amp;nbsp;What I think is lacking is that many&amp;nbsp;tutorials leave this kind of stuff out.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Sat, 04 Mar 2006 07:32:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/439556</guid></item><item><title>Enterprise Library 2.0 released for real</title><link>https://weblogs.asp.net:443/psperanza/436053</link><description>&lt;font face="Verdana" size="2"&gt;Ok, they finally let the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;&lt;font face="Verdana" size="2"&gt;Enterprise Library 2.0&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; loose in the wild. I have been jonesing for it but I promised myself I wouldn't touch it until it was final. I didn't want to spend time with the beta&amp;nbsp;. I'm trying not to use beta stuff if I can help it. Congrats to the team. Now I can get to work.&lt;/font&gt;</description><pubDate>Sat, 21 Jan 2006 04:04:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/436053</guid></item><item><title>Enterprise library 2.0 released?</title><link>https://weblogs.asp.net:443/psperanza/435343</link><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Am I insane or did they actually release the final version? A few blogs are pointing &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;&lt;font face="Verdana" size="2"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; but it is for the November CTP. Anybody know what is up?&lt;/font&gt;&lt;/p&gt;</description><pubDate>Sat, 14 Jan 2006 15:23:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/435343</guid></item><item><title>The answer to being overwhelmed.</title><link>https://weblogs.asp.net:443/psperanza/435275</link><description>&lt;font face="Verdana" size="2"&gt;I have a way to stop being &lt;/font&gt;&lt;A href="http://weblogs.asp.net/psperanza/archive/2006/01/12/435216.aspx"&gt;&lt;font face="Verdana" size="2"&gt;overwhelmed&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt; with all of the new techologies : Stop reading all of your blogs.&amp;nbsp;Yeah, right.&lt;/font&gt;</description><pubDate>Fri, 13 Jan 2006 17:06:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/435275</guid></item><item><title>Overwhelmed</title><link>https://weblogs.asp.net:443/psperanza/435216</link><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;In my &lt;/font&gt;&lt;A href="http://weblogs.asp.net/psperanza/archive/2005/12/19/433499.aspx"&gt;&lt;font face="Verdana" size="2"&gt;last post&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;I mentioned I was having trouble with the VS 2005 help system. I filed a &lt;/font&gt;&lt;a href="http://lab.msdn.microsoft.com/productfeedback/viewfeedback.aspx?feedbackid=ca18c87c-609a-458c-ac53-d9d030394efb"&gt;&lt;font face="Verdana" size="2"&gt;bug&lt;/font&gt;&lt;/a&gt;&lt;font face="Verdana" size="2"&gt;&amp;nbsp;which got me absolutely nowhere. I had to repave my machine. All is well now. I just discovered code snippets and I like them.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Anyway, there are so many things to get into with .Net I am starting to feel like I can't focus. Just when I start digging into something I find out about something else. I really need to focus, but it is all so cool. Anyone else have this problem? if so, how do you manage it? Leave a comment.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Fri, 13 Jan 2006 00:51:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/435216</guid></item><item><title>It's been a long while!</title><link>https://weblogs.asp.net:443/psperanza/433499</link><description>&lt;p&gt;&lt;font face="Verdana" size="2"&gt;Yes it has and shame on me. I have had alot of personal things going on, plus a new consulting gig on a&amp;nbsp;massive project with a major sports network. This project is in VB .Net, and while I normally prefer C#, VB ain't too shabby. The switch over wasn't that bad but when I do other work in C# I keep forgetting braces and semi colons. &lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;I am really going to try to blog more. Its good therapy.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;Anyway, I have VS 2005 Team System Developer on my laptop at home and MS Help just keeps blowing up, so much that I can't even get the error from it. Has anyone seen this? I get results but as soon as I click on them it lets go.&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face="Verdana" size="2"&gt;&lt;/font&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Mon, 19 Dec 2005 13:21:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/433499</guid></item><item><title>Preparing for Ajax</title><link>https://weblogs.asp.net:443/psperanza/421333</link><description>Saw&amp;nbsp;&lt;A href="http://www.forgetfoo.com/?p=2&amp;amp;blogid=3808"&gt;this link on Forget Foo&lt;/A&gt;&amp;nbsp;of a nice &lt;A href="http://ajaxpatterns.org/Main_Page" target=_blank&gt;Ajax resource&lt;/A&gt;. Time to dig in.</description><pubDate>Tue, 02 Aug 2005 14:39:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/421333</guid></item><item><title>Fighting comment spammers</title><link>https://weblogs.asp.net:443/psperanza/419091</link><description>Roy Osherove has a &lt;A href="http://weblogs.asp.net/rosherove/archive/2005/07/12/419084.aspx" target=_blank&gt;post&lt;/A&gt;&amp;nbsp;about moderating comments in your blog with .Text. Not that I get much but every little bit helps.</description><pubDate>Tue, 12 Jul 2005 13:52:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/419091</guid></item><item><title>MS is really listening</title><link>https://weblogs.asp.net:443/psperanza/414261</link><description>&lt;P&gt;I had reported a bug&amp;nbsp;with the VS 2005 Unit Tester&amp;nbsp;aborting tests when&amp;nbsp;MS Anti Spyware is running. I have been getting MSN alerts&amp;nbsp;at various times to keep me posted on the status of the bug. I&amp;nbsp; just got an email and then an alert on my cell phone telling me that the are working with the spyware team and will have it fixed before the final release. &lt;/P&gt;&lt;P&gt;Very cool.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;H1&gt;&lt;SPAN id=lblTitle&gt;&lt;FONT size=2&gt;Bug Details: @005 beta 2 Unit tester does not work with MS Anit Spyware&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/H1&gt;&lt;P&gt;&lt;TABLE cellSpacing=0 cellPadding=0 width="100%" border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD id=ValidateTableCell style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: 0px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #e4f1fd"&gt;&lt;TABLE height="100%" cellSpacing=0 cellPadding=0 width="100%" border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: #6699cc 1px solid; WIDTH: 14px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #6699cc"&gt;&lt;FONT size=2&gt;&lt;IMG height=14 alt="" src="http://lab.msdn.microsoft.com/ProductFeedback/images/icon_validate.jpg" width=14 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px"&gt;&lt;FONT size=2&gt;&lt;B&gt;Validate&lt;/B&gt; &lt;BR&gt;Can validate (&lt;SPAN id=lblValidateCount&gt;0&lt;/SPAN&gt;) &lt;BR&gt;Can't validate (&lt;SPAN id=lblUnvalidateCount&gt;0&lt;/SPAN&gt;) &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;TD id=VoteTableCell style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: 0px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #e4f1fd"&gt;&lt;TABLE cellSpacing=0 cellPadding=0 border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: #6699cc 1px solid; WIDTH: 14px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #6699cc"&gt;&lt;FONT size=2&gt;&lt;IMG height=14 alt="" src="http://lab.msdn.microsoft.com/ProductFeedback/images/icon_voting.jpg" width=14 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px"&gt;&lt;FONT size=2&gt;&lt;B&gt;Voting &lt;/B&gt;(&lt;SPAN id=lblVoteCount&gt;0&lt;/SPAN&gt; voters) &lt;BR&gt;Average voter rating: &lt;SPAN id=lblAvgRating&gt;0&lt;/SPAN&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;A id=hypVotePrimary href="http://lab.msdn.microsoft.com/ProductFeedback/viewfeedback.aspx?feedbackid=8479b61a-4575-48d2-aa72-16f24c96b378"&gt;&lt;FONT size=2&gt;Please vote on the primary bug/suggestion&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;!--&lt;td&gt;&amp;nbsp;&lt;/td&gt;--&gt;&lt;TD id=WorkaroundTableCell style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: 0px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #e4f1fd"&gt;&lt;TABLE cellSpacing=0 cellPadding=0 border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: #6699cc 1px solid; WIDTH: 14px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #6699cc"&gt;&lt;FONT size=2&gt;&lt;IMG height=14 alt="" src="http://lab.msdn.microsoft.com/ProductFeedback/images/icon_workaround.jpg" width=14 border=0&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px"&gt;&lt;FONT size=2&gt;&lt;B&gt;Workarounds&lt;/B&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;A id=hypWorkaroundsPosted&gt;&lt;FONT size=2&gt;&lt;SPAN id=lblWorkaroundCount&gt;0&lt;/SPAN&gt; workarounds posted&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;A href="http://lab.msdn.microsoft.com/ProductFeedback/EditWorkaround.aspx?feedbackid=f96a553e-258c-4677-9d3a-fa39b07a5095"&gt;&lt;FONT size=2&gt;Post a workaround&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;TD id=TrackingsTableCell style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: 0px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #e4f1fd"&gt;&lt;TABLE cellSpacing=0 cellPadding=0 border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD style="BORDER-RIGHT: #6699cc 1px solid; BORDER-TOP: #6699cc 1px solid; BORDER-LEFT: #6699cc 1px solid; WIDTH: 14px; BORDER-BOTTOM: #6699cc 1px solid; BACKGROUND-COLOR: #6699cc"&gt;&lt;FONT size=2&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD style="PADDING-RIGHT: 5px; PADDING-LEFT: 5px; PADDING-BOTTOM: 5px; PADDING-TOP: 5px"&gt;&lt;FONT size=2&gt;&lt;B&gt;Tracking&lt;/B&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;DIV id=pnlTrackingEnabled&gt;&lt;SPAN id=lblWorkItemInMyTrackedList&gt;&lt;FONT size=2&gt;Already on &lt;/FONT&gt;&lt;A href="http://lab.msdn.microsoft.com/ProductFeedback/MyFeedbackPreferences.aspx"&gt;&lt;FONT size=2&gt;my tracking list&lt;/FONT&gt;&lt;/A&gt;&lt;/SPAN&gt;&lt;FONT size=2&gt; &lt;BR&gt;&lt;/FONT&gt;&lt;A id=lkbWatchButton href="javascript:__doPostBack('lkbWatchButton','')"&gt;&lt;FONT size=2&gt;Remove&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=2&gt; &lt;/FONT&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;!--// Panel to let user validate bugs  //--&gt;&lt;!-- Panel to let users vote on bugs --&gt;&lt;TABLE cellPadding=2 border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top width=300&gt;&lt;TABLE cellSpacing=5 cellPadding=1 border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;SPAN id=BugView_lblTypeNumber&gt;&lt;FONT size=2&gt;Bug ID:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width=180&gt;&lt;FONT size=2&gt;FDBK30090&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Problem Type:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width=150&gt;&lt;FONT color=#ff0000 size=2&gt;&lt;SPAN id=BugView_lblType&gt;Bug&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Status:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width=150&gt;&lt;FONT size=2&gt;Closed&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trResolution&gt;&lt;TD&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Resolution:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;SPAN id=BugView_Label8&gt;&lt;FONT size=2&gt;Duplicate&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Microsoft Status:&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width=150&gt;&lt;FONT size=2&gt;Reviewed&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Opened Date:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width=150&gt;&lt;FONT size=2&gt;2005-06-16 18:05:04&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Opened By:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top noWrap align=left&gt;&lt;FONT size=2&gt;Paul Speranza &lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;TD vAlign=top width="100%"&gt;&lt;TABLE cellSpacing=5 cellPadding=1 width="100%" border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap width=150&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Product/Technology:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left width="100%"&gt;&lt;FONT size=2&gt;Visual Studio&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Version:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;Visual Studio 2005 Beta 2&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Product Language:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;English&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Category:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;IDE General&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;OS:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;Windows XP Professional&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;OS Language:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;English&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD vAlign=top noWrap&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Submission Language:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;English&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;&lt;HR&gt;&lt;P&gt;&lt;TABLE cellSpacing=10 cellPadding=1 width="100%" border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;FONT size=2&gt;&lt;SPAN id=BugView_lblDescriptionTitle&gt;Description:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;TABLE cellSpacing=0 cellPadding=0 width="100%" border=0&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD colSpan=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #f1553e"&gt;&lt;FONT size=2&gt;Opened by Paul Speranza on 2005-06-16 at 18:05:04 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD width="100%"&gt;&lt;BR&gt;&lt;FONT size=2&gt;All unit tests are aborted when MS anti spyware is running &lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD colSpan=2&gt;&lt;SPAN style="FONT-WEIGHT: bold; COLOR: #f1553e"&gt;&lt;FONT size=2&gt;Closed by Microsoft on 2005-06-21 at 10:31:10 &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;FONT size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/FONT&gt;&lt;/TD&gt;&lt;TD width="100%"&gt;&lt;BR&gt;&lt;FONT size=2&gt;Thank you for taking the time to send us this feedback. This is an issue we're working on with the Anti-Spy team and will have a resolution by the time we ship.&lt;BR&gt;&lt;BR&gt;Thank you.&lt;BR&gt;Tom Arnold&lt;BR&gt;PM, VSTEST &lt;/FONT&gt;&lt;P&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trReproSteps&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;&lt;SPAN id=BugView_lblReproStepsTitle&gt;Steps to Reproduce:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;SPAN id=BugView_lblReproSteps&gt;&lt;FONT size=2&gt;Create some unit tests, run test project&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trResultsAndWorkarounds&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;&lt;SPAN id=BugView_lblActualTitle&gt;Actual Results:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;SPAN id=BugView_lblActual&gt;&lt;FONT size=2&gt;All unit tests are aborted. I turned off antispyware and everything works.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;&lt;SPAN id=BugView_lblExpectedTitle&gt;Expected Results:&lt;/SPAN&gt; &lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;SPAN id=BugView_lblExpected&gt;&lt;FONT size=2&gt;Unit tests would run.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;A name=Attachments&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Attachments:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;DIV id=BugView_rptAttachments_pnlAttachmentList&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/DIV&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trWorkarounds&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;A name=Workarounds&gt;&lt;/A&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Workarounds:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;FONT size=2&gt;&lt;/FONT&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trDuplicates&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Primary:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD vAlign=top align=left&gt;&lt;A href="http://lab.msdn.microsoft.com/ProductFeedback/ViewFeedback.aspx?FeedbackID=8479b61a-4575-48d2-aa72-16f24c96b378"&gt;&lt;FONT size=2&gt;FDBK21277 &lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR id=BugView_trSecondary&gt;&lt;TD class=caption style="WIDTH: 148px" vAlign=top align=right&gt;&lt;STRONG&gt;&lt;FONT size=2&gt;Duplicates:&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/P&gt;</description><pubDate>Wed, 22 Jun 2005 12:12:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/414261</guid></item><item><title>Learning the Team System unit tester</title><link>https://weblogs.asp.net:443/psperanza/414196</link><description>&lt;P&gt;Ok, so now I dig around the web and find out I can create a test by right clicking on the constructor. Not bad - it created a test project and a class to test the constructor. I just need to set some values. So I set the unit test project as the start project - because I didn't know about the Test Manager yet - and away I go. The test&amp;nbsp;results show that the test was aborted and I see the anti spyware thingy popping up about something tyring to write to a file.&lt;/P&gt;&lt;P&gt;I'm thinking to myself, "Could it be that no one at MS is running Anti-Spyware with VS?" Nah, and after a quick google I found &lt;A href="http://davebost.com/blog/archive/2005/04/18/473.aspx"&gt;this&lt;/A&gt;&amp;nbsp;link. Ok, so now the world is in harmony and I got through my first unit test. I'm still a little disoriented but I'll get over it.&lt;/P&gt;&lt;P&gt;Next up is trying to read a user from the database. To be continued.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Tue, 21 Jun 2005 17:11:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/414196</guid></item><item><title>Learning VS 2005 part I</title><link>https://weblogs.asp.net:443/psperanza/414156</link><description>&lt;P&gt;In the &lt;A href="http://weblogs.asp.net/psperanza/archive/2005/06/21/414121.aspx"&gt;prequel&lt;/A&gt; to this entry I realized I shoudl have blogged my experiences with beta 2 from the start. Anyway,&amp;nbsp;once I figured out what&amp;nbsp;I was going to try to build, it was time to make another stab at &lt;A href="http://weblogs.asp.net/psperanza/archive/2004/11/29/271992.aspx"&gt;getting NUnit to work&lt;/A&gt;&amp;nbsp;with VS. &lt;/P&gt;&lt;P&gt;Why NUnit? Because it is what I know, and besides I was so confused about the Team System pieces I thought I would need to set up a mainfame in my basement&amp;nbsp;just to do source control. So I use the class designer to create a User class. I know I should create the test first but I was dying tocheck out the class designer. I like the designer but it still feels clunky. Hopefully that is because it is beta, but sometimes if the feel isn't right I would rather code the class by hand.&lt;/P&gt;&lt;P&gt;Next I created a test to instantiate a User. I pulled down NUNit 2.2 and fiddle with the config and it seems to work. The NUnit GUI comes up, I point to the test dll and no tests show up. I have TestFixture and Test attributes in the proper places. At this point I have had enough, but I know it is beta so I keep digging, all the while I have the Team System Unit Tester knocking at my brain.&lt;/P&gt;&lt;P&gt;I just recieved the DVD from MSDN supscriptions and it had everything on it. So I start the install and guess what - it installs. My configuration is a Win XP laptop with a drive I use just for beta stuff - so that I can take it anywhere and not pollute my other systems. For some reason I thought the unit tester was not a stand alone product. I'm not sure why, that is just the impression I got. I think the Team System guys need to do a better job of explaining what goes on the server and what a dveeloper can run on a workstation without the server. &lt;/P&gt;&lt;P&gt;The next entry will be about learning how to use the built in unit tester.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description><pubDate>Tue, 21 Jun 2005 12:53:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/psperanza/414156</guid></item></channel></rss>