<?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>Catalyst Development &#187; Windows Vista</title>
	<atom:link href="http://blog.catalyst.com/archives/category/windows-vista/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.catalyst.com</link>
	<description>Applications, Components and Libraries For Software Developers</description>
	<lastBuildDate>Fri, 18 Nov 2011 21:34:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Upgrading to Windows Vista</title>
		<link>http://blog.catalyst.com/archives/8</link>
		<comments>http://blog.catalyst.com/archives/8#comments</comments>
		<pubDate>Mon, 29 Jan 2007 18:38:10 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/8</guid>
		<description><![CDATA[With the general consumer release of Vista right around the corner, you may be thinking about upgrading your development system. It&#8217;s not a difficult process, but there are some things that you need to be aware of, and planning ahead of time can save you from a lot of frustration. Minimum System Requirements The first [...]]]></description>
			<content:encoded><![CDATA[<p>With the general consumer release of Vista right around the corner, you may be thinking about upgrading your development system. It&#8217;s not a difficult process, but there are some things that you need to be aware of, and planning ahead of time can save you from a lot of frustration.<span id="more-8"></span></p>
<p><strong>Minimum System Requirements<br />
</strong>The first thing to consider is the hardware that you&#8217;re currently using. Because developers tend to keep their systems relatively up-to-date, more than likely you&#8217;re in good shape. However, if your system is more than two years old, you&#8217;re going to want to check to make sure that it&#8217;s suitable for Vista. It&#8217;s recommended that you take a few minutes and run the <a title="Windows Vista Upgrade Advisor" href="http://www.microsoft.com/windows/products/windowsvista/buyorupgrade/upgradeadvisor.mspx" target="_blank">Windows Vista Upgrade Advisor</a> which is a utility that will generate a compatibility report. Note that it only works with Windows XP, so if you&#8217;re using an older version of Windows then you&#8217;ll have to make the evaluation yourself.</p>
<p>Microsoft lists the minimum system requirements for Vista as a 1 GHz processor, 1 GB of memory, 40 GB of disk space and a DirectX 9 compatible video card with at least 128 MB of memory. However, keep in mind that is the minimum system requirements, and they really mean it. For a development system that&#8217;s actually usable, you&#8217;ll want at least aÂ 2 GHz processor, 2 GB of memory, 120 GB of disk space (all of those development tools add up) and a DirectX 9 video card with at least 256 MB of memory. Keep in mind that the actual processor speed largely depends on the type; a system with the Core Duo is going to perform better than a P4 at a higher clock speed. You can also get by with a video card that has less memory, particularly if you don&#8217;t plan on running with the Aero Glass desktop. If you&#8217;re looking at multiple components to upgrade, then prioritize memory first. Vista is very aggressive with its memory use, so the more RAM it has and the faster it is, the better it will perform. I would point out that it is possible to install Vista on a lower-end system; however it&#8217;s not likely that you&#8217;ll be happy with the performance.</p>
<p><strong>Windows Vista Version</strong><br />
If you&#8217;ve decided that your hardware is suitable for Vista, then you need to decide what version of the operating system you should upgrade to. Vista comes in several different versions, from Vista Home to Vista Ultimate. As a developer, you really just have two choices: Vista Business or Vista Ultimate. Vista Business is fairly close to Windows XP Professional in terms of the overall features. Vista Ultimate is basically a combination of the Business version and the Home Premium version which includes Windows Media Center. Vista Ultimate also includes the BitLocker disk encryption that&#8217;s in the Enterprise version. The bottom line is that Vista Ultimate is the best choice if your development system also doubles as your personal computer. If you&#8217;re only concerned about business features on a system at work, and aren&#8217;t interested in the built-in disk encryption, then Vista Business is all you&#8217;d really need.</p>
<p><strong>Drivers and Development Tools</strong><br />
Now that you&#8217;ve decided on what version of Vista to install, you should take an inventory of your peripherals. In particular, you&#8217;re going to want to make sure that drivers are available for your video and audio adapters, as well as your printer. USB devices won&#8217;t be a problem in most cases, but multi-function printers may not have drivers available. If you&#8217;re not using integrated audio, you may also find that release drivers aren&#8217;t available for your audio card (the audio stack was changed significantly in Vista, and some vendors only have beta drivers available with partial functionality). You should also check for any BIOS updates, as well as any updates to the chipset that your system is using.</p>
<p>In most cases, the development tools that you use under Windows 2000 or Windows XP will work fine on Vista. However, there are some general issues to be aware of. The most significant is that Microsoft only officially supports Visual Studio 2005 on the platform. If you use Visual Studio 6.0 or Visual Studio .NET 2003, you can install them, but Microsoft will not provide any support for them on the platform. If upgrading to Visual Studio 2005 isn&#8217;t an option you&#8217;re not completely out of luck, but there will be some limitations. Most of those limitations revolve around one of two general areas, ActiveX and debugging. More specific information is available in our article <a title="Software Development on Windows Vista" href="http://blog.catalyst.com/archives/4">Software Development on Windows Vista</a>. Another thing to keep in mind is that if you&#8217;re currently using WinHelp for your help files, that format is no longer supported by Vista. Microsoft does plan on releasing a WinHelp viewer at some point, but you should make plans to migrate your help projects to HTML Help.</p>
<p><strong>Upgrade or Clean Install</strong><br />
Finally, you have to make the decision as to whether you&#8217;re going to upgrade your system in-place, or perform a clean install. While an in-place upgrade is tempting, it&#8217;s not something that I&#8217;d recommend. Upgrading from an earlier version of Windows takes longer than a clean install, and it is much more likely that you&#8217;re going to encounter odd compatibility problems (or even system instability) when upgrading. Although re-installing all of the development tools and utilities is certainly no fun, it will pay off in the long run. Make sure you have a good backup of your source code and data, as well as any software that you&#8217;ve downloaded and/or purchased online. If you don&#8217;t have an external USB drive, now would be a good time to invest in one. It&#8217;ll make the re-installation process much easier in the long run, as well as provide the best way to backup your complete system. Once you&#8217;ve started the installation the process is largely automated, so there&#8217;s little for you to do but sit back and relax.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whoâ€™s System Is This, Anyway?</title>
		<link>http://blog.catalyst.com/archives/7</link>
		<comments>http://blog.catalyst.com/archives/7#comments</comments>
		<pubDate>Mon, 22 Jan 2007 19:04:33 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/7</guid>
		<description><![CDATA[An issue that frequently comes up when talking about Windows Vista is backwards compatibility and the security changes. The User Account Control system is the most prominent change which everyone will notice when they first start using the operating system. However, there are more significant changes under the surface that affect how programs are written, [...]]]></description>
			<content:encoded><![CDATA[<p>An issue that frequently comes up when talking about Windows Vista is backwards compatibility and the security changes. The User Account Control system is the most prominent change which everyone will notice when they first start using the operating system. However, there are more significant changes under the surface that affect how programs are written, and what those programs can do. This has some developers asking questions about the future of the platform, and to what extent an operating system should restrict the actions of a user, rather than facilitate them.<br />
<span id="more-7"></span></p>
<p>Historically, Windows was an operating system designed for the traditional, stand-alone desktop PC. Networking was considered in a local context, and the Internet was something used primarily by the military, universities and some large companies. When Internet use exploded in the mid 1990â€™s, with all of the benefits it offered, it also presented a serious problem that was underestimated by many developers, including many within Microsoft. Single-user desktop systems with virtually no security features had joined the Internet by the millions. Software that had been written for stand-alone systems, without any real concern for security, was now exposed to an extremely hostile environment.</p>
<p>Over the years, Windows developers have become accustomed to the idea that they have absolute control over the system. For example, they had the ability to create system-wide message filters which can intercept the messages for any application, inject code into another process or even have a DLL loaded in the address space of every process thatâ€™s created. Features which were designed to facilitate computer-based training, automation and testing on a stand-alone system became attack vectors for malware to wreak havoc on vulnerable computers connected to the Internet. With Vista, programs which use those features are restricted (requiring elevated privileges), and more strict security policies can be used, such as only permitting an executable or DLL to be loaded if it is in a secure system folder.</p>
<p>It is important to understand that Windows Vista is more than a collection of technological improvements. It also represents a fundamental change in terms of how Microsoft views the importance of security on the platform and the role they play as a company whose operating system is found on 90% of the desktop computers around the world. In the past, their principal concern was backwards compatibility. New features, including security features, were implemented while looking â€œbackwardsâ€ to minimize the impact on existing applications. Even when Windows XP began to replace Windows 98 platforms on the consumer desktop, the default was to install the system giving the user administrative privileges and doing everything that they could to effectively â€œhideâ€ the security-related aspects of the operating system.</p>
<p>With Windows Vista, efforts to maintain backwards compatibility did not automatically trump security concerns. The rule was simple: <strong>if security and compatibility come into conflict, security must win</strong>. So when it comes to the question of whose system it is, the answer is that it is everyoneâ€™s. The right to do as you please with your computer stops at the router that connects you to the Internet. Security is not just a feature; it is an obligation and a responsibility, and one that we must all take seriously, including hardware manufacturers, software developers and end-users.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/7/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>User Account Control and Virtualization</title>
		<link>http://blog.catalyst.com/archives/6</link>
		<comments>http://blog.catalyst.com/archives/6#comments</comments>
		<pubDate>Thu, 18 Jan 2007 17:11:10 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/6</guid>
		<description><![CDATA[In Windows XP and earlier versions of the operating system, it is common for regular users to run with administrative privileges. In fact, most Windows applications today make the assumption that the user is a member of the Administrators group and therefore has unrestricted access to the entire system. Vista changes this with the User [...]]]></description>
			<content:encoded><![CDATA[<p>In Windows XP and earlier versions of the operating system, it is common for regular users to run with administrative privileges. In fact, most Windows applications today make the assumption that the user is a member of the Administrators group and therefore has unrestricted access to the entire system. Vista changes this with the User Account Control (UAC) system, which limits access to critical system resources, even when the user has administrative privileges. Whenever you attempt to install an application, copy files in a protected folder, modify the registry or change the system configuration, UAC will block the operation and prompt the user to confirm the action being taken. When UAC is enabled, all applications effectively run with restricted privileges, regardless of the groups the current user is a member of.<br />
<span id="more-6"></span></p>
<p><strong>Least Privilege Applications</strong><br />
As a software developer, the most significant change you need to make is with the general assumption that you have control over the entire system. For example, you may presume that you can create files in the same directory where your application is installed, or that you can create keys anywhere in the registry. You may also assume that you can do things like register ActiveX components, install message hooks or attach to another process. All of these things are now restricted, and unlike previous versions of Windows, telling the user that they are required to have administrative privileges wonâ€™t resolve the issue. The UAC system is specifically designed to limit access to system resources, even when the user is an administrator.</p>
<p>The most important things to keep in mind are:</p>
<p>1. Do not assume that you can create files in the same directory as the application. Under Vista, you will not have privilege to create files under C:\Program Files or C:\Windows. This is a particularly important because many applications create data and configuration files in their installation folder.</p>
<p>2. Store shared application data and configuration files in the common AppData folder. Under Vista, this is typically the C:\ProgramData folder. For per-user data and configuration files, store them in the userâ€™s AppData folder, typically C:\Users\&lt;UserName&gt;\AppData\Roaming. Keep in mind that you should never make an assumption about what the actual path is. Use the SHGetFolderPath function that is part of the shell API to determine the correct location.</p>
<p>3. Never assume that you can create registry keys anywhere other than HKEY_CURRENT_USER. Access to other parts of the registry is generally read-only. Any information that your program needs to store in the registry should be stored under HKEY_CURRENT_USER\Software\&lt;Company&gt;\&lt;AppName&gt;.</p>
<p>4. Donâ€™t request more privilege than required when accessing a file or registry key. For example, if you are only reading a file, donâ€™t attempt to open it with read-write access. The same applies to the registry; donâ€™t open a key with KEY_ALL_ACCESS rights if youâ€™re only going to read a key value. Request only those privileges that you need at the time that you need them.</p>
<p>5. Never make the assumption that a particular Windows API function will always succeed. Functions which have &#8220;always worked&#8221; under Windows XP may fail under Vista due to access restrictions. For example, installing message filters or system-wide hooks can fail because the process doesnâ€™t have the appropriate access rights. Always check the return values and practice defensive coding. Because it worked under previous versions of Windows is no guarantee that it will work correctly under Vista.</p>
<p><strong>UAC Virtualization</strong><br />
What do you do about applications that have already been written which donâ€™t follow those rules? For example, what if your program creates INI files in the same folder as the executable, or stores configuration data in the registry under HKEY_LOCAL_MACHINE\Software? The good news is that your application will probably work correctly. This is because Vista includes support for virtualization of specific parts of the filesystem and the registry.</p>
<p>When your program attempts to create or modify a file under C:\Program Files or C:\Windows it is automatically redirected to the user&#8217;s virtual store, which is typically C:\Users\&lt;UserName&gt;\AppData\Local\VirtualStore. If you are modifying a file that already exists, a copy of it will be made in the virtual store for the user. If you are creating a new file, it will only exist in the userâ€™s virtual store. This happens transparently, and as far as your program is concerned there has been no change in the file path.</p>
<p>The system also virtualizes registry access under the HKEY_LOCAL_MACHINE\Software key. If your program creates or modifies a key value there, it will be automatically redirected to HKEY_CURRENT_USER\Software\Classes\VirtualStore\Machine\Software. As with the filesystem, this is completely transparent to your application.</p>
<p>It is also important to be aware of the potential side-effects of virtualization. While many applications will be able to run without issue, some will fail unexpectedly. This will typically affect programs which store licensing information in the registry or implement anti-piracy methods like embedding license keys in the executable after installation. Virtualization can also create the appearance of a flaw in your software. For example, if you store global configuration data in the registry under HKEY_LOCAL_MACHINE, any configuration changes that are made will always be per-user because of virtualization. If user &#8220;A&#8221; makes a change, it will be virtualized to their registry hive and users &#8220;B&#8221; and &#8220;C&#8221; will not see those changes. Any changes made by user &#8220;B&#8221; will not be seen by user &#8220;A&#8221; or &#8220;C&#8221; and so on. This can cause users to think that the configuration changes theyâ€™re making arenâ€™t persisting correctly, or can cause more serious problems such as the wrong database being opened, files not being created in the correct location and so forth.</p>
<p>Although virtualization does help lessen the impact of the security changes in Vista, it is not intended to be used with new software. Microsoft has explicitly stated that developers should not depend on virtualization for two specific reasons. First, virtualization is a configurable option. By default it is enabled, but a system administrator can choose to disable it. Second, it is not guaranteed that it will be supported in future versions of Windows. Virtualization exists solely to help developers make the transition to Vista, ensuring that legacy applications will continue to run. It is not a feature developers should count on in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/6/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Development on Windows Vista</title>
		<link>http://blog.catalyst.com/archives/4</link>
		<comments>http://blog.catalyst.com/archives/4#comments</comments>
		<pubDate>Tue, 09 Jan 2007 22:32:13 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/4</guid>
		<description><![CDATA[Windows Vista introduces new opportunities for developers, but it also introduces a number of challenges if Vista is chosen as the primary development platform. The first decision that you need to make is whether you want to simply support the new operating system as another platform and continue to develop your software under Windows XP [...]]]></description>
			<content:encoded><![CDATA[<p>Windows Vista introduces new opportunities for developers, but it also introduces a number of challenges if Vista is chosen as the primary development platform. The first decision that you need to make is whether you want to simply support the new operating system as another platform and continue to develop your software under Windows XP or Windows 2000, or if you want to upgrade to Vista. A significant factor in that decision is going to be the programming languages and development tools that you use.<span id="more-4"></span></p>
<p><strong>Visual Studio 2005</strong><br />
If you use Visual Studio 2005 and are interested in moving to Vista as your development platform, youâ€™re in good shape. Microsoft supports Visual Studio 2005 on Vista, and <a href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx">Service Pack 1</a> was released on December 19th, 2006. If you previously installed the beta version of the service pack, make sure that you uninstall it first, before attempting to install the released version or you may encounter errors during the installation.</p>
<p>Itâ€™s also recommended that you download the .NET Framework 3.0 and Windows SDK for Vista, which is the latest version of the Platform SDK. One note of caution for developers who are also using older versions of Visual Studio: Do not replace your previous Platform SDK with the new Windows SDK, particularly if youâ€™re still using Visual C++ 6.0. Also, if you use third-party plug-ins for Visual Studio, check with the vendor to make sure that they support Vista.</p>
<p><strong>Visual Studio .NET 2003</strong><br />
If you are currently using Visual Studio .NET 2003, you can install it under Vista; however, it is not supported by Microsoft and they donâ€™t recommend that you use Vista as your development platform. Under most circumstances, you will probably find that Visual Studio .NET 2003 will work correctly. We have it installed on Vista, primarily for testing purposes, and are able to edit, compile and debug programs locally. Where you can run into problems is with remote debugging and COM interop.</p>
<p>If you want to try using VS.NET 2003 with Vista, make sure that you download and install <a href="http://www.microsoft.com/downloads/details.aspx?familyid=69d2219f-ce82-46a5-8aec-072bd4bb955e">Service Pack 1</a> if you havenâ€™t already. If youâ€™re using third-party plug-ins, make sure that theyâ€™re still supported. Because Microsoft wonâ€™t support older versions of Visual Studio on Vista, some vendors may choose to only support Visual Studio 2005 on the platform.</p>
<p><strong>Visual Studio 6.0</strong><br />
Although the number of developers using Visual Studio 6.0 has steadily declined over the past several years, there are still a fairly large number of companies that continue to use Visual Basic 6.0 and Visual C++ 6.0. As with Visual Studio .NET 2003, Visual Studio 6.0 is not supported under Windows Vista and if you cannot upgrade to Visual Studio 2005, Microsoft recommends that you continue to use Windows XP as your development platform. There is some good news, and that is Microsoft will continue to provide support for the Visual Basic 6.0 runtime in Vista. This means that programs you develop using Visual Basic 6.0 will continue to run and be fully supported.</p>
<p>If youâ€™re using Visual C++ 6.0, youâ€™ll find that for the most part youâ€™ll be able to use the IDE and compiler without a problem. However, remote debugging and using ActiveX controls can present problems. For example, adding components to your project (through the Project | Add to Project | Components and Controls menu option) may not work correctly.</p>
<p><strong>Borland Developer Studio 2006</strong><br />
Borland has promised support for Vista and the .NET 2.0 Framework in 2007, however the current version of Borland Developer Studio is not supported under Vista and they recommend that you continue to use Windows XP as your development platform. Because Borland only supports version 1.1, developers wonâ€™t be able to take advantage of some of the new features included with Vista and the .NET 3.0 Framework until the new version of BDS is released.</p>
<p><strong>Third-Party Languages</strong><br />
There are a large number of third-party languages available for Windows, and many of them will continue to work under Vista without a problem. The two key areas that are most likely to encounter problems are debugging and support for ActiveX controls or Automation. In some cases it may be required to run them with elevated privileges, either from the command line or from within their IDE. If you experience problems, select the shortcut to the program from the Start menu and right-click on it. Select Properties and the property sheet for the shortcut will be displayed. Next, click on the Compatibility tab and make one or more of the following changes:</p>
<p>1. Enable compatibility mode and select Windows XP (Service Pack 2). If the compiler is performing operating system version checks, it will continue to think that itâ€™s running under XP. If this doesnâ€™t work, try setting compatibility to Windows 2000.</p>
<p>2. Check the option to disable visual themes. This will disable theme support in the application, and is a good choice if youâ€™re noticing problems with menus or buttons not being drawn correctly.</p>
<p>3. Check the option to disable desktop composition. This will disable the advanced features in the Aero Glass interface, such as transparency. This is a good choice if you notice problems with windows not being drawn correctly. For example, if the IDE includes visual tools to create and edit forms or dialogs, you may find that controls are drawn very slowly or arenâ€™t redrawn in the correct position. Disabling this feature will often correct the problem, however it will force the entire desktop (not just the application) to disable the Aero UI until the program terminates.</p>
<p>4. Check the option to run the program as an administrator. This will allow the IDE or compiler to run with elevated privileges. If you are experiencing problems debugging your application or using third-party ActiveX controls, enabling this option may correct the problem. Note that if this option is enabled, you will be given a UAC prompt every time that you run it. You should only enable this option for programs that you trust because they will be given full, unrestricted access to the operating system.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/4/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Ready for Vista</title>
		<link>http://blog.catalyst.com/archives/3</link>
		<comments>http://blog.catalyst.com/archives/3#comments</comments>
		<pubDate>Mon, 08 Jan 2007 22:57:04 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[SocketTools]]></category>
		<category><![CDATA[Windows Vista]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/3</guid>
		<description><![CDATA[With the commercial release of Windows Vista just a few weeks away, it is important for developers to prepare for the latest version of the Windows operating system and the changes that it introduces. Many companies that decide to upgrade will typically use phased deployment where the upgrade process occurs over a period of several months. This means that it's not too late (or too early) to start thinking about what you need to do to ensure your users have a smooth transition to the Vista platform.]]></description>
			<content:encoded><![CDATA[<p>With the commercial release of Windows Vista just a few weeks away, it is important for developers to prepare for the latest version of the Windows operating system and the changes that it introduces. Many companies that decide to upgrade will typically use phased deployment where the upgrade process occurs over a period of several months. This means that it&#8217;s not too late (or too early) to start thinking about what you need to do to ensure your users have a smooth transition to the Vista platform.<span id="more-3"></span></p>
<p><strong>User Account Control<br />
</strong>Aside from the user interface, the new User Account Control (UAC) system is probably the first thing that you&#8217;ll notice. There&#8217;s been a lot written about UAC, but the bottom line is that applications no longer have unrestricted access to the entire system, even if the user has an account with administrative privileges. Whenever you attempt to perform a system maintenance function, copy files to a protected folder, modify the registry or install an application, UAC will block the application and prompt the user to confirm the action. When UAC is enabled, essentially all applications run with restricted privileges, regardless of what groups the user is a member of. This impacts programs in several important ways, including how they are installed, how they store configuration information and create data files.</p>
<p><strong>Software Installation</strong><br />
When a user installs your software, it will typically require elevated privileges and they will be presented with a UAC prompt, asking them to confirm the installation. This will allow your installer to register components, create file associations and add the other registry entries that it requires. It will also allow your installer to store files in protected system folders under C:\Windows and C:\Program Files. A consequence of this is that you should not launch your application (or another application, such as a web browser) at the end of your installation. The reason is that, as a process created by the installer, it will inherit those elevated privileges and be able to create files and access system resources that the user normally would not be able to.</p>
<p><strong>Configuration Files</strong><br />
Applications should create any configuration and data files on first run, not as part of the installation process. This is because the installer runs with elevated privileges and can store files in locations that are not normally writable by the user. Related to this, you should not store configuration files or data in the same location as the executable under the C:\Program Files folder. Users only have permission to read files stored there, and cannot create or modify them. The appropriate place to store per-user configuration files is in the user&#8217;s AppData folder, and system (global) configuration files should be stored in the ProgramData folder.</p>
<p><strong>Registry Access</strong><br />
Registry data for the application should be stored under the Software key in HKEY_CURRENT_USER, not in HKEY_CLASSES_ROOT or HKEY_LOCAL_MACHINE where the user does not have permission to create or modify keys. This will impact ActiveX controls and other COM objects because the process of registration typically requires that they create keys under HKEY_CLASSES_ROOT. In practical terms, this means that utilities like RegSvr32.exe will not work correctly unless it is run with elevated privileges. For applications that are designed for Windows XP and later versions of Windows, developers should consider deploying their software using registration-free COM activation. That also enables applications which use ActiveX controls to be deployed using ClickOnce installation.</p>
<p><strong>Visual Studio</strong><br />
Microsoft created some controversy when they announced in September, 2006 that only Visual Studio 2005 would be supported for development under Vista. It&#8217;s important to note that it is only the Visual Studio 2003 development tools which are not supported; applications created using the .NET 1.1 Framework are fully supported under Vista. If you&#8217;re using an older version of Visual Studio, our general recommendation is to upgrade to Visual Studio 2005. If you are unable to upgrade to Visual Studio 2005, then we recommend that you continue to use Windows XP as your development platform and test deployment under Vista.</p>
<p>The compatibility issues with Visual Studio 2003 and Vista primarily involve the debugger and COM interop and many developers may not experience a problem using it. However, if you do encounter a problem, Microsoft will not provide updates or hotfixes to address problems specific to the Windows Vista platform. Additional information can be found on the <a title="Microsoft Developer Network" href="http://msdn2.microsoft.com/en-us/vstudio/default.aspx" target="_blank">Visual Studio</a> section of the Microsoft Developer Network. Select Support, then Visual Studio on Windows Vista from the menu.</p>
<p>Microsoft has released <a title="Visual Studio 2005 Service Pack 1 Download" href="http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx">Service Pack 1</a> for Visual Studio 2005 and we strongly recommended that you install it, particularly if you are using Vista as your primary development platform. Note that if you have previously installed the beta release for this service pack, you must uninstall it and reboot your system before installing the official release. If you don&#8217;t, you&#8217;ll get errors during the installation process.</p>
<p><strong>SocketTools</strong><br />
When you install SocketTools 4.5 on Vista, you will be given a UAC prompt confirming the installation. You must install SocketTools with administrative privileges, or the installation will not complete correctly. The SocketTools components are installed into system folders, and changes are made to the registry which requires elevated privileges.</p>
<p>It is recommended that you provide your serial number and other related information as part of the installation process. If you have previously installed an evaluation version of SocketTools, it is recommended that you re-install the product and provide a serial number. If you wish to use either the License Manager or Registration utility that is included with SocketTools, you must run them with elevated privileges by right-clicking on the utility and selecting &#8220;Run as Administrator&#8221; from the menu.</p>
<p>SocketTools 5.0, the next major release of SocketTools scheduled for release in February, will be specifically designed for the changes introduced in Windows Vista. We have made internal changes to the components and libraries which significantly improves functionality under Vista, while maintaining backwards compatibility and without requiring changes to your existing code.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/3/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

