<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10016115</id><updated>2011-07-07T18:02:52.545-05:00</updated><category term='ted'/><title type='text'>Gary Gumbiner, MCT, MCPD, MCSD .NET</title><subtitle type='html'>Musing of a Microsft Trainer and Developer</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10016115.post-4815443755489781508</id><published>2010-07-23T14:12:00.000-05:00</published><updated>2010-07-23T14:12:56.764-05:00</updated><title type='text'>Ria Services And Odata</title><content type='html'>When adding a Domain Service Class &amp;nbsp;(RIA) to&amp;nbsp;a Silverlight project (the Web project),&amp;nbsp; a dialog titled&amp;nbsp;Add New Domain service Class appears. In this dialog you can select via a checkbox to expose Odata endpoint.&lt;br /&gt;&lt;br /&gt;Depending on&amp;nbsp;you selection, the code generated for the Silverlight client will be different. If you look in the Silverlight Generated Code folder (Show all folders on the solution explorer) open the projname.web.gs file and note the&amp;nbsp;following differences:&lt;br /&gt;&lt;br /&gt;If OData not checked, 2 namespaces are generated: ProjName and ProjName.Web. If Odata is checked you get 3 namespaces: ProjName, ProjName.Web.Views, ProjName.Web.Models.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-4815443755489781508?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/4815443755489781508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=4815443755489781508' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/4815443755489781508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/4815443755489781508'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2010/07/ria-services-and-odata.html' title='Ria Services And Odata'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-7157298947885934127</id><published>2010-06-30T14:37:00.002-05:00</published><updated>2010-06-30T14:44:15.689-05:00</updated><title type='text'>Silverlight Toolkit Theme Controls</title><content type='html'>I downloaded the Silverlight toolkit from http://silverlight.codeplex.com/releases/view/43528 (Silverlight_4_Toolkit_April_2010.msi). When I ran the msi, and subsequently opened Visual studio 2010, in the toolbox under the tab "All Silverlight Controls" I found several "Theme Controls" such as BubbleCremeTheme, RainierOrangeTheme etc.&lt;br /&gt;&lt;br /&gt;These can be used as controls rather easily. For example, open a new Silverlight application. On MainPage.xaml select a theme control from the toolbox and drag it onto the design surface. This causes a reference to be added to the Silverlight project for the associated theme control (System.Windows.Controls.Theming.BubbleCreme).&lt;br /&gt;&lt;br /&gt;I used the XAML tab to get the xaml to look like the following:&lt;br /&gt;&lt;br /&gt;&amp;lt;grid name="LayoutRoot" background="White"&gt;&lt;br /&gt;&amp;lt;?xml:namespace prefix = toolkit /&gt;&lt;br /&gt;&amp;lt;toolkit:bubblecremetheme name="BubbleCremeTheme1"&gt;&lt;br /&gt;&amp;lt;toolkit:bubblecremetheme.content&gt;&lt;br /&gt;&amp;lt;/toolkit:bubblecremetheme.content&gt;&lt;br /&gt;&amp;lt;/toolkit:bubblecremetheme&gt;&lt;br /&gt;&amp;lt;/grid&gt;&lt;br /&gt;&lt;br /&gt;I added some controls to &amp;lt;toolkit:bubblecremetheme.content&gt;. An example follows:&lt;br /&gt;&lt;br /&gt;&amp;lt;grid name="LayoutRoot" background="White"&gt;&lt;br /&gt;&amp;lt;toolkit:bubblecremetheme name="BubbleCremeTheme1"&gt;&lt;br /&gt;&amp;lt;toolkit:bubblecremetheme.content&gt;&lt;br /&gt;&amp;lt;grid&gt;&lt;br /&gt;&amp;lt;button name="Button1" type="submit" content="Button" height="23" horizontalalignment="Left" margin="56,30,0,0" verticalalignment="Top" width="75"&gt;&lt;br /&gt;&amp;lt;checkbox content="CheckBox" name="CheckBox1" height="16" horizontalalignment="Left" margin="58,62,0,0" verticalalignment="Top"&gt;&lt;br /&gt;&amp;lt;/grid&gt;&lt;br /&gt;&amp;lt;/toolkit:bubblecremetheme.content&gt;&lt;br /&gt;&amp;lt;/toolkit:bubblecremetheme&gt;&lt;br /&gt;&amp;lt;/grid&gt;&lt;br /&gt;&lt;br /&gt;The themes are encapsulated in the associated control (System.Windows.Controls.Theming.BubbleCreme) - they should be treated like any other control when used. During my experimentation I had to switch between design and xaml views in Visual Studio 2010 to get the xaml just right.&lt;br /&gt;&lt;br /&gt;Xaml source for the themes are available and can be found at the installation path for the Silverlight 4.0 toolkit: (on my Windows 7 64 bit machine: C:\Program Files (x86)\Microsoft SDKs\Silverlight\v4.0\Toolkit\Apr10\Themes\Xaml)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-7157298947885934127?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/7157298947885934127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=7157298947885934127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/7157298947885934127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/7157298947885934127'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2010/06/silverlight-toolkit-theme-controls.html' title='Silverlight Toolkit Theme Controls'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-8996741111272849144</id><published>2010-06-25T12:00:00.002-05:00</published><updated>2010-06-25T12:29:56.095-05:00</updated><title type='text'>ODATA</title><content type='html'>After attending the OData roadshow in Chicago a few weeks ago I have been inspired to learn and practice OData. After some absence from the blogging world, I decided to write some entries about my experiences.&lt;br /&gt;&lt;br /&gt;My very first comment about OData--it is awesome, exposing data with ease, improving and streamlining application development.&lt;br /&gt;&lt;br /&gt;I also have done some work with RIA (domain services). During my learning cycle I found that a RIA domain service can also be exposed as Odata. When creating the domain service be sure to check "Expose OData endpoint" check box.&lt;br /&gt;&lt;br /&gt;Then through the browser you can access the domain service as an odata endpoint.&lt;br /&gt;&lt;br /&gt;It took me awhile to actually get this to work, as most of my problems were syntax related.&lt;br /&gt;&lt;br /&gt;Here is what I learned: to access an OData endpoint that is a RIA domain service in a Silverlight project (4.0) the following should work:&lt;br /&gt;&lt;br /&gt;If your Silverlight Web project is named: SilverlightApplicationSimpleRIA.Web&lt;br /&gt;&lt;br /&gt;Then the link to access the OData endpoint is:&lt;br /&gt;http://localhost:2551/SilverlightApplicationSimpleRIA-Web-DomainServiceNW_RIA.svc/OData/&lt;br /&gt;&lt;br /&gt;Notice&lt;br /&gt;1) . (period) is replaced with a - (In web project name)&lt;br /&gt; &lt;br /&gt;2) appended to the project name SilverlightApplicationSimpleRIA-Web is a - and then the name of the Domain Service (as defined in the Web project), followed by .svc,  followed by a / &lt;br /&gt;    i.e. SilverlightApplicationSimpleRIA-Web-DomainServiceNW_RIA.svc/ &lt;br /&gt;    Be aware that the "silverlight web" project has no .svc file defined, this is constructed "virtually" for a domain service&lt;br /&gt;&lt;br /&gt;3) then add OData/   (the syntax here caused me a bit of a problem--OData is case sensitive -- also do not forget the ending / (if you do you'll probably get endpoint not found message when doing the access)&lt;br /&gt;&lt;br /&gt;I tested this with IE 8 along with Silverlight 4, and it worked like a champ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-8996741111272849144?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/8996741111272849144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=8996741111272849144' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/8996741111272849144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/8996741111272849144'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2010/06/odata.html' title='ODATA'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-3019274493808999978</id><published>2007-07-26T12:36:00.000-05:00</published><updated>2007-07-26T13:15:22.464-05:00</updated><title type='text'>WPF &amp; Datargidview Control</title><content type='html'>The Windows Forms DataGridView control may be hosted in a WPF form using a &amp;lt;WindowsFormsHost&gt; tag&lt;br /&gt;(in fact any Windows Forms Control may be hosted within this tag, which provides a solution to the lack of a WPF Data Grid control).&lt;br /&gt;&lt;br /&gt;The following XAML and VB.Net code was done using Visual Studio 2005 .&lt;br /&gt;&lt;br /&gt;In a WPF Windows application:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;add a reference to WindowsFormsIntegration (WindowsFormsIntegration.dll)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In a XAML file (i.e. Window1.xaml)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;add a reference to System.Windows.Forms:&lt;/li&gt;&lt;/ul&gt;&lt;div align="left"&gt;&amp;lt;Window&lt;br /&gt;xmlns:wf="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms" ...&lt;/div&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;add the following XAML to host the DataGridView control&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&amp;lt;StackPanel&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;WindowsFormsHost Width="200" Height="200"&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;wf:DataGridView x:Name="dgv"&gt; &amp;lt;/wf:DataGridView&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/WindowsFormsHost&gt;&lt;/p&gt;&lt;p&gt;&amp;lt;/StackPanel&gt;&lt;/p&gt;&lt;p&gt;Note: it appears that the &amp;lt;WindowsFormsHost&gt; should have Width and Height attributes to ensure that the DataGridView will render with scrollbars&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Build the Project&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In the associated code view for the XMAL(Windows.xaml.vb) :&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Add the following code to the Window1_Loaded event handler:&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;'Use the Authors table in the Pubs database&lt;/p&gt;&lt;p&gt;Dim conn As New System.Data.SqlClient.SqlConnection("integrated security=true;database=pubs")&lt;/p&gt;&lt;p&gt;Dim da As New System.Data.SqlClient.SqlDataAdapter("select * from employee", conn)&lt;/p&gt;&lt;p&gt;Dim ds As New System.Data.DataSetda.Fill(ds)&lt;br /&gt;Me.dgv.DataSource = ds.Tables(0)&lt;/p&gt;&lt;p&gt;Me.dgv.DataMember = ds.Tables(0).TableName&lt;/p&gt;&lt;p&gt;Me.dgv.ScrollBars = System.Windows.Forms.ScrollBars.Both&lt;/p&gt;&lt;p&gt;Me.dgv.Visible = True&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Run the program to display the WPF with the DataGridView.&lt;/p&gt;&lt;p&gt;Note that &amp;lt;WindowsFormsHost&gt; may only contain one Windows Forms Control. Use multiple &amp;lt;WindowsFormsHost&gt; tags or create a Windows Forms User Control with the desired layout and host in using in &amp;lt;WindowsFormsHost&gt;. Also, the DataGridView will not render with any WPF styles that may have defined.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-3019274493808999978?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/3019274493808999978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=3019274493808999978' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/3019274493808999978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/3019274493808999978'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/07/wpf-datargidview-control.html' title='WPF &amp; Datargidview Control'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-956617143250855786</id><published>2007-07-08T20:57:00.000-05:00</published><updated>2007-07-08T21:19:39.122-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><title type='text'>Flow Documents and Code Behind</title><content type='html'>It is possible to have XAML controls with event handlers in a Flow Document. This can be accomplished using Visual studio 2005  by:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add a FlowDocument (WPF) to a Visual Studio 2005 .NET 3.0 WPF project (i.e. FlowDocument2.xaml)&lt;/li&gt;&lt;li&gt;Add a class to the project named FlowDocument2.xaml.vb (VS 2005 does not automatically add an associated "code-behind" class)&lt;/li&gt;&lt;li&gt;In FlowDocument2.xaml in the &amp;lt;FlowDocument&gt; element add the attribute: &amp;lt;FlowDocument a:Class="FlowDocument2" ....&lt;/li&gt;&lt;li&gt;Within a &amp;lt;Paragraph&gt; element add:&lt;br /&gt;Test Text&amp;lt;InlineUIContainer&gt;&amp;lt;Button Name="TestCmd" Content="Press Me"&gt;&amp;lt;/Button&gt;&amp;lt;/InlineUIContainer&gt;Test Text&lt;/li&gt;&lt;li&gt;Build the project&lt;/li&gt;&lt;li&gt;In the Code-behind class (FlowDocument2.xaml.vb) for TestCmd (the button) add a click event&lt;/li&gt;&lt;li&gt;In the click event place some code (i.e. MessageBox.Show("clicked")&lt;/li&gt;&lt;li&gt;Make FlowDocument2.xaml the startup URI for the project&lt;/li&gt;&lt;li&gt;Run the project (F5 or &amp;lt;Shift&gt;F5&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-956617143250855786?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/956617143250855786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=956617143250855786' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/956617143250855786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/956617143250855786'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/07/flow-documents-and-code-behind.html' title='Flow Documents and Code Behind'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-7451838126897871841</id><published>2007-07-08T20:43:00.000-05:00</published><updated>2007-07-08T20:55:02.801-05:00</updated><title type='text'>XAML &amp; Flow Documents</title><content type='html'>For WPF projects in Visual Studio 2005 you can have the project display a Flow Document when starting.&lt;br /&gt;&lt;br /&gt;In the App.Xaml file, for the &amp;lt; Application&gt; element add the following attribute:&lt;br /&gt;&lt;br /&gt;StartupUri="FlowDocument1.xaml" &lt;br /&gt;&lt;br /&gt;With this approach it is easy to see what the associated flow document looks like. Just run the project using F5 (Start Debugging) or &amp;lt;Shift&gt; F5 (Start Without Debugging). &lt;br /&gt;&lt;br /&gt;Note that Flow Documents cannot be viewed in design mode within Visual Studio 2005, so this technique provides an easy way to see the actual formatting of a Flow Document.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-7451838126897871841?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/7451838126897871841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=7451838126897871841' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/7451838126897871841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/7451838126897871841'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/07/xaml-flow-documents.html' title='XAML &amp; Flow Documents'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-1150377715274154483</id><published>2007-04-22T13:08:00.000-05:00</published><updated>2007-04-22T13:30:12.864-05:00</updated><title type='text'>WPF and Windows Forms</title><content type='html'>While learning WPF, in order to take advantage of its neat features (i.e graphics, animation etc), you will most likely want to get busy using WPF in your projects as soon as possible. You can do this even if you are not up to speed on all WPF features. &lt;br /&gt;&lt;br /&gt;It is possible to have both WPF Windows and traditional Windows Forms within the same VS 2005 .NET Framework 3.0 Windows Application (WPF). You can use WPF forms where you feel comfortable, but use Windows Forms for other situations. &lt;br /&gt;&lt;br /&gt;For example, suppose that you have not yet got up to speed with WPF data binding -- you could implement that in a Win Form using the traditional data binding techniques, but do other application interfaces using WPF (i.e About Form, Search Form).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In .NET code, both WPF Windows and Windows Forms are objects and can be thought of as a "form"&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;    Dim f as SomeForm       'could be a WPF or Win Form&lt;br /&gt;    f.show&lt;br /&gt;&lt;br /&gt;You can show a WPF form from a Windows Form or show a Windows Form from a WPF form.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-1150377715274154483?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/1150377715274154483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=1150377715274154483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/1150377715274154483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/1150377715274154483'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/04/wpf-and-windows-forms.html' title='WPF and Windows Forms'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-1205018989959154915</id><published>2007-04-21T15:15:00.000-05:00</published><updated>2007-04-21T15:22:04.491-05:00</updated><title type='text'>Some Beginning XAML</title><content type='html'>XMAL gives developers the means to customize their user interfaces in ways that have not been available using traditional tools (i.e. Windows Forms).&lt;br /&gt;&lt;br /&gt;The following XMAL snippet gives a simple example:&lt;br /&gt;&lt;br /&gt;    &amp;lt;StackPanel Background="Beige"&gt;&lt;br /&gt;&lt;br /&gt;       &amp;lt;Button&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;Button.ToolTip&gt;&lt;br /&gt;    &amp;lt;TextBlock FontWeight="UltraBold" TextAlignment="Center"&gt;&lt;br /&gt;      &amp;lt;Ellipse Width="20" Height="20" Stroke="Blue" Fill="AliceBlue"&gt;&amp;lt;/Ellipse&gt;&lt;br /&gt;             &amp;lt;Label&gt;A ToolTip Message&amp;lt;/Label&gt;&lt;br /&gt;     &amp;lt;Rectangle Height="20" Width="20" Fill="AliceBlue" Stroke="Blue" StrokeThickness="2" &gt;&amp;lt;/Rectangle&gt;&lt;br /&gt;   &amp;lt;/TextBlock&gt;&lt;br /&gt; &amp;lt;/Button.ToolTip&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;Button.Content&gt;&lt;br /&gt;   &amp;lt;TextBlock FontWeight="UltraBold" TextAlignment="Center"&gt;&lt;br /&gt;     &amp;lt;Ellipse Width="20" Height="20" Stroke="Red" Fill="Pink"&gt;&amp;lt;/Ellipse&gt;&lt;br /&gt;     &amp;lt;Label&gt;Press Me&amp;lt;/Label&gt;&lt;br /&gt;     &amp;lt;Rectangle Height="20" Width="20" Fill="Pink" Stroke="Red" StrokeThickness="2" &gt;&amp;lt;/Rectangle&gt;&lt;br /&gt;   &amp;lt;/TextBlock&gt;&lt;br /&gt;        &amp;lt;/Button.Content&gt;&lt;br /&gt;&lt;br /&gt;      &amp;lt;/Button&gt;&lt;br /&gt;     &amp;lt;/StackPanel&gt;&lt;br /&gt;&lt;br /&gt;The button defines its own content and a tooltip. Notice that the content and tool tip defintions can contain other XAML, allowing for very interesting presentation. Here, both the button and tool tip have tradtional text (i.e. Press Me) as well as a Rectangle and Ellipse. No longer are developers constrained by text only or creating their own images with hope that a control supports display of an image.&lt;br /&gt;&lt;br /&gt;The other good news is that when the window with the above is resized, the button contents are automatically adjusted to ensure that it continues to have a consistent look and feel --  and the best part, a developer does not have to do anything to get this behavior!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-1205018989959154915?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/1205018989959154915/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=1205018989959154915' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/1205018989959154915'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/1205018989959154915'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/04/xmal-gives-developers-means-to.html' title='Some Beginning XAML'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-4702223282455581430</id><published>2007-04-19T12:15:00.000-05:00</published><updated>2007-04-19T12:44:33.954-05:00</updated><title type='text'>I'm Back</title><content type='html'>After a long, long break from blogging, I am back!! For a while I have been using/learning Windows Presentation Foundation. I find this feature of .NET 3.0 to have huge potential for changing, enhancing the way user interfaces are designed and implemented for applications.&lt;br /&gt;&lt;br /&gt;I have been using VS 2005 with the Visual Studio 2005 extensions for .NET Framework 3.0. concentrating on standalone applications (the traditional Windows Forms application development that we all know and love)&lt;br /&gt;&lt;br /&gt;The good news is that I am able to leverage my knowledge of Visual Studio in order to get right to work creating .xaml to define the UI along with implementation of business intelligence code (usually in VB.NET). Actually when beginning to learn/experiment with Windows Foundation Presentation, which more then likely means being exposed to XAML (eXtensible Application Markup Language) rather quickly, keep in mind what I like to think of as ".NET/Visual Studio" patterns. &lt;br /&gt;&lt;br /&gt;For example in a VS 2005 NET Framework 3.0 Windows Application, when adding a  new WPF Window to a project results in 2 files being added to that project, one for the xaml (aName.xmal) and one for managed code (i.e aName.xaml.vb). These files are associated with one another - in the xaml file the user interface is defined using XAML, while in the.xaml.vb file holds any associated managed code. &lt;br /&gt;&lt;br /&gt;For ASP.NET Web developers this mirrors the "code-behind" approach; user interface defined in .aspx using HTML and code in the associated .aspx.vb file. As is the case with ASP.NET, you could decide to keep code (VB or C#) along with the XAML in the same .xaml file. This is analogous to an in-line ASP.NET approach.&lt;br /&gt;&lt;br /&gt;My point here is to keep in mind familiar concepts and patterns about .NET and Visual Studio as they will appear quite often while learning WPF. Recognizing them will help speed up the learning curve.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-4702223282455581430?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/4702223282455581430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=4702223282455581430' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/4702223282455581430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/4702223282455581430'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2007/04/im-back.html' title='I&apos;m Back'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-114356119208819428</id><published>2006-03-28T09:51:00.000-06:00</published><updated>2006-03-28T09:53:12.100-06:00</updated><title type='text'>ASP.NET 2.0 Gridview</title><content type='html'>I have been working with ASP.NET 2.0 on a variety of projects. When using the new Gridview control I have found that it does not support custom paging (as the datagrid did in ASP.NET 1.x). That's too bad, the first time I really want to use this facility and it is gone....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-114356119208819428?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/114356119208819428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=114356119208819428' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/114356119208819428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/114356119208819428'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2006/03/aspnet-20-gridview.html' title='ASP.NET 2.0 Gridview'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-113811927669990506</id><published>2006-01-24T10:09:00.000-06:00</published><updated>2006-01-24T10:14:36.713-06:00</updated><title type='text'>Visual Studio 2005 Missing Windows</title><content type='html'>As I was debugging with Visual Studio 2005 I wanted to display the Immediate window (old habits die hard). When I looked for it in as a Debug|Windows menu item it was not there. I searched around menu items some and could not find it. &lt;br /&gt;&lt;br /&gt;Instead I used CTL+ALT+I to access (display) it.&lt;br /&gt;&lt;br /&gt;The same issue occurred when I wanted to access (display) the Exceptions window. I had to use CTL+ALT+E to access (display) it.&lt;br /&gt;&lt;br /&gt;I wonder if this was by Visual Studio 2005 design or not; in any case these 2 windows are available....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-113811927669990506?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/113811927669990506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=113811927669990506' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113811927669990506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113811927669990506'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2006/01/visual-studio-2005-missing-windows.html' title='Visual Studio 2005 Missing Windows'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-113804444778192694</id><published>2006-01-23T13:10:00.000-06:00</published><updated>2006-01-23T13:27:27.796-06:00</updated><title type='text'>ASP.NET 2.0 Changing SiteMap files</title><content type='html'>I have been testing out navgation in ASP.NET 2.0, especially the sitemap feature.&lt;br /&gt;&lt;br /&gt;I wanted to dynamically change sitemaps and found that it can be done as follows:&lt;br /&gt;&lt;br /&gt;First define a few different sitemap files (i.e. x.sitemap, y.sitemap) within your project (i.e. Company1SiteMap, Company2SiteMap).&lt;br /&gt;&lt;br /&gt;Then in the web.config file add the following entries:&lt;br /&gt;&lt;br /&gt;&amp;lt;siteMap defaultProvider="Company1SiteMap" enabled="true"&gt;&lt;br /&gt;   &amp;lt;providers&gt;&lt;br /&gt; &amp;lt;add &lt;br /&gt; name="Company1SiteMap"&lt;br /&gt; type="System.Web.XmlSiteMapProvider" &lt;br /&gt; siteMapFile="~/x.sitemap" /&gt;&lt;br /&gt; &lt;br /&gt; &amp;lt;add &lt;br /&gt; name="Company2SiteMap"&lt;br /&gt; type="System.Web.XmlSiteMapProvider" &lt;br /&gt; siteMapFile="~/y.sitemap" /&gt;&lt;br /&gt; &amp;lt;/providers&gt;&lt;br /&gt;&amp;lt;/siteMap&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If a siteMapPath control is used on a form without specifing a siteMapProvider then the default provider is used which by default is a project file named web.sitemap. The default is changed (in this case to x.sitemap) by the web.confg entry:&lt;br /&gt;&lt;br /&gt;&amp;lt;siteMap defaultProvider="Company1SiteMap" enabled="true"&gt;&lt;br /&gt;&lt;br /&gt;The sitemap file defined by the Company1SiteMap &amp;lt;providers&gt; entry is now the default sitemap for the project.&lt;br /&gt;&lt;br /&gt;To define other sitemaps for the project, add entries in the &amp;lt;providers&gt; section as shown in the above web.config entries.&lt;br /&gt;&lt;br /&gt;To dynamically change the sitemap used by a sitemappath control just set the SiteMapProvider propery of the control with the name of the entry that points to the .sitemap file that is desired:&lt;br /&gt;&lt;br /&gt;(Assume a sitemap control on the form named SiteMapPath1)Me.SiteMapPath1.SiteMapProvider = "Company2SiteMap" 'will use y.sitemap&lt;br /&gt;&lt;br /&gt;Now, the SiteMapPath1 sitemappath control will use the sitemap file defined by the entry named Company2SiteMap (y.sitemap)&lt;br /&gt;&lt;br /&gt;I tested this by changing the sitemap from the default (x.sitemap) to y.sitemap in a button click event and it worked like a champ.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-113804444778192694?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/113804444778192694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=113804444778192694' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113804444778192694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113804444778192694'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2006/01/aspnet-20-changing-sitemap-files.html' title='ASP.NET 2.0 Changing SiteMap files'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-113752467060688830</id><published>2006-01-17T12:40:00.000-06:00</published><updated>2006-01-17T16:29:35.173-06:00</updated><title type='text'>ASP.NET 2.0 and Crystal Reports</title><content type='html'>After a long rest I am back blogging.&lt;br /&gt;&lt;br /&gt;Recently I have been spending a lot of time with Visual Studio 2005 exploring both ASP.NET and traditional Windows Forms projects.&lt;br /&gt;&lt;br /&gt;I have a client in a medium sized company that has struggled with report distribution off and on for sometime. Having a small IT staff they wanted easy desktop installation along with “pretty” report printing capability from the client.&lt;br /&gt;&lt;br /&gt;We discussed using Visual Studio 2003 and Crystal Reports with the Crystal Report Viewer control. Actually, a while back I did a small prototype and had many issues; finally we gave up and moved on to other projects.&lt;br /&gt;&lt;br /&gt;Enter Visual Studio 2005. I decided to give it a try. In less than one hour I had a simple Crystal Report being displayed on a ASP.NET 2.0 web form. First, I populated a dataset with data for the report using ADO.NET (nothing special here). I created a rather simple Crystal Report using the Crystal Report wizard. Next, I bound the Crystal report to the dataset. Finally, I used the Crystal Report viewer control on a Web form to show the Crystal Report in the browser and provide formatted printing capability. It worked with no difficulty.&lt;br /&gt;&lt;br /&gt;The two cool things about the process were using a 1) dataset as a data source for the crystal report (as opposed to having crystal do the data population) and 2) Adobe Reader is used to display the report when the client decides to print it at the browser; this lets a client choose the printer they want to use for printing (along with all the other printing goodies) and prints a formatted report (i.e. real page breaks etc) or for that matter export to a different format (word, pdf, excel). Since most desktop’s these days have Adobe Reader this technique for printing works like a champ.  The biggest item however was that I had no problems doing this on an ASP.NET 2.0 page whatsoever; everything worked as advertised.&lt;br /&gt;&lt;br /&gt;This is one possible solution for providing well formatted printed reports from a browser.&lt;br /&gt;&lt;br /&gt;The client loved it and has begun to deploy various reports using this approach.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-113752467060688830?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/113752467060688830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=113752467060688830' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113752467060688830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/113752467060688830'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2006/01/aspnet-20-and-crystal-reports.html' title='ASP.NET 2.0 and Crystal Reports'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-112412089108171235</id><published>2005-08-15T10:32:00.000-05:00</published><updated>2005-08-15T10:48:11.543-05:00</updated><title type='text'>A few more VS 2005 Windows Forms features</title><content type='html'>I have recently been using Beta 2 of Visual Studio 2005, looking at Windows Forms development.&lt;br /&gt;&lt;br /&gt;I have discovered a few items that really help with Windows Forms development.&lt;br /&gt;&lt;br /&gt;First, buttons have a new property AutoEllipsis; if your button text does not fit within the boundaries of the button, an ellipsis is automatically added.&lt;br /&gt;&lt;br /&gt;In the project properties, you can "enable XP visual styles". What this does is allow your forms to have an XP look and feel (move the mouse over a button and see the effect)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-112412089108171235?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/112412089108171235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=112412089108171235' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/112412089108171235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/112412089108171235'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/08/few-more-vs-2005-windows-forms.html' title='A few more VS 2005 Windows Forms features'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111895470850468096</id><published>2005-06-16T15:40:00.000-05:00</published><updated>2005-06-16T15:45:08.506-05:00</updated><title type='text'>TechEd 2005</title><content type='html'>I was a proctor for the hands-on labs last week at TechEd in Orlando. There were over 800 computers with various labs available for TechEd attendees to try the latest Microsoft software.&lt;br /&gt;&lt;br /&gt;MCT's from around the world were chosen to proctor the labs. I was flattered to be selected. I met many MCt's from all over the globe in addition to being able to talk with many attendees.&lt;br /&gt;&lt;br /&gt;It was a very, very cool and worthwhile experience.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111895470850468096?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111895470850468096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111895470850468096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111895470850468096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111895470850468096'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/06/teched-2005.html' title='TechEd 2005'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111644492324149293</id><published>2005-05-18T14:05:00.000-05:00</published><updated>2005-05-18T14:35:23.256-05:00</updated><title type='text'>More Windows Goodies</title><content type='html'>I have tried out a few new cool Windows features.&lt;br /&gt;&lt;br /&gt;You can now make your status bar entry for your program flash using the Flash method.&lt;br /&gt;In VB code Me.Flash(). One place this could come in handy is to notify a user when an asynchronous operation has completed, perhaps a Web service call or using one of the new asynchronous data retrieval techniques in ADO.NET 2.0.&lt;br /&gt;&lt;br /&gt;Another cool feature is the new resource editor and the accessing of resources. Visual Studio 2005 really makes it easy to place strings, icons, images etc into a resource file as the resource editor has been vastly improved.  Simply open project properties and select the Resource tab. The resource editor will appear. Icons and Images are now easily added as resource entries. For example, just select images from the Categories dropdown at the top of the resource editor. Then, drag an image (i.e. a BMP file) from the file explorer into the resource editor.  Give it a name (i.e. pic1)&lt;br /&gt;&lt;br /&gt;Also add a string entry; select String from the Categories dropdown and add an entry giving the string a name and value.  Now the cool part, you only need one line of code to access the value or the image from the resource file. Suppose you added a resource string named test.  In a code window, type something like:&lt;br /&gt;&lt;br /&gt;            Dim s as string = My.Resources.test       ‘Access the string&lt;br /&gt;      Picturebox1.image = My.Resources.pic1     ‘Access the image&lt;br /&gt;&lt;br /&gt;Resources are now available from My.Resources. This is also true for images, icons etc. This makes resource values even easier to use!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111644492324149293?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111644492324149293/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111644492324149293' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111644492324149293'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111644492324149293'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/05/more-windows-goodies.html' title='More Windows Goodies'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111513546307143041</id><published>2005-05-03T10:50:00.000-05:00</published><updated>2005-05-03T10:51:03.073-05:00</updated><title type='text'>Click Once Technology - Visual Studio 2005</title><content type='html'>I attended a day of .NET on Saturday 4/30 (Kudos to CNUG for sponsoring this great event). All talks that I attended were very helpful.&lt;br /&gt;&lt;br /&gt;There was a talk given by Chris Mayo, a Microsoft Evangelist, on Click Once Technology with Visual Studio 2005. For the last PDC I wrote the lab for Click Once Technology using VB.NET Whidbey, so I had seen this technology before and was somewhat familiar with it. However, what I saw on Saturday was much more complete and impressive. It is a huge improvement over One Touch Deployment. One of the cool things is that you can actually set up your debugging environment to simulate the availability/unavailability of permissions for your application. This feature will really help developers make sure of the permissions that are needed by their applications before deployment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111513546307143041?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111513546307143041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111513546307143041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111513546307143041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111513546307143041'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/05/click-once-technology-visual-studio.html' title='Click Once Technology - Visual Studio 2005'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111342203004831427</id><published>2005-04-13T14:19:00.000-05:00</published><updated>2005-04-13T14:53:50.050-05:00</updated><title type='text'>More Whidbey Windows Cool Features</title><content type='html'>When I teach .NET development classes I always try to talk about "quick hits" that can be used to make an application have richer functionality or a nicer UI.&lt;br /&gt;&lt;br /&gt;In a Whidbey Windows Forms project, for “the add existing” item option, there are several forms that can be added, including an about form and a splash screen form. Both of these forms have a pleasing UI (which can be changed) and also include logic to display associated project information. For example, the about form has logic to populate information like the product name, version and copyright from the assembly. The splash screen has a nice UI and also fills in the version number, application name and copyright from the assembly. Of course you can always add change the UI and add your own information.&lt;br /&gt;&lt;br /&gt;The cool thing is that there is a new project property (an application property) called splash screen where you can select a form in your project to be the splash screen. This form is displayed automatically when the project starts up. The only issue that I have seen with it is that it disappears rather quickly. I have not found a way to change the length of time that the designated splash screen will stay visible.&lt;br /&gt;&lt;br /&gt;For the about form, you will have to display that yourself, perhaps as a menu item entry.&lt;br /&gt;&lt;br /&gt;In any event, now when writing a windows forms project it is easy to add a splash screen and an about box with a minimum of effort.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111342203004831427?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111342203004831427/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111342203004831427' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111342203004831427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111342203004831427'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/04/more-whidbey-windows-cool-features.html' title='More Whidbey Windows Cool Features'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111324925160916005</id><published>2005-04-11T14:45:00.000-05:00</published><updated>2005-04-11T14:54:11.610-05:00</updated><title type='text'>Unhandled Exceptions for Whidbey Beta 1 Windows Programs</title><content type='html'>I have some XML files that I needed to process so I decided to write a Whidbey Windows forms program to display them. One of the first things I discovered is that when you create a windows forms project, in the project you get an folder named myproj. If you open this folder you will see a file myevents.vb among others.&lt;br /&gt;&lt;br /&gt;Double-click to open this file in code view. You will see a class for the application. In this class you can add events that have application scope. One of the events that can be added is the unhandled exception event. Simply add code here to handle exceptions that are not handled within the application code itself. You could do this sort of thing using Visual Studio .NET but it was up to you to hook up the events etc. With Whidbey you just open this file, and place your exception handling code in the unhandled event.&lt;br /&gt;&lt;br /&gt;Really a time saver!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111324925160916005?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111324925160916005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111324925160916005' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111324925160916005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111324925160916005'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/04/unhandled-exceptions-for-whidbey-beta.html' title='Unhandled Exceptions for Whidbey Beta 1 Windows Programs'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-111050073621045862</id><published>2005-03-10T17:40:00.000-06:00</published><updated>2005-03-10T18:26:41.163-06:00</updated><title type='text'>More ASP.NET 2.0</title><content type='html'>I have continued to experiment with ASP.NET 2.0 using MS Visual Studio 2005 Beta1. One cool thing that I have noticed is that now you can easily have pages built with different languages in the same project; one aspx (with code page) in VB and another in C#.&lt;br /&gt;&lt;br /&gt;When you create a new Web site in VS 2005 you are asked for the ProjectType (VB, C# or J#). Pick one, let’s say VB, and then create the site. You get a page named Default.aspx (notice the page name change from Visual Studio 2003) and a code file named Default.aspx.vb. Now add a new page (Web Site  Add New Item). In the Add New Item Dialog box, there is a drop down where at the bottom you choose the language for the page being added. Choose C# and you get a page named Default2.aspx and a code page named Default2.aspx.cs. This results in the project having pages (with associated code pages) written in different languages, one in C# and one in VB.&lt;br /&gt;&lt;br /&gt;This is possible because of partial classes and the compilation model for them in ASP.NET 2.0. On the first visit to a page, that page (aspx) in-line code (partial class) and the associated (aspx.vb or aspx.cs) code file (partial class) are compiled using the selected language as specified on the Page declarative (@ Page Language="VB...).&lt;br /&gt;&lt;br /&gt;Here is one difference between ASP.NET 2.0 and ASP.NET 1.x; in ASP.NET 2.0 the page declarative Language= attribute affects both the associated code file and the aspx page – they are partial classes that together comprise the class for the page; if language=VB then both the code page and aspx page (in-line code) have to be VB. One part of a partial class is not compiled with one language and the other part of a partial class compiled with a different language.&lt;br /&gt;&lt;br /&gt;For ASP.NET 1.x the Language= attribute affects only in-line code for the aspx page, not the associated code page. So, in ASP.NET 1.x using VS 2003 you could have an C# project (All code pages compiled with C# into the .dll in /Bin when you do a build), but in any particular aspx page you could change the Page Language= attribute  to VB and have VB.NET in-line code for that page. &lt;br /&gt;&lt;br /&gt;So, your aspx page in-line code would be in VB.NET and the associated code page would be C#. When you build the project using VS 2003 all code pages are compiled to a single dll using the language specified for the project. The ASP.NET 1.x compilation model compiles aspx pages as they are visited, "Hooking" them up with the associated precompiled .dll. The aspx pages themselves are compiled on the first visit using the language specified in the Page Language= attribute on the Page declarative.&lt;br /&gt;&lt;br /&gt;So the short of it is, for ASP.NET 1.x the Language= attribute of the Page declarative controls the language for in-line code compilation of the aspx page only, while for ASP.NET 2.0 Language= attribute controls the language used for compilation of both the aspx page and the associated code file. Also, for ASP.NET 2.0 it is easy to have pages with different languages (in-line and code ) residing in the same Web site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-111050073621045862?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/111050073621045862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=111050073621045862' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111050073621045862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/111050073621045862'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/03/more-aspnet-20.html' title='More ASP.NET 2.0'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-110995375193891010</id><published>2005-03-04T10:17:00.000-06:00</published><updated>2005-03-04T10:29:11.940-06:00</updated><title type='text'>ASP.NET 2.0</title><content type='html'>I have been working with ASP.NET 2.0 Master Page feature. It is pretty easy too work with. After getting a simple one to work (one master and one content page), I assumed that the architecture underneath was based on inheritance, sort of like Inherited Windows Forms. Well, after some research and experimentation I found that this feature is not based on inheritance as is Windows Forms; instead it uses a merge technique.&lt;br /&gt;&lt;br /&gt;Actually what seems to happen is that a master page is compiled to its own dll, content pages that use the master page are compiled to their own dlls. A merge process takes place to contruct the final page that is ultimately sent back to the browser. No matter how many content pages reference a particular master, there is only one dll for that master.&lt;br /&gt;&lt;br /&gt;A lot of this can been seen by constructing a simple example (one master and two content pages that reference the master), then run one of the content pages with debugging. The code for each page, master and content, can then be found in C:\WINDOWS\Microsoft.NET\Framework\v2.0.40607\Temporary ASP.NET Files. You can see the actual code (VB or C#) generated. Also, you can use ILDASM to look at the dlls that are generated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-110995375193891010?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/110995375193891010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=110995375193891010' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/110995375193891010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/110995375193891010'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/03/aspnet-20.html' title='ASP.NET 2.0'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10016115.post-110513033091923447</id><published>2005-01-07T14:20:00.000-06:00</published><updated>2005-01-07T14:38:50.920-06:00</updated><title type='text'>My First Blog Entry</title><content type='html'>For the last several years I have been a trainer and developer solely using Microsoft technologies. My emphasis has been with .NET. During my travels, whether it is in the classroom or on a development project I sometimes run into code snippets and experiences that I find useful. I hope to share them here, as well as general thoughts on development and teaching experiences.&lt;br /&gt;&lt;br /&gt;Also, it appears that 2005 will be a very exciting year for .NET developers with the release of new tools and technologies by Microsoft. I hope to be able to comment on those here as well. Actually, I was lucky enough to do some work with the .NET Compact Framework 2.0 a while back and was very impressed with its new controls.&lt;br /&gt;&lt;br /&gt;A Happy New Year to all.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/10016115-110513033091923447?l=ggumbiner.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ggumbiner.blogspot.com/feeds/110513033091923447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10016115&amp;postID=110513033091923447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/110513033091923447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10016115/posts/default/110513033091923447'/><link rel='alternate' type='text/html' href='http://ggumbiner.blogspot.com/2005/01/my-first-blog-entry.html' title='My First Blog Entry'/><author><name>Gary Gumbiner, MCT, MCPD, MCSD .NET</name><uri>http://www.blogger.com/profile/00270197804375675177</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
