<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7634471</id><updated>2012-02-11T05:26:46.226-05:00</updated><category term='vfpx'/><category term='stored procedures'/><category term='prototyping'/><category term='T-SQL'/><category term='alerts'/><category term='HackCX'/><category term='refactoring'/><category term='foxpro'/><category term='vfp'/><category term='development'/><title type='text'>Andrew Ross MacNeill - Articles &amp; White Papers</title><subtitle type='html'>A collection of all my FoxPro and other developer-related writings from Conferences, published white papers and other sources. Enjoy</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7634471.post-885154245096347169</id><published>2010-05-01T06:12:00.002-04:00</published><updated>2010-05-01T06:32:25.861-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='prototyping'/><title type='text'>Prototyping Applications with Sketchflow</title><content type='html'>How many times have you needed to present visual concepts behind your application to a client?&lt;br /&gt;&lt;br /&gt;Over the years, I've had several times where I had to build a quick mock-up in Visual FoxPro to show how an application or function might run. Designing the screens themselves weren't the challenge - the challenge was showing the user how the application would flow between different areas. Short of putting fake code into buttons or saying "and now we go here", there really hasn't been an easy way to do this.&lt;br /&gt;&lt;br /&gt;Now, sometimes, a client has gone so far as to hire someone to build "wireframes" to depict this. I found this process an entire waste of time. People building wireframes tend to be "business analysts", in short; people who have stopped learning how to develop code but still want to show their value by being the translator between the client and the developer. As far as I'm concerned, if you want to be a senior developer, you need to be able to translate as well. Sure, you may leave the task to other developers, but you should always be able to demonstrate or show your ideas to others.&lt;br /&gt;&lt;br /&gt;I recently had the experience where I had to show some user interface concepts on a new application. I was interested in trying out &lt;a href="http://www.microsoft.com/expression/products/Blend_Overview.aspx"&gt;Expression Blen&lt;/a&gt;d, one of Microsoft's tools found in the Expression Studio but also one of the integration tools noted in Visual Studio 2010. While it specifically targets WPF or Silverlight application development, I found the &lt;a href="http://www.microsoft.com/expression/products/SketchFlow_OverView.aspx"&gt;SketchFlow &lt;/a&gt;tool invaluable.&lt;br /&gt;&lt;br /&gt;Expression Blend uses XAML to build the user interface. So, if you're not building a XAML application, you'll need to convert this over. However, the key benefit is the little "map" section at the bottom of the screen in the designer.&lt;br /&gt;&lt;br /&gt;With the map section, you can build the entire work-flow for the interface. By right-clicking on the main page, you can create a connected page. &lt;br /&gt;&lt;br /&gt;Since the tools available in Expression Blend are based on regular developer tools, it's easy to build a sample representation of your application in minutes. If you are using WPF as your development platform, you can also convert it into a production environment or share your existing components (with code behind it) in your prototype. This is similar to building a true development prototype using existing code or components.&lt;br /&gt;&lt;br /&gt;When you "run" the prototype, all of your connections appear in a menu on the left side. To move to another page, you click the related page OR you can use the map below to show the navigation. &lt;br /&gt;&lt;br /&gt;The best part, however, of SketchFlow is the SketchFlow player. Expression lets you "package" the entire solution into a single executable that runs with the navigation menu. Now the user can run this prototype on their own. There are also tools to let them add their own feedback and then send it to you via e-mail. This can make remote prototyping much easier than it already is.&lt;br /&gt;&lt;br /&gt;Added bonus features:&lt;br /&gt;&lt;br /&gt;1. You can take a larger part of the screen that you are working on and instantly create a "user component" for it, so it can be re-used with other pages. Drag and drop the user component in the map onto another page and it will put an instance of that object on that page.&lt;br /&gt;&lt;br /&gt;2. You can add annotations to individual pages and components on the screen. These annotations can pop-up for your users so they can see your comments.&lt;br /&gt;&lt;br /&gt;3. Sketchflow has a "style" from which you can create the look and feel of "wireframes", instead of the real look of controls. This makes the entire application have that real "prototype" look to it, so your clients don't think it's easy to move from prototype to production.&lt;br /&gt;&lt;br /&gt;4. You can also add real "animations" within the application so when users click a button, a dialog can appear or an object can "move" on the page.&lt;br /&gt;&lt;br /&gt;Many developers push off Expression as being the "designer" tool or look at Expression Web simply being the "new" FrontPage - but it's definitely more than that.&lt;br /&gt;&lt;br /&gt;If you're a "coding" developer, it may not be for you - but the next time you have to show interface concepts to a user, you definitely want to be looking at Expression Blend and SketchFlow.&lt;br /&gt;&lt;br /&gt;Expression with Sketchflow has been around since Expression 3.0 so if you have MSDN from the past year (2009), you already have access to it.&lt;br /&gt;&lt;br /&gt;Other useful links:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sessions.visitmix.com/MIX09/C01F"&gt;Demos from MIX&lt;/a&gt;&lt;br /&gt;&lt;a href="http://articles.sitepoint.com/article/rapid-prototyping-sketchflow"&gt;Prototyping with SketchFlow&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-885154245096347169?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/885154245096347169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=885154245096347169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/885154245096347169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/885154245096347169'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2010/05/prototyping-applications-with.html' title='Prototyping Applications with Sketchflow'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-478203631502240226</id><published>2009-06-01T10:44:00.002-04:00</published><updated>2009-06-01T10:58:20.562-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='stored procedures'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='T-SQL'/><title type='text'>Refactoring T-SQL</title><content type='html'>While much has been said about the benefits of refactoring application code (see &lt;a href="http://vfpx.codeplex.com/Wiki/View.aspx?title=Code%20Analyst"&gt;VFPX Code Analyst&lt;/a&gt;), I typically haven't seen a lot of noise about refactoring T-SQL and stored procedure code. &lt;br /&gt;&lt;br /&gt;The refactoring features found in SQL Manager tend to be more about refactoring your database design but not about the actual content of the SPs.&lt;br /&gt;&lt;br /&gt;It's important to note that if you tend to rely on large stored procedures, then many of the same rules of refactoring apply:&lt;br /&gt;&lt;br /&gt;1. Keep it short and sweet.&lt;br /&gt;2. Make it readable.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So when dealing with a particularly unruly stored proc (over 1000 lines), I was quite happy to find Red Gate's &lt;a href="http://www.red-gate.com/products/SQL_Refactor/index.htm"&gt;SQL Refactor&lt;/a&gt; (here's a &lt;a href="http://www.simple-talk.com/sql/sql-tools/faster-database-development-with-sql-refactor/"&gt;post &lt;/a&gt;from the lead developer).&lt;br /&gt;&lt;br /&gt;Some of the features are pretty basic (renaming variables, etc) but the one of great interest was the Encapsulate as a new Stored Proc. &lt;br /&gt;&lt;br /&gt;As with a number of tools that are add-ons to other components, its overall usefulness might seem limited if you are building your stored procs either using testing patterns or have good code review sessions - but if you're inheriting or just watching one procedure get too big, it's definitely useful.&lt;br /&gt;&lt;br /&gt;What about your SQL applications? How big do you let your stored procedures get?&lt;br /&gt;What tools do you use?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-478203631502240226?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/478203631502240226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=478203631502240226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/478203631502240226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/478203631502240226'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2009/06/refactoring-t-sql.htm' title='Refactoring T-SQL'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-6427600883508852653</id><published>2009-05-22T13:40:00.002-04:00</published><updated>2009-05-22T13:44:51.445-04:00</updated><title type='text'>Refactoring and Profiling</title><content type='html'>(another session from Southwest Fox 2008)&lt;br /&gt;&lt;br /&gt;Refactoring is the art of clean-up and can be useful. Many books have been written about it, so it can seem daunting but the VFPX Code Analyst does make it easier. In this session, we see how the Code Analyst along with existing tools like the Coverage Profiler can make figuring out how to clean up your code can be made easy, simple and dare I say it, fun! &lt;br /&gt;&lt;br /&gt;You can also hear the full session on the FoxShow &lt;a href="http://akselsoft.libsyn.com/index.php?post_id=396265"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-6427600883508852653?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/6427600883508852653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=6427600883508852653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/6427600883508852653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/6427600883508852653'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2009/05/refactoring-and-profiling.htm' title='Refactoring and Profiling'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-3042632624905464038</id><published>2009-05-22T13:27:00.003-04:00</published><updated>2009-05-22T13:45:38.999-04:00</updated><title type='text'>Using VFPX : A Walkthrough features in CodePlex</title><content type='html'>This white paper is from a session originally given at Southwest Fox 2008, introducing many developers to how CodePlex works and how they can get involved with the VFPX Project.&lt;br /&gt;&lt;br /&gt;You can also hear the audio of this session &lt;a href="http://akselsoft.libsyn.com/index.php?post_id=396265"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So you want to help out in VFPX? This session goes through how to get started with the VFPX Project and dealing with issues like source control, the Wiki-style attitude of Codeplex and more. &lt;br /&gt;&lt;br /&gt;What Is VFPX?&lt;br /&gt;&lt;br /&gt;VFPX is the future of the Visual FoxPro IDE and developer tools we currently know today. It is based on the VFP 9 SP2 core but realistically, it is more like taking all of the tools that have grown up around the VFP engine and making them ours to grow and enhance. Microsoft is no longer doing active development on Visual FoxPro; the product is officially supported until 2015 but then many developers still have VFP 6 applications running and VFP6 support ended in 2004.&lt;br /&gt;&lt;br /&gt;Visual FoxPro has a long running tradition of community enhancements. Back in 1990, the FoxPro CompuServe forums were among the busiest, with new downloads and an environment of users helping other users. Some of these tools were shareware, others were simply demos of commercial products and others still were released into the public domain, making them free. Since CompuServe closed down and the web became what it is today, a number of different avenues have cropped up as a way for keeping the FoxPro community in touch. Many offer downloads (such as the Universal Thread and Foxite) while others continue on the discussion aspect of the FoxPro forums.&lt;br /&gt;VFPX is a community-driven effort to provide a single source for the latest in FoxPro tools, all offered under a single license for developers. It includes every FoxPro component provided by Microsoft that was written in xBase. For those developers who may have been unaware, a great deal of the tools provided with FoxPro, such as the Class Browser, Builders, Wizards and the Task Pane are all written in xBase, many of them by community members who were contracted by Microsoft. The Visual FoxPro engine (the executable and the runtime DLLs) are not being changed and are not available – but every other piece is. The last piece of core code that Microsoft provided for Visual FoxPro (Sedna) was put onto CodePlex. That's where we come in.&lt;br /&gt;&lt;br /&gt;While a lot of the existing pieces of VFPX are tools that improve the development experience, a growing number of them are interface controls and libraries that you can use to improve your own applications. Just as the FoxPro Foundation Classes (FFC) and Component Gallery provide samples and techniques for implementing technologies, VFPX includes GDIPlusX which makes working with graphics in your application easy or ThemedControls which provides standard Windows and Mac UI components written directly in FoxPro. &lt;br /&gt;&lt;br /&gt;If you have ever thought about how much better a particular tool in Visual FoxPro would be if it only had one extra feature, this is the opportunity to change it. If you have tools in your own developer arsenal that you think can benefit the entire developer community, propose it (more on that below) and get it in there. If you've developed interface components that you want to share with others, put it into the VFPX codebase. The main stipulation is that you will be offering it under a Shared Source license, making it available for anyone to use, change or distribute.&lt;br /&gt;&lt;br /&gt;Read more from the link enclosed here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-3042632624905464038?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/3042632624905464038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=3042632624905464038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/3042632624905464038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/3042632624905464038'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2009/05/using-vfpx-walkthrough-features-in.htm' title='Using VFPX : A Walkthrough features in CodePlex'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-2774219165166514222</id><published>2007-10-01T07:31:00.000-04:00</published><updated>2008-05-08T07:47:21.142-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vfpx'/><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>Using the VFPX Code Analyst</title><content type='html'>The Code Analyst is a tool in VFPX designed to make FoxPro application development and code maintenance easier. It combines the extensibility with a Code references-like interface, analyzing pieces of code or entire projects and identifying key areas for refactoring - similar to the Code Analysis tool in Visual Studio.&lt;br /&gt;&lt;br /&gt;You can identify your own project rules to highlight key areas of your application that may not match your own coding standards.&lt;br /&gt;&lt;br /&gt;A PDF version is available &lt;a href="http://www.aksel.com/whitepapers/CodeAnalyst.pdf"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-2774219165166514222?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/2774219165166514222/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=2774219165166514222' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/2774219165166514222'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/2774219165166514222'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2007/08/using-vfpx-code-analyst.htm' title='Using the VFPX Code Analyst'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-6754494378900680438</id><published>2007-07-07T07:16:00.000-04:00</published><updated>2008-05-08T07:18:14.711-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='alerts'/><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><title type='text'>Alerting Users in your FoxPro Application</title><content type='html'>Every application needs a way of notifying users about something. The first "something" that may come to mind is an error, which unfortunately, needs a very special kind of alert or handler. But there are lots of other events that users need to be aware of, whether you as the developer plan for them or not. In January 2007 issue of FoxPro Advisor, Mike Lewis wrote about a forced system shutdown "event" that would let administrators get all users out of the system. If you are running a process that may take a while, you might need to let users know when it has been completed. If you have a large application, there could be many events that require user notification. Perhaps worse, there may be many events that your users could have reacted to, "if only they had known" before something was happening. Some applications rely on reports to display this information – but why waste paper when you can simply alert users to an event?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-6754494378900680438?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/alerts.htm' title='Alerting Users in your FoxPro Application'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/6754494378900680438/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=6754494378900680438' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/6754494378900680438'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/6754494378900680438'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2007/07/alerting-users-in-your-foxpro.htm' title='Alerting Users in your FoxPro Application'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-261476525864943794</id><published>2007-07-01T07:42:00.001-04:00</published><updated>2008-05-08T07:46:42.703-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vfpx'/><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><title type='text'>Refactoring in Visual FoxPro</title><content type='html'>(this article was written prior to the Code Analyst but identifies the origins of where this tool came from)&lt;br /&gt;With the sheer number of functions, commands and tools available within Visual FoxPro, it's easy to find more than &lt;a href="http://fox.wikis.com/wc.dll?Wiki~HelloWorld~VFP"&gt;one way&lt;/a&gt; to do the job.&lt;br /&gt;&lt;br /&gt;So multiply the number of ways by the number of developers on your team, and it's pretty easy to see why code maintenance is pretty important.&lt;br /&gt;&lt;br /&gt;Refactoring is about making code more useable (not changing the functionality but making it easy to understand and maintain).&lt;br /&gt;&lt;br /&gt;This article presents 3 core concepts:&lt;br /&gt;1 - Never Use Keywords for variable or field names&lt;br /&gt;2 - Use the most recent functions where appropriate&lt;br /&gt;3 - Encapsulate, encapsulate, encapsulate&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-261476525864943794?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/refactoring.htm' title='Refactoring in Visual FoxPro'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/261476525864943794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=261476525864943794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/261476525864943794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/261476525864943794'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2007/07/refactoring-in-visual-foxpro.htm' title='Refactoring in Visual FoxPro'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-5861466279196968373</id><published>2007-06-01T07:27:00.000-04:00</published><updated>2008-05-08T07:28:07.879-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><title type='text'>VFPX: New Tools based on Existing Code</title><content type='html'>Tools like Code Analyst and Class BrowserX all use code from existing Visual FoxPro tools. This is possible because in 2007, Microsoft released the code for all of their xBase components with a special license. This license allows developers to create and update components and applications based on these components. It explicitly gives two rights:&lt;br /&gt;&lt;br /&gt;Copyright – "a non-exclusive, worldwide, royalty-free copyright license to reproduce the software, prepare derivative works of the software and distribute the software or any derivative works that you create"&lt;br /&gt;&lt;br /&gt;Patent – "a non-exclusive, worldwide, royalty-free patent license under licensed patents to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the software or derivative works of the software"&lt;br /&gt;&lt;br /&gt;There are some limitations; primarily that you can't use the Microsoft name, must include any existing copyright notices, and that the software is provided "as-is" but the real benefit is with how it can apply to your existing applications. Want to build something similar to the Task Pane in your application? You don't need to reverse-engineer it – you can simply look in the existing code and re-use it. Thanks to the Fox Team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-5861466279196968373?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/5861466279196968373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=5861466279196968373' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/5861466279196968373'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/5861466279196968373'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2007/06/vfpx-new-tools-based-on-existing-code.htm' title='VFPX: New Tools based on Existing Code'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-7992715910601742829</id><published>2007-03-01T07:50:00.000-05:00</published><updated>2008-05-08T07:52:39.295-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='foxpro'/><category scheme='http://www.blogger.com/atom/ns#' term='vfp'/><category scheme='http://www.blogger.com/atom/ns#' term='HackCX'/><title type='text'>Getting inside FoxPro Files</title><content type='html'>Here's one of the world's worst kept secrets: almost everything in FoxPro is really just a FoxPro table. &lt;br /&gt;&lt;br /&gt;Here's an &lt;a href="http://www.aksel.com/whitepapers/HackCX.pdf"&gt;article &lt;/a&gt;highlighting a useful tool from WhiteLight computing about how you can get inside FoxPro's designers, projects and reports.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-7992715910601742829?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/7992715910601742829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=7992715910601742829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/7992715910601742829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/7992715910601742829'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2007/03/getting-inside-foxpro-files.htm' title='Getting inside FoxPro Files'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-112609576186430884</id><published>2005-09-07T08:22:00.000-04:00</published><updated>2005-09-07T08:22:41.906-04:00</updated><title type='text'>Testing Toolbox</title><content type='html'>You always test every aspect of your application--- right ?&lt;br /&gt;&lt;br /&gt;Every application needs to get tested – either it gets done before the product is released, which is ideal or your users will do it for you, which usually turns out to be a big mistake. Even if you don't formally recognize testing in your project development cycle, you are still, in fact, testing from day one. Here are some tools and techniques that can help ease the pain of testing your Visual FoxPro application and adding it into your development process. Along the way, I'll try to answer some immediate objections to formalized testing.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aksel.com/whitepapers/Testing.htm" rel="testing"&gt;Testing&lt;/a&gt; &lt;a href="http://www.aksel.com/whitepapers/Testing.htm" rel="foxpro"&gt;Visual FoxPro Applications&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-112609576186430884?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/Testing.htm' title='Testing Toolbox'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/112609576186430884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=112609576186430884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/112609576186430884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/112609576186430884'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/09/testing-toolbox.htm' title='Testing Toolbox'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-112482837330627247</id><published>2005-08-23T16:19:00.000-04:00</published><updated>2005-08-23T16:19:33.336-04:00</updated><title type='text'>Show It and Support It : Screen Casting tools for everyone</title><content type='html'>Here's an article that was originally promised to FoxPro Advisor but they turned it down as it wasn't FoxPro-enough. Enjoy...&lt;br /&gt;&lt;br /&gt;As many third party vendors will tell you, building the product is only half the battle. The next part, getting people to use it, can be just as tricky. This isn't just a "vendor" issue either. Almost every application being put into production in any organization faces an uphill battle towards adoption. This is where all the great features you've spent months building help to get users excited about using it. But what good are features if your users don't know about them?&lt;br /&gt;&lt;br /&gt; It used to be that building a self-running video or demonstration of software required a great deal of expertise and money, hiring a production company who did the work in their own studio. Today, developers and trainers are building these "screencasts" themselves and in this article I'll go through several options that are available to you.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aksel.com/whitepapers/ShowItAndsupportit.htm"&gt;Show It and Support It : Screen Casting tools&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-112482837330627247?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/ShowItAndsupportit.htm' title='Show It and Support It : Screen Casting tools for everyone'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/112482837330627247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=112482837330627247' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/112482837330627247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/112482837330627247'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/08/show-it-and-support-it-screen-casting.htm' title='Show It and Support It : Screen Casting tools for everyone'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-111304524784121375</id><published>2005-04-09T07:14:00.000-04:00</published><updated>2005-04-09T07:14:07.840-04:00</updated><title type='text'>Automating Communication with Instant Messenger</title><content type='html'>From Dec 2001 - but the usefulness is still there if you use an IM client.  Code samples are for Visual FoxPro.&lt;br /&gt;&lt;a href="http://www.aksel.com/whitepapers/messenger.htm"&gt;Automating Communication with Instant Messenger&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-111304524784121375?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/messenger.htm' title='Automating Communication with Instant Messenger'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/111304524784121375/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=111304524784121375' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304524784121375'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304524784121375'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/04/automating-communication-with-instant.htm' title='Automating Communication with Instant Messenger'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-111304480201557218</id><published>2005-04-09T07:06:00.000-04:00</published><updated>2005-04-09T07:06:42.016-04:00</updated><title type='text'>Using Drag and Drop In Visual FoxPro</title><content type='html'>I recently had to revisit this article (originally written in 2001) for a more recent project.&lt;br /&gt;&lt;br /&gt;I was implementing drag/drop but it also had to co-exist with a right-mouse click and a Double-click event that were pulling up Visual FoxPro forms. &lt;br /&gt;&lt;br /&gt;The objects being used weren't ActiveX controls but regular FoxPro controls, but if you use the standard DragMode and Drag events in the VFP base classes, they conflict with the Double-click and right-click events.&lt;br /&gt;&lt;br /&gt;The solution? Use the OLE Drag and Drop.&lt;br /&gt;&lt;br /&gt;Now one thing that's not mentioned in this article is a property called CreateDragImage. That's a property Windows uses often with ListView controls to create that shaded image that appears under the cursor when it's being dragged. Sadly, that function doesn't work properly with Visual FoxPro so you have to build your own cursor or icon to make it look right. &lt;br /&gt;&lt;br /&gt;This is one of those things where the FoxTeam at Microsoft might want to look for ideas for Visual FoxPro 10. Why? Because these are the little things that work in other environments but don't work in VFP that bug the FoxPro developers. There may be a hundred (valid!) reasons for it and it would take an army to figure them all out but they always cause those little moments where people go "damn! - why doesn't this work."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aksel.com/whitepapers/dragdrop.htm"&gt;Using Drag and Drop In Visual FoxPro&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-111304480201557218?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/dragdrop.htm' title='Using Drag and Drop In Visual FoxPro'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/111304480201557218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=111304480201557218' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304480201557218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304480201557218'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/04/using-drag-and-drop-in-visual-foxpro.htm' title='Using Drag and Drop In Visual FoxPro'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-111304421703887405</id><published>2005-04-09T06:56:00.000-04:00</published><updated>2005-04-09T06:57:26.196-04:00</updated><title type='text'>Using SAPI with Visual FoxPro</title><content type='html'>An introduction to use SAPI and the use of speech recognition in Desktop Applications, written in Visual FoxPro&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.aksel.com/whitepapers/sapi.htm"&gt;Using SAPI in FoxPro&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-111304421703887405?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/sapi.htm' title='Using SAPI with Visual FoxPro'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/111304421703887405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=111304421703887405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304421703887405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111304421703887405'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/04/using-sapi-with-visual-foxpro.htm' title='Using SAPI with Visual FoxPro'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-111299365682855251</id><published>2005-04-08T16:54:00.000-04:00</published><updated>2005-04-08T16:54:16.830-04:00</updated><title type='text'>Claiming Feeds</title><content type='html'>&lt;p&gt;&lt;a href="http://feedster.com/claimfeed.php?key=15ef938a6f4134fd33fea0de2eaea445"&gt;No Need to Click Here - I'm just claiming my feed at Feedster&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-111299365682855251?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://about.feedster.com/claimfeed.php' title='Claiming Feeds'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/111299365682855251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=111299365682855251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111299365682855251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/111299365682855251'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2005/04/claiming-feeds.htm' title='Claiming Feeds'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109561598909021252</id><published>2004-09-19T13:46:00.000-04:00</published><updated>2004-09-19T13:46:29.090-04:00</updated><title type='text'>Using Genmenux</title><content type='html'>A session and white paper I gave back in 1994 at the German Devcon. From the white paper:&lt;br /&gt;&lt;br /&gt;If you have ever felt cheated by the FoxPro Menu Builder and the limits it places on you, GENMENUX offers a perfect solution.&lt;br /&gt;&lt;br /&gt;Just as GENSCRNX extends the FoxPro Screen Builder in ways that the original developers never imagined, GENMENUX attempts to extend the Menu Builder. The idea behind the "X" series of generators is that there are times when FoxPro does not provide everything required in the Power Tools. The "X" series provides the additional functionality that can add incredible power to these tools. &lt;br /&gt;&lt;br /&gt;A copy of this paper is also available &lt;a href="http://www.aksel.com/whitepapers/genmenux.htm"&gt;here &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dfpug.de/konf/konf_1994/prog/121_224.HTM"&gt;Genmenux&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109561598909021252?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.dfpug.de/konf/konf_1994/prog/121_224.HTM' title='Using Genmenux'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109561598909021252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109561598909021252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109561598909021252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109561598909021252'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/09/using-genmenux.htm' title='Using Genmenux'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109491681181744645</id><published>2004-09-11T11:33:00.000-04:00</published><updated>2004-09-11T11:33:31.816-04:00</updated><title type='text'>Using FoxUnit</title><content type='html'>Here's a quick overview on how to use FoxUnit, an open-source unit testing tool from Vision Data Solutions &lt;a href="http://www.aksel.com/whitepapers/foxunit.htm"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Get it from &lt;a href="http://www.foxunit.org"&gt;FoxUnit.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109491681181744645?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/foxunit.htm' title='Using FoxUnit'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109491681181744645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109491681181744645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109491681181744645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109491681181744645'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/09/using-foxunit.htm' title='Using FoxUnit'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109415145155160892</id><published>2004-09-02T14:57:00.000-04:00</published><updated>2004-09-02T14:57:31.553-04:00</updated><title type='text'>Outlook Automation with VFP</title><content type='html'>An overview of how to automate Outlook with Visual FoxPro.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109415145155160892?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/OutlookAutomation.htm' title='Outlook Automation with VFP'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109415145155160892/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109415145155160892' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109415145155160892'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109415145155160892'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/09/outlook-automation-with-vfp.htm' title='Outlook Automation with VFP'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109414747126090556</id><published>2004-09-02T13:48:00.000-04:00</published><updated>2004-09-02T13:51:11.260-04:00</updated><title type='text'>ActiveX Controls: TreeView, ListView and more...</title><content type='html'>An early white paper on ActiveX controls, including how to use TreeViews,ListViews, DBI Technologies ctList (paid) , bbListview (shareware), and Eclipse's Cabinet control (a free control)&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109414747126090556?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/ActiveXControls.htm' title='ActiveX Controls: TreeView, ListView and more...'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109414747126090556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109414747126090556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109414747126090556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109414747126090556'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/09/activex-controls-treeview-listview-and.htm' title='ActiveX Controls: TreeView, ListView and more...'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109414706913521446</id><published>2004-09-02T08:14:00.000-04:00</published><updated>2004-09-02T13:44:29.136-04:00</updated><title type='text'>Diagramming FoxPro: Automating Visio</title><content type='html'>From FoxTeach a few years ago, this paper explains how you can automate aspects of Microsoft Visio.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109414706913521446?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/VisioAutomation.htm' title='Diagramming FoxPro: Automating Visio'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109414706913521446/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109414706913521446' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109414706913521446'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109414706913521446'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/09/diagramming-foxpro-automating-visio.htm' title='Diagramming FoxPro: Automating Visio'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109007634709952797</id><published>2004-07-17T10:57:00.000-04:00</published><updated>2004-07-17T14:38:31.043-04:00</updated><title type='text'>Using Installshield with VFP 8</title><content type='html'>White paper on using InstallShield with VFP 8 that also discusses InstallShield's Update Service. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109007634709952797?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/Installshield.htm' title='Using Installshield with VFP 8'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109007634709952797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109007634709952797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109007634709952797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109007634709952797'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/07/using-installshield-with-vfp-8.htm' title='Using Installshield with VFP 8'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-109007606868237839</id><published>2004-07-17T10:44:00.000-04:00</published><updated>2004-07-17T11:31:53.670-04:00</updated><title type='text'>User Interface Design in Web and Windows</title><content type='html'>This is the white paper on user interface design that was given at a number of conferences including &lt;a href="http://www.devteach.com/"&gt;DevTeach&lt;/a&gt;&amp;nbsp;2003 and others. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;From the overview: &lt;br /&gt;"&amp;nbsp; Interfaces are a lot like people – no two are ever really alike. That can present a problem for developers and end-users. On one hand, you want to provide a clear , consistent and easy to use experience for the user. On the other, you want to showcase your graphical design skills. This session goes through some of the issues confronting interface designers today and how we can best deal with them. " &lt;br /&gt;&amp;nbsp; &lt;br /&gt;This session discusses the benefits of the Inductive User Interface, a concept that Microsoft initially showed in MS Money 2001 but has found its way into certain aspects of Windows XP, Office and other tools. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Is the Inductive Approach really the best way? Well, it certainly works for new users, who can't discern between icons. As I look at my tool bar in IE right now, I can easily see that the magnifying glass means "Search" and that the left arrow means "Back". One icon that is pretty self-evident is the "Home" icon. Ever think about that one? I really back before 1989, a certain six-colored company introduced a product called Hypercard that featured, you guessed it, an icon for "Home". They really haven't changed from that time. But others certainly need some clarification and that's what the Inductive interface is about - it is TASK-oriented for those things that need to be explained. It's all over the web and slowly making its way into desktop apps. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;I work with an application for tracking issues that uses F5 to Discard and F6 to Save. Do you know how many times I've lost work because I mistakenly hit F5 instead? &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Anyways...enjoy and please post comments if you like this format. Maybe you would prefer it if the articles or white papers were put up as posts. If so, please let me know that as well. &lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-109007606868237839?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aksel.com/whitepapers/uidesign.htm' title='User Interface Design in Web and Windows'/><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/109007606868237839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=109007606868237839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109007606868237839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/109007606868237839'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/07/user-interface-design-in-web-and.htm' title='User Interface Design in Web and Windows'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7634471.post-108984058764506763</id><published>2004-07-14T17:29:00.000-04:00</published><updated>2004-07-14T17:29:47.646-04:00</updated><title type='text'>Welcome to White Papers, Conference Notes and Articles</title><content type='html'>I'll be posting stuff here very shortly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7634471-108984058764506763?l=whitepapers.aksel.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://whitepapers.aksel.com/feeds/108984058764506763/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7634471&amp;postID=108984058764506763' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/108984058764506763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7634471/posts/default/108984058764506763'/><link rel='alternate' type='text/html' href='http://whitepapers.aksel.com/2004/07/welcome-to-white-papers-conference.htm' title='Welcome to White Papers, Conference Notes and Articles'/><author><name>Andrew MacNeill</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry></feed>
