<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Microsoft &#8211; Xojo Programming Blog</title>
	<atom:link href="https://blog.xojo.com/tag/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.xojo.com</link>
	<description>Blog about the Xojo programming language and IDE</description>
	<lastBuildDate>Tue, 31 Mar 2026 20:18:09 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Microsoft Ends Support for Windows 10</title>
		<link>https://blog.xojo.com/2025/11/05/microsoft-ends-support-for-windows-10/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 05 Nov 2025 18:51:39 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=15501</guid>

					<description><![CDATA[On October 14, 2025, Windows 10 reached the end of its support from Microsoft. According to their support page: At this point technical assistance, feature&#8230;]]></description>
										<content:encoded><![CDATA[
<p>On October 14, 2025, Windows 10 reached the end of its support from Microsoft. <a href="https://support.microsoft.com/en-us/windows/windows-10-support-has-ended-on-october-14-2025-2ca8b313-1946-43d3-b55c-2b95b107f281">According to their support page</a>:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>At this point technical assistance, feature updates and security updates is no longer provided.</p>
</blockquote>



<p>Released in July 2015, Windows 10 had a good run. It was well-received and served many millions of people well. When it was introduced, Microsoft said that Windows 10 would be the &#8220;<a href="https://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows">last version of Windows</a>&#8220;, but given where we are now that clearly did not end up being true.</p>



<p>If your development machine is still running Windows 10, you really need to get it upgraded to Windows 11. Unfortunately, many perfectly usable computers running Windows 10 do not meet the system requirements for Windows 11, which leaves a lot of people in the lurch. If you really have to stick with Windows 10 for a while longer, Microsoft will sell you an <a href="https://www.microsoft.com/en-us/windows/extended-security-updates">Extended Security Update</a> for $30. This will extend support one more year, so out to late 2026.</p>



<p>What does this mean for Xojo? Nothing just yet. We still have Windows 10 as a supported OS, but don&#8217;t expect that to last much longer. Once an OS vendor drops support for an OS, we have to follow that guidance at some point. Expect Xojo to discontinue Windows 10 support at some point in 2026.</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Over 20 years of native, cross-platform app development and still going strong</title>
		<link>https://blog.xojo.com/2023/09/06/over-20-years-of-native-cross-platform-app-development-and-still-going-strong/</link>
		
		<dc:creator><![CDATA[Xojo]]></dc:creator>
		<pubDate>Wed, 06 Sep 2023 21:32:28 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[App Development]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Development Tools]]></category>
		<category><![CDATA[FileMaker]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[Native App Development]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[VB]]></category>
		<category><![CDATA[VB Alternative]]></category>
		<category><![CDATA[VB for Mac]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=12012</guid>

					<description><![CDATA[The recent news about Microsoft discontinuing Visual Studio's support for Mac has got us talking about longevity in the field of software development. We all know technology changes rapidly and you, and the tools you use, can't afford to stand still. Here's an infographic that illustrates how Xojo's been continually updating and modernizing since 1996 while other development tools come and go.]]></description>
										<content:encoded><![CDATA[
<p>The recent news about Microsoft <a href="https://9to5mac.com/2023/08/30/microsoft-visual-studio-mac-discontinued/">discontinuing Visual Studio</a>&#8216;s support for Mac has got us talking about longevity in the field of software development. We all know technology changes rapidly and you, and the tools you use, can&#8217;t afford to stand still. </p>



<p>With this in mind, here&#8217;s an infographic that illustrates how Xojo&#8217;s been continually updating and modernizing since 1996 while other development tools come and go. </p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="410" height="1024" src="https://blog.xojo.com/wp-content/uploads/2023/08/FINAL-2023-black-edit-VS-ARM-edits-410x1024.jpg" alt="" class="wp-image-12014" srcset="https://blog.xojo.com/wp-content/uploads/2023/08/FINAL-2023-black-edit-VS-ARM-edits-410x1024.jpg 410w, https://blog.xojo.com/wp-content/uploads/2023/08/FINAL-2023-black-edit-VS-ARM-edits-120x300.jpg 120w, https://blog.xojo.com/wp-content/uploads/2023/08/FINAL-2023-black-edit-VS-ARM-edits-768x1920.jpg 768w, https://blog.xojo.com/wp-content/uploads/2023/08/FINAL-2023-black-edit-VS-ARM-edits.jpg 800w" sizes="(max-width: 410px) 100vw, 410px" /></figure>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft’s Visual Studio for Mac Discontinued; Is it really safer to buy from a big name?</title>
		<link>https://blog.xojo.com/2023/08/31/microsofts-visual-studio-for-mac-discontinued-is-it-really-safer-to-buy-from-a-big-name/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 31 Aug 2023 16:02:00 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[Native App Development]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[VB Alternative]]></category>
		<category><![CDATA[VB for Mac]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=11991</guid>

					<description><![CDATA[Microsoft recently announced that they are discontinuing Visual Studio for Mac, which was only just introduced in 2016. So how "safe" is relying on a big company for your development tool, really? If you are an enterprise company with a large investment in software and IT, you might want to take a look outside the big names and see what Xojo can offer. Xojo makes it quicker and easier to try out software ideas before you commit expensive development resources to your primary tools. And we've been dong it since 1998, with a focus on native, cross-platform development.]]></description>
										<content:encoded><![CDATA[
<p>Back in the 80’s, &#8220;Nobody gets fired for buying IBM&#8221; was a saying that went around when discussing what computer to buy. In general it means: It’s safe to buy from a Big Name. But is it?</p>



<figure class="wp-block-image size-full is-resized"><img decoding="async" src="https://blog.xojo.com/wp-content/uploads/2023/08/image.png" alt="" class="wp-image-11992" style="width:311px;height:208px" width="311" height="208" srcset="https://blog.xojo.com/wp-content/uploads/2023/08/image.png 606w, https://blog.xojo.com/wp-content/uploads/2023/08/image-300x200.png 300w" sizes="(max-width: 311px) 100vw, 311px" /></figure>



<p>You still hear this same argument today in the software development world, where the big names are Microsoft, Apple and Google.</p>



<p>But how &#8220;safe&#8221; is their stuff, really? After all, they all seem to end support for products and tools rather often.</p>



<p>Microsoft recently announced that they are <a href="https://devblogs.microsoft.com/visualstudio/visual-studio-for-mac-retirement-announcement/">discontinuing Visual Studio for Mac</a>, which was only just introduced in 2016. Last I checked, Microsoft is a Very. Big. Company. Yet they somehow cannot justify resources to keep a Mac IDE viable. Clearly, they have the resources so this is a decision about Microsoft&#8217;s focus and priorities, things that Big Companies change all the time.</p>



<p>Google drops products (or drastically changes them) often. Changing their “free for life” Google Apps (G Suite) product to a <a href="https://arstechnica.com/gadgets/2022/01/google-tells-free-g-suite-users-pay-up-or-lose-your-account/" data-type="link" data-id="https://arstechnica.com/gadgets/2022/01/google-tells-free-g-suite-users-pay-up-or-lose-your-account/">rather expensive monthly cost was not popular with many businesses</a>.</p>



<p>Apple killed off iBooks Author, and although it was not a development tool, it was something that was heavily promoted for a while as the best way to make content for the iBooks Store. In the development world, Apple killed off their Carbon OS framework in favor of Cocoa after years of telling developers the two would co-exist.</p>



<p>In the 2000s before working here at Xojo, I did a lot of consulting (frequently migrating VB6 apps to Xojo) and one question that was often asked of me is “why should I go with a dev tool from a small company like Xojo instead of something from a big name like Microsoft?”.</p>



<p>The answer I always gave at the time was: “You’re coming to me to migrate a VB6 app. VB6 was from Microsoft and they killed the product off. Big companies do that all the time. A small company like Xojo focuses entirely on their product. It gets all their attention. If you had picked Xojo in 1999 instead of VB6, we would not be having this conversation right now.”</p>



<p>To that end, Xojo has been around since 1998 and has outlived many other development tools and platforms. Some of which come to mind are: Visual Basic 6, Metrowerks CodeWarrior, and (now) Microsoft Visual Studio for Mac.</p>



<p>Technologies are also regularly discontinued by the creators in favor of newer versions. It took years for the Python community to move from Python 2 to Python 3. But when Apple finally removed Python 2 from macOS last year, there were many apps and companies that had to scramble to update their code. PHP8 was release in 2020, but as of today <a href="https://w3techs.com/technologies/details/pl-php/8#:~:text=PHP%20version%208%20is%20used,77.3%25%20of%20all%20the%20websites.">adoption is only about 12%</a>. In 2017, Google switched from Java to Kotlin as the official language of Android, impacting many. Apple promotes Swift and Swift UI over Objective-C and AppKit these days. They introduced Catalyst, but it appears to not be making much headway. Microsoft pushes out new frameworks at a rapid pace, which is exciting, but can be difficult for a development team to know what to pick.</p>



<p>I don&#8217;t bring these things up to point out mistakes. Change is inevitable in technology after all. I only bring these up to point out that, even with the big names, there are still risks.</p>



<p>All this is to say that if you are an enterprise company with a large investment in software and IT, you might want to take a look outside the big names and see what Xojo can offer. I realize that if you have standardized on a set of tools from a large vendor, say C# and Microsoft, you are probably thinking “there’s no way I&#8217;m switching to Xojo no matter what this guy says”.</p>



<p>We at Xojo agree. You probably should not be switching everything over to Xojo. That would be insanely expensive and risky. But Xojo can be a great complement to the tools you already use. Professional software developers (and their companies) keep lots of tools in their toolbox and Xojo should be one of those tools.</p>



<h4 class="wp-block-heading" id="Xojo4U">So what can Xojo do for you? </h4>



<p>Xojo’s goal is to make programming easier, allowing you to get software made faster. Xojo saves you time and money. To that end, in enterprise environments Xojo is great for:</p>



<ul class="wp-block-list">
<li>Prototypes and proof-of-concepts</li>



<li>Internal tools and utilities</li>



<li>Testing</li>



<li>Demos</li>
</ul>



<p>With Xojo you can quickly build a desktop app (for mac, Windows or Linux) to test out REST APIs. You can build a web app to demonstrate some UI concepts or easily distribute information. You can build a mobile app (iOS or Android) to quickly try out ideas. Xojo lets you do All The Things without having to deal with a bunch of different complex tools and technologies. <strong>Xojo can give you the speed and power of low-code tools without all the limitations.</strong></p>



<figure class="wp-block-image size-large is-resized"><img decoding="async" src="https://blog.xojo.com/wp-content/uploads/2023/08/image-2-1024x1014.png" alt="" class="wp-image-11996" style="width:616px;height:610px" width="616" height="610" srcset="https://blog.xojo.com/wp-content/uploads/2023/08/image-2-1024x1014.png 1024w, https://blog.xojo.com/wp-content/uploads/2023/08/image-2-300x297.png 300w, https://blog.xojo.com/wp-content/uploads/2023/08/image-2-150x150.png 150w, https://blog.xojo.com/wp-content/uploads/2023/08/image-2-768x761.png 768w, https://blog.xojo.com/wp-content/uploads/2023/08/image-2.png 1458w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p>Xojo makes it quicker and easier to try out software ideas before you commit expensive development resources to your primary tools. A company&#8217;s biggest expense is usually salary and using an expensive IT department to slowly build everything is not a great value. You spend too much money on salary and sacrifice too much time on lost opportunities. Using Xojo instead can save you significant money that you can put towards the projects you determine are viable and worth more investment.</p>



<p>And don’t forget about internal tools. Every company needs internal tools of some kind and these won&#8217;t generate revenue on their own. Forcing these tools to go through an overworked IT department is slow and expensive. But not building them at all means your staff is less productive than they could be. Your advanced power users can use Xojo to create tools that will improve productivity at a fraction of the cost and avoid lost opportunities waiting for IT.</p>



<p>Like Apple, Google and Microsoft, Xojo isn&#8217;t perfect. We’ve made our share of mistakes, such as our transition from Web 1.0 to Web 2.0 which was not as smooth as we had hoped it would be. <a href="https://www.xojo.com/company/team.php" data-type="link" data-id="https://www.xojo.com/company/team.php">The team</a> is only human, but we do our best to learn from mistakes and if nothing else we are perseverant and committed to always making Xojo better. The fact that we&#8217;ve been doing this since 1998 is a testament to that.</p>



<p>So join the many other enterprise customers that use Xojo as a secret weapon! You might find you like using a development tool from a small company that cares about its product and its customers.</p>



<p>You can <a href="https://www.xojo.com/download/" data-type="link" data-id="https://www.xojo.com/download/">try Xojo for free today</a>. Licensing is available for <a href="https://www.xojo.com/store/" data-type="link" data-id="https://www.xojo.com/store/">as low as $399 per user</a> (even lower when purchased in bulk). Contact us at <a href="mailto:hello@xojo.com">hello@xojo.com</a> for more information or to get a quote.</p>



<p><em>Paul learned to program in BASIC at age 13 and has programmed in more languages than he remembers, with Xojo being an obvious favorite. When not working on Xojo, you can find him talking about retrocomputing at <a href="https://goto10.substack.com" target="_blank" rel="noreferrer noopener">Goto 10</a> and </em>on Mastodon @lefebvre@hachyderm.io.</p>



<ul class="wp-block-social-links has-normal-icon-size is-content-justification-center is-layout-flex wp-container-core-social-links-is-layout-16018d1d wp-block-social-links-is-layout-flex"><li class="wp-social-link wp-social-link-facebook  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.facebook.com/goxojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg><span class="wp-block-social-link-label screen-reader-text">Facebook</span></a></li>

<li class="wp-social-link wp-social-link-x  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://x.com/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg><span class="wp-block-social-link-label screen-reader-text">X</span></a></li>

<li class="wp-social-link wp-social-link-linkedin  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.linkedin.com/company/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg><span class="wp-block-social-link-label screen-reader-text">LinkedIn</span></a></li>

<li class="wp-social-link wp-social-link-github  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://github.com/topics/xojo" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg><span class="wp-block-social-link-label screen-reader-text">GitHub</span></a></li>

<li class="wp-social-link wp-social-link-youtube  wp-block-social-link"><a rel="noopener nofollow" target="_blank" href="https://www.youtube.com/c/XojoInc" class="wp-block-social-link-anchor"><svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg><span class="wp-block-social-link-label screen-reader-text">YouTube</span></a></li></ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Hosting a Xojo Web Application Behind IIS</title>
		<link>https://blog.xojo.com/2022/10/20/hosting-a-xojo-web-application-behind-iis/</link>
		
		<dc:creator><![CDATA[Wayne Golding]]></dc:creator>
		<pubDate>Thu, 20 Oct 2022 13:00:00 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Installer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10897</guid>

					<description><![CDATA[Wayne Golding]]></description>
										<content:encoded><![CDATA[
<p>On July 1<sup>st</sup>, 2022, Microsoft withdrew the Web Platform Installer and plans to remove it and its catalogues from servers on December 31<sup>st</sup>, 2022.&nbsp; You can read more about this at <a href="https://blogs.iis.net/iisteam/web-platform-installer-end-of-support-feed">IIS Team Blog &#8211; Web Platform Installer &#8211; End of support and sunsetting the product/application feed</a>.&nbsp; The following instructions show you how to continue to host Xojo Web Applications behind IIS.</p>



<p>There are four parts to this article: Part 1 prepares the server for reverse proxy, Part 2 installs the Web Application and create a Windows Service for that app, Part 3 configures the Web Site and, finally, Part 4 looks at setting up the DNS record.</p>



<p>These instructions have been tested on Windows 2016, 2019 and 2022 servers. &nbsp;</p>



<h3 class="wp-block-heading">Part 1: Preparing the Server for Reverse Proxy</h3>



<ol class="wp-block-list"><li>Add the Web Server Role to your server.&nbsp; This is done through the Server Manager application.&nbsp; Default selections have been used.</li></ol>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="902" height="644" src="https://blog.xojo.com/wp-content/uploads/2022/10/image.png" alt="" class="wp-image-10898" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-300x214.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-768x548.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<ol class="wp-block-list" start="2"><li>Download the URL Rewrite component from <a href="https://www.iis.net/downloads/microsoft/url-rewrite">https://www.iis.net/downloads/microsoft/url-rewrite</a> and install it.</li><li>Download the Application Request Routing (ARR) component from <a href="https://www.iis.net/downloads/microsoft/application-request-routing">https://www.iis.net/downloads/microsoft/application-request-routing</a> and install it.</li></ol>



<p>Your server is now ready to host Web Applications behind IIS.</p>



<h3 class="wp-block-heading">Part 2: Installing the Web Application and Configuring the Windows Service</h3>



<p>As Xojo built applications are stand-alone, it is simply a matter of copying the application to the server. Typically, the location will be C:\Program Files\&lt;Your Company Name&gt;\&lt;Your Application Name&gt;.</p>



<p>To create the Windows Service, you’ll need to run CMD As Administrator and enter the following commands.&nbsp; I have used Demo Company and Demo Application.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<pre class="wp-block-preformatted">SC Create Demo binpath= “C:\Program Files\Demo Company\Demo Application\Demo Application.exe –port=8080” Start= auto
SC Description Demo “Demo Web Application”
SC Failure Demo actions=restart/2000/restart/2000/restart/2000 reset=10
SC FailureFlag Demo 1
SC Start Demo</pre>
</div></div>



<pre class="wp-block-preformatted">SC Create creates the service setting the path to the binary (executable file) specifying Port 8080 and configuring the service to start with the server.</pre>



<pre class="wp-block-preformatted">SC Description sets the long description for the service and is optional</pre>



<pre class="wp-block-preformatted">SC Failure configures how the controller will handle service crashes.&nbsp; In this case the service will be restarted after 2seconds for the first, second and subsequent failures.&nbsp; The failure count will be reset after 10 seconds.</pre>



<pre class="wp-block-preformatted">SC FailureFlag configures the service to treat app crashes as service crashes.&nbsp; Without this the controller won’t execute the failure actions set previously</pre>



<pre class="wp-block-preformatted">SC Start simply starts the service.</pre>



<h3 class="wp-block-heading">Part 3: Configuring the Web Site</h3>



<p>First, you’ll need to create the website using Internet Information Server Manager:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="1424" height="752" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-1.png" alt="" class="wp-image-10899" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-1.png 1424w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-1024x541.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-1-768x406.png 768w" sizes="auto, (max-width: 1424px) 100vw, 1424px" /></figure>



<p>Next, you’ll add a reverse proxy rule using the URL Rewrite function:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="1425" height="751" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-2.png" alt="" class="wp-image-10900" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-2.png 1425w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-1024x540.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-2-768x405.png 768w" sizes="auto, (max-width: 1425px) 100vw, 1425px" /></figure>



<p>Select Add Rule:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="1426" height="750" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-3.png" alt="" class="wp-image-10901" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-3.png 1426w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-300x158.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-1024x539.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/10/image-3-768x404.png 768w" sizes="auto, (max-width: 1426px) 100vw, 1426px" /></figure>



<p>Select Reverse Proxy:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="902" height="608" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-4.png" alt="" class="wp-image-10902" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-4.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-4-300x202.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-4-768x518.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>And finally configure the rule:</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="850" height="860" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-5.png" alt="" class="wp-image-10903" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-5.png 850w, https://blog.xojo.com/wp-content/uploads/2022/10/image-5-297x300.png 297w, https://blog.xojo.com/wp-content/uploads/2022/10/image-5-768x777.png 768w" sizes="auto, (max-width: 850px) 100vw, 850px" /></figure>



<p>127.0.0.1 is the local machine and 8080 is the port configured in the service.</p>



<h3 class="wp-block-heading">Part 4: DNS</h3>



<p>For the client browsers to find the site you need to add a record to your Domain Name Server.</p>



<figure class="wp-block-image size-full is-style-default"><img loading="lazy" decoding="async" width="902" height="856" src="https://blog.xojo.com/wp-content/uploads/2022/10/image-6.png" alt="" class="wp-image-10904" srcset="https://blog.xojo.com/wp-content/uploads/2022/10/image-6.png 902w, https://blog.xojo.com/wp-content/uploads/2022/10/image-6-300x285.png 300w, https://blog.xojo.com/wp-content/uploads/2022/10/image-6-768x729.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p>You can see here I’m adding a CNAME record to the DNS Manager.&nbsp; The fully qualified domain name matches the website name, and the site is hosted on a machine called WebServer.&nbsp; We use a CNAME record which is an alias of the WebServer A record so that if the WebServer ip address was changed all the sites would automatically follow.</p>



<p><em>Wayne Golding has been a Xojo developer since 2005 and is a Xojo MVP. He operates the IT Company <a href="http://www.axisdirect.nz">Axis Direct Ltd </a>which primarily develops applications using Xojo that integrate with Xero www.xero.com. Wayne’s hobby is robotics where he uses Xojo to build applications for his Raspberry Pi, often implementing IoT for remote control.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>What the PDB is this?</title>
		<link>https://blog.xojo.com/2022/07/25/what-the-pdb-is-this/</link>
		
		<dc:creator><![CDATA[William Yu]]></dc:creator>
		<pubDate>Mon, 25 Jul 2022 13:54:00 +0000</pubDate>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[64-bit]]></category>
		<category><![CDATA[Debugging]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[PDB]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=10547</guid>

					<description><![CDATA[Starting in Xojo 2022r2 you have the option to generate Program Database (PDB) files with your 64-bit Windows builds. If you&#8217;re unfamiliar with what PDB&#8230;]]></description>
										<content:encoded><![CDATA[
<p>Starting in Xojo 2022r2 you have the option to generate <a href="https://en.wikipedia.org/wiki/Program_database">Program Database (PDB)</a> files with your 64-bit Windows builds. If you&#8217;re unfamiliar with what PDB files are, or how they are used, then this post will help explain how PDBs can assist you with your debugging needs.</p>



<p>While our debugger is a powerful tool in helping you track down bugs in your program, there are times when tricky problems arise that go beyond the scope of what our debugger can handle. It&#8217;s times like these that PDBs can potentially come to the rescue.</p>



<p>So what is a PDB file? In short, PDBs are a file format developed by Microsoft for storing debugging information about a program. The most important part is how it maps each function address to its equivalent function name. Let&#8217;s take a simple example to see how this looks when we don&#8217;t have a PDB to help us.</p>



<h3 class="has-large-font-size wp-block-heading">The Offending Code</h3>



<pre class="wp-block-code has-black-color has-text-color"><code>Var mb As New MemoryBlock(8)
mb.Int64Value(0) = 1
mb = mb.Ptr(0)

// At this point the MemoryBlock is pointing to memory location
// 0x1 which should not be accessible.
mb.StringValue(0, 4) = "Test"</code></pre>



<p>In this example, we&#8217;re purposely causing a hard crash here by accessing memory that is not ours to access. Add the offending code somewhere in your program, i.e. in the Opening event or in the Pressed event of a PushButton. If you run this in the debugger you&#8217;ll notice that the app just quits, along with our debugger. Since our debugger has failed us here, let&#8217;s try Microsoft&#8217;s WinDbg and see if we can get any more information from it.</p>



<h3 class="has-large-font-size wp-block-heading">WinDbg</h3>



<p>If you don&#8217;t already have WinDbg installed, you can now download this from the Microsoft Store:<br><a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools">https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/debugger-download-tools</a><br>For many Windows developers this is a great (and free) addition to help you track down those annoying crashes. To use this, build the Xojo app with the offending code. Run WinDbg and point it to the executable to launch. Once the process is loaded in WinDbg, hit their Go button to cause the crash.</p>



<p>With the app crashed, you can see the most recent stack trace where some of the last functions that were called before it crashed. This is what the stack trace looks like when no PDB exists.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1766" height="1282" src="https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB.png" alt="" class="wp-image-10552" srcset="https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB.png 1766w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB-300x218.png 300w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB-1024x743.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB-768x558.png 768w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithoutPDB-1536x1115.png 1536w" sizes="auto, (max-width: 1766px) 100vw, 1766px" /></figure>



<p>Since the debugger doesn&#8217;t have the information it needs to map the address to a particular function, it&#8217;ll just report this random address which isn&#8217;t very helpful.</p>



<h3 class="has-large-font-size wp-block-heading"><strong>Generate the PDB File</strong></h3>



<p>Now build the app again but this time generate the PDB file. This option can be found in the Advanced build settings in Xojo 2022r2 and later.</p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="https://blog.xojo.com/wp-content/uploads/2022/06/AdvancedBuildSettingWithPDB.png" alt="" class="wp-image-10550" width="301" height="336" srcset="https://blog.xojo.com/wp-content/uploads/2022/06/AdvancedBuildSettingWithPDB.png 601w, https://blog.xojo.com/wp-content/uploads/2022/06/AdvancedBuildSettingWithPDB-269x300.png 269w" sizes="auto, (max-width: 301px) 100vw, 301px" /></figure>
</div>


<p>Run the app again under WinDbg. When you cause the app to crash again, WinDbg will look for a PDB file (note: it can be tuned to look in several different places, but by default it will look at the same directory as the executable). This time when the app crashes, you should get a more readable stack trace.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1920" height="1269" src="https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB.png" alt="" class="wp-image-10551" srcset="https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB.png 1920w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB-300x198.png 300w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB-1024x677.png 1024w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB-768x508.png 768w, https://blog.xojo.com/wp-content/uploads/2022/06/StackTraceWithPDB-1536x1015.png 1536w" sizes="auto, (max-width: 1920px) 100vw, 1920px" /></figure>



<h3 class="has-large-font-size wp-block-heading">PDBs in the Real World</h3>



<p>While the scenario that we just went through isn&#8217;t the most common one in the real world, it should provide you an idea of how a PDB file can help with debugging. In a real world scenario, you as the developer, will likely store PDBs internally, maybe on a server somewhere. Each time you build your app for deployment (i.e. when your app is released to the public) you would keep this PDB somewhere. Whenever your clients/users experience crashes in your app, you can ask them to send over a minidump. The same principle applies to executables and minidumps, just load it up and run it. However, the only difference is that the minidump may need more help in locating the right PDB file.</p>



<p>For more information on this topic please refer to: <a href="https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path">https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/symbol-path</a></p>



<p><em>William Yu grew up in Canada learning to program BASIC on a Vic-20. He is Xojo&#8217;s resident Windows and Linux engineer, among his many other skills. Some may say he has joined the dark side here in the USA, but he will always be a Canadian at heart.</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Xojo and Windows 11</title>
		<link>https://blog.xojo.com/2021/06/24/xojo-and-windows-11/</link>
		
		<dc:creator><![CDATA[Geoff Perlman]]></dc:creator>
		<pubDate>Thu, 24 Jun 2021 22:04:34 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[Windows 11]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=8713</guid>

					<description><![CDATA[We are excited about Microsoft's announcement regarding Windows 11. A large portion of Xojo users develop on and/or for Windows. The new UI looks fantastic and will be a welcome upgrade for Windows users. Xojo and apps written in Xojo will run without modification on Windows 11.]]></description>
										<content:encoded><![CDATA[
<p>We are excited about Microsoft&#8217;s announcement regarding Windows 11. A large portion of Xojo users develop on and/or for Windows. The new UI looks fantastic and will be a welcome upgrade for Windows users. Xojo and apps written in Xojo will run without modification on Windows 11.<br><br>How will the new UI in Windows 11 affect apps written in Xojo? Historically Microsoft has had many different API sets for providing the user experience on Windows ranging from Win32 to .NET to WPF. Earlier this year Microsoft announced that WinUI 3.0 will bring all of these together allowing for a unified look and feel and user experience regardless of which API is being used under the hood. Microsoft plans to finalize WinUI 3.0 by the end of this year. Once they do, we can begin planning to update the Xojo Windows framework to support it.</p>



<div class="wp-block-image"><figure class="aligncenter size-large"><img loading="lazy" decoding="async" width="600" height="409" src="https://blog.xojo.com/wp-content/uploads/2021/06/Windows11Controls.png" alt="" class="wp-image-8716" srcset="https://blog.xojo.com/wp-content/uploads/2021/06/Windows11Controls.png 600w, https://blog.xojo.com/wp-content/uploads/2021/06/Windows11Controls-300x205.png 300w" sizes="auto, (max-width: 600px) 100vw, 600px" /><figcaption>Windows 11 UI Controls, Image Credit: Microsoft</figcaption></figure></div>



<p>The first beta of Windows 11 is scheduled to be released next week and we will be testing the Xojo Windows framework on it. We will have more blog posts as more information becomes available about the next generation of Windows.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>The Benefits of Native Apps</title>
		<link>https://blog.xojo.com/2021/04/05/the-benefits-of-native-apps/</link>
		
		<dc:creator><![CDATA[Gavin Smith]]></dc:creator>
		<pubDate>Mon, 05 Apr 2021 15:55:11 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Big Sur]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Native App Development]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=8300</guid>

					<description><![CDATA[Xojo creates native apps and uses the native user interface toolkit on each platform. This is important from the end-user's point of view - we've all used apps that didn't feel quite right, often Java or Electron-made apps. But it's also important from the developer's point of view because many of these design changes are effectively done for you.]]></description>
										<content:encoded><![CDATA[
<p>Last year&#8217;s macOS Big Sur release features the biggest redesign of the Mac operating system since OS X was released in 2001. Many of the changes bring the Mac closer to the appearance of iOS and include new app icons and the use of SFSymbols throughout the interface. A recent blog post showed how you can easily take advantage of <a href="https://blog.xojo.com/2021/02/17/quicktip-using-sf-symbols-in-your-macos-apps/">SFSymbols in your Mac apps</a>.</p>



<p>Xojo creates native apps and uses the native user interface toolkit on each platform. This is important from the end-user&#8217;s point of view &#8211; we&#8217;ve all used apps that didn&#8217;t feel quite right, often Java or Electron-made apps. But it&#8217;s also important from the developer&#8217;s point of view because many of these design changes are effectively done for you.</p>



<p>A good example of this is Sheet Windows. A Sheet Window is a modal dialog that prompts the user to save unsaved work or print a document etc. In previous versions of macOS, it unfurled downwards from the title bar of the document in question. In Big Sur, this behavior changed and a Sheet Window is now a rounded window that simply floats on top of the parent window. Regardless of one&#8217;s personal opinion on whether this is a good change or not (hint: it&#8217;s not), a good app should appear and work as each platform dictates.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="737" src="https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01-1024x737.png" alt="" class="wp-image-8303" srcset="https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01-1024x737.png 1024w, https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01-300x216.png 300w, https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01-768x553.png 768w, https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01-1536x1106.png 1536w, https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot01.png 1928w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>There is no need to &#8220;fake&#8221; these new rounded dialogs by trying to create them yourself &#8211; you simply continue to select &#8220;Sheet Window&#8221; as the window type in Xojo&#8217;s Inspector. On pre-Big Sur versions of macOS, a Window of type Sheet Window will unfurl as it always did. On Big Sur, it will appear as a floating rounded rectangle.&nbsp;</p>



<p>MessageDialog is another good example of the benefits of developing native apps, with its stacked button design on Big Sur. Again, your MessageDialogs will look correct on each version of macOS, which means less work for you!</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="744" height="710" src="https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot02.png" alt="" class="wp-image-8304" srcset="https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot02.png 744w, https://blog.xojo.com/wp-content/uploads/2021/03/Screenshot02-300x286.png 300w" sizes="auto, (max-width: 744px) 100vw, 744px" /></figure>



<p><em><em>Gavin Smith has been using Xojo (and its predecessors) since 1998.&nbsp;You can email him at&nbsp;<a rel="noreferrer noopener" href="mailto:gavin@libertyapp.com" target="_blank">gavin@libertyapp.com</a>&nbsp;or follow him on Twitter&nbsp;@gvnsmth.</em></em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>About Running Windows and Linux on M1 Macs</title>
		<link>https://blog.xojo.com/2020/12/04/about-running-windows-and-linux-on-m1-macs/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Fri, 04 Dec 2020 17:27:25 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Silicon]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[Emulation]]></category>
		<category><![CDATA[M1]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Parallels]]></category>
		<category><![CDATA[Rosetta 2]]></category>
		<category><![CDATA[VM]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=7742</guid>

					<description><![CDATA[With the newly released M1 Macs, there have been lots of questions about being able to run other operating systems on it, particularly from developers that are used to running Window or Linux in Virtual Machines using virtualization on their Intel Macs. ]]></description>
										<content:encoded><![CDATA[
<p>With the newly released M1 Macs, there have been lots of questions about being able to run other operating systems on it, particularly from developers that are used to running Window or Linux in Virtual Machines using virtualization on their Intel Macs. So what challenges do the M1 Macs bring in this regard?</p>



<p>If you are new to all this, it is important to understand the parts involved. First there are virtual machines, which act as virtual computers running on a main or host computer. Second, there are the instruction sets for the computer and OS. These virtual computers run an operating system (OS) of some kind and in most cases this OS has to have the same instruction set as the host computer. This allows the instruction to be passed through the VM to the CPU and allows for good performance. Which is what makes it so easy to run Windows 10 x86 on an Intel Mac — they both are using Intel CPUs with the same instruction sets.</p>



<p>But what if the instruction sets differ as they do with Intel and M1 Macs? Obviously you can no longer pass an x86 instruction to an M1 chip and expect anything to happen. So some translation or emulation needs to happen. This is typically much, much slower.</p>



<p>In general this is what Apple is doing with Rosetta 2 on Big Sur to allow your x86 Mac apps to run on an M1 Mac. They do an entire app translation on first launch (and also re-do it at times) and then run the translated app. This is a great technique but it doesn’t really work at a virtual machine level. And in fact, Apple specifically says that <a href="https://developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment?">Rosetta 2 cannot be used with virtualization software</a>.</p>



<p>That’s the bad news. But there are options on the horizon.</p>



<h2 class="wp-block-heading">Emulation</h2>



<p>The first option is OS-level emulation. What would happen here is that emulation software (say, <a href="https://www.qemu.org">QEMU, a popular open-source emulator and virtualizer</a>) would translate x86 instructions to ARM instructions (usually on-the-fly) so that an x86 operating system could run on an M1 Mac. In theory this would allow Windows 10 x86 for example to run as a (virtual computer) on an M1 Mac.</p>



<p>Technically this is more than a theory since it has been done before. You may remember it was possible to run Windows 98 x86 on a PowerPC Mac back in the day using software such as Connectix Virtual PC. The downside to this approach is that it can be quite slow. Fortunately the M1 Macs are proving to be very speedy and might be able make this technique acceptable for casual use. I <a href="https://twitter.com/KhaosT/status/1330112758159970305">expect the QEMU project will be updated to eventually allow emulation of x86 operating systems on M1 Macs</a>.</p>



<h2 class="wp-block-heading">OS Vendors</h2>



<p>You might remember in the<a href="https://youtu.be/GEZhD3J89ZE?t=6009"> WWDC 2020 keynote Apple showed Linux running as a virtual machine with Parallels</a> on an M1 Mac. This demo was actually running an ARM Linux distro in that virtual machine. Since it was not an x86 distro, its usefulness depends on its ability to run the apps you need. If you wanted to run an x86 Linux app then it would not work on an ARM distro.</p>



<p>However, the OS vendors are working on this. Much like what Apple did with Rosetta 2, they can add OS-level support to translate individual apps from x86 to ARM, thus allowing them to work in a virtual machine. I haven&#8217;t heard of progress on this front with Linux, but I expect there will be some convoluted way to do it at some point.</p>



<p>Microsoft does have an ARM version of Windows, but right now it is only licensed for OEM use to include with a computer, so virtualizing it is not yet an option. And even if you could virtualize ARM Windows on your M1 Mac, it also is only useful to you if it can run the apps you want.</p>



<p>Currently ARM Windows has a translator that lets it run 32-bit x86 apps, but performance is poor, especially when compared to what Apple has done with Rosetta 2 in Big Sur. Microsoft has said they <a href="https://arstechnica.com/gadgets/2020/10/windows-10-machines-running-on-arm-will-be-able-to-emulate-x64-apps-soon/">are working on adding the ability to run 64-bit x86 apps on ARM Windows</a>, but that feature is not ready yet and performance is unknown.</p>



<p>I expect virtualizers such as <a href="https://www.parallels.com/blogs/parallels-desktop-apple-silicon-mac/">Parallels</a>, VMware and VirtualBox will all eventually have versions that run on M1 Macs and can run ARM operating systems, although perhaps just Linux to start. I don’t expect them to include emulators in their products.</p>



<p><strong>Update (2021-4-14)</strong>: <a href="https://www.theverge.com/22383598/parallels-desktop-mac-windows-10-install-m1-macbook">Parallels has just released 16.5 with support for running Windows for ARM on M1 Macs</a>.</p>



<p>When Microsoft adds 64-bit x86 translation and has it working at a decent speed and if it decides to make ARM Windows available for use in virtual machines then you would also be able to run Windows on an M1 Mac and run common Windows apps. But for now, we wait.</p>



<p><strong>Update (2020-12-08)</strong>: Some progress continues to be made on this. <a href="https://github.com/utmapp/UTM/wiki/Install-Windows-ARM64-on-Apple-M1">Here are some rough instructions</a> on how to get Windows ARM running in a VM (UTM running on QEMU).</p>



<h2 class="wp-block-heading">Other Options</h2>



<p>Another option is the CodeWeavers product that is based on the WINE open-source project. This project essentially provides a translated Windows API that allows some Windows apps to run on a Mac. It does not run Windows itself, only apps, and only a small subset at that.</p>



<p>But because it translates the apps to essentially a Mac x86 app, they are a candidate for Rosetta 2 on Big Sur to translate. That’s a lot of levels of translation, but in the end you end up with a Windows app running on an M1 Mac.</p>



<p>CodeWeavers recently <a href="https://www.codeweavers.com/blog/jwhite/2020/11/18/okay-im-on-the-bandwagon-apple-silicon-is-officially-cool">posted some information about their early testing of this</a>.</p>



<h2 class="wp-block-heading">Wrap Up</h2>



<p>With all this said, if you require the ability to run an x86 version of Windows or Linux, then an M1 Mac cannot be your sole machine at this time. You’ll either want to also have an Intel Mac to run those in virtual machines or get dedicated separate hardware for them.</p>



<p>And if you want to make your own native apps for M1 Macs, Xojo now has the ability to create <a href="https://blog.xojo.com/2020/11/24/xojo-now-supports-native-apple-silicon-m1-compilation/">native apps for M1 Macs</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft Ending Windows 7 Support in 1 Year</title>
		<link>https://blog.xojo.com/2019/01/21/microsoft-ending-windows-7-support-in-1-year/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 21 Jan 2019 10:00:04 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=5332</guid>

					<description><![CDATA[Here's your first reminder: On January 14, 2020 Microsoft is ending support for Windows 7. You will definitely want to update to Windows 10 and not Windows 8. ]]></description>
										<content:encoded><![CDATA[<p>Here&#8217;s your first reminder: On <a href="https://www.microsoft.com/en-us/windowsforbusiness/end-of-windows-7-support">January 14, 2020 Microsoft is ending support for Windows 7</a>. We went through this a while ago when Windows XP reached end-of-life (no one really cared when Windows Vista reached end-of-life). Windows 7 was a very popular release as it was much better than Vista. It also didn&#8217;t help that Windows 8 was not liked at all with its many UI changes.</p>
<p><span id="more-5332"></span></p>
<p>But the time has come to start preparing to update. You will definitely want to update to Windows 10 and not Windows 8. Windows 10 is actually really nice and is updated regularly. I think you&#8217;ll find transitioning from Windows 7 to Windows 10 relatively painless. In fact, early last year Windows 10 overtook Windows 7 in usage <a href="https://venturebeat.com/2018/02/01/statcounter-windows-10-overtakes-windows-7-in-usage-share/">per StatCounter</a>. Sadly you can no longer get a free update to Windows 10 so you&#8217;ll have to purchase it, but since Microsoft has said that <a href="https://www.theverge.com/2015/5/7/8568473/windows-10-last-version-of-windows">Windows 10 is the last version of Windows</a>, you shouldn&#8217;t need to purchase it again.</p>
<p>What happens if you don&#8217;t update and want to stick with Windows 7 after January 14, 2020? According to Microsoft:</p>
<blockquote><p>You can continue to use Windows 7, but once support ends, your PC will become more vulnerable to security risks. Windows will operate but you will stop receiving security and feature updates.</p></blockquote>
<p>For the time being you can continue to use Windows 7 as you plan your update. Of course&nbsp;<a href="https://documentation.xojo.com/Resources:System_Requirements">Xojo itself and apps made with it</a> also continue to work on Windows 7, although you&#8217;ll want to make sure you have <a href="https://support.microsoft.com/en-us/help/15090/windows-7-install-service-pack-1-sp1">installed Service Pack 1</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Private Repositories are Now Free on GitHub</title>
		<link>https://blog.xojo.com/2019/01/09/private-repositories-are-now-free-on-github/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Wed, 09 Jan 2019 18:11:17 +0000</pubDate>
				<category><![CDATA[Source Control]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=5295</guid>

					<description><![CDATA[GitHub just announced that private repositories are now free. GitHub has been a great source for Xojo open-source projects, so being able to also use it for private repositories is a nice bonus.]]></description>
										<content:encoded><![CDATA[<p>I guess the <a href="https://blogs.microsoft.com/blog/2018/10/26/microsoft-completes-github-acquisition/">Microsoft acquisition</a> is leading to some benefits. GitHub just announced that <a href="https://blog.github.com/2019-01-07-new-year-new-github/">private repositories are now free</a>. GitHub has been a great source for <a href="https://github.com/search?q=xojo">Xojo open-source projects</a>, so being able to also use it for private repositories is a nice bonus.</p>
<p>Other options for using Git include <a href="https://bitbucket.org/product">BitBucket</a> and <a href="https://about.gitlab.com">GitLab</a>.</p>
<p>Learn more about how to use Xojo with source control systems like Git here:</p>
<ul>
<li><a href="https://documentation.xojo.com/topics/code_management/using_source_control_with_xojo_projects.html">User Guide: Source Control</a></li>
</ul>
<p>Source control systems are useful to single developers and teams. They provide a way to compare your changes, revert to prior code (so you&#8217;re not afraid to make changes and can try new things) and can even function as one of your off-site backups.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Upskill Your Best Employees to Citizen Developers</title>
		<link>https://blog.xojo.com/2018/09/28/upskill-your-best-employees-to-citizen-developers/</link>
		
		<dc:creator><![CDATA[Alyssa Foley]]></dc:creator>
		<pubDate>Fri, 28 Sep 2018 10:00:07 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Citizen Developer]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Software Development]]></category>
		<guid isPermaLink="false">https://blog.xojo.com/?p=4901</guid>

					<description><![CDATA[Companies can increase efficiency by upskilling their best employees to be citizen developers. This is where Xojo's long-standing history as a development tool that has stood the test of time becomes even more powerful.]]></description>
										<content:encoded><![CDATA[<p>Employee turnover is expensive, time consuming and stressful. But the need for new skills, whether to bolster your existing sales and services or to usher your company into emerging markets, is a constant. You already have excellent employees that &#8220;know the ropes&#8221; of your business but they don&#8217;t always have the skills needed to take those next steps. These employees may be called &#8220;power users&#8221; or &#8220;business analysts&#8221;. This is where <a href="https://www.forbes.com/sites/danielnewman/2018/07/25/4-key-practices-for-upskilling-workers-in-the-age-of-digital-transformation/?utm_content=buffer28567&amp;utm_medium=social&amp;utm_source=twitter.com&amp;utm_campaign=buffer#2b3579f71a3e">upskilling comes in</a>, giving rise to the age of the <a href="https://blog.xojo.com/2015/11/19/the-citizen-developer/">citizen developer</a>. The citizen developer is able to use low-code and rapid application development tools to make apps that improve efficiency or more easily collect or gather data that can benefit the company.</p>
<p>Encouraging and even educating your employees to become citizen developers doesn’t mean eliminating the IT department, it means improving productivity and efficiency with collaboration and innovation. After all, who better to say exactly what the marketing or sales department needs in an app, tool or automation than the department members who will utilize it the most?</p>
<p>This is where Xojo comes in.  Our long history (over 20 years) as an easy-to-use, rapid application development tool makes Xojo an ideal choice for would-be citizen developers.</p>
<p><span id="more-4901"></span></p>
<p>Because Xojo is a single tool and language that makes a wide variety of apps, it&#8217;s easier for business and its citizen developers to learn and use. Does your organization need web apps, mobile apps, or desktop apps? Xojo can do all that. What about databases? Sure, Xojo can connect to most database servers including MySQL, PostgreSQL, Oracle, Microsoft SQL Server to work with your existing data. Plus Xojo also supports SQLite, one of the most popular databases in the world, and you can even use ODBC to connect to most anything else.</p>
<p>Employees that understand the business and can make their own apps as needed are tremendously valuable, which is why there is so much traction in the citizen developer space. In fact, most Xojo customers consider themselves to be citizen developers, often referring to Xojo as their secret weapon.</p>
<p>How can you upskill your employees to get them on the path to becoming citizen developers? First, identify those interested in learning more. Have them <a href="http://www.xojo.com/download">download Xojo for free</a> and start looking at the many free resources that are available.</p>
<ul>
<li><a href="https://documentation.xojo.com/#sec-getting-started">Getting Started</a></li>
<li><a href="https://documentation.xojo.com/getting_started/tutorials/index.html">Tutorials</a></li>
<li><a href="https://www.youtube.com/user/goxojo">Videos</a></li>
<li><a href="http://www.xojo.com/learn">Introduction to Programming book</a></li>
<li><a href="https://documentation.xojo.com/getting_started/using_the_ide/introduction.html">User Guide</a></li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Making a Web App: Comparing Xojo and Visual Studio for Mac</title>
		<link>https://blog.xojo.com/2017/06/05/making-a-web-app-comparing-xojo-and-visual-studio-for-mac/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 05 Jun 2017 06:36:07 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Xojo Cloud]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[webdev]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2888</guid>

					<description><![CDATA[In previous articles, I’ve written about how Xojo is often much, much easier to use and more capable than Visual Studio for Mac for creating&#8230;]]></description>
										<content:encoded><![CDATA[<p>In previous articles, I’ve written about how Xojo is often much, much easier to use and more capable than Visual Studio for Mac for <a href="http://blog.xojo.com/2017/05/18/making-a-mac-app-comparing-xojo-and-visual-studio-for-mac/">creating Mac</a> and <a href="http://blog.xojo.com/2017/05/25/making-a-cross-platform-desktop-app-comparing-xojo-and-visual-studio-for-mac/">cross-platform desktop apps</a>.</p>
<p>Visual Studio can also create web apps and as it would turn out, you may find that Xojo is a better option for web apps.</p>
<p>Technically, Visual Studio for Mac can create ASP.NET Core Web Apps. These type of web apps use the ASP.NET framework, but do not provide a form (layout editor) for your app’s user interface. Instead you’ll have to create everything in code, including mapping UI actions to corresponding code. ASP.NET Core also requires you to use the MVC (model-view-controller) design pattern, which can be a bit daunting for beginners.</p>
<p><span id="more-2888"></span></p>
<p>I was not able to find a concise tutorial on how to use ASP.NET Core with Visual Studio for Mac. The primary tutorial on the Microsoft Doc site, <a href="https://docs.microsoft.com/en-us/aspnet/core/tutorials/first-mvc-app/">Building your first ASP.NET Core MVC app with Visual Studio</a>, shows you how to make a simple web app to show movies from a movies database but it consists of 10 separate sections, each rather lengthy, and it is not specific to Visual Studio for Mac but is instead for Visual Studio for Windows.</p>
<p>So to demonstrate something a bit simpler, here is how you can create a Xojo web app that works like the “Hello” app shown in the native Mac and cross-platform desktop app posts.</p>
<h2>A Simple Xojo Web App</h2>
<p>Start by downloading and installing Xojo.</p>
<ol>
<li>Launch Xojo and select “Web” from the Project Chooser. Enter an Application Name of &#8220;HelloWeb&#8221; and click OK. You’ll see the structure for a Xojo web app with these parts: App, Session, and WebPage1. Since WebPage1 is selected you’ll also see the Layout Editor, something not available in Visual Studio for Mac.</li>
<li>In the Layout Editor, you can drag and drop controls to create the UI for your web app. Drag a Button control and a Label control on to the layout so that it looks like this:<br />
<img loading="lazy" decoding="async" class="alignnone size-full wp-image-2895" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-26_11-31-38.png" alt="" width="1355" height="823" /></li>
<li>Click on the Button and then select “Inspector” in the toolbar. Change the Name property from “Button1” to “ClickButton” and change the Caption property from “Untitled” to “Click Me”.</li>
<li>Now click on the Label and change its Name property to “ClickLabel” and its Text property to “The button has not yet been clicked”.</li>
</ol>
<p>You are done with the layout and can move on to the code.</p>
<ol start="5">
<li>To track the number of clicks you’ll want to add a property. Click the “+” button on the Layout Editor command bar and select Property. Give it the name “NumberOfTimesClicked”. Leave the Type as Integer.</li>
<li>The last thing to add is the code to increase the clicks and display them in the label. Click on WebPage1 to go back to the layout and double-click on ClickButton to show the Event Handler window. Click on Action and then OK. This displays a blank Code Editor. Here you’ll put the code to run when the button is clicked. This is the code:</li>
</ol>
<pre>NumberOfTimesClicked = NumberOfTimesClicked + 1

Dim buttonText As Text = "The button has been clicked {0} time{1}."
buttonText = buttonText.Replace("{0}", NumberOfTimesClicked.ToText)
buttonText = buttonText.Replace("{1}", If(NumberOfTimesClicked &gt; 1, "s", ""))
ClickLabel.Text = buttonText</pre>
<p>If you read the <a href="http://blog.xojo.com/2017/05/18/making-a-mac-app-comparing-xojo-and-visual-studio-for-mac/">native Mac app post</a> or the <a href="http://blog.xojo.com/2017/05/25/making-a-cross-platform-desktop-app-comparing-xojo-and-visual-studio-for-mac/">cross-platform desktop app post</a> you&#8217;ll notice something. The steps and code are exactly the same when creating a Xojo web app as when you are making a Xojo desktop app, at least for this simple example.</p>
<p>You should now save your project.</p>
<h2>Testing</h2>
<p>To test your project, just click the big Run button on the toolbar. This starts the web app in your default browser. Click the button to see the label get updated.</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-2896" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-26_11-34-30.png" alt="" width="883" height="473" /></p>
<p>Indeed this is a ridiculously simple app and is really designed just to give you a quick feel for the development environment. But it should be pretty obvious that Xojo is much, much simpler to use for creating web apps than Visual Studio for Mac.</p>
<p>But Xojo has one other huge advantage when it comes to web apps: deployment.</p>
<p>If you need the fastest possible way to deploy your Xojo web apps, you can sign up for <a href="https://www.xojo.com/cloud/">Xojo Cloud</a> and then with just a single click of the “Deploy” button on the toolbar your app is built and uploaded to your server for use by anyone.</p>
<p>If you would rather use your own servers you also have the option of deploying a Xojo web app as a single executable file with a built-in web server (Linux, Windows and Mac servers are supported). Or you can use deploy your Xojo web app so it uses a CGI interface to connect to your own Apache web server.</p>
<p>Visit the <a href="http://developer.xojo.com">Xojo Dev Center</a> to learn more about <a href="http://developer.xojo.com/userguide/web-app-deployment-overview">Xojo Web App Deployment</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Test Your Apps on Windows for Free</title>
		<link>https://blog.xojo.com/2017/05/22/test-your-apps-on-windows-for-free/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 22 May 2017 08:50:41 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Remote Debugging]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Virtual Machine]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2773</guid>

					<description><![CDATA[If you are a Mac or Linux developer, one of the easiest ways to test your apps on Windows is to use a virtual machine. And you can test Windows in a VM completely for free by using the test VMs provided by Microsoft.]]></description>
										<content:encoded><![CDATA[<p>If you are a Mac or Linux web or cross-platform developer, one of the easiest ways to test your apps on Windows is to use a virtual machine. And you can test Windows in a VM completely for free by using the test VMs provided by Microsoft.</p>
<p><span id="more-2773"></span></p>
<p>First you&#8217;ll need Virtual Machine software. I prefer VMware Fusion, but the free VirtualBox can be used instead. You can download VirtualBox from here:</p>
<p><a href="https://www.virtualbox.org">https://www.virtualbox.org</a></p>
<p>When VirtualBox is installed, you can head on over to the Microsoft site to get a test copy of Windows pre-configured for VirtualBox:</p>
<p><a href="https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/">https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/</a></p>
<p>Microsoft provides versions of Windows 7, 8.1 and 10 that you can use for testing purposes. Simply download the ones you want and add them to VirtualBox.</p>
<p>You can install the <a href="http://developer.xojo.com/userguide/remote-debugging">Xojo Remote Debugger</a> and use these test versions to test your Xojo apps for Windows. Or you can use these to run Windows-specific web browsers for testing your web apps. Keep in mind that these Windows VMs expire after 90 days, so you&#8217;ll have to re-download periodically.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Making a Mac App: Comparing Xojo and Visual Studio for Mac</title>
		<link>https://blog.xojo.com/2017/05/18/making-a-mac-app-comparing-xojo-and-visual-studio-for-mac/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 18 May 2017 07:57:38 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Desktop]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Beginner Tips]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Multi-Platform Development]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[Rapid Application Development]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Xojo Programming Language]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2779</guid>

					<description><![CDATA[As a former Visual Studio developer, Paul compares building a HelloMac app in Visual Studio for Mac, née Xamarin Studio, with Xojo's RAD, cross-platform IDE. TL;DR Xojo can build a Windows and a Linux app too with two clicks, in less time and in a single IDE.]]></description>
										<content:encoded><![CDATA[<p>At the recent Build conference, Microsoft released the final version of Visual Studio for Mac. As a former Visual Studio developer who left that world for the fun, fast development that is Xojo, I had to check it out to see how it compares to Xojo.</p>
<p>First, if you’ve ever used Visual Studio on Windows before, be aware that Visual Studio for Mac is not the same thing. Essentially Visual Studio for Mac is new branding for Xamarin Studio (Microsoft bought Xamarin in 2016), so Visual Studio for Mac looks and works nothing like Visual Studio for Windows.</p>
<p><span id="more-2779"></span></p>
<p>After the 15-minute download and installation process, where I was asked for my admin password three times, the first thing that surprised me is that Visual Studio for Mac is a bit limited in how it can create desktop apps. Although it can technically create two types of desktop apps (cross-platform desktop apps using <a href="https://en.wikipedia.org/wiki/GTK%2B">Gtk#</a> and native Cocoa Mac apps), it cannot create native Windows, Linux or Raspberry Pi desktop apps.</p>
<p>Since Visual Studio for Mac is just a rebranded Xamarin Studio, I was able to find a tutorial on the Xamarin site called “<a href="https://developer.xamarin.com/guides/mac/getting_started/hello,_mac/">Hello, Mac</a>” that shows you how to create a simple Mac Cocoa app with a button and a label. When the button is clicked, the label displays the number of times it has been clicked.</p>
<p>I should warn you: it is very long and frankly a bit complicated for such a simple app. In particular I was surprised that Visual Studio for Mac does not have a built-in layout editor to design your Mac app’s UI. You have to use Xcode for that and then make sure its changes synchronize back with Visual Studio for Mac. All in all, it took me about 20 minutes, minus interruptions.</p>
<p>If, like me, you’ve used Xamarin Studio or Visual Studio for Mac you might be wondering how this compares to making the same app in Xojo. Here&#8217;s how to make that same app in Xojo:</p>
<h2>Hello, Mac</h2>
<p>Start by <a href="http://www.xojo.com/download">downloading and installing Xojo</a>.</p>
<ol>
<li>Launch Xojo and click “Desktop” in the Project Chooser. For Application Name use “HelloMac”. Click OK.</li>
</ol>
<p><img loading="lazy" decoding="async" class="wp-image-2783 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_09-42-35.png" alt="" width="400" height="221" /></p>
<p>You are now looking at the Xojo Workspace window. You’ll be doing all your development in this window and won’t need to switch to another tool at any point.</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-2784 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_09-44-54.png" alt="" width="2504" height="1524" /></p>
<p>On the left you can see the Navigator which has the default components for a desktop project: App, Window1 and MainMenuBar with Window1 already selected and its window layout displayed in the Layout Editor in the center of the screen. Unlike Visual Studio for Mac, Xojo has a built-in Layout Editor for designing your Mac UI so you won’t have to jump over to Xcode to create the layout.</p>
<ol start="2">
<li>On the right you’ll see the Library of controls. From there, drag a Button and a Label positioned like this:<img loading="lazy" decoding="async" class="size-full wp-image-2788 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_09-54-55.png" alt="" width="2504" height="1524" /></li>
<li>Click on the Button and then click on the Inspector button in the toolbar (top right) to show the properties. Change the Name to “ClickButton” and the Caption to “Click Me”.<img loading="lazy" decoding="async" class="size-full wp-image-2789 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_09-56-08.png" alt="" width="2504" height="1524" /></li>
<li>Click on the Label and change the Name to “ClickLabel” and the Text to “The button has not yet been clicked.” For the Label you’ll also want to check the right-hand lock in the Locking section so that the label grows and shrinks as you resize the window.<img loading="lazy" decoding="async" class="size-full wp-image-2792 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_10-03-37.png" alt="" width="2504" height="1524" /></li>
</ol>
<p>You are now done with the layout and can move on to the code.</p>
<ol start="5">
<li>To track the number of clicks you’ll want to add a property. Click the “+” button on the Layout Editor command bar and select Property. Give it the name “NumberOfTimesClicked”. Leave the Type as Integer.<img loading="lazy" decoding="async" class="size-full wp-image-2793 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_10-05-49.png" alt="" width="2504" height="1524" /></li>
<li>The last thing to add is the code to increase the click count and display the count in the label when the button is clicked. Click on Window1 to go back to the window Layout Editor and double-click on ClickButton to show the Event Handler window. <img loading="lazy" decoding="async" class="size-full wp-image-2794 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2017/05/2017-05-17_10-08-22.png" alt="" width="2504" height="1524" />Click on Action and then OK. This displays a blank Code Editor where you’ll put this code to run when the button is clicked:</li>
</ol>
<pre>NumberOfTimesClicked = NumberOfTimesClicked + 1

Dim buttonText As Text = "The button has been clicked {0} time{1}."
buttonText = buttonText.Replace("{0}", NumberOfTimesClicked.ToText)
buttonText = buttonText.Replace("{1}", If(NumberOfTimesClicked &gt; 1, "s", ""))
ClickLabel.Text = buttonText</pre>
<p>The Xojo programming language resembles Visual Basic, but has an OOP model that is similar to C#.</p>
<p>You should now save your project.</p>
<h2>Testing</h2>
<p>To test your project and test the app, just click the big Run button on the toolbar. Click the button to see the label get updated.</p>
<p>Although this is a ridiculously simple app and is really designed just to give you a quick feel for the development environment, it should be pretty obvious that Xojo is much, much simpler to use than Visual Studio for Mac when it comes to creating Mac desktop apps. There is less overhead and you don&#8217;t have to use Xcode at all.</p>
<p>But Xojo has one other <strong>huge advantage</strong> when it comes to desktop apps: you can just click a button or two to get native apps for other platforms! Go back to Xojo and look at the Navigator and the section called “Build Settings”.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-2814" src="https://blog.xojo.com/wp-content/uploads/2017/05/Screen-Shot-2017-05-17-at-1.22.18-PM.png" alt="" width="314" height="334" /></p>
<p>There you can check the boxes for “Windows” and “Linux” to also build this project as native apps for both Windows and Linux in addition to Mac. Just transfer the files over and they’ll run as is because they do not rely on any external frameworks.</p>
<p>This capability is a tremendous time-saver and is a major reason why so many people choose Xojo to make cross-platform desktop apps. If Visual Studio for Mac is something that interests you, then you should definitely be considering Xojo so that you can make truly cross-platform desktop apps faster than you ever thought possible.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Choose the Right Development Tool for Your Business</title>
		<link>https://blog.xojo.com/2017/02/07/choose-the-right-development-tool-for-your-business/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 07 Feb 2017 06:00:01 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2264</guid>

					<description><![CDATA[From a recent Ars Technical article called &#8220;The future of Microsoft’s languages&#8220;, emphasis mine: In spite of its name, the current Visual Basic is not&#8230;]]></description>
										<content:encoded><![CDATA[<p>From a recent Ars Technical article called &#8220;<a href="https://arstechnica.com/information-technology/2017/02/microsofts-developer-strategy-c-for-fancy-features-visual-basic-for-beginners/">The future of Microsoft’s languages</a>&#8220;, emphasis mine:</p>
<blockquote><p>In spite of its name, the current Visual Basic is not the same language as the ancient Visual Basic 6, nor the Visual Basic for Applications used for macroing. The transition to .NET in 2002, with what was called, at the time, Visual Basic.NET, left developers familiar with those languages high and dry; although the new language <strong>was called Visual Basic, and looked a bit like Visual Basic, it was really just C# in disguise</strong>. There was no good migration path from old to new, and much of the simplicity of those older languages was forfeit.</p></blockquote>
<p>This is a primary reason why so many Visual Basic developers choose Xojo after trying Microsoft Visual Basic (.NET): they don&#8217;t want &#8220;C# in disguise&#8221;.</p>
<p><span id="more-2264"></span></p>
<p>Xojo is not Visual Basic, but it is familiar to Visual Basic developers. Xojo is object-oriented, but it is not the complex language that C# has become. It truly is the best of both worlds. When you choose Xojo you get to keep the simplicity of languages like VB that were so popular, fun and beloved, but you get modern object-oriented features that allow you to make desktop, web and mobile apps for today.</p>
<p>As one commenter on the above post noted:</p>
<blockquote><p>&#8230; (a tool like VB) has a really valuable place in allowing small companies to grow and rapidly define a system without costing a sh*tload of capital and time. It seems like Microsoft pretty much threw in the towel&#8230;</p></blockquote>
<p>Not every company needs an IT department with a development staff in the hundreds. For many of today&#8217;s small business, something like Xojo is a much better fit.</p>
<p>When deciding what you&#8217;ll use to make your apps, remember you have choices outside of  development tools like Visual Studio and C#. Xojo is fast, fun and affordable with an <a href="http://forum.xojo.com">active, friendly user community</a> and lots of <a href="http://www.xojo.com/resources/">free resources</a> to help developers of all experience levels develop their apps.</p>
<p>For more information about how to switch from Visual Basic to Xojo, check out <a href="http://developer.xojo.com/migrating-from-visual-basic">Migrating from Visual Basic</a> or watch the <a href="http://developer.xojo.com/webinar-migrating-from-vb">Migrating from Visual Basic webinar</a>, where you can see how a small VB app was recreated as a Xojo app.</p>
<p><a href="http://www.xojo.com/download">Download Xojo</a> and try it for yourself. See how quickly your company can start making its own apps.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Is Microsoft bringing Visual Studio to the Mac?</title>
		<link>https://blog.xojo.com/2016/11/14/is-microsoft-bringing-visual-studio-to-the-mac/</link>
		
		<dc:creator><![CDATA[Geoff Perlman]]></dc:creator>
		<pubDate>Mon, 14 Nov 2016 20:10:06 +0000</pubDate>
				<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Citizen Developer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=2080</guid>

					<description><![CDATA[It is likely that later this week, Microsoft will be announcing Visual Studio for Mac. Is this really true? Why would they do this? What does it mean for&#8230;]]></description>
										<content:encoded><![CDATA[<p>It is likely that later this week, <a href="http://www.microsoft.com">Microsoft</a> will be announcing Visual Studio for Mac. Is this really true? Why would they do this? What does it mean for Xojo users?</p>
<p><span id="more-2080"></span></p>
<p><figure style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-medium" src="https://i-msdn.sec.s-msft.com/dynimg/IC863336.png" alt="Visual Studio for Mac" width="800" height="550" /><figcaption class="wp-caption-text">Visual Studio for Mac</figcaption></figure></p>
<p>Earlier this year, Microsoft <a href="http://www.forbes.com/sites/adrianbridgwater/2016/02/25/microsoft-acquires-cross-platform-xamarin-to-drive-universal-windows-dream/#89e71347eb40">acquired</a> the mobile development tools company Xamarin who had their own IDE which runs on Mac and Windows. Microsoft is going to be shipping that IDE branded as Visual Studio for Mac. So while there will be a product from Microsoft called Visual Studio for Mac, it&#8217;s not really Visual Studio.</p>
<p>Visual Studio for Mac (formerly Xamarin) is focused mostly on <strong>mobile development</strong>. For example, there&#8217;s no cross-platform drag and drop support for desktop user interface nor do I expect there will be as Microsoft has no shortage of software available for Windows. It uses C# and F# and is aimed at the professional developer, not the citizen developer for whom Xojo is primarily designed. Xojo, on the other hand, is for much more than mobile development. Xojo gives users an easy to use drag and drop interface designer with a simple, modernized BASIC syntax that builds applications for macOS, Windows, Linux, the web, iOS, Raspberry Pi and many other ARMv7-based devices. The web is one platform Xojo supports that is worth calling out since unlike ASP from Microsoft, building web applications with Xojo requires no knowledge of HTML, CSS, Javascript, AJAX, and PHP. With Xojo, building web apps is nearly identical to building desktop or mobile apps.</p>
<p>Why would Microsoft want to convert Xamarin into Visual Basic for Mac? While Microsoft is the 800-pound gorilla in terms of desktop market share, they are in a very distant third place on mobile. Their goal in buying Xamarin and marketing the Xamarin IDE as Visual Studio for Mac is to get developers building their mobile apps for iOS and Android in C# to make it as easy as possible to then port those apps to Windows 10 Mobile.  Their ultimate goal is to make more apps available for the relatively anemic Microsoft mobile platform.</p>
<p>For Xojo users, this doesn&#8217;t really mean much. While 25% of our users are full-time professional developers, most started as citizen developers and they are our primary focus as they make up 50% of our users. Having said that, our goal has always been to make Xojo easy for those learning programming for the first time, hobbyists, citizen developer and professionals. We will continue in our quest to make Xojo a tool that someone can use at any stage of their interest in software development.</p>
<p>Lastly, reporters enjoy hearing  from those that use a particular product or service they write about. If you read stories about Visual Studio for Mac, please write to the reporter and <strong>let them know about Xojo</strong>. The more people who talk<a href="http://blog.xojo.com/2014/06/11/spread-the-word-grow-the-community/"> about Xojo</a>, the more likely we are to grow the Xojo community.</p>
<p>Join the discussion on the Xojo Forum <a href="https://forum.xojo.com/36515-microsoft-to-announce-visual-studio-for-mac-this-week/0#p298400">here</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Guest Post: All We Hear Is Radio Ga-Ga</title>
		<link>https://blog.xojo.com/2016/08/02/all-we-hear-is-radio-ga-ga/</link>
		
		<dc:creator><![CDATA[Wayne Golding]]></dc:creator>
		<pubDate>Tue, 02 Aug 2016 09:00:34 +0000</pubDate>
				<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=1462</guid>

					<description><![CDATA[Learn how simple it is to build a Xojo Server app to replace that old clock radio.]]></description>
										<content:encoded><![CDATA[<p>Electronics overload? Declutter your home and office with Xojo! Learn how simple it is to build a Xojo Server app to replace that old clock radio.</p>
<p><span id="hs_cos_wrapper_post_body" class="hs_cos_wrapper hs_cos_wrapper_meta_field hs_cos_wrapper_type_rich_text" data-hs-cos-general-type="meta_field" data-hs-cos-type="rich_text"><em>Wayne Golding has been a Xojo developer since 2005. He operates an IT Company Axis Direct Ltd <a href="http://www.axisdirect.nz/" target="_blank" rel="noopener noreferrer">www.axisdirect.nz</a> which primarily develops applications using Xojo that integrate with Xero <a href="http://www.xero.com/" target="_blank" rel="noopener noreferrer">www.xero.com</a>.  Wayne&#8217;s hobby is robotics where he uses Xojo to build applications for his Raspberry Pi 2 often implementing IoT for remote control.</em></span></p>
<p>As my wife and I are getting to that place in our lives of being empty nesters we are looking at de-cluttering.  This has resulted in the removal of our trusty old clock radio from the kitchen, amongst lots of other items.</p>
<p>My wife says, “How can I listen to the radio in the morning? And it has got to be easy!”  I replied, “We’ll use the computer plugged into the TV and stream our stations.”</p>
<p>“BUT IS HAS TO BE EASY!” she replied.</p>
<p>It’s not really that easy first thing in the morning, when you’ve already spent just a little too much time snoozing, to fire up the TV, load the site on the browser and select your station.  Our 10 year old 50” plasma TV owes me too much to part with just yet – early adopter fever here!</p>
<p>So how do I make it easy?  Well, this is a Xojo blog so I’m sure you can guess.</p>
<p>First I designed a simple desktop app that has no windows, but does present a tray item to the user.  This app also is a TCP server that listens for channel changes and launches Internet Explorer with the appropriate target.  Of course, I also had to open the firewall port for this to work.</p>
<p>Then I built a Xojo Web Server compiled to run standalone on the device.</p>
<p>This is the site:</p>
<p><img loading="lazy" decoding="async" class="size-full wp-image-1463 aligncenter" src="https://blog.xojo.com/wp-content/uploads/2016/07/Screen-Shot-2016-07-27-at-1.08.49-PM.png" alt="Screen Shot 2016-07-27 at 1.08.49 PM" width="354" height="472" /></p>
<p>It&#8217;s very basic &#8211; a choice of three stations or no station.  Of course if could be more and could be prettier, but “EASY”, yes it is. Each button action sends its index to the desktop client via TCP and an Internet Explorer session is killed and (potentially) created.</p>
<p>So why use a web application?  Well my wife has an iphone 6 whilst I have a Galaxy S6 so a web app means both our phones can serve as remotes for the radio.</p>
<p>Let’s get started with the web server.</p>
<ol>
<li>Create a new Web project.</li>
<li>Add a Button to the main web page, give it a suitable name (ChoiceButton) and make it a member of a new control set.  I also doubled the width and height to make it easier for my fat fingers to press on my phone.  Change its caption to “Off” or “Turn Off” if you desire.</li>
<li>Duplicate this Button which will add a member to the control set and change its title to “The Hits”.  Repeat this step for “Coast” And “Newstalk ZB”.  These are local radio stations and of course you can change these to suit.</li>
<li>Give the page a title “Radio Remote”</li>
<li>Add a class to your project named Socket and set its super to “TCPSocket”.  We’ll be using this to communicate with the desktop app that will launch Internet Explorer.</li>
<li>Add a property to this class called Index of type Integer.</li>
<li>Add a constructor method to the class and add the lines below.
<pre>Super.Constructor
Index = target
me.Address = "localhost"
me.Port = 8000
me.Connect</pre>
</li>
<li>Add a “Connected” Event handler and add this line:
<pre>me.Write Str(Index)</pre>
</li>
<li>In shared build settings change the deployment type to “Stand Alone” and the Port to “8080”.</li>
<li>In Windows change the Windows App Name to RadioWebSvc.exe.</li>
<li>Build the app.</li>
</ol>
<p>Now we’ll make the desktop app that will do the actual work.</p>
<ol>
<li>Create a new desktop app.</li>
<li>In build settings – Windows change the application name to Radio.exe</li>
<li>Delete the Window1 and MainMenuBar – this will be a headless app.</li>
<li>Add a class to your project naming it “Socket” and set its super to “TCPSocket”</li>
<li>Add another class to your project naming it “Server” and set its super to “ServerSocket”</li>
<li>To the Server class Add the AddSocket event handler and set its code to:
<pre>Return New Socket</pre>
</li>
<li>To the Socket class Add the DataAvailable event handler and set its code to:
<pre>Dim sh As New Shell
sh.Mode = 0
sh.Execute """" + App.ExecutableFile.Parent.Child("pskill.exe").NativePath + """ iexplore"
Select Case i
Case 1
  // The Hits
  sh.Execute "@start iexplore http://www.iheart.com/live/the-hits-auckland-6197?autoplay=true"
Case 2
  // Coast
  sh.Execute "@start iexplore http://www.iheart.com/live/coast-6193?autoplay=true"
Case 3
  // Newstalk ZB
  sh.Execute "@start iexplore http://www.iheart.com/live/newstalk-zb-auckland-6187?autoplay=true"
Else
  // Turn Off
End Select
self.Close</pre>
<p>This code does all the work.  We are using shell scripts to first kill the “iexplore” task that may be running.  This will return an error if there is no “iexplore” task but we can ignore that.  Then depending on the value of I (which we said was the index of the button pressed in the web app) we will start iexplore with the url of the radio station we want to listen to.  Any value outside of 1-3 will simply turn the radio off.</li>
<li>Add another class to the project and set its name to “myTrayItem” setting its super to “TrayItem”.</li>
<li>Add the Action event handler to this class and set its code to  (giving us a way of closing the app):
<pre>Select Case cause
Case TrayItem.RightMouseButton
  Dim TrayMenu As New MenuItem
  TrayMenu.Append(New MenuItem("Exit"))
  Dim result As MenuItem = TrayMenu.PopUp
  Select Case result.Text
  Case "Exit"
    Quit
  End Select
End Select</pre>
</li>
<li>Add a property to the app named “Tray” with super “myTrayItem”.</li>
<li>Add another property named “Server” with super “Server”.</li>
<li>To the App add the Open Event Handler and set its code to:
<pre>me.AutoQuit = False
Tray = New myTrayItem
Call self.AddTrayItem(Tray)
Server = New Server
Server.Port = 8000
Server.Listen</pre>
<p>Setting AutoQuit to false will keep the application alive without a window.  The next two lines create the tray item and add it to the system tray area.  Lastly the next three lines create the server instance and set it to listen on port 8000.</li>
<li>Lastly add the close event handler to the app and set its code to:
<pre>self.RemoveTrayItem(Tray)</pre>
</li>
</ol>
<p>This removes the item from the system tray area.</p>
<p>You will have noticed we use pskill to unload iexplore.  This is not part of the standard windows install, but you can download it as part of pstools from <a href="https://technet.microsoft.com/en-us/sysinternals/pstools.aspx">https://technet.microsoft.com/en-us/sysinternals/pstools.aspx</a>.  I use a copy files build step in this project to copy the pskill.exe file along with the components of the web app<img loading="lazy" decoding="async" class="alignnone size-full wp-image-1471" src="https://blog.xojo.com/wp-content/uploads/2016/07/Screen-Shot-2016-07-27-at-1.24.41-PM.png" alt="Screen Shot 2016-07-27 at 1.24.41 PM" width="576" height="103" /></p>
<p>So after building the project I have:</p>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1472" src="https://blog.xojo.com/wp-content/uploads/2016/07/Screen-Shot-2016-07-27-at-1.25.23-PM.png" alt="Screen Shot 2016-07-27 at 1.25.23 PM" width="526" height="143" /></p>
<p>Everything I need to deploy the solution:</p>
<ol>
<li>Create a folder on the target computer for the application.  This will typically be C:\Windows\Program Files (x86)\Radio and copy all these files there.</li>
<li>Create a shortcut for Radio.exe (Right click &amp; select create shortcut.  This will probably require you to create the shortcut on the desktop which is fine.  Move that shortcut to %AppData%\Microsoft\Windows\Start Menu\Programs\Startup.  This will automatically start the headless radio app when you log in.  Run radio.exe.</li>
<li>The first time pskill is run it is necessary to accept the EULA, so run that now and accept it.</li>
<li>Now to run the web app as a service.
<ol>
<li>Click on the Windows button and type &#8220;cmd&#8221;.</li>
<li>Right click on cmd and choose “Run as Administrator”.</li>
<li>Create the web service:
<pre>create RadioSvc binpath= "C:\Program Files (x86)\Radio\RadioWebSvc.exe" start= auto
sc start RadioSvc
query RadioSvc</pre>
<p><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1473" src="https://blog.xojo.com/wp-content/uploads/2016/07/Screen-Shot-2016-07-27-at-1.26.38-PM.png" alt="Screen Shot 2016-07-27 at 1.26.38 PM" width="563" height="298" /></li>
</ol>
</li>
</ol>
<p>This creates the service, starts it and then checks to see that it is running.</p>
<p>Now you are ready to test.  This is done by pointing your browser at &#8220;localhost:8080&#8221;.  I use Chrome as my default browser, but if you use Edge or IE your browser will close and reopen with the selected url running.  From my phone I can test using http://&lt;IP address of host&gt;:8080.</p>
<p>Next for me is to add a timer to the desktop app that will turn the radio on to a selected channel on selected days, so I won’t even need the remote in the morning until it’s time to leave. Although this project is a Windows app, I’m sure you could make OS X or Raspberry Pi versions without too much trouble.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>XojoTalk 027 &#8211; Database Goddess</title>
		<link>https://blog.xojo.com/2016/07/26/xojotalk-027-database-goddess/</link>
					<comments>https://blog.xojo.com/2016/07/26/xojotalk-027-database-goddess/#comments</comments>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Tue, 26 Jul 2016 00:00:00 +0000</pubDate>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[XojoTalk]]></category>
		<category><![CDATA[BKeeney]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Podcast]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[Women in Tech]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/?p=367</guid>

					<description><![CDATA[Paul talks with Carol Keeney of BKeeney Software. Topics include databases, requirements analysis, agile/scrum and much more.]]></description>
										<content:encoded><![CDATA[<p>Paul talks with Carol Keeney of BKeeney Software about databases, requirements analysis, agile/scrum and much more.</p>
<p><span id="more-367"></span></p>
<p>Download <a href="http://files.xojo.com/Podcasts/XojoTalk-027.mp3">MP3</a>.</p>
<p><audio class="wp-audio-shortcode" id="audio-367-1" preload="none" style="width: 100%;" controls="controls"><source type="audio/mpeg" src="http://files.xojo.com/Podcasts/XojoTalk-027.mp3?_=1" /><a href="http://files.xojo.com/Podcasts/XojoTalk-027.mp3">http://files.xojo.com/Podcasts/XojoTalk-027.mp3</a></audio></p>
<p>&nbsp;</p>
<h2>Show Notes</h2>
<ul>
<li><a href="http://www.bkeeney.com/">BKeeney Software</a></li>
<li><a href="https://www.microsoft.com/en-us/server-cloud/products/sql-server/">Microsoft SQL Server</a></li>
<li><a href="http://blogs.microsoft.com/blog/2016/03/07/announcing-sql-server-on-linux">Microsoft SQL Server on Linux</a></li>
<li><a href="https://www.navicat.com/">Navicat</a></li>
<li><a href="https://en.wikipedia.org/wiki/Data_definition_language">Data Definition Language</a></li>
<li><a href="http://projectcartoon.com/cartoon/1111">Tree swing Requirements</a></li>
<li><a href="http://www.bkeeney.com/rbinto/activerecord/">ActiveRecord</a></li>
</ul>
<p><!--HubSpot Call-to-Action Code --> <span id="hs-cta-wrapper-32eb9715-5c1c-45a4-9f37-717ffc906d8e" class="hs-cta-wrapper"> <span id="hs-cta-32eb9715-5c1c-45a4-9f37-717ffc906d8e" class="hs-cta-node hs-cta-32eb9715-5c1c-45a4-9f37-717ffc906d8e"><br />
<!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="feeds.feedburner.com/xojotalk" target="_blank"><img loading="lazy" decoding="async" id="hs-cta-img-32eb9715-5c1c-45a4-9f37-717ffc906d8e" class="hs-cta-img aligncenter" style="border-width: 0px; margin: 0 auto; display: block; margin-top: 20px; margin-bottom: 20px;" src="https://blog.xojo.com/wp-content/uploads/2014/09/32eb9715-5c1c-45a4-9f37-717ffc906d8e.png" alt="Subscribe Podcast" width="622" height="107" align="middle" /></a></span></span> <!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.xojo.com/2016/07/26/xojotalk-027-database-goddess/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		<enclosure url="http://files.xojo.com/Podcasts/XojoTalk-027.mp3" length="20845214" type="audio/mpeg" />

			</item>
		<item>
		<title>Windows 10 Free Upgrade Ending Soon</title>
		<link>https://blog.xojo.com/2016/07/25/windows-10-free-upgrade-ends-soon/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 25 Jul 2016 19:35:15 +0000</pubDate>
				<category><![CDATA[Community]]></category>
		<category><![CDATA[Cross-Platform]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows 10]]></category>
		<guid isPermaLink="false">http://blog.xojo.com/?p=1447</guid>

					<description><![CDATA[If you are using Windows 7, Windows 8 or Windows 8.1 you only have a few more days to get your free upgrade to Windows 10.&#8230;]]></description>
										<content:encoded><![CDATA[<p>If you are using Windows 7, Windows 8 or Windows 8.1 you only have a few more days to get your free upgrade to Windows 10. After July 29, 2016, Microsoft starts charging for Windows 10 with prices starting at about $120.</p>
<p>I absolutely recommend you grab Windows 10 if you can. I use it daily and like it a lot. It is speedy, easy to use and works well with Xojo apps (and Xojo itself). If you are using Windows 8 or 8.1, there is really no reason not to upgrade as it is better in every way. If you are really fond of Windows 7, you have a tougher decision as Windows 10 looks a lot different and switching might be a bit of a shock.</p>
<p>However, for Xojo developers (or anyone) running Windows in a <a href="http://blog.xojo.com/2015/08/31/virtual-machines-save-the-day/">virtual machine</a> you can take advantage of this free update and still keep your old OS around, which is useful for testing. Depending on the type of Windows license you have, you might be able to just make a copy of the VM file (assuming you have the space &#8212; they can be quite large) and then run the Windows 10 update on the copy. Although, I bet after you start using Windows 10, you&#8217;ll probably just end up sticking with it.</p>
<p>Now is also a great time to upgrade to Windows 10 because its first major update (called <a href="http://arstechnica.com/information-technology/2016/07/windows-10-anniversary-update-is-ready-to-go-and-free-for-just-a-few-more-days/">Windows 10 Anniversary Edition</a> &#8212; Microsoft has the strangest names) will start becoming available for Windows 10 users in early August.</p>
<p><img loading="lazy" decoding="async" class="aligncenter" src="https://i.ytimg.com/vi/Z2kkdn9tT5Q/maxresdefault.jpg" alt="Windows 10" width="1280" height="720" /></p>
<p>And remember, if you only use Windows for testing, Microsoft provides 90-day trials of Windows Enterprise that can be used for evaluation purposes. You can grab Windows 10, 8.1 and 8 from here:</p>
<ul>
<li><a href="https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise">Windows Enterprise</a></li>
</ul>
<p>Microsoft also makes available free virtual machines for Windows 10, Windows 8.1 and Windows 7 that you can use for testing:</p>
<ul>
<li><a href="https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/">Free Windows Virtual Machines</a></li>
</ul>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Windows App Requirements</title>
		<link>https://blog.xojo.com/2016/05/19/windows-app-requirements/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Thu, 19 May 2016 00:00:00 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Universal Runtime]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2016/05/19/windows-app-requirements/</guid>

					<description><![CDATA[Learn about the Windows Universal Runtime requirement for Xojo and apps made with Xojo 2016 Release 1 or later.]]></description>
										<content:encoded><![CDATA[<p>Microsoft refactored their core app runtimes in 2015. They have made what they call a &#8220;Universal C Runtime&#8221; which has been distributed via Windows Update to all supported versions of Windows that stay up-to-date (which is the default behavior for Windows Update).</p>
<p>Starting with Xojo 2016r1, the Xojo Windows framework has been updated to use the latest Microsoft tools. This allows Xojo to stay up to date and allows the Windows support to be improved in future releases. This means that Xojo itself now uses the new Universal Runtime and your built apps now require it.</p>
<p><span id="more-348"></span></p>
<p>Most users will not notice a change. As long as Windows Update has been keeping their systems up-to-date, then they will already have the Windows Runtime installed.</p>
<p>But as we all know, not all users keep things up-to-date. For users that do not have the Windows Runtime installed already, they will need to install it before they can use your apps.</p>
<p>The easiest way to manage this is to have your app installer include the Windows Runtime redistributable installer and run it automatically. If this is not practical, you can also supply the specific DLLs as part of your installer.</p>
<p>For more information on this, refer to the Windows Universal Runtime topic in the Dev Center: <a href="http://developer.xojo.com/windows-universal-runtime">http://developer.xojo.com/windows-universal-runtime</a></p>
<p>To learn how to create an Inno Setup script for your Xojo app that will automatically include the Windows Universal Runtime redistributable (and other things), watch the Windows Installer webinar: <a href="http://developer.xojo.com/webinar-windows-installers">http://developer.xojo.com/webinar-windows-installers</a></p>
<p><!--HubSpot Call-to-Action Code --> <span id="hs-cta-wrapper-02a13a45-54d9-4175-b904-87f831919150" class="hs-cta-wrapper"> <span id="hs-cta-02a13a45-54d9-4175-b904-87f831919150" class="hs-cta-node hs-cta-02a13a45-54d9-4175-b904-87f831919150"><br />
<!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="http://blog.xojo.com/2015/11/09/guest-post-part-2-the-power-of-templates/"><img loading="lazy" decoding="async" id="hs-cta-img-02a13a45-54d9-4175-b904-87f831919150" class="hs-cta-img aligncenter" style="border-width: 0px; margin: 0 auto; display: block; margin-top: 20px; margin-bottom: 20px;" src="https://blog.xojo.com/wp-content/uploads/2015/11/02a13a45-54d9-4175-b904-87f831919150.png" alt="windows transparent label tip" width="362" height="62" align="middle" /></a></span></span> <!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Communicating with Microsoft Office Automation in Xojo</title>
		<link>https://blog.xojo.com/2016/05/16/communicating-with-microsoft-office-automation-in-xojo/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 16 May 2016 00:00:00 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2016/05/16/communicating-with-microsoft-office-automation-in-xojo/</guid>

					<description><![CDATA[Learn about using Office Automation to control Excel, PowerPoint and Word from Xojo.]]></description>
										<content:encoded><![CDATA[<p>Microsoft Office for Windows can be controlled using something called the VBA Office Object Model. You can use Xojo to communicate with this object model so that you can control Word, Excel and PowerPoint from your Xojo apps on Windows.</p>
<p><span id="more-301"></span></p>
<p>To use Office Automation with Xojo, you have to first ensure that the Office Automation plugin is in the Xojo Plugin folder before you start Xojo. You can find the plugin in the Extras/Office Automation folder of your Xojo installation. Simply copy it to the main Plugins folder in the Xojo installation folder.</p>
<p><img decoding="async" style="width: 640px;" title="controlling_Microsoft_Windows.png" src="https://blog.xojo.com/wp-content/uploads/2016/05/controlling_Microsoft_Windows.pngt1466486449161ampwidth640" sizes="(max-width: 640px) 100vw, 640px" alt="controlling_Microsoft_Windows.png" width="640" /></p>
<p>After doing this, you&#8217;ll find that there is a new module and many new classes that are available to you. In particular, you can now use these:</p>
<ul>
<li>Office module</li>
<li>ExcelApplication class</li>
<li>PowerPointApplication class</li>
<li>WordApplication class</li>
</ul>
<p>You can use these to communicate with the Office Object model so that you can control Excel, PowerPoint and Word.</p>
<p><strong>Note: Office Automation only works on Microsoft Windows.</strong></p>
<p>Here a quick example to show you how you can send text to Microsoft Word.</p>
<ol>
<li>Create a new Xojo Desktop project.</li>
<li>Drag the WordApplication control from the Library onto the Window1 layout. This will put the control into the Shelf at the bottom of the Layout Editor. Change its name to WordApp.</li>
<li>Add a TextArea to the layout. Change its name to WordArea.</li>
<li>Add a Button to the layout.</li>
<li>Add the Action event handle to the Button and add this code:
<pre>Dim doc As WordDocument
WordApp.Visible = True
doc = WordApp.Documents.Add
doc.Range.Text = WordArea.Text
Exception err As OleException
 MsgBox(err.Message)</pre>
</li>
<li>Run the project, enter some text in the TextArea and click the button.</li>
<li>Microsoft Word will start (if it&#8217;s not already running) and a new document will be created with your text added.</li>
</ol>
<p>The above code uses the WordDocument class, which maps to the <a href="https://msdn.microsoft.com/EN-US/library/office/ff822963.aspx">Office Object Model&#8217;s Document class</a>. In that class, it uses the Document class&#8217;s Range method to set the text for the document.</p>
<p>You can refer to the official Microsoft docs for specifics on the Office Object Model:</p>
<ul>
<li><a href="https://msdn.microsoft.com/en-us/library/office/fp179694.aspx">Excel Object Model</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/office/fp161225.aspx">PowerPoint Object Model</a></li>
<li><a href="https://msdn.microsoft.com/en-us/library/office/fp179696.aspx">Word Object Model</a></li>
</ul>
<p>For other tips on how to use Office Automation with Xojo, refer to the <a href="http://developer.xojo.com/ID1737464">Office Automation Overview</a> page in the Xojo Dev Center.</p>
<p><!--HubSpot Call-to-Action Code --> <span id="hs-cta-wrapper-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-wrapper"> <span id="hs-cta-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-node hs-cta-ee3c17a9-e8c9-4b5d-92ea-421a48777319"><br />
<!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="http://blog.xojo.com/2014/06/12/creating-installers-for-windows-apps/" target="_blank"><img loading="lazy" decoding="async" id="hs-cta-img-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-img aligncenter" style="border-width: 0px; margin: 0 auto; display: block; margin-top: 20px; margin-bottom: 20px;" src="https://blog.xojo.com/wp-content/uploads/2015/02/ee3c17a9-e8c9-4b5d-92ea-421a48777319.png" alt="Xojo Windows" width="611" height="108" align="middle" /></a></span></span> <!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>If Smartphone Encryption Is A Red Herring, How Do We Track The Bad Guys?</title>
		<link>https://blog.xojo.com/2016/02/04/if-smartphone-encryption-is-a-red-herring-how-do-we-track-the-bad-guys/</link>
		
		<dc:creator><![CDATA[Geoff Perlman]]></dc:creator>
		<pubDate>Thu, 04 Feb 2016 00:00:00 +0000</pubDate>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Crypto]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mobile]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2016/02/04/if-smartphone-encryption-is-a-red-herring-how-do-we-track-the-bad-guys/</guid>

					<description><![CDATA[Smartphone Encryption is a Red Herring, but the Good Guys have other options. We don't need universal back doors.]]></description>
										<content:encoded><![CDATA[<p>In the blog post <a href="http://blog.xojo.com/2016/01/27/smartphone-encryption-is-a-red-herring/">Smartphone Encryption is a Red Herring</a>, I pointed out the folly of requiring an encryption back door for the Good Guys to use. So the question arises- &#8220;What <em>can</em> be done? If we don&#8217;t want a global encryption back door that can be used by anyone, can we still track the Bad Guys?&#8221;</p>
<p>The answer is yes. There are plenty of options that don&#8217;t require a global back door. I&#8217;m not passing judgment on whether these are inherently good or bad options, just that they are available when there is a reason to track a Bad Guy.<br />
<span id="more-285"></span></p>
<p><strong>Keyloggers</strong><br />
A <a href="https://en.wikipedia.org/wiki/Keystroke_logging" target="_blank" rel="noopener">keylogger</a> is used to track everything someone types. They come in both software and hardware varieties. Once installed, they can provide regular data about passwords and other communications the Bad Guy is making. Some store the data for later retrieval, while others broadcast it on a regular basis. They exist in varieties for both computers and cell phones.</p>
<p><img loading="lazy" decoding="async" style="display: block; margin-left: auto; margin-right: auto;" title="keyboard.png" src="https://blog.xojo.com/wp-content/uploads/2016/02/keyboard.pngt1466486449161ampwidth424ampheight322" sizes="auto, (max-width: 424px) 100vw, 424px" alt="keyboard.png" width="424" height="322" /><br />
<strong>Online Man in the Middle</strong><br />
With proper authorization, the Good Guys <a href="https://en.wikipedia.org/wiki/Man-in-the-middle_attack" target="_blank" rel="noopener">can stand between</a> the Bad Guys and common online services they might be using. Working with their internet provider, they can gather data similar to keyloggers by intercepting and relaying data back and forth.</p>
<p><strong>Digital Evidence Collection</strong><br />
When a warrant is served and computers or mobile devices are retrieved for analysis, gathering evidence quickly is paramount. The Bad Guys may have countermeasures installed on their devices, so being able to copy data from hard drives and other storage mediums across platforms while they are still online is important. Once images of the data are created, the evidence can be safely analyzed without being concerned about time bombs or other countermeasures. Xojo has been used to create tools that are used for both digital evidence collection and analysis. Being a cross platform tool is a particular advantage in this scenario.</p>
<p>None of the above options require a global back door, and they can all be limited to just the Bad Guys in question when surveillance is warranted. A <a href="https://www.onthewire.io/harvard-study-questions-going-dark-crypto-problem/" target="_blank" rel="noopener">recently released Harvard study</a> has similar findings. Some options are better than others depending on the region in the world and the technical prowess of the Bad Guys. <a href="../../../com/xojo/blog/smartphone-encryption-is-a-red-herring.html" target="_blank" rel="noopener">Smartphone Encryption is a Red Herring</a>, but the Good Guys have other options. We don&#8217;t need universal back doors.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Microsoft is Killing Internet Explorer 8, 9 and 10</title>
		<link>https://blog.xojo.com/2016/01/11/microsoft-is-killing-internet-explorer-8-9-and-10/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 11 Jan 2016 00:00:00 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Browser]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[webdev]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2016/01/11/microsoft-is-killing-internet-explorer-8-9-and-10/</guid>

					<description><![CDATA[Microsoft is ending support for Internet Explorer 8, 9 and 10.]]></description>
										<content:encoded><![CDATA[<p>On Tuesday, January 12th Microsoft is <a href="https://www.microsoft.com/en-us/WindowsForBusiness/End-of-IE-support">ending support for Internet Explorer 8, 9 and 10</a>.</p>
<p><span id="more-300"></span></p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1778" src="https://blog.xojo.com/wp-content/uploads/2016/01/Screen-Shot-2016-09-01-at-9.37.32-PM.png" alt="IE" width="501" height="489" /></p>
<p>According to Microsoft, this means that only Internet Explorer 11 will continue to get updates, as it is the most recent (and last) version of Internet Explorer. IE11 is supported on Windows 7, 8.1 and 10 so if you are using those operating systems, you should definitely upgrade to IE 11.</p>
<p><strong>Note</strong>: <a href="https://support.microsoft.com/en-us/lifecycle#gp/Microsoft-Internet-Explorer">Apparently Microsoft will still support IE 9 on Vista SP2</a>, should you still be using it.</p>
<p>If you are still using an older version of Windows with an older version of IE, now is the time to stop. I&#8217;d recommend you <a href="../../../com/xojo/blog/windows-10-is-here.html">upgrade to Windows 10</a> as soon as you can; it really is quite nice. As is the new Edge browser.</p>
<p>If you are stuck on an older Windows OS, at least consider using <a href="https://www.google.com/chrome/browser/desktop/">Chrome</a> or <a href="https://www.mozilla.org">Firefox</a> which are both updated regularly.</p>
<p>We are not yet making any changes to our web browser support, so Xojo web apps (as of 2015r4) continue to be  supported on Internet Explorer 9+.</p>
<p><!--HubSpot Call-to-Action Code --> <span id="hs-cta-wrapper-ba3ae63d-9673-4a83-90d3-6d82f6cc4429" class="hs-cta-wrapper"> <span id="hs-cta-ba3ae63d-9673-4a83-90d3-6d82f6cc4429" class="hs-cta-node hs-cta-ba3ae63d-9673-4a83-90d3-6d82f6cc4429"><br />
<!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="http://blog.xojo.com/2016/01/04/use-newer-version-of-internet-explorer-with-webbrowser-and-htmlviewer" target="_blank"><img loading="lazy" decoding="async" id="hs-cta-img-ba3ae63d-9673-4a83-90d3-6d82f6cc4429" class="hs-cta-img aligncenter" style="border-width: 0px; margin: 0 auto; display: block; margin-top: 20px; margin-bottom: 20px;" src="https://blog.xojo.com/wp-content/uploads/2016/01/ba3ae63d-9673-4a83-90d3-6d82f6cc4429.png" alt="Use Newer Version of Internet Explorer with WebBrowser and HTMLViewer" width="372" height="68" align="middle" /></a></span></span> <!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Guest Post: Part 1, Transparent Label Tip for Windows</title>
		<link>https://blog.xojo.com/2015/11/06/guest-post-part-1-transparent-label-tip-for-windows/</link>
		
		<dc:creator><![CDATA[Xojo]]></dc:creator>
		<pubDate>Fri, 06 Nov 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Guest Post]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2015/11/06/guest-post-part-1-transparent-label-tip-for-windows/</guid>

					<description><![CDATA[A tip for creating transparent labels on Windows in Xojo]]></description>
										<content:encoded><![CDATA[<p><em>Wayne Golding has been a Xojo developer since 2005. He operates an IT Company Axis Direct Ltd <a href="http://www.axisdirect.nz/" target="_blank">www.axisdirect.nz</a> which primarily develops applications using Xojo that integrate with Xero <a href="http://www.xero.com/" target="_blank">www.xero.com</a>.  Wayneâs hobby is robotics where he uses Xojo to build applications for his Pi2 often implementing IoT for remote control.</em></p>
<p>When developing for Windows, it&#8217;s not immediately clear how to set up a transparent label. If you change the background colour of your Window, you could end up with that ugly gray label. And of course I always forgot to set the transparency until after the debug run. But I&#8217;ve found a simple solution.</p>
<p><span id="more-280"></span></p>
<p>First drag a label from the Library to the Navigator.</p>
<p><img decoding="async" style="width: 272px; display: block; margin-left: auto; margin-right: auto;" title="chose label windows" src="https://blog.xojo.com/wp-content/uploads/2015/11/Screen_Shot_2015-10-19_at_8.18.55_PM.pngt1466486449161" alt="chose label windows" data-constrained="true" /></p>
<p>Rename the label to something useful â I use TransparentLabel because I have my library sorted without grouping and this will place the label quite close to the Text Field/Text Area controls.</p>
<p>Next, contextual click the label (right click) and select Inspector Behaviour (bottom entry on the menu).  This will present the Inspector Behaviour dialog.  Scroll down to the Appearance group.</p>
<p><img decoding="async" style="width: 640px; display: block; margin-left: auto; margin-right: auto;" title="appearance group" src="https://blog.xojo.com/wp-content/uploads/2015/11/Screen_Shot_2015-10-19_at_8.21.23_PM.pngt1466486449161" alt="appearance group" data-constrained="true" /></p>
<p>Edit the default value of Transparent to be true.  After clicking OK you have a new control in the library:</p>
<p><img decoding="async" style="width: 320px; display: block; margin-left: auto; margin-right: auto;" title="transparent Label Windows" src="https://blog.xojo.com/wp-content/uploads/2015/11/Screen_Shot_2015-10-19_at_8.22.29_PM.pngt1466486449161" alt="transparent Label Windows" data-constrained="true" /></p>
<p>It&#8217;s conveniently close to the Text Field &amp; Text Area controls where I am most likely to want to grab it from.<em><span id="hs-cta-wrapper-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-wrapper"><span id="hs-cta-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-node hs-cta-ee3c17a9-e8c9-4b5d-92ea-421a48777319"><br />
<!-- [if lte IE 8]>


<div id="hs-cta-ie-element"></div>


<![endif]--> <a href="http://blog.xojo.com/2014/06/12/creating-installers-for-windows-apps/" target="_blank"><img loading="lazy" decoding="async" id="hs-cta-img-ee3c17a9-e8c9-4b5d-92ea-421a48777319" class="hs-cta-img aligncenter" style="border-width: 0px; margin: 0 auto; display: block; margin-top: 20px; margin-bottom: 20px;" src="https://blog.xojo.com/wp-content/uploads/2015/02/ee3c17a9-e8c9-4b5d-92ea-421a48777319.png" alt="Xojo Windows" width="611" height="108" align="middle" /></a></span></span> <!-- end HubSpot Call-to-Action Code --> </em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Goodbye, Windows XP</title>
		<link>https://blog.xojo.com/2015/10/26/goodbye-windows-xp/</link>
		
		<dc:creator><![CDATA[Paul Lefebvre]]></dc:creator>
		<pubDate>Mon, 26 Oct 2015 00:00:00 +0000</pubDate>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows XP]]></category>
		<guid isPermaLink="false">http://blogtemp.xojo.com/2015/10/26/goodbye-windows-xp/</guid>

					<description><![CDATA[In case you missed the change, Xojo no longer creates apps that run on Windows XP.]]></description>
										<content:encoded><![CDATA[<p>In case you <a href="http://developer.xojo.com/deprecations">missed the change</a>, Xojo no longer creates apps that run on Windows XP.</p>
<p><span id="more-277"></span></p>
<p>We first announced this at <a href="http://blog.xojo.com/2015/05/05/xdc_2015_recap/">XDC 2015</a> earlier this year, but we&#8217;ve been talking about XP and why you should stop using it for <a href="http://www.xojo.com/blog/en/2013/09/reminder-move-away-from-windows-xp-now.php">quite</a> <a href="http://blog.xojo.com/2014/01/22/the_end_of_windows_xp/">some</a> <a href="http://blog.xojo.com/2014/01/30/moving_from_windows_xp/">time</a>.</p>
<p>In fact, the last version of Xojo to run on XP was 2013r3.</p>
<p>Starting with 2015r3, Xojo no longer creates apps that work on Windows XP. You now have to use Windows Vista, Windows 7, Windows 8.x or <a href="../../../com/xojo/blog/windows-10-is-here.html">Windows 10</a>.</p>
<p style="text-align: left; padding-left: 30px;"><strong>Note</strong>: Also starting with 2015r3, Windows Vista is <a href="http://developer.xojo.com/deprecations">deprecated</a>. This means support for it will be removed in a future version of Xojo.</p>
<p>With <a href="http://windows.microsoft.com/en-us/windows/end-support-help">Microsoft no longer supporting XP at all</a>, dropping XP support was inevitable and we feel the time is right, especially with Windows 10 receiving <a href="http://www.pcadvisor.co.uk/review/operating-systems-software/windows-10-review-best-update-3574736/">positive reviews</a> and <a href="http://www.pcworld.com/article/2975911/windows/four-weeks-after-launch-windows-10-is-already-on-75-million-pcs-and-tablets.html">fast adoption</a>.</p>
<p>By no longer maintaining XP support, we can move forward applying newer Windows technologies to the Xojo framework. In fact, 2015r3 has two such improvements: one to threading to reduce CPU usage and another to use the newer Open/Save/Select Folder dialogs style.<!-- end HubSpot Call-to-Action Code --></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
