Stephen Smith's Blog

Musings on Machine Learning…

Posts Tagged ‘windows 8

Frustrations in Developing Mobile Applications

with 14 comments


Recently I’ve been talking to many people about various techniques to develop portable mobile applications. In the good old days of the 90s with the Wintel monopoly usually you could just develop for Windows and you would reach 99% of the market. The main challenge was just adapting to new versions of Windows where you would get things like UAC thrown at you.

Now suddenly we are developing for various Windows devices, various Apple devices and various Android/Linux devices. Plus we have some other contenders like Blackberry clamoring for our attention. The market is now highly fragmented and all of these have considerable market share.

I develop business applications and the functionality I’m most interested in has to do with ERP and CRM workflows. This means I’m not writing games, although it would be fun to produce a game like “Angry Accountants” or “ERPville”.

I know I’ve blogged about mobile development a few times like here and here; but my thinking on this keeps changing and I’m still not happy with the whole situation. There are many mobile frameworks and I’m only touching on a couple of representative ones here. I’ve got to think there will be a better solution, but until then I feel like ranting.

mobile device frustration

Going Native

There is an appeal to going native. The native development environments are really excellent. I’ve been playing with Apple’s XCode development tools for OS/X and iOS development and they are really amazing. They’ve progressed a lot since I last saw them over 20 years ago when I worked for a company that did NeXTStep development for the NeXT cube. Similarly Visual Studio 2012 for Windows 8 development is really quite good and so are all the Android tools.

If I only needed to development for one of these, I would be happy with any one of them. But keeping several in my brain at once really hurts.

You get the best results for the given platform with any one of these, but you don’t really get anything reusable except the basic design. All the platforms use a different object oriented extension of C (namely Objective C, Java and C#). All the platforms have different operating system functions and different separations between what you do in the application versus have as a service.

C Reborn

One surprising thing I found from talking to people was that the idea of writing as much as you could in C. All the main platforms use extensions of C and all support compiling and running C code. This reminds me of the old days where you tried to write a portable application for Mac, Windows and Linux by isolating the operating system dependent parts and then writing as much code as possible in good old portable C. Funny how what was old can be new again. But then it was a good idea back then, why wouldn’t it be a good idea now?


Much maligned Adobe always seems to have a proprietary solution in the game. With Flash being booted from most platforms, Air seems to have followers in some areas. Some people really like Adobe development tools, I’ve always found them strange. Like with Flash, uses ActionScript which is a nice object oriented extension to JavaScript, but then that makes it all non-standard. Then strangely you have to structure Flash projects as a movie which I’ve never liked. Air seems to claim to follow standards but then keeps dragging in Flash technologies. My own bias is that if you go down this route, you may as well stick with using JavaScript which is then more standard and more cross platform.

The other problem with Adobe is that they are the leading vendor in producing software with giant security flaws. This means they are more likely to be blocked or dropped from platforms. It is also a big risk for app development since your app could be tarred by Adobe’s problems.


Xamarin takes the Mono project and ports it to mobile devices like iOS and Android. The goal then is that you can develop a C# Windows application that will also run on iOS and Android. We tried Mono as a way to move some .Net projects to Linux, but just ran into too many problems and had to give up. As a result Mono has left a bad taste in my mouth so I’m inclined to avoid this. I also wonder how much code you will have putting the .Net runtime on top of the native iOS or Android operating systems. Is this just going to have too many layers and is it just going to be too fat and bloated?

If they can pull it off with high quality and compatibility there is potential here, but I suspect, like Air, you will just get a big non-standard mess.


Ever since the first Netscape browser we’ve been promised that the web will standardize all programming. Then came a proliferation of web standards and incompatible browsers. Now things are coming back together in the web world. We have good standardization on HTML5, JavaScript and CSS. We have a number of browsers with good support for these and they run on pretty much all PCs, laptops, tablets and phones. So you would think you can just develop once as a web application and run happily everywhere.

Unfortunately all the vendors have a vested interest in their app stores (like iTunes). Vendors like Apple, Google and Microsoft make 30% off all software sold through their stores. They make nothing on people running web applications from browsers. As a consequence quite a few native platform functionalities are held back deliberately from the web. Then they market hard that for the best experience you must use a native app form their store or you are getting a second rate experience. Strangely the reverse is often the case where the app is just providing a subset of some web site and you lose abilities like being able to zoom.

In the current market/environment it’s very hard to compete against native apps with web apps which is really too bad. I think at some point the app store monopoly will fall apart, but that is today’s reality.


Phonegap is an open source library to try to bridge the gap between HTML/JavaScript apps and native apps. It adds a hardware API for JavaScript apps and allows them to be packaged for distribution via app stores. Phonegap was recently purchased by Adobe which really worried me. So far Adobe hasn’t done anything bad (that I’ve seen) and hopefully it will survive as a good open source solutions.

The main risks with Phonegap is that it usually lags the native apps in adoption of new operating system features, Apple may at some point start rejecting apps made with Phonegap and Adobe may start adding proprietary Flash like technology.

Beside these drawbacks the other problem is that your app is still made out of Browser controls and not the UI widgets that are part of the underlying operating system. You can style away a lot of differences but discerning users will be able to tell the difference.

Phonegap is a great technology which does really help JavaScript/HTML apps be more native and is really worth considering if you go down this road.


I’m still frustrated. I’m not really happy with the quality of apps produced by the cross platform technologies and I don’t like developing the same thing multiple times using the native SDKs.

I also find it a bit monotonous to develop the same program over and over again for iOS, Android, Blackberry and Windows.

Written by smist08

February 23, 2013 at 11:34 pm

Devices and the Cloud

leave a comment »


We are currently seeing a proliferation of devices being release from a new line of Tablets from Amazon, new tablets and phones from Samsung, the iPhone 5 from Apple and a certain amount of anticipation for all the Windows 8 based devices that should be coming next month.

Amazon is quickly becoming a major player in the tablet market; they have branched out from just delivering e-book readers to having a complete line of high performance tablets at very competitive prices. Amazon then makes most of its money selling books, music and movies to the owners of these tablets. These are Android based tablets that have been setup and configured with a fair bit of extra Amazon software to integrate seamlessly with the Amazon store.

In the Android world, Samsung continues to deliver exceptional phones and tables of all shapes and sizes.

Apple has just shipped the iPhone 5 and we would expect new iPads sometime early next year.

Meanwhile Microsoft has released to manufacturing Windows 8 and devices based on this should be appearing on or after October 26.

With each generation of these devices we are getting faster processors, more memory, higher resolution displays, better sound quality, graphics co-processors, faster communications speeds and a plethora of sensors.

With so many players and with the stakes so high (probably in the trillions of dollars), competition is incredibly intense. Companies are competing in good ways, producing incredible products at very low prices and driving an incredible pace of innovation. People are also competing in rather negative ways with very negative attacks, monopolistic practices, government lobbying and high levels of patent litigation. The good news is that the negative practices don’t seem to be blunting the extreme innovation we are seeing. We are getting used to being truly amazed with each new product announcement from all these vendors. Expectations are getting set very high at each product announcement and launch event. There is collateral damage with once powerful companies like RIM or Nokia making a misstep and being left in the dust. But overall the industry is growing at an incredible pace.

Amazing new applications are being developed and released at a frenetic pace for all these devices. They know where you are, what you are doing and offer advice, tips or provide other information. There are now thousands of ways to communicate and share information. They all have deep integrations with all the main social media services. They communicate with natural language and high levels of intelligence.

The Data Cloud

Many of these devices are extremely powerful computers in their own right. The levels of miniaturization we’ve achieved is truly astounding. These devices are all very different, but what they share is that they are all connected to the Internet.

We now access all our data and the Internet from many devices, depending on what we are doing. We many have a powerful server that we do processing on, we may have a powerful desktop computer with large screen monitors, we may have a laptop that we use at work or at home, we may have a tablet computer that we use when travelling or at the coffee shop, we all have smart phones that we rarely use to phone people with, we may have a smart TV, we may have a MP3 player and so on. The upshot is that we no longer use exclusively use one computing device. We now typically own and regularly use several computing devices; it seems most people have a work computer, a home computer, a tablet and at least one smart phone. People want to be able to do various work related tasks from any of these. So how do we do this? How do we work on a document at work, then later we get a thought and want to quickly update it from our phone? Most of these devices aren’t on our corporate LAN. Typically we are connecting to the Internet via Wifi or via a cell phone network. The answer is that we are no longer storing these documents on a single given computer. We are now storing these to a centralized secure cloud storage (like iCloud, GDrive, or DropBox). These clouds are a great way to access what we are working on from any network and any device. Then each device has an App that is optimized for that device to offer the best way possible to work on the document in the given context. Many of these services like Google Apps even let multiple people work on these documents at once completely seamlessly.

Further many of these devices can keep working on our documents when we are off-line. For instance working on something on an iPad while on an airplane. Then when the device is back on-line it can synchronize any local data with the master copy in the data cloud. So the master copy is in the cloud, but there are copies off on many devices that are going on-line and off-line. Then modern synchronization software keeps then all in sync and up to date. Google had an interesting add for its Chrome notebooks where they keep getting destroyed, but the person in the add just keeps getting handed a new one, logs in, and continues working from where he left off.

The Grid

What we are ending up with is a powerful grid of computing devices accessing and manipulating our data. We have powerful servers in data centers (located anywhere) doing complex analytics and business processes, we have powerful laptop and tablet computers that can do quite powerful data input, editing and manipulation. Then we have small connected devices like phones that are great for quick inquiries or for making smaller changes. Our complete system as a whole consists of dozens of powerful computing devices all acting on a central data cloud to run our businesses.

In olden days we had mainframe computing where people connected to a mainframe computer through dumb terminals and all processing was done by the mainframe computer that was guarded and maintained by the IS department. Then the PC came along and disrupted that model. We then had separate PCs doing their own thing independent from the central mainframe and independent from the IS department. Eventually this anarchy got corralled and brought under control with networks and things like domain policies. Then we took a turn back to the mainframe days with Web based SaaS applications. Rather than run on the corporate data center, these run in the software vendors datacenter and the dumb terminal is replaced by the Web Browser. This then re-centralized computing again. Now this model is being disrupted again with mobile devices. Where the computing power is back in the hands of the device owners who now controls what they are doing once again.

The difference now from the PC revolution is that everything is connected and out of this highly connected vast grid of very powerful computing devices we are going to see all new applications and all new ways of doing things. It’s interesting how quickly these disruptive waves are happening.


It’s really amazing what we are now taking for granted, things like voice recognition, you can just ask your phone a question and actually get back the correct answer. The ability to get a street view look at any location in the world. It’s an exciting time in the technology segment with no end in sight.

In this articles I was referring to documents, which most people would associate with spreadsheets or word processing documents. But everything talked about here can equally apply to all the documents in an ERP or CRM system such as Orders, Invoices, Receipts, Shipments, etc. We will start to see the same sort of distributed collaborative systems making it over to this space as well.

Written by smist08

September 22, 2012 at 8:07 pm

Developing Windows 8 Style UIs

with 5 comments


Microsoft has release Windows 8 to manufacturing with a whole new User Interface technology. Up until a few days ago, this was called Metro, but now Microsoft just dropped that name in favor of “Windows 8 Style UIs”. A bit of a strange name, but full product names rarely just roll off the tongue.

I’ve spent a little time playing with developing “Windows 8 Style UIs” and thought I’d spend this blog post covering some of my experiences. Let’s just call them W8SUs for the rest of this post.

Closed Development System

One of the main goals for this new UI development system is to copy Apple’s success with iOS development and the iTunes store. In the Apple world, you can only develop native iPad and iPhone apps using the Apple SDK on a Mac computer. Further you can only distribute your applications by posting them on the Apple iTunes App store, passing a certification process and in the process allowing Apple to take 30% of the revenue. This has been making Apple billions of dollars and Microsoft would like to emulate that.

You can only develop W8SUs in Visual Studio. VS2012 generates a bunch of proprietary cryptographic code signing info must be there to run. Further you must be signed on with a Windows Live developer account. Another gotcha is that you can only develop for these on Windows 8 (or Windows Server 2012). If you install Visual Studio 2012 on a Windows 7 computer, it won’t install any Windows 8 development components there.

Once you do all this, you can’t just compile your application, zip it up and give it to a friend to run. Like Apple, W8SUs can only be installed via the Microsoft Store. There is an enterprise distribution system to install apps developed for an enterprise across an enterprise, but this again is tightly controlled. Even if you install on another computer via your developer license, it will be time bombed to only work for 1 month.

This is all very new to Windows developers. I’m not entirely sure how it will be received. Apple is successful because of all the revenue their store generates. However most of these are low cost consumer applications. Not sure how this will play out in the enterprise market.

Visual Studio 2012

You can develop these UIs in either JavaScript/HTML or C#/XAML. I chose JavaScript/HTML since that is what I already know. You can use either VS 2010 or 2012, I figured, I may as well go with the newest even though it’s a release preview. Actually VS 2012 worked pretty well. Debugging these applications is fairly easy and the tools are pretty good. Since JavaScript is object oriented more by convention than an enforced part of the language, intellisense has to guess what is valid, and although not always correct, it still does a pretty good job. The only place I found it difficult was when you get an exception as part of an event, and then it can be pretty tricky to find the true culprit, since it usually isn’t part of the call stack.

VS 2012 comes with a set of template to give you a start for your W8SUs. These templates give you a working program with some faked in data. When developing for W8SU in JavaScript/HTML, you need to interact with a number of core operating system components which are either built into the environment by some automatically included references or via some proprietary UI controls. For instance the scrolling ListView that is the hallmark of the opening Start Page is a proprietary control that includes all the standard Win8 interactions. When you are programming in JS, the core of the program consists of handling some proprietary events for the program execution state and call the API to invoke the data binding functions. Once you get away from this you can program individual pages of your application pretty much as standard web apps using standard Web libraries like JQuery or HighChart. Then you string together the page navigation using some proprietary APIs.

So you are doing full real web development with JavaScript/JQuery/HTML/CSS, but you are producing an application that will only run on Windows 8 installed from the Microsoft store. A bit of a strange concept for Web Developers, where the promise was to write once and run anywhere. I think you can structure your program to keep most of it re-usable to generate a Web app version using a separate page navigation system and some sort of alternative to the ListView control.

JavaScript Restrictions

When running under W8SU, you are essentially running under a modified version of IE 10. However there are a number of annoying restrictions compared to running IE 10 regularly. In previous versions of IE, many standard web functions, like parsing XML, were handled with ActiveX controls. Now IE can do many of these things in the standard web way, so it’s better to not use the ActiveX way. So if you try to use an older library that detects you are running under IE and tries to use one of these, then you get a very severe security exception. In general you can’t use any Add-ons or ActiveX controls, included those that used to be built into IE and Windows. I found a work around is to fool libraries to think they are running under Firefox rather than IE and that often gets around the problem.

Plus W8SU removes some features of standard JavaScript that it thinks are “dangerous” for some reason. For instance you can’t use the JavaScript alert and prompt statements. These are banned. This is annoying because again, many libraries will use these for unexpected errors and instead of seeing the error; you get a horrible security exception.

Another annoying thing is that the screen isn’t entirely standard like a standard web page. The page will not scroll, so if your content goes off the side, then it is just truncated, scroll bars are never added to the whole page. If you want scrolling then you need to put your content in a ListView or some other control which then causes other complexities and problems. I’m hoping this is really a bug that gets corrected by the real release.

Some of the controls also seem a bit buggy, which hopefully will be corrected by release. For instance if you put a ListView inside a ListView control, it gets quite confused. Also if you put a proprietary date picker in a ListView control then it ends up read-only.

Since these are based on IE, they use IE’s caching mechanisms. Currently there is no way to clear these caches from the system. The only way is to know the secret folders it uses and to go in and manually delete these. If you clear the cache in IE 10, it has no effect on W8SU programs. This is mostly annoying when doing application development, since re-running the program won’t re-download new static content from your web site. Again hopefully this is fixed by release.


Using SData from a W8SU is really quite easy. There is an API called “WinJS.xhr” which makes asynchronous RESTful web service calls.

    Promise = WinJS.xhr({
       type: "POST",
       url: sdataurl,
       user: "USERID",
       password: "PASSWORD",
       data: atomdata

It has the exact parameters you need for making SData calls. It returns a promise which is W8SU’s way of notifying you when an asynchronous request returns, basically you can set functions to be called if the call succeeds, fails or to get progress. You can also join promises together, so you can make a bunch of asynchronous calls and then wait for them all to finish.


I think Window’s 8 Style UIs have a lot of potential. I worry they are being rushed to market too quickly and aren’t quite ready for prime time. I also worry that the touch focus is going to turn everyone with a standard laptop or desktop off Windows 8 entirely. Hopefully the technology gets a chance to evolve and that new devices beyond the Surface tablet hit the scene to give it a really good user experience.

Developing for Mobile Devices

with one comment


Having just posted a couple of articles on the Argos Mobile SDK here and here; and with the news that Windows 8 has just been released to manufacturing; I thought it might be a good time to reflect a bit on mobile devices and how to develop for them.

By mobile devices we tend to mean smart phones and tablets and not laptop or desktop computers. Certainly there is a lot of blurring around the edges of these categories. Phones becoming as big as tablets, laptops with detachable keyboards and touch screens, etc. There are all sorts of charts showing the growth of mobile devices such as this one from Business Insider:

Today you see iPads, iPhones, and Android devices everywhere. There is a huge market already and from these growth trends you can only see the market demand accelerating in the future. We are already at the point where many workers perform all their computing tasks through a tablet or a phone and may not have access to a desktop or laptop computer at all.

How to develop for mobile devices is a very hot topic around the web. There is a lot of debate around whether to develop using the native SDK’s from the device manufacturers, using a third party toolset that targets multiple devices or writing a web application that runs on anything. What are the pros and cons of all these approaches? What are the tradeoffs you are making when deciding between these?

Device Experience

Apple has done a great job creating the iPhone and iPad and giving them a great user experience. Anyone writing apps that run on these devices want to make their apps as great as any app from Apple when run on one of these. The same goes for creating Android apps or for creating Windows 8 Metro apps. So what are some of the things that you want in your application to fit in naturally into these environments?

  • Follow the look and feel guidelines for the platform. Look and behave like any of the applications that the manufacturer provides. Honor all the touch gestures on the device, have great professional graphics and layout at the right resolution.
  • Integrate with all the build-in hardware on the device. For instance able to access contacts, dial the phone, use the GPS, read the accelerometer, take photos, record sound, receive input via voice, film movies or any other neat hardware feature where ever they make sense.
  • Integrate with the native operating system and utilize all its features. For instance on Windows 8 Metro, support the charms, command bar and integrated application search.
  • Have great performance. Feel just as snappy as any other app on the platform. Don’t hog bandwidth; remember bandwidth can cost money.

Device Differentiators

What distinguishes all these devices? What makes them different? What do you need to support for the best experience?

  • Screen size, we have all sorts of screen sizes from small but high resolution (iPhones with retina displays) to large with low resolution (cheap large screen desktop monitors). Being adaptable is quite a challenge.
  • Input methods. Devices support touch, voice, keyboard, mouse, pen, QR codes, NFC, etc. Supporting all these can be quite a challenge.
  • Different hardware devices. How multi-touch is the device, does it have GPS, does it have a thermometer, is there a sim card, etc.
  • Operating system version. How up to date are most people? Which version do you want to support?
  • Different processor power, battery life and memory.

Using a Web App as a Device App

With all these consideration, is it possible to have a web application pose as a native app? That is what we have been doing with the Argos SDK. The nice thing about Web applications is that they run pretty much anywhere; all the mobile devices have really good browser support. Web applications are also good at adapting to different screen sizes; HTML has always been doing this. The device manufacturers have been good about adding input events to the JavaScript programming model, so you do get notified of touch gestures in your JavaScript application.

However device support is limited. It slowly makes its way into JavaScript, but generally web apps tend to trail native applications in hardware and operating system support. Another key problem is that you can’t post a URL to the app stores like iTunes, these only take native applications.

Enter systems like PhoneGap. These take a web app and wrap it in a native application. In addition to creating a native wrapped app that you can post to the app store, it also adds a lot of hardware abstraction, so you can access things like the accelerometer, but in a way that PhoneGap will make work on all devices.

The Argos SDK is fully PhoneGap compatible, so you can create mobile applications with Argos, compile them with PhoneGap and then deploy them through an app store.

Windows 8

I know Microsoft just dropped the use of the “Metro” name for its native tablet apps, but without a replacement I’m going to just keep calling it Metro. Metro is a subsystem of Windows 8 that allows you to build tablet type apps. Similar to iPhone apps, these can only be distributed via the Microsoft Store (or via a very arcane Enterprise distribution system). The intent of these is to define a new modern UX model for Windows applications. These programs run by themselves and can’t be displayed as Windows in the regular Windows desktop. There are two ways to develop these via Visual Studio 2012, either as C#/XAML apps or as JavaScript/HTML applications. PhoneGap doesn’t have Windows 8 support yet, but I would expect to see it down the road.

If you develop a Metro app in JavaScript/HTML in VS 2012, don’t expect it to run anywhere except in the Metro environment. This is standard JS, but the core of the program structure is proprietary and you have to use a number of proprietary native controls to get proper Windows 8 functionality. All that being said, you can leverage a large number of standard JavaScript libraries such as JQuery or HighChart. You can also structure your program to isolate the proprietary parts to keep as much reusable as possible.

To use operating system you need to be a native application and you have to use proprietary controls to access things like the integrated search and the charms. You can probably simulate the command bar via other means.

If you buy a Windows 8 ARM Processor based device, then it only runs Metro or Web apps, it will not run any other type of application. So if you want to participate in this world then you do need to develop for Metro (or rely on a web app). It will be interesting to see if sales of ARM based Windows 8 devices takes off. Microsoft is releasing their Surface tablet in both ARM and Intel processor based versions.

Right now there is a lot of impedance between current laptops/desktops and Windows 8. Metro is really designed for the next generation of hardware and doesn’t work at all well with current hardware. Perhaps it’s a mistake making it compatible with old hardware since it yields a bad experience, but Microsoft’s hope is that as new hardware comes to market, then the Metro experience will greatly improve.


It seems that applications need the experience of native applications, but want to leverage the portability of Web apps. After all what developer wants to create 4 or 5 different versions of their program? This is leading to new categories of hybrid applications that have large parts written as web apps, but then merged with parts that are created natively to directly interact with operating system and device features. It certainly leads to programmers needing quite a plethora of skills starting with JavaScript/HTML/CSS for Web Apps and Metro Apps, Objective C for iOS and Java for Android.

Sage 300 ERP 2012 Supported Platforms

with 43 comments


Whenever a new version is released, it is tested with the latest operating systems and usually bundled components are updated to the latest versions As always there will be a detailed list of all supported platforms and exact versions will be published on our website. This blog posting is a bit more informal and talks about what I think are interesting on the list. Some of this is my opinions on the various supported platforms and some of the pros and cons.


We now have added support for Chrome, Firefox and Safari. We support IE 9 everywhere and are testing on IE 10 (need a released version before we can give a final say). We support IE 8 for Sage CRM and Quotes to Orders, but we don’t support IE 8 for the Web Portal in Sage 300 ERP.

Windows XP

We continue to support Windows XP at the SP3 level. Beware that Microsoft is currently scheduled to discontinue this support on April 8, 2014. They have extended this deadline several times already, so stay tuned. This will be dangerous since they say they will stop issuing security updates at this point. From our own surveys we know we have a large number of users still running on XP and that people may not want to have to buy new computers until absolutely necessary.

The worst thing about XP is that Microsoft doesn’t support IE 9 there and that IE8 is quite slow and buggy. The big benefit for Sage 300 ERP users is that now that we support the Chrome, Firefox and Safari browsers, that is, you don’t need to use IE 8 anymore for our products. We highly recommend that you install Firefox or Chrome (you can still use IE for other things like SharePoint if you need it). In fact the Sage 300 Web Portal no longer supports IE 8 so you will need to use one of these browsers to access it. For Sage CRM (and the Quotes to Orders function), we still support IE 8.

As another note, we don’t support using Windows XP as a web server for either Sage CRM or for the Web Portal in Sage 300 ERP. If you need a web server running Windows 7 works great or use a true server version of Windows.

Windows 7

This is the main client platform we support. Sage 300 ERP runs best here and we highly recommend using this client operating system.

We support the 64-Bit version equally to the 32-Bit version. In fact we recommend the 64-Bit version since this is the only way to take advantage of the memory in any newer computer.

Windows 8/Windows Server 2012

We are running our automated tests against the release previews of these products. We can’t officially support these until we can test against the released versions, but we are hoping that if the released version doesn’t spring a major surprise, then we can support these very quickly after their release.

Note that for Windows RT (the ARM processor version of Windows 8), you can only run true web components here, any VB UIs will not run.

Initial reviews of Windows 8 are rather mixed, but like MS Vista, it will start appearing on new computers whether you like it or not.

SQL Server 2012

With this release we will be both supporting SQL Server 2012 and making SQL Server 2012 available for purchase from Sage. Microsoft provides lots of information on all the new features there. The most obvious one is that the SQL Server Management Studio is now built on the Visual Studio 2012 platform. Besides some color and style changes it appears pretty much the same to me as the previous one, only now it takes much longer to start up. I think the idea is that it then leverages the better developer tools in VS for debugging and such.

Pervasive.SQL 11

We now support Pervasive.SQL 11. One notable “feature” of this product is that product licensing and activation are more stringent. You cannot share licenses and your computer must be on-line to validate your activation code. Otherwise checkout out Pervasive’s web site for new features like multi-core support.

Crystal 2011

We now fully support designing reports with Crystal Reports 2011. We now bundle the matching runtime for this version of Crystal. Beware that SAP has separated the runtime from the Crystal Reports product, so it is actually called “SAP Crystal Reports runtime engine for .NET Framework 4” (strangely rather than for Crystal Reports 2011).  The internal version of the runtime is Version 13.  Our current plans are to bundle SP3 of this runtime and its internal version is Since we are just starting regression on the 2012 release, there is some chance that we will end up bundling SP4 if it comes out soon.

Generally this upgrade was fairly painless. We did tweak a small number of reports, but these tended to be things that were already wrong. We did find some reports with an incorrect page size, which was ignored by the previous runtime, but now worked and caused problems. Anyway you should try your customized reports and check for alignment issues, especially for things that print on pre-printed forms.


Here we support Citrix Xen Apps, VMware ESX 4.1 and ESXi 4.1, and Windows Server 2008 Standard R2 – Hyper V.

Just remember virtualization does add some overhead and if you are running multiple images on one server, beware memory use and CPU contention.


For MS Office we support 2003, 2007 and 2010. Note that we only support 32-bit office because of the way our Financial Reporter Excel plug-in works.


I didn’t cover everything here; we support Oracle 11gR2 and MS Vista SP2 for instance. But to give you a flavor and some highlights of our upgraded platform support.

Written by smist08

June 23, 2012 at 5:47 pm

Sage 300 on Windows 8

with 8 comments


I must say that I really like Windows 7 it’s a very powerful 64-Bit operating system that is relatively fast, powerful and stable. I really liked Windows XP and I hated Vista. Now it is time to consider Windows 8 as it prepares for a pre-Christmas release. To some degree Windows 8 reminds me a lot of Vista, in that it has changed a lot of UI elements that I liked to rather bizarre elements that I hate. Supposedly new users will like them better and supposedly I will grow to like them after using them for a few months, but I’m nowhere near there at this point and rather dubious that I’ll ever like them.

So why did Microsoft make these changes that I dislike so much? Their big goal was to have one operating system that works exactly the same on phones, tablets, laptops and desktops. Phone and tablets operate using touch and laptops and desktops use a mouse and keyboard. One of the claims is that laptops will start incorporating touch and so will stop using the mouse (or track-pad), but that is yet to be seen. Windows 8 also has a dual personality, it has the traditional Windows desktop where traditional Windows applications run and then the new Metro world where phone/tablet optimized applications run (as long as they are written to the Metro standards). Windows 8 also supports ARM based devices as well as Intel based devices. If you run on an ARM based device then you only get the Metro personality, you cannot run any traditional Windows applications.

If you’ve ever used a current Windows tablet, one hard element to use by touch is menus. These tend to be very fiddly. So Windows 8 spends a certain amount of time trying to eliminate menus. The first menu they have attacked is the Start menu. Windows 8 has a new “Start Page” as pictured below:

This is then your starting point for the new Metro applications as well as the traditional Windows Desktop applications.

Microsoft UCD

Microsoft has spent quite a bit of time defending the Windows 8 Start Page against a barrage of criticism on the Web. A few blog posts from Microsoft explaining the User Centered Design methodology and thinking are: Evolving the Start Menu, Designing the Start Screen and Reflecting on your comments on the Start Screen. These make interesting reading, especially the comments at the end of the postings. Obviously the Start Menu had a number of problems besides being difficult to control via touch. It always seemed strange that you shut down your computer by clicking “Start”. Once you have many programs it becomes quite unwieldy and performance starts to suck.

These are all legitimate concerns; however the solution of the jarring switch from the desktop to this completely different screen that takes over the entire monitor seems rather an inelegant solution. Is this a case of the solution being worse than the problem? I guess time will tell. It will also be interesting to see if Microsoft takes any of all this feedback being provided and makes any changes before they release. Plus the Start Page doesn’t really address the scalability issue, instead it just introduces a lot of horizontal scrolling.

Touch Control

Once you are in the Windows desktop, things work pretty much as you would expect and you can get your work done. However when you are in the Metro or Start Page side of things, I find Windows 8 can be quite difficult to use. To keep the screens “clean” and “pretty”, there are no indicators of where you need to click or swipe to do things. Many times I had to Google to find out how to do basic operation like sign-in or close IE. Since things are oriented to touch, often when using a mouse you have to drag things right across the screen to do things which usually makes my mouse come off the edge of my mouse pad, which I find annoying. I dread to think how this works on a track pad.

The native Metro applications (including built-in things like IE) all operate in full screen mode (like apps do on an iPhone or iPad). On my laptop and desktop, I find this extremely annoying. I have large high resolution monitors and I can have quite a few Windows open and visible at once. On Windows 8, this is all gone.

Back to Windows 1.0

With the Metro apps they either operate in full screen mode or you can tile them and they stay live on the Start Page. This reminds me very much of Windows 1.0 before the days of overlapping Windows when all your open Windows were tiled:

Really back to the future for UI design there. Of course the quality of the graphics are much better now, so the picture looks better, but the idea somehow feels old fashioned.

Sage 300 Runs Fine

Here is a screen shot of running the Sage 300 ERP Desktop and the main Order Entry screen on the Windows 8 Consumer Preview. Looks and acts pretty much like on Windows 7. Notes the lack of the “Start Menu” along the bottom of the screen.

We’ve tried various things like reporting and editing data and it all seems the same as Windows 7 which is good.

Looking at this screen, how do you bring up the “Start Page” to run another program? From the task bar you can only run IE and Explorer. Here is a funny video of someone’s dad trying to figure out what to do. (I had to Google this, to find out which cryptic key to press).

Need to Fix Our Installation

The one thing that currently isn’t doing a good job is the installation of what we used to put in the Start Menu. These now end up on the Start Page and since we used to have sub-menus for things like tools, the Start Page doesn’t support this so we get a whole bunch of items (with bad graphics) messing up the page:

We’ll have to fix this up before our next release, if we can, given that Windows 8 is a bit of a moving target at the moment. Anyway we need to figure out a better way to organize our items and provide better graphics.


Is Windows 8 a step forward or a step backwards? I think it’s a step backwards for desktop and laptop users. For Microsoft, it’s a step forwards for phone and tablet users. However, is it enough to compete with Apples iPhone and iPad? Can it compete with low cost Android devices? Personally, I think Apple has established the standard for how touch works in these environments and with Android largely copying Apple, it makes Microsoft seem rather odd and not following established standards. Will users accept these? I guess the market will decide once it’s released.

Written by smist08

April 14, 2012 at 7:04 pm