Web App Development IDE

Visual Studio 2013 is not very clever when used to open a web site containing our Apex single page application HTML, CSS, JSON, Javascript etc.. It seems to try and launch a 'localhost' type of environment and because our source code files are cloud hosted, this takes minutes to just even load the project. Then it periodically just hangs momentarily even editing simple files.

What's a dev to do? Well, I looked at alternative IDE's (integrated development environments) to test the market. This article is recommended reading as it highlights alternative IDE's such as Netbeans, Eclipse, Komodo, Notepad++ and WebStorm. They all are very good and in many cases superior to VS, however there is one aspect which turned out to be critical. This is that we still use Visual Source Safe (VSS) internally. Although this has been superceded by Team Foundation Server at Microsoft, we have so much code in VSS tied to automated build scripts, and do not think that TFS will not add further complications to our control and build processes. For a small ISV, why spend extra cash fixing what already works?

Visual Studio 2013 defaults to TFS, however we were able to change that and point at VSS for seamless source code check-in/out and diff analysis. No other IDE seems to support VSS. Maybe I am missing something, but no google help on this.

So, we wanted a straight single page application (SPA) which does not rely upon ASP.Net, C# or VB.Net or the .Net Framework. Unfortunately VS 2013 does not provide such a simple project. We had to settle on an empty ASP.Net project and then drag in all our existing code folders which works recursively thank heavens, and then set the index.html as the start page.

So now we have an ASP.Net web application which does not need or use ASP.Net. This is a drag, but not a major problem. What about debugging support? So we ran it and got an error where IIS 8 complained about .json files. Although we set the .json mime type in IIS manager, it seems VS2013 ignores that and requires a web.config change. Luckily the solution was documented here.

Running our SPA application using Internet Explorer as the default browser now allows full debugging of the project javascript (JS), without having to use the browser integrated debuggers. This is another major benefit of using VS2013. Interestingly, no JS debugging is available when using alternative default browsers when running the debugger. You can even edit-and-continue, but of course also have to refresh your browser to accept source code changes.

We also get full intellisense on our javascript object hierarchies which helps Apex developers fully utilise the framework.

We will now be able to utilise separate worldwide teams to develop Apex using a single IDE with an integrated source code control system, javascript framework intellisense and debugging which promotes a more structured approach for QA and rollout allowing greater scalability in our development efforts.

TriSys Web API Browser Compatibility, JQuery, CORS, XDR

TriSys partners and developers building business applications with the TriSys Web API should take note of the following advisory:

We have put in a lot of work to make the TriSys Web API as powerful, extensible, efficient and secure as possible. To achieve this however we have to let go of supporting legacy browsers which are not compatible due to well accepted inadequacies in their respective designs.

You are not able to use the TriSys Web API from Microsoft Internet Explorer (IE) 6, 7, 8 or 9 for these reasons:

  • No support for CORS - this is the cross origin resource sharing, which allows web sites to be hosted on separate domains from their data and other services.
  • No support for the industry standard XMLHTTPRequest (XHR) asynchronous mechanism. Instead, IE 6, 7, 8, 9 use their own variant called XDomainRequest which has been deprecated in IE 10.
  • IE 6, 7, 8, and 9 do not support XHR2 CORS. It is not possible to make generalized cross-domain requests in these browsers.
  • IE 8, 9 support an ActiveX control called XDomainRequest that only allows limited cross-domain requests compared to XHR2 CORS.
  • jQuery does not include XDomainRequest support because there are numerous and serious limitations to XDR (external data representation).
  • XDomainRequest does not support complex JSON objects or secure custom headers which are essential design features of the TriSys Web API.
  • XDomainRequest allows only intranet zone i.e. on-premise as opposed to geographically dispersed on-demand such as TriSys global services.
  • JQuery 2.0 and other third party open source offerings is not going to support legacy IE.

You are able however to fully utilise the TriSys Web API from the following:

  • HTML5 compliant web browsers, including:
    • Internet Explorer 10, 11
    • Firefox
    • Chrome
    • Safari
    • Opera
  • All modern tablets, including:
    • iPad
    • Android
    • Windows RT
  • All modern phones, including:
    • iPhone
    • Android
    • Windows Phone
    • Blackberry

If you are a web designer or programmer utilsing the TriSys Web API, please contact us for further information, or visit the API at


Windows 8 and Microsoft Surface

This week, TriSys took delivery of one of the first Microsoft Surface tablets to ship in the UK. Please follow this link to the TV advert currently being broadcast on national television.

Surface is a touch screen device, with a magnetic snap keyboard, and runs a brand new operating system from Microsoft called Windows RT. The RT moniker could stand for 'run-time' however this is not an official acronym. Windows RT is design for computers/tablets which use an ARM (here in Cambridge, UK) designed chip, which are the types of chips which power most mobile devices today such as smart phones and tablets.

Windows RT has two distinct personalities - the Modern UI (previously called Metro) is a tile based interface used in Windows 7 Phones. These tiles are live - meaning that they are automatically updated with content for example the number of new e-mails, or a change in stock price. Apps can be purchased and downloaded from the Windows Store and they will install onto the modern UI as new tiles. Stroking your finger horizontally from the right edge of the screen exposes the 'charms' - a context sensitive set of options for each application. Stroking your finger horizontally from the left edge of the screen switches between the running applications.

The second personality is the traditional windows desktop. This can be selected by choosing the Desktop tile and looks very similar to Windows 7. This is where traditional non-Microsoft Windows applications are designed run, however not on Windows RT. This desktop will only run traditional non-Microsoft Windows applications when running the professional version of Windows 8 which is designed for use on non-ARM chipsets i.e. Intel and AMD.

Microsoft has provided preview editions of Word, Excel, Powerpoint and OneNote which run on the Surface desktop and can connect to cloud files stored in SkyDrive.

We were able to get TriSys running on Surface by connecting through to our remote desktop services and am pleased to report that this is automatically touch enabled on the Surface tablet.

My conclusion is that the Surface is a very capable competitor to the iPad. There are certain advantages over the iPad:

  • Synchronisation of Google contacts and calendars does not require trickery
  • Entering contacts into Mail does proper lookup of your contacts, not recipient history
  • Plays more videos than iPad which supports less video formats
  • Skype integration is superb - can call or text directly from contacts
  • Microsoft Office apps
  • Netflix is a great experience with very high quality video

These are the drawbacks:

  • Fewer apps that iOS and Android
  • No native YouTube, Twitter or BBC iPlayer applications
  • Unable to use cloud storage from other vendors - it insists on SkyDrive
  • Xbox music and video is buggy

Overall, I prefer the Surface to iPad and the Kindle Fire HD. The Modern UI (Metro) is better than iOS and Android, although switching between this and Desktop may confuse some users.

Surface and Windows 8 are very credible products from Microsoft and puts them back into the tablet war, although well behind iPad and Android tablets, but much closer to them than previous Windows 7 tablets. Time will see Microsoft close the gap between itself and the tablet industry leaders and Surface is the start of this process.