products • licensing • articles • prizes...

11
DeveloperDirect SPRING 2013 PRODUCTS LICENSING ARTICLES PRIZES MODERN PROGRAMMING TOOLS Start DON’T MISS THESE TOP READS Visual Studio 2012 for Individuals and Teams .......................... 4 Win a Microsoſt Surface ........................................................... 6 Spice Up Your Apps with HTML5 .............................................. 7 Parallelism Opportunies ......................................................... 8 Develop with Pleasure............................................................ 10 Keeping Our Show on the Road.............................................. 12 One App Fits All ...................................................................... 14 Delivering Docs Across Devices .............................................. 15 Back to the Future .................................................................. 16 Win a Microsoſt Surface! - Page 6 Weather News Business Reviews We make it happen www.qbssoſtware.com 08456 580 580 | info@qbssoſtware.com

Upload: others

Post on 09-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

DeveloperDirectSpring 2013

prODUCTS • LiCEnSing • ArTiCLES • priZES

MODErn prOgrAMMing TOOLS

Start

DON’T MISS THESE TOp REaDSVisual Studio 2012 for Individuals and Teams .......................... 4Win a Microsoft Surface ........................................................... 6Spice Up Your Apps with HTML5 .............................................. 7Parallelism Opportunities ......................................................... 8Develop with Pleasure ............................................................ 10Keeping Our Show on the Road .............................................. 12One App Fits All ...................................................................... 14Delivering Docs Across Devices .............................................. 15Back to the Future .................................................................. 16Win a Microsoft Surface! - Page 6

Weather

News

Business

Reviews

We make it happen

www.qbssoftware.com 08456 580 580 | [email protected]

Page 2: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

Start adding ‘delight’ to your applications today!

www.fusioncharts.com

Delightful charts, gauges and mapsDelightful charts, gauges and mapsin JavaScript (HTML5)in JavaScript (HTML5)

FusionCharts Suite XT transforms all the boring data in your web and enterprise applications into delightful experiences. It is the perfect addition to all your reports, dashboards, monitors, analytics and surveys. FusionCharts Suite XT works seamlessly across PCs, Macs, iPads, iPhones and a majority of other mobile devices.

21,000 customers and 450,000 developers in 118 countries trust and use FusionCharts Suite XT to add delight to their web and enterprise applications. The same delight that powers over a billion charts per month across the globe.

www.qbssoftware.com/fusioncharts33

Welcome!The launches of Visual Studio 2012 and Windows 8 have introduced a new development platform for developers and programmers. Many projects are being planned or already under way for building applications for the new Windows store. With regular releases of new portable devices like tablets and smartphones, the development of mobile and modern applications becomes more complex with an array of screen sizes, hardware specifications and configurations to keep in mind.

Inside this edition of Developer Direct, you will find tools and solutions that will help when developing mobile and modern applications using Visual Studio 2012 based on the newest operating system, Windows 8. In this increasingly competitive and saturated market place, it is vital

you be the first to publish and take your app to market. Whether you need controls and components to give a sleek, polished look to your app UI or want to know how Visual Studio 2012 can help you and your team, you will find a snapshot of your options as you read on.

QBS began as a software house and still holds the dedication to develop and publish software. Our passion for technical software increases our willingness to share the latest trends in the industry with you. I hope this issue of Developer Direct introduces you to some new tools, tips and tricks when developing modern applications.Dhara KothariMarketing Manager

Visual Studio 2012 for individuals and teams ................................. 4

Win a Microsoft Surface ................................................................ 6

Spice Up Applications with HTML5-based Data Visualisation ......... 7

Parallelism Opportunities .............................................................. 8

Develop with Pleasure ................................................................. 10

Keeping Our Show on the Road ................................................... 12

One App Fits All ........................................................................... 14

Delivering Docs Across Devices .................................................... 15

Back to the Future ....................................................................... 16

Productivity Tools for Developers from QBS Software .................. 17

COnTEnTSSTAY IN TOUCH

www.qbssoftware.com

Our Business hours are from Monday to Friday 08.30 hrs - 18.00 hrs GMT/BSTTalk to humans, not an answer service.

QBS Software7 WharfsideRosemont RoadWembley, MiddlesexHA0 4QB, UK

Customer Service+44 (0)20 8733 [email protected]

Marketing+44 (0)20 8733 [email protected]

Accounts+44 (0)20 8733 [email protected]

Technical+44 (0)20 8733 [email protected]

Sales Republic of Ireland +353 766 060 808 [email protected]

Sales UK08456 580 580 +44 (0)20 8733 7101 (International)[email protected]

COnTACT US

We are @qbsdevelopers

Like Us

Watch Solutions in Action

Share Your Views with Us

Professional Network

Sign Up to our RSS Feed

Free UK Mainland Delivery (online orders only)

Free Technical Advice Buy in £, $ or €

DeveloperDirectSpring 2013

Page 3: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

C#

4 www.qbssoftware.com 508456 580 580 | [email protected]

DeveloperDirect DeveloperDirect

Visual Studio 2012

Visual Studio 2012 Editions

Getting started with Visual Studio 2012 is incredibly easy. Express editions are available for Windows 8, Windows Phone, Windows Desktop and for Web. These reduced functionality

editions are completely free and give you the tools you need to get started creating great apps.

If you are a professional developer, you’ll need one of the more featured editions:

• Visual Studio 2012 Ultimate with MSDN – The complete toolset, with support for building apps for web, desktop, Windows Store, cloud and server, Team Foundation Server access, tools for manag-ing virtual lab testing environments, agile project management tools, peer code review workflows, automated user interface, web, perfor-mance and load testing, tooling to collect and analyse runtime diag-nostic data from production systems and much more.

• Visual Studio 2012 Premium with MSDN – Rich toolset supporting building apps for all the platforms, rich testing support, Team Foun-dation Server access, agile project management tools and automated user interface testing and code coverage analysis.

• Visual Studio 2012 Test Professional with MSDN – Toolset to sup-port the needs of the software test professional.

• Visual Studio 2012 Professional with MSDN - Support for building apps for web, desktop, cloud, Windows Store, cloud and server, Team Foundation Server access and unit testing, plus access to the full cat-alogue of Microsoft software products.

• Visual Studio 2012 Professional – Support for app development for web, desktop, cloud, server and Windows Store, rich debugging and unit testing.

All editions, except the base Professional edition, offer connectivity to Visual Studio Team Foundation Server 2012. Team Foundation Serv-er gives you enterprise-grade source code control and tools that enable operations staff and project managers to work more closely with the de-velopment team to realise faster delivery cycles and to add real business value. Visual Studio Team Foundation Server 2012, in common with previous versions of Visual Studio Team Foundation Server, is available for installation on a local server. However, there is now another option. Team Foundation Service is available as an online software-as-a-service

(SaaS) version of Team Foundation Server - http://tfs.visualstudio.com/. It is a fully hosted solution offering easy configuration and a relatively small upfront capital expenditure. This gives organisations that previ-ously did not want to invest in or maintain a local server the opportunity to take full advantage of the capabilities of Visual Studio Team Founda-tion Server 2012.

In addition to the built-in capabilities, other software development kits can be downloaded that integrate into Visual Studio 2012. The most well-known of these is the Windows Phone 8 SDK which you can find at http://dev.windowsphone.com. Just released are the Office Developer Tools for Visual Studio 2012, which allow you to create rich, immersive apps for Office 2013, SharePoint 2013 and Office 365. These tools require Visual Studio 2012 Ultimate, Premium, or Professional.

Developing Apps for Windows 8It’s no secret that a new age of modern apps is here. With connected de-vices and cloud-based services, you have bigger and better opportunities than ever before. Independent developers can plug in from anywhere, build a brilliant app, and make it available to millions of users. Large, agile teams can give their businesses a significant advantage—and the faster they execute, the greater that advantage can be.

Visual Studio 2012 comes packed with new project templates and tools to help you build compelling, touch-enabled Windows 8 Store Apps. As with any of the other project families supported in Visual Studio, you can select from a collection of new project templates to get you started building a Windows 8 Store app.

The whole Visual Studio IDE has been streamlined to give a clear, un-cluttered developer experience compared to earlier editions. When the time comes to test, you can test directly on your Windows 8 develop-ment PC, or you can use the built-in simulator that allows you to test your app in different orientations and on different screen sizes.

Visual Studio 2012 also includes great integration with the Windows Store, so you can package and submit your apps right from within the IDE. A developer subscription to the Windows Store and the Windows Phone Store is included with the Visual Studio 2012 editions that include an MSDN subscription and are available at additional cost to developers without an MSDN subscription.

Cloud Development

Microsoft Windows Azure provides a highly scalable and reliable hosting infrastructure and toolset for applications and services running in cloud. Windows Azure is an open platform and developers can choose to build applications by using a variety of tools and web application frameworks with programming languages such as Java or PHP. However, most developers are likely to use Visual Studio 2012 as the development environment, to use C#, Visual Basic or F# as the programming language, and to use the .NET Framework to provide the runtime services. Developers working in this environment will find that Visual Studio 2012 makes developing, deploying, and testing applications and services for Windows Azure very easy.

Web DevelopmentVisual Studio 2012 is the tool for web developers who want to create a simple web application quickly. Equally, Visual Studio 2012 is ideal for a team of professional developers working on a large, rapidly evolving web application, because it offers full support for source control, testing, code reviews, and deployment.

SummaryPreviously, most applications ran either on a server or on a desktop. To-day, many other platforms are common; smartphones and tablet devices are becoming ubiquitous.

Visual Studio 2012 makes it easy to develop applications for multiple platforms, including Windows Phone smartphones, slate devices running Windows (including the new full-screen tailored applications for Windows 8), the Xbox 360 console, and of course on traditional desktop computers.

Learn more about Visual Studio 2012: www.qbssoftware.com/VS2012

AS WITH EVERyTHING IN OUR INDUSTRy, the role of the software developer and the types of applications being built is evolving at breakneck speed. We have seen an explosion of new platforms and developers increasingly have to work on a diverse range of technologies and use an array of development skills. Visual Studio 2012 gives you the tools you need and supports your development efforts, whether you are building for Windows 8, Windows desktop, Windows Phone, Cloud, Web, SharePoint or Office.

Integrated Development Environment for Individuals and Teams of All Sizes

by Andy Wigley, Technical Evangelist, Microsoft.

“Independent developers can plug in from anywhere.”

“Visual Studio 2012offers full support

for source control, testing, code reviews and

deployment.”

SaaS

iDE

Music

Store

Web development

@qbsdevelopers.nET

Page 4: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

6 www.qbssoftware.com 708456 580 580 | [email protected]

DeveloperDirect DeveloperDirect

HTML5 has taken the developer world by storm over the last two years. Apart from being seen as the technology which allows the building of light-weight, cross-platform offline-capable mobile applications, it is also increasingly seen

as powerful and flexible enough to enable data visualisation scenarios which rival and exceed the functionality and interactivity provided by applications, based on native technologies.

What is shaping this revolution? What capabilities does HTML5 offer, and how can we benefit from data visualisation controls that are already available to shorten the development cycle? Let’s take a brief look at the drivers of this change, and how you can benefit from the availability of rich data visualisation controls to enhance your application’s usability.

Data visualisation before HTML5 was limited to two worlds: the rather static world of ASP.NET AJAX web pages, where charts and maps ren-dered on the server as images; and the rich world of plugin-based web application development platforms such as Flash, Silverlight and Java, which placed some mobile devices off-limits, and required startup times users found unacceptable.

The HTML5 Canvas element, and HTML5’s support of touch behaviours on client devices, made it possible to create and interact with graphics on the client, which presents a significant opportunity to developers. It enables drawing of anything from simple charts and maps, to sophisti-cated graphs and diagrams which users can readily interact with. All the data that’s been sitting in the backend of our applications can be brought to the UI and visualised, interacted with and even made available offline on mobile devices.

Infragistics has recognised these trends and is enabling developers to add data visualisation spice to their apps through its IgniteUI product. Apart from the controls you need to write your typical line of business application, including grids, editors and tree controls, IngiteUI has a chart and map control which lets you create a wide variety of visualisations.

The chart control is based on the high-performance XamDataChart control for XAML, and apart from a wide variety of series and axis types, tooltips and touch interactions, it gives you zooming and panning using the mouse and mouse wheel. This enables users to process large datasets with ease, which makes the web, or mobile application as powerful as the desktop in the functionality it offers. The chart also supports displaying real-time changing data, which lets you create a live display of a data feed without any plugins, so you can instantly track the live status of a system or process in a web application.

The second data visualisation control which is a part of the IgniteUI product is the map control. It lets you integrate your application data with a shape file or a variety of sources of raster data such as Bing Maps or OpenStreetMaps, also supporting spatial data from Microsoft SQL Server, Oracle and others. For example, you can visualise your cus-tomers on a map, the routes vehicles take through a road network, or a weather map which displays precipitation over an area. Also, you can create zoom-able thematic maps, which shade regions according to the values of a property, for example encoding the proportion of sales in different sales regions with shading.

Both the chart and map offer zooming and interacting with data much more than older image-based controls. However, we can do even better. We can use these controls to animate changes in data over time. We can bind our time series data and use the controls to show snapshots. We’ll transition between different snapshots of data at set intervals creating a fluid animation of time series data. For example, this lets us illustrate the changing proportion of different products a company sells over time, or the share of sales from different regions over time. As users are able to control the playback of data, and to move to snapshots of interest, they have a much greater level of control over the visualisation than was ever possible before in a web or mobile application.

The technology to help us build interactive dashboards showing live data, or animating through our time series data, is there. We can easily do this in the browser and on the mobile devices – we have already illus-trated these scenarios with showcase samples on our website, as shown in the image.

So where is our next challenge? I believe it starts with the user, with showing your users these new capabilities and working with them to understand what data specifically they need visualised, and how, so they can see their data easily, make decisions quickly, and openly say - that’s a job well done.

Spice Up your Web and Mobile Applications with HTML5-based Data Visualisation

Infragistics is a global software company whose products & services elicit digital experiences across browsers, platforms, and devices. Infrasitics’ comprehensive UI suite, NetAdvantage Ultimate, empowers developers to create epic applications, using powerful grids & brilliant data visualisation. Along with solutions for .NET, Ultimate includes toolsets for HTML5/jQuery, iOS, Android, & Windows UI, plus Indigo Studio for interactive prototyping. Infragistics’ Services division adds UX expertise to ensure end-to-end delivery of successful projects. Infragistics’ business mobility applications – SharePlus, the universal mobile SharePoint app & ReportPlus, for mobile dashboarding and reporting – round out Infragistics’ portfolio of the industry’s most functional technology products.

www.qbssoftware.com/infragistics

by Kiril Matev, Technical Evangelist, InfragisticsWin! A nEW MICROSOFTSURFACE RT

About the Microsoft Surface RTMicrosoft Surface RT bridges the gap between work and play and provides you with the power of Windows, the productivity of Office Home & Student 2013 RT Preview and the joy of Xbox, music, movies and games. You will be able to access documents and files that have been saved to your SkyDrive cloud storage space for on-the-go data analyses or presentation amendments and once you reach your office, you will be able to pick up exactly where you left off. With the HD video out port, you will be able to share your holiday photos, music and videos on a large screen for true large screen media enjoyment.

HOW TO ENTER We want to continue to bring you the latest news and keep you abreast of current trends from the developer community. To ensure we deliver this directly to you and concentrate on those topics that are of most relevance for you and your organisation, please tell us what interests you the most and the sort of information you’d best like to receive.

All you have to do is complete a short online questionnaire before Friday 17th May 2013. To thank you for your time and support, we will enter all completed questionnaires into a draw to win a Microsoft Surface RT tablet.

www.qbssoftware.com/microsoftsurfaceCompetition entry will close on Friday 17th May, midnight. The winner will be announced shortly after via email.

Page 5: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

DeveloperDirect DeveloperDirect

98 www.qbssoftware.com

In the process of parallelising software, once developers have a structured approach for establishing a tuning methodology and workload, they are ready to locate opportunities for parallelism. Those opportunities correspond to specific bottlenecks in the seri-

al code that lend themselves to parallelisation. This paper begins by de-fining bottlenecks and discuss where they come from, before identifying three top strategies for locating them:

• Optimise serial code before looking for parallelism opportunities, to avoid distraction by serial inefficiencies, helping to ensure that you will focus on the right hotspots.

• Use the tools available to maximum benefit, including the Intel VTune Performance Analyzer and Intel Parallel Advisor Lite.

• If necessary, tag key pieces of code for redesign with algorithms that lend themselves to parallel processing on n-core systems.

What Are Bottlenecks?It’s important to know what performance bottlenecks are and the char-acteristics of bottlenecks that can be addressed using software mul-ti-threading. The first order of business is to establish the difference between a hotspot and a bottleneck:

• A hotspot is a place where the processor spends a lot of time, which can be measured using analytical tools during the performance tun-ing process. Since a lot of time is spent on these sections of the code, it stands to reason that shortening the amount of time spent on them will speed up the overall operation of the code.

At the same time, however, it is also important to note that just be-cause the processor spends a lot of time in a certain operation, that doesn’t necessarily imply that the section of code is inefficient. It may simply be that a lot of work is being accomplished there.

• A bottleneck is an area of code that is a hotspot because of inefficiency; in this framework, therefore, some hotspots are bottlenecks, and all bottlenecks are hotspots. To put it another way, hotspots are potential bottlenecks, so identifying hotspots is a sound first step toward finding bottlenecks. Using this definition of a bottleneck effectively zeroes in on opportunities for optimisation.

The focus here is on bottlenecks whose inefficiency on multi-core hardware is because that code doesn’t take adequate advantage of hardware parallelism. Bottlenecks may also arise from inefficiencies in

serial code, and the relationship between those two types of inefficiency is discussed later. While we tend to think of hardware parallelism as being provided by multiple physical cores within a single processor, it is also useful for the sake of completeness to recognise two other common types of hardware parallelism:

• Intel Hyper-Threading Technology is a hardware feature that pro-vides the ability of a processor core to support two threads simulta-neously.

• Symmetric multi-processing is parallelism provided by the presence of multiple processors within a single system.

Opportunities for addressing bottlenecks using software multi-threading arise when processor-intensive code can be broken down into multiple tasks that can be accomplished simultaneously. It is important to keep in mind that some slow parts of applications do not lend themselves to parallelisation. For example, if the processor is not the rate-determining factor (such as when the processor has to wait for I/O operations or is memory-bound), parallelisation may not be a viable approach to optimisation.

Where Do Parallelisable Bottlenecks Come From?Now we are ready to turn our attention to more specific matters about what causes those bottlenecks and how to go about finding them. This discussion will lay the foundations for our top three strategies for identifying the best opportunities for performance improvements related to parallelism.

To start with what may be an obvious observation, bottlenecks that can benefit from parallelisation occur within single-threaded or procedural code. It may be slightly less obvious to point out that those serial por-tions may also occur within a larger application that is already mul-ti-threaded. This distinction is useful in considering parallelisation as an iterative process. The developer identifies the parts of an application where threading can benefit overall performance the most and applies threading there first. At that point, the application is part parallel and part serial, where some of the serial portions may also lend themselves to threading in the future.

Given this understanding of the typical multi-threaded application, the task of identifying bottlenecks is finding places where missed opportu-nities for parallelism exist. Examples of such opportunities, which are discussed in more detail below, include the following:

• Processor-intensive tasks that could be performed in parallel but aren’t. Missed opportunities in this category include operations such as updating a user interface at the same time as performing some type of back-end processing and are sometimes known as “task-level parallelism.”

• Data sets that could be processed in parallel but aren’t. Missed oppor-tunities in this category include operations such as converting multi-ple database records to a different format such as a comma-delimited file and are sometimes known as “data-level parallelism.”

As a rule of thumb, looking for these design patterns as early in the de-sign process as possible is best. Identifying these opportunities before initial coding is ideal, since it can help to prevent the need for redundant programming work. That said, it is more usual to identify opportunities for parallelism throughout the software lifecycle.

The Top Three Strategies for Addressing Parallelisable BottlenecksSo far, we’ve laid the theoretical foundations for identifying parallelism opportunities. We have discussed what bottlenecks are (and what they aren’t), as well as what types are good candidates for performance im-provement by means of parallelisation. We have also covered common issues that cause those bottlenecks, as well as some of the concepts that underlie looking for them.

We now turn to the strategies themselves, with an eye toward helping you create a process for implementing parallelism as simply and effec-tively as possible. These three strategies are not exhaustive, but taken in order, they provide a sound basis for identifying key opportunities in your code to implement software multi-threading.

Strategy One: Optimise Serial Code Before Looking for Parallelism Opportunities

Since finding the best opportunities for parallelisation depends on find-ing parts of the application where the processor spends the most time, it stands to reason that you must first minimise the effect of serial ineffi-ciency. If you inadvertently focus on places where the processor spends more time than it should simply because the serial code is sub-optimal, you will have an inaccurate picture of parallelisation opportunities.

Another way of looking at the same concept is that, if serial optimisation changes the parts of the application where the processor spends the most time, you will necessarily look at different pieces of code to find parallel-isable bottlenecks. A well-optimised serial application provides a strong foundation upon which to base your parallelisation efforts. As a corol-lary to this, being as familiar as possible with the operation of the serial algorithms will be helpful as you identify parallelisation opportunities, as well as build the threaded versions.

Strategy Two: Use the Tools Available to Maximum Benefit

While a theoretical understanding is a prerequisite for identifying op-portunities for parallelisation, a variety of programming tools exist to help. Judicious use of these tools helps make those identifications more accurate, as well as improving the efficiency of the process. They are therefore invaluable in improving the quality of the threaded software, as well as containing the investment of time and effort required.

Intel VTune Performance Analyzer is designed to provide profiling of applications that rapidly identifies hotspots. The tool outputs a visual display that shows how the execution path travels through the code, al-lowing multiple views where a programmer can drill down to the spe-cific piece of code responsible for specific behaviours. Using the VTune environment, development teams can easily see where the processor is spending the most time, which is very valuable in establishing opportu-

nities for optimisation of both serial and parallel code. It also integrates with Intel Thread Profiler, which helps visualise the operation of threads and the inter-actions between them, so developers can see where imbalances exist within an ap-plication’s threading model.

Intel Software Development Products in general are designed with parallel software in mind. While discussing the full spectrum of those tools is beyond the scope of this paper, the reader should note that those tools address the full software lifecycle. In addition to helping find opportuni-ties for multi-threading, they aid in threading implementation, tuning, and troubleshooting.

Strategy Three: If Necessary, Tag Key Pieces of Code for Redesign

When analysing code for parallelisation opportunities, it’s also neces-sary to keep an eye out for design aspects of the programming that don’t lend themselves to parallelisation. The reasoning behind this strategy is fairly simple. Serial code is designed with the intention of completing a set of tasks in succession, one after the other. Parallel code identifies pieces of work that are independent of one another, so they can be done simultaneously.

To create a set of steps that can be completed in parallel, it may be nec-essary to break the work up differently than in the serial code. There are various techniques for doing so, which are collectively known as de-composition. The main ways of breaking work up for parallelisation are task decomposition and data decomposition. A brief discussion of each will introduce the concepts behind arranging data and work for parallel processing. Note that the goal here is not to discuss how to actually re-design algorithms, but simply to recognise some fundamental types of opportunities.

• Task decomposition (also known as “functional decomposition”) consists of identifying different tasks that can be carried out at the same time, each of which can be completed on its own thread. For example, a word processor might continually refresh the display to reflect the user’s work, perform background save and printing func-tions, and cross-reference each word of text as it is written against a saved dictionary list. A “master thread” would also be needed to coordinate the work of the other threads.

• Data decomposition consists of simultaneously performing the same task on multiple pieces of data. A classic example is applying a graphical effect to an image, such as lightening a photograph. Each pixel of the picture needs to have the same algorithm applied to it (calculating new colour information), and many can be completed simultaneously, provided that a master thread keeps track of the overall work.

Each of these types of decomposition requires a different approach to breaking up the work being performed by the code than the serial version, and in many cases, that will require a fundamentally different approach. Some caution is required here to ensure that the potential benefit is appropriate to the time and cost requirements of recoding. On the other hand, for serial portions of code that take a substantial amount of processor time, fundamental redesign is sometimes the best option.

ConclusionWhile parallelism is a key design precept, opportunities for threading can be found at any point in the application lifecycle. The concepts here will get you started.

Learn more about Intel tools: www.qbssoftware.com/DDINTEL

Identify Parallelism Opportunities with these Three Strategies

08456 580 580 | [email protected]

by Intel Staff

Page 6: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

DeveloperDirect

10 www.qbssoftware.com

DeveloperDirect

Develop with Pleasure

Developing outstanding apps for iPhone/iPad as well as for any other devices requires not only a creative mind and appropriate programming skills, but also reliable and intel-ligent tools. A smart integrated development environment

can save you a lot of time by performing routine tasks for you, but also prevents you from making mistakes or complicating your code.

JetBrains is known as the world’s leading vendor of smart developer tools, famous as creator of IntelliJ IDEA - an ultimate IDE for Java de-velopers, ReSharper – an irreplaceable productivity tool for Microsoft Visual Studio, and many other IDEs and team tools. Now, all the expe-rience, knowledge and craving for utmost productivity put into these top-notch tools have also been applied to Objective-C, allowing to create an intelligent Objective-C IDE called AppCode.

As you might have guessed, AppCode focuses on developer productivity and code quality. Naturally it features tight interoperability with Xcode and integration with best development tools. AppCode comes with well thought out and convenient code navigation and code completion, on-the-fly code analysis with quick-fix suggestions and better code refac-torings. you can open and create Xcode projects and run your app on an iOS device or in a simulator.

AppCode shows professional approach when handling your code due to its expert coding assistance. When completing your code it gives you more precise suggestions by taking into account the context you are currently in and the surrounding code. It also helps you avoid unnec-essary, mechanical typing by providing a set of Live Templates and a vast variety of code generation options. Moreover, AppCode can help you improve your code by suggesting various intention actions which are also extremely useful when practicing intentional programming and Test Driven Development (TDD).

AppCode constantly keeps an eye on the quality of your code. No need to run additional tools: all errors and warnings are shown right in the editor. And for most of them, the IDE suggests a quick fix.

It is important to be able to easily improve code design as it evolves with time. AppCode comes with a solid set of reliable code refactorings to help you with that and to make sure any code transformations are easy, safe and painless.

Efficient project code navigation is crucial — not only when you re-search someone else’s code but your own as well, especially as the project grows bigger. It is essential to have your hands free and to be able to easi-ly navigate from a method to its declaration or any of its usages, through classes hierarchy or from one file to another, to jump to any file, class, or symbol in your project in no time, or to see all usages of a symbol in a dedicated view. Real usages, not text matches.

The above describes just the tip of the iceberg of AppCode’s features as a code editor. However, as a full-fledged IDE, it surely provides all the things you need from the environment. Every serious developer under-stands the importance of an advanced, though easy-to-use, debugger with a simple interface with Frames, Variables, Watches view, an option to debug with either GDB or LLDB, and the ability to evaluate any ex-pression or code fragment. The value of tests needs no explanation, it is essential to be able to run/debug OCUnit tests with ease, and AppCode allows just that. Not only can you run all tests, but a single test as well.

AppCode provides out-of-the-box integration with the major version control systems such as Git, Mercurial, Perforce, Subversion and CVS allowing to perform most of the tasks automatically. Moreover, Local History helps you to track changes between commits and recovers your codebase when needed.

At some point you will probably want to extend your application beyond Objective-C, and you’ll be pleasantly surprised to know that AppCode is a powerful code editor not only for Objective-C but also for a variety of other programming languages, such as C++, XML, XPath, JavaScript, HTML and CSS.

Learn more about AppCode: www.qbssoftware.com/APPCODE

General IDE look with the new popular UI theme called Darcula.

by Maria Khalusova, Product Marketing Manager, JetBrains

CHOICE • EXpEriEnCE • rESpOnSE • SErViCE

YOUR FIRST CHOICE FOR TECHNICAL SOFTWARE

SEE OUR PRODUCT SELECTION FROM PAGE 17

We make it happen

“Excellent, Excellent, Excellent serviceI’ll highly recommend your company.”

We provide independent, impartial advice and build on over 25 years logistical experience to provide solutions to meet your requirements.

QBS Software is a renowned supplier of a wide range of software to developers and IT professionals who appreciate expert advice and a responsive service.

We promise to always go the extra mile and provide a fast, friendly impartial service that earns your loyalty and trust.

Keys to our success:

Certified with hundreds of software publishers.

Comprehensive product range with over five thousand products.

Help manage the maintenance of software licences and subscriptions.

Software delivered to meet your service level.

Friendly, easily reachable service.

Free pre- and 90 day post-technical advice.

Responsible Account Managers providing a dedicated service.

Whatever you need, we can find.

Robin

08456 580 580 | [email protected] 11

“WOW, painless & easy - why aren’t all software companies like yours? Thank you for your help & for giving direct phone number of someone to help if I get stuck.” - Anita

“Wow, what can I say - fantastic customer service and many thanks for helping resolve his issue.” - Steve

“Thank you very much for looking after us and I very much look forward to working with you in the future.” - Graham

“Wow!! You guys are really good. You always make it happen!! Thank you guys” - May

Page 7: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

12 www.qbssoftware.com

DeveloperDirect DeveloperDirect

13

I’m an old Clipper hack. I got into computing back in the 80’s and had a spell working in product marketing. I can remember trying out a mouse pre-Windows on an old but interesting product called Framework – bit like rubbing your tummy and patting your head

at the same time. My background is a combination of high level pro-gramming and technical marketing.

QBS internal systems have evolved over many years pretty firmly based on the old adage “if it ain’t broke, don’t fix it”. I also quite like “Keep it simple, stupid” and “Don’t re-invent the wheel”. Today, at the core of our systems is Microsoft SQL Server. I love it. We have survived work-ing with DBFs, Btrieve and Lotus Notes! MSSQL is a Godsend – I love writing SQL scripts and if I need help everybody on the planet is using it. Since 2002 we have been using Microsoft Dynamics Navision (Nav) as our accounting system and to some extent as an application platform. We actually took it on just before Microsoft bought it – great minds think alike.

We use Visual Studio in four areas: to develop and maintain our web-sites; to develop COM components to augment functionality in Nav; to create standalone applications some for EDI with our suppliers and customers; to create reports running in SQL Server reporting services.

Websites: ASP.NET, AJAX, CSSWe currently maintain four websites: QBSSoftware.com, QBSD.co.uk, Quickreport.co.uk and an intranet for internal use. They are all writ-ten in ASP.NET using VB, HTML and CSS. We use Ajax to allow page changes based on web user input without a page refresh. The back end is Microsoft SQL Server, accessed mostly through stored procedures. These contain criterias that can be changed in Nav to control which pub-lishers, products, prices and other content appear on the websites. Most web content is held in raw HTML in text fields in SQL Server and can be edited using a COM component in Nav.

QBSSoftware.com

Our main web site contains functionality developed in ASP/VB.NET to authorise credit card payments and automatically fulfils electronic orders. The payment processing part is handled by communicating via XML with our payment provider Secure Trading. Once payment has cleared we fulfil orders by combining software licence numbers with download instructions from separate SQL tables into an email to the online purchaser. In both cases we have COM components developed in Visual Studio that run as Automation Objects in Nav to perform the same functions.

Of the various sub-systems that we

have added, perhaps the most interesting is seminar booking which has evolved into a questionnaire system as well. In Navision we created tables and forms to allow seminar details and seminar attendees to be added. In fig. 2 you can see questions being added where the type of response is selected from a dropdown. The text added populates the various labels required by different types of questions.

On the web site we generate a form in ASP.NET and allow people to register online for the seminar. From the question data stored with the seminar record in the Nav SQL table we can generate the necessary input controls on the form, i.e. text, radio button, checkbox or dropdown list. In fig. 3 you can see our code that generates a radio button control. The radio button list can be vertical or horizontal and the different radio button labels are stored in a text field delimited by semicolons.

Quickreport.co.uk

QBS publishes this set of Delphi/C++ Builder components. We use the Quickreport.co.uk website mainly as an information/download site for the many versions of QR that we continue to support. Most sales go either through resellers who buy from our distribution arm, QBSD or via the direct arm QBS Software’s website.

Most pages on Quickreport.co.uk are held in the SQL table where we store our news, events and special offer pages for the QBS Software web-site. All pages are edited from inside Nav using our COM component. Most pages on Quickreport.co.uk are generated via a single routine using a tableadapter shown in figure. 4.

HTML QuotationsWe recently wrote a COM component that sends quotations as an HTML email. Written in VB using the Outlook.Application class (see fig. 5). The .Dislpay function opens the email up in the client Outlook, allowing additions before sending. It turned out somewhat easier than I expected when I started. Took a while getting the quotes just right so we got fed up having to re-install on each client machine and now just shell out of Navision and run it as an .EXE file passing necessary parameters. A lot easier to maintain.

Price Feeds and Daily Order ReportsOver the years we have had many requests for various data feeds. This could be a price feed, a daily order report, shipping information or in-formation on products. Generally these requests come from our larg-er customers. They may need to be delivered by ftp upload, download, email or some other method. They may need to be csv, txt or xlsx. And everybody wants them at different times and frequencies. What’s been quite demanding is how different people want the information laid out in different ways.

We got round this complexity in two ways: using a specific stored proce-dure in SQL for each datafeed to select the data and columns required; creating an application in Visual Studio that runs as a Windows service. Every hour our OneFeed program reads through the required datafeed records in a SQL table maintained in Nav and checks another table, where completed datafeeds are logged. As a service we added a “test-harness” project to the solution in VS to allow testing with the debugger. I found this onerous so just added a “debugStartup“ form, changed the project to a Windows Form Application and test it that way. The only recent addition here was to create a version that despatches a datafeed on demand from a button press in Nav.

Creating Reports in Visual Studio A good few years ago we developed a plethora of stored procedures that created all sorts of reports and emailed them as required or on a schedule internally or externally. They could be reporting web sales to a publisher or identifying products that are selling well. These were im-possible to maintain: so complex. They have now all been redeveloped in SQL Reporting Services, making them maintainable, in many ways more flexible and certainly prettier.

At the core of any report are SQL select statements that grab the data from the database. I am comfortable writing select statements, therefore reporting is pretty fast and easy. The abilities to access multiple datasets, display data graphically in charts and, where necessary, embed code into reports means we can create sophisticated dashboards with drilldown into further reports.

The PresentWe currently send order confirmations out as PDF attachments to emails. But we’ve just been asked to send them out with all the details in the body of the email as HTML. Haven’t we already done that? Appar-ently not. We should be able to add the capability to our existing VB app that sends out quotes. Nice easy one.

Figure 1. Adding questions to a seminar in Nav.

Figure 3. VB code to create radio buttons on the web form

Figure 5. HTML email in VB

Figure 4. Quickreport.co.uk

by Skye Quin, Director, QBS Software

08456 580 580 | [email protected]

Keeping Our Show on the Road

Figure 2. QBS Software website homepage

Talking about our internal systems

Page 8: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

14 www.qbssoftware.com

DeveloperDirect DeveloperDirect

15

What devices do you use? A smart phone and a tablet? A smart phone, tablet and a laptop? Most of us have more than one way of getting online and accessing information.

As we become increasingly used to working with a multitude of devices, we increasingly expect those devices to work together. If I create a docu-ment at my desktop computer in the office, I want to be able to edit it on my tablet on the train home, or even from my smart phone.

Document formats have been getting easier to transport from one plat-form to another for years, but new devices, and the operating systems that run on them, is making sharing documents a challenge again.

Finding a SolutionHow can you make sure that your employees can work effectively with different document formats whatever device they’re using?

One solution is to use a bespoke editor, an online tool that lets them work with documents wherever they have an internet connection. But why start again? There are already lots of great applications for word processing, spread sheet management, presentation creation and project management that your employees know how to use.

Efficient ConversionConverting documents between formats that are supported on different platforms is more efficient. That lets your employees start a document using Microsoft Word on Windows in the office and finish it later on an Android or Mac tablet, using, for example, LibreOffice.

Let Aspose help. Aspose creates components for developers that encap-sulate our file format expertise. Instead of learning the ins and outs of document formats like Microsoft Word DOCX and Adobe Acrobat PDF, use Aspose components in your applications to handle any file format operations. Aspose components provide powerful and easy-to-use file format creation and manipulation features that save you time and liber-ate you from Microsoft Office Automation.

Aspose’s components for .NET and Java extend your application’s file format capability beyond conversion, giving you control over format-ting and document creation so that you can automate document crea-tion, report generation, slide decks and much more. With components specifically aimed at working with OCR, barcodes, emails and imaging, as well as components for working with Microsoft Word, Excel, Power-Point, Project and Visio files, Aspose provides a full set of powerful file format components. As well as creating components for .NET and Java, Aspose delivers SharePoint components, Reporting Services extensions and JasperReports rendering extensions.

The Other Side – the Customer PerspectiveIt’s not just employees that use a variety of devices. your customers do too. Delivering documents that look the same and that can be accessed from whichever device they’re on is important. HTML, XML and PDF

are all output formats that customers can access on most devices.

As well as considering the format, think about the function of the data or document you’re sharing. A symbol, like a barcode, can be read (that is scanned) from a phone screen, a tablet, or a piece of paper. Likewise, they can be read by devices, which is why QR codes are so popular.

Due to this versatility, barcodes are used in all kinds of applications, from ticketing systems, to document management systems and stock management systems. As long as a device can display an image at a good enough resolution, the barcode can be read and the data encoded in it can be accessed. Aspose.BarCode lets you work with barcodes in applications and reports.

Delivering documents to a variety of devices continues to present a chal-lenge and it is one that we cannot ignore.

Delivering Documents Across Devices

Competition!We’re giving away a licence for Aspose.Total, featuring all Aspose products for the platform of your choice.. Register today for a chance to win Aspose.Total. Register befor Friday 6th May 2013 to be in wit a chance to win. Good Luck!

www.qbssoftware.com/asposetotalThe winner will be announced shortly after via email.

Your File Format ExpertsIf you have not already built a mobile app then it is most likely that you will in 2013. Once you know what your app will do then the first question is what platforms are you going to support? Perhaps you

will focus solely on iOS and so just use the tools that Apple provides. However, you may choose to support more than one platform and that raises a significant issue. Let’s say you choose to have iOS and Android versions of your application. If you use XCode for one and the Android SDK for the other then you essentially have two completely separate apps that may provide the same functionality but double the development time. Later you may add in a third platform and then you have another app built on another technology stack. Suddenly the whole exercise can become time and cost prohibitive. So, is there a more efficient way?

The answer is yes. you may already have come across technologies such as PhoneGap or Titanium which use a single (usually HTML5/CSS/Ja-vaScript) to create apps that can be deployed to multiple device plat-forms. This means only one codebase and one technology stack that you need to learn and manage. But there are some important points to consider with this approach: this article will help you to address them.

This article focuses on developing for mobile phones however many of the principles could be applied to general device development including tablets. However, tablet apps tend to be much more feature rich with larger code bases and the argument for native development can be more compelling.

Cross-platform UXSpend a few minutes comparing an iPhone and a BlackBerry and you quickly see that the native interface experience is very different. Users of different devices become familiar with the way in which they interact with them and the device-specific features available. For example, Black-Berry’s RIM key which opens a menu on screen or Windows Phone’s unique Panorama. Tools such as PhoneGap and Titanium allow you to deploy a single codebase on multiple platforms however a single UI will most likely not provide a good user experience and users may reject your app. Not only that, but some app stores such as Apple’s may reject your app because it does not meet their UI guidelines.

Fortunately, there are solutions available. To start, it is best practice to separate your code and presentation layers as much as possible. This al-lows you to potentially have different UI for different target platforms whilst sharing code across them. your chosen framework, IDE and pro-ject structure will impact how easy this is to develop and deploy. IBM Worklight, for example, includes this capability in its Studio product whereas if you’re using PhoneGap and a basic HTML editor there is a bit more work for you to do. If you get it right, though, you can have multiple device specific UIs but a single scripted codebase.

Once you have decided to provide a different UI for each platform the next challenge is creating that UI so that it matches the native experi-ence. Recreating Apple’s UI in HTML and CSS is a serious amount of work. Again there is help available, such as KendoUI which provides iOS, BlackBerry and Android UI out of the box. Of course if you want to support Windows Phone then you will need to do some more work or find another toolkit.

Device FeaturesWhen working across platforms it is not just the OS that needs consid-ering but also the physical hardware of different devices. This includes screen size, resolution and the availability of certain features. Today’s

handsets have an al-most ubiquitous set of capabilities such as GPS and a camera; however, you may have users with older models where features are either not available or they work differently. An example is GPS, which all of your target devices may have but its accuracy and bat-tery usage might be very different. The manufacturer websites provide detailed information on each device, so make sure to check.

PerformanceJust as different devices have different hardware capabilities they will also have differing performance levels. The memory, CPU and data storage available can vary widely: an iPhone5 is going to perform much faster than a two year old BlackBerry. Therefore, the user experience can be very different and you should allow for this. For example, a feature of your app may run almost immediately on one device but take several seconds on another and so you should include some form of visual feed-back to let the user know that something is happening.

When choosing frameworks and toolkits to work with, performance should be an important consideration. JQuery Mobile is very smooth on the latest BlackBerry but on an older Android device it can be slug-gish. Of course, it is always possible to target only the very latest devices but that can reduce your potential user base and in the case of new OS versions such as BlackBerry’s forthcoming BlackBerry 10, you cannot simply ignore all current BlackBerry users just to make use of the very latest OS and hardware.

Devices versus SimulatorsTo really experience an app you need to experience it on the physical device. Simulators are great for development but at some point you need to get your app onto a handset. It is not just the tangible experience of handling the device and using your fingers to manipulate the interface which can often throw up usability problems but devices can behave very differently from simulators. A good example of this is the acceler-ometer in the Windows Phone 8 simulator. Whilst it is great to have this feature when developing, you will find that the experience is significant-ly different when you get the app on an actual device. At the same time this can be challenging because buying every available handset is expen-sive but you can look on eBay or Amazon for previously owned versions.

ConclusionBuild once, run everywhere is absolutely achievable in today’s device world and using technologies such as HTML5 you can build apps from a single codebase that provide the user experience of native apps. This allows you to reach a wide user base whilst minimising development time and costs.

One App Fits All

Clive HowardClive has over 15 years’ experience in the web industry and is a founding partner at User Experience consultancy Howard Baines. He has delivered projects for all of the major mobile and device platforms including most recently Windows 8.

08456 580 580 | [email protected]

by Clive Howard

by Simon Bell, Product Specialist, Aspose

Page 9: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

DeveloperDirect DeveloperDirect

1716 www.qbssoftware.com 08456 580 580 | [email protected]

ComponentsImagXpress Accusoft232460 Standard (.NET) - Single Licence v12.x (ESD) £653.07 232464 Professional (.NET) - Single Licence v12.x (ESD) £1,306.77

Direct Oracle Access Allround Automations106184 Standard Licence v4.x (ESD) £84.91

Aspose.BarCode aspose202630 for .NET - 1 Dev Small Bus. Subscription Licence v4.x (ESD) £373.01

Aspose.Cells aspose211959 for .NET - 1 Dev Small Bus. Subscription Licence v7.x (ESD) £622.08

Aspose.Email aspose216953 for .NET - 1 Dev Small Bus. Subscription Licence v1.x (ESD) £373.01

Aspose.PDF aspose222860 for .NET - 1 Dev Small Bus. Subscription Licence v7.x (ESD) £497.54

Aspose.Pdf.Kit aspose211962 for Java - 1 Dev Small Bus. Subscription Licence v4.x (ESD) £497.54

Aspose.Slides aspose216955 for .NET - 1 Dev Small Bus. Subscription Licence v6.x (ESD) £497.54

Aspose.Tasks aspose222793 for .NET -1 Dev Small Bus. Subscription Licence v4.x (ESD) £622.08

Aspose.Total aspose211963 for .NET - 1 Dev Small Bus. Subscription Licence (ESD) £1,556.14

Aspose.Words aspose216956 for .NET - 1 Dev Small Bus. Subscription Licence v11.x (ESD) £622.08

Xtreme SuitePro Codejock Software205753 1 Dev (ActX) + 30 Day Maint Subs v2011 Vol 2 (ESD) £383.86

Xtreme ToolkitPro Codejock Software205765 Pro 1 Dev Licence + 30 Day Maint Subs v2011 Vol 2 (ESD) £383.86

ComponentOne Studio Enterprise ComponentOne217961 Subscription + Standard Support v2012 v3 (ESD) £779.92

ComponentOne Ultimate ComponentOne217965 Subscription + Standard Support v2012 v3 (ESD) £1,040.76

ComponentOne Studio for Compact Framework ComponentOne231418 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for iPhone ComponentOne217312 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for Windows Phone ComponentOne217372 Subscription + Standard Support v2012 v3 (ESD) £49.56

ComponentOne Studio for WinForms ComponentOne217324 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for WPF ComponentOne217378 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for Silverlight ComponentOne217348 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for ASP.NET Wijmo ComponentOne217336 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for LightSwitch ComponentOne224014 Subscription + Standard Support v2012 v3 (ESD) £457.51

ComponentOne IntelliSpell ComponentOne224026 Single Licence v2012 v3 (ESD) £101.73

ComponentOne OLAP for Silverlight ComponentOne217402 Subscription + Standard Support v2012 v3 (ESD) £779.92

ComponentOne OLAP for Winforms ComponentOne217276 Subscription + Standard Support v2012 v3 (ESD) £779.92

ComponentOne Studio for Entity Framework ComponentOne217390 Subscription + Standard Support v2012 v3 (ESD) £466.90

ComponentOne Studio for ActiveX ComponentOne217300 Subscription + Standard Support v2012 v3 (ESD) £466.90

XAP Optimizer ComponentOne217414 Single User Licence v2012 v3 (ESD) £258.25

DXperience Developer Express Inc233672 ASP .NET 1 Dev Lic. + 1 Year Subs (No Source) v12.x (ESD) £557.00

FastReport .NET Fast Reports Inc234964 Basic Ed. Single Licence + 1 Year Subs v2013 (ESD) £63.05

FastReport .NET Fast Reports Inc234965 Basic Ed. Team Licence + 1 Year Subs v2013 (ESD) £190.42

FusionCharts XT InfoSoft Global192130 Personal Licence v3.x (ESD) £126.06

MobileAdvantage Infragistics230521 Subscription + Source Code v2012 Vol 2 (ESD) £388.25

NetAdvantage ASP.NET Infragistics230565 Subscription + Source Code v2012 Vol 2 (ESD) £558.91

NetAdvantage for .NET Infragistics230567 Subscription + Source Code v2012 Vol 2 (ESD) £724.45

NetAdvantage for SharePoint Infragistics210821 Subscription Renewal (ESD) £2,786.02

NetAdvantage for Windows Phone Infragistics230561 Subscription Licence v2012 Vol 2 (ESD) £110.08 230562 Subscription Licence + Priority Support v2012 Vol 2 (ESD) £110.08

NetAdvantage SilverLight Infragistics230579 Subscription Licence v2012 Vol 2 (ESD) £558.91

NetAdvantage Ultimate Infragistics230541 Subscription + Source Code v2012 Vol 2 (ESD) £1,057.24

NetAdvantage Windows Forms Infragistics230577 Subscription + Source Code v2012 Vol 2 (ESD) £558.91

NetAdvantage WPF Infragistics230563 Subscription Licence v2012 Vol 2 (ESD) £558.91

Janus WinForms Controls Suite Janus Systems233662 1 Developer Licence v4.x (ESD) £574.00

Raize Components Raize Software Inc210176 VCL Edition - Single Licence v6.0 (ESD) £244.06

Resco MobileForms Toolkit Resco215862 Windows Mobile Ed 1 Licence + 1 Year Subs v2012 (ESD) £518.88

Resco MobileForms Toolkit Resco215866 Windows Phone 7 Ed 1 Licence + 1 Year Subs v2012 (ESD) £389.16

Resco MobileForms Toolkit Resco215870 iOS Edition 1 Licence + 1 Year Subs v2012 (ESD) £389.16

Resco MobileForms Toolkit Resco215874 Android Edition 1 Licence + 1 Year Subs v2012 (ESD) £389.16

Resco MobileForms Toolkit Resco215878 Universal Edition 1 Licence + 1 Year Subs v2012 (ESD) £778.34

This is a selection of just some of the software we offer to developers. Please consult our web site for comprehensive listings. Prices, correct at time of going to press, are subject to change. Exclusive of VAT. ESD = Electronic Software Delivery

WRITE, SAVE, COMPILE, LINK, CRASH… Ah, for the good old days!

I began programming back in the days when Boy George was a style icon, a portable computer was the size and weight of a suitcase filled with bricks and the last word in programmer productivity was The Lattice C compiler.

At the time, Lattice C had just been released for what was then the hot-test thing in desktop computers – the IBM PC. I bought my first PC (an ‘IBM-compatible’ Olivetti M24) in 1983. It was a top-of-the range model with a massive 640K of memory, 360K floppy drive and a 10Mb hard disk. I decided to teach myself how to program the damn thing and, having quickly become frustrated by the limitations of the GW-BASIC interpreter supplied with the PC, I decided I needed to invest in a ‘prop-er’ programming language. Some programmer friends informed me that C was where it was at. I persuaded someone to show me Lattice C in action. This is what I saw:

First you had to start up a ‘line editor’ called Edlin. With Edlin you en-tered one line of code at a time but you couldn’t do anything fancy such as page-up and page-down or copy and paste. When you’d written some code you saved it to disk. Then you compiled it. Then you fixed the errors. Then you saved your code again. Then you linked it (plenty of time for a few cups of coffee at this point). Then you fixed some more errors. Then, if you were lucky, you might be able run it. Then, in all probabil-ity, your program would crash. Then it’s back to square one. By this stage, I was starting to think that programming might not be for me after all.

And then I discovered Borland’s Turbo Pascal. It was love at first sight. Not only was Turbo Pas-cal cheap – I think I paid about £35 for a copy, which was about a tenth the price of its nearest competitor – but it was also a lot more than just a compiler: it had its own full-screen editor from which programs could be compiled at the press of a key. If there was a syntax error, the compiler stopped and highlighted the problem so you could fix it. In 1983, this was cutting edge stuff!

It was to be another twelve years before Borland produced their next re-ally great Pascal product with the release of Delphi for Windows in 1995. For its time, Delphi was a fantastic product with a superb integrated en-vironment including a visual designer, editor, compiler and debugger. Armed with Delphi, the Pascal programmer was once again able to look down upon those poor benighted souls labouring away with inferior tools for other languages.

For those of us who had grappled with the horrors of the commandline coding in the ‘80s, the slick integrated environments provided by Delphi and Visual Studio in the ‘90s clearly showed the way that all program-ming would be done in the future. Never again would anyone have to

do battle with the pesky commandline. Or so I thought.

So when I first started learning to program Ruby, about seven or eight years ago, I was shocked – nay, gobsmacked! – to discover that most Ruby programmers not only run programs from the commandline but many of them actively discourage the use of IDEs. They say that IDEs are ‘bloated’, that they ‘get in the way’. Visual design tools and integrated debuggers are frowned upon. Suffice to say, I don’t share that view. My love/hate affair with the commandline ended 30 years ago and I have no desire to start up a new relationship. Which brings me to the new love of my life – the Raspberry Pi (for more info see: http://www.raspberrypi.org). This is an amazing little computer. The size of a deck of playing cards, it costs around £25 and includes 512Mb of RAM, USB, HDMI and audio connectors. It is booted into Linux from a small SD card which you have to buy separately. you will also need a keyboard, mouse and monitor (or TV screen). It’s a great little thing

for anyone who likes to tinker at computing or experiment with robotics. The trouble is, the development tools for its default programming languages, such as Python and Ruby, have the horrible feeling of going back to the ‘80s.

Once I’d got my Raspberry Pi set up, the first thing I wanted to do was get a proper, mod-ern IDE for it. It didn’t take me too long to find the per-fect thing. It’s called Lazarus and it is a nifty visual devel-opment environment for the Free Pascal compiler. It may

not have all the bells and whistles of Delphi but it comes pretty close. It lets me design user interfaces by dragging and dropping controls, then I just add some code and I’m ready to debug or run my program. The version of the Object Pascal language supported by Lazarus is closely compatible with Delphi and, as an added bonus, I can run Lazarus on Windows or Mac OS X in addition to Linux.

The day I go back to the commandline is the day Boy George becomes a style icon again. Nope, folks, it ain’t gonna happen!

Back To The Future

Huw Collingbourne is Director of Technology at SapphireSteel Software (www.sapphiresteel.com), makers of the ‘Amethyst’ and ‘Sapphire’ IDEs for programming Ruby and ActionScript in Visual Studio. For over 30 years, he has programmed in languages ranging from Smalltalk to C#

by Huw Collingbourne

Product Selection

Page 10: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

18 www.qbssoftware.com

DeveloperDirect DeveloperDirect

1908456 580 580 | [email protected]

Delux QBS Publishing107473 Standard v2.X Licence (ESD) £150.00

PrimalScript Sapien Technologies218855 Single Licence v2012 (ESD) £214.16

AutomatedQA AQTime Pro SmartBear Software192244 1 Named User Licence + 1 Year Maint v7.x (ESD) £383.60

AutomatedQA TestComplete SmartBear Software221776 Standard 1 Node-Locked Licence + 1 Year Maint v9 (ESD) £639.76

ED for Windows Soft As It Gets109431 1-4 User Licence (Per Licence) v4.x (ESD) £87.52

Systran Systran sa204660 Home Translator - Euro Pack v7 (ESD) £65.49

iDEsPL/SQL Developer Allround Automations208640 1 User v9.x (ESD) £142.20

C++ Builder Embarcadero226351 Starter New User vXE3 (ESD) £132.30

Delphi Embarcadero226457 Starter Named User vXE3 (ESD) £132.30 226459 Professional Named User vXE3 (ESD) £665.23

RAD Studio Embarcadero226530 Professional Named User vXE3 (ESD) £930.77

RadPHP Embarcadero208297 Named User vXE2 (ESD) £199.38

AppCode JetBrains237999 Personal Single User Licence v2 (ESD) £69.13 238000 Commercial Single User Licence v2 (ESD) £139.38

IntelliJ IDEA JetBrains233973 Personal Single User Licence v12.x (ESD) £139.38 233632 Commercial Single User Licence v12.x (ESD) £350.11

PyCharm JetBrains233983 Personal Single User Lic + 1 Year Upgrade Subs v2.x (ESD) £69.13 233984 Commercial Single User Lic + 1 Year Upgrade Subs v2.x (ESD) £139.38

RubyMine JetBrains234726 Personal Single User Lic + 1 Year Upgrade Subs v5.x (ESD) £69.13 234727 Commercial Single User Lic + 1 Year Upgrade Subs v5.x (ESD) £139.38

TeamCity JetBrains233996 Ent. Server 1 User Lic + 1 Year Upgrade Subs v7.x (ESD) £1,401.72 233997 Build Agent 1 User Lic + 1 Year Upgrade Subs1 v7.x (ESD) £209.62

WebStorm JetBrains237226 Personal 1 User Licence + 1 Year Upgrade Subs v6 (ESD) £34.57 237227 Commercial 1 User Licence + 1 Year Upgrade Subs v6 (ESD) £69.13

MSDN Subscriptions Microsoft232959 Operating Systems Subscription - 1 Year v2012 (CD/DVD) £701.24

Visual Studio 2012 Microsoft226566 Professional Edition Licence v2012 (CD/DVD) £501.10

Visual Studio 2012 MicrosoftPremium Edition Licence v2012 Available under licence agreement

Visual Studio 2012 MicrosoftUltimate Edition Licence v2012 Available under licence agreement

AutoMate BPA Server Network Automation212803 Std Ed Development Tools + 1 Year Maint & Supp v9 (ESD) £1,182.42

phpED NuSphere Corporation228207 Standard for Windows - Single Developer Licence v8.x (ESD) £75.53

Red Hat JBoss Enterprise Red Hat222446 Application Platform 16 Core Standard Subs 1 Year (ESD) £3,793.00 222458 Web Server 16 Core Standard Subscription 1 Year (ESD) £1,034.00

PowerBuilder Sybase104985 Powerbuilder Ent 6 Upg (while stocks last) v6 (CD/DVD) £499.00

NXJ Developer Unify (Gupta)158803 Professional Single User WIN v12.1 (ESD) £2,053.10

ReportBuilder Unify (Gupta)216689 Windows Single User v6.1 (ESD) £97.02

Team Developer Unify (Gupta)216694 Win32 Single Developer v6.1 (ESD) £2,445.10

Unify Q Unify (Gupta)181903 Windows Single User v1.0 (ESD) £289.10

Automise VSoft Technologies Pty206835 Pro Named User Lic + 1 Yr Software Assurance v4 (ESD) £149.71

CodeCharge Studio YesSoftware218956 Personal Ed Non-perpetual Lic (per user, per year) v5.0 (ESD) £85.87

Zend Guard Zend Technologies143382 Single Annual Licence + 1 Year Maintenance v5.x (ESD) £501.24

Zend Server Zend Technologies204144 1 Year Silver Support Subs cription (Windows) v5.x (ESD) £998.29

Zend Studio Zend Technologies212017 Pro / for Eclipse Licence + 1 Year Maintenance v9.x (ESD) £249.77

XML ToolsAltova UModel Altova228091 Basic Installed Users (1) v2013 (ESD) £100.28

Altova XMLSpy Altova228154 Professional installed Users (1) + 1 Yr SMP v 2013 (ESD) £395.54

Altova MissionKit Altova227965 Professional Installed Users (1) v2013 (ESD) £547.22

Stylus Studio XML DataDirect Technologies212369 Pro - 1 User Licence vX14 (ESD) £297.86

Liquid XML Studio Liquid Technologies237503 Developer Edition 1-4 Installed User Lics (Each) v2013 (ESD) £495.00

oXygen XML Developer SyncRO Soft223253 Professional 1-4 Licences (Each) v14.x (ESD) £218.24

Installation and Deployment AdminStudio Flexera214683 Standard + Silver Maint Plan v11.x (ESD) £2,192.85

AdminStudio Flexera214689 Professional + Silver Maint Plan v11.x (ESD) £4,886.64

InstallAnywhere Flexera231662 Standard Ed Single Licence + Silver Maint v2012 (ESD) £1,253.65

InstallShield Flexera220439 Express + 1 Year Silver Maint v2012 Spr. (ESD) £544.02

InstallShield Flexera220444 Professional + 1 Year Silver Maint v2012 Spr. (ESD) £1,832.23

Smart Packager Professional Scalable Software234430 Single User Licence + 1 Year Maint (ESD) £1,138.72

Smart Packager Professional Scalable Software234438 3 Pack Bundle + 1 Year Maint (ESD) £3,245.41

Chart FX Software FX Inc211047 Test Server Licence v7 (ESD) £506.71

Chart FX Extension Pack Software FX Inc211042 for VS 2010/2008/2005 - Test Server Licence v7 (ESD) £337.62

Chart FX for .NET Software FX Inc211039 Test Server Licence v6.2 (ESD) £506.71

Chart FX for COM Software FX Inc211037 Test Server Licence v6.2 (ESD) £450.35

Chart FX for Java Software FX Inc211045 Test Server Licence v7 (ESD) £563.06

Chart FX Gauges Software FX Inc211043 Production Server Licence (ESD) £337.62

Grid FX Software FX Inc211051 Test/Staggering Server Licence (ESD) £450.35

Studio FX Subscription Software FX Inc211034 Premium 1 Year (ESD) £761.84

TeeChart ActiveX Steema234227 Pro 1 Developer Licence + 1 Year Subscription v2012 (ESD) £277.14

TeeChart for Java Steema216121 Pro 1 Developer Licence with Source v2012 (ESD) £265.31

TeeChart for .NET Steema

217536 1 Developer Licence + 1 Year Subscription v2012 (ESD) £448.50

TeeChart for PHP Steema234232 1 User Licence with Source + 1 Year Subscription v2012 (ESD) £88.04

TeeChart Mobile Steema204353 Java for Android 1 User Licence + 1 Year Subs v2012 (ESD) £153.05

TeeChart VCL Steema234141 Standard 1 Developer Licence + 1 Year Subs v2012 (ESD) £58.50

WSyncfusion Essential PDF Syncfusion Inc216052 Single Licence (Binary) 1 Year Subs v2012 Vol 2 (ESD) £562.57

Syncfusion Essential Studio Syncfusion Inc216056 Business Intell Ed. Binary 1 Year Subs v2012 Vol 4 (ESD) £1,065.43

RadControls for ASP.NET AJAX Telerik219336 1 Dev. Lic with Subs & Priority Support vQ3 2012 (ESD) £659.54

RadControls for Silverlight Telerik219746 1 Dev. Licence with Subs & Priority Support vQ2 2012 (ESD) £659.54

RadControls for WinForms Telerik219750 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £659.54

RadControls for WPF Telerik219754 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £659.54

Telerik Reporting Telerik219761 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £395.45

Infopower and 1stClass Bundles Woll2Woll Software229885 Studio Bundle v2013 (ESD) £522.58

Xceed Ultimate Suite Xceed Software234487 1 Developer + 1 Year Subscription v2013 v1 (ESD) £781.59 234490 1 Developer + 1 Year Blueprint Subscription v2013 v1 (ESD) £1,107.26

Code ToolsCodeRush Developer Express Inc232503 1 Developer Licence + 1 Year Subscription v12.x (ESD) £155.00

PC-Lint Gimpel Software162050 Single Workstation v9 (CD/DVD) £241.29

UltraEdit IDM Computer Solutions218183 Standard 1 - 24 Users (Each) v18.x (ESD) £38.93

Document! X Innovasys203839 1 User v2011 (ESD) £293.02

Intel C++ Studio XE Intel226368 for Windows - Single Licence + 1 Year Support v2013 (ESD) £1,001.53 226372 for Linux - Single Licence + 1 Year Support v2013 (ESD) £1,001.53

Intel Cluster Studio XE Intel231265 for Windows - 1 Developer + 1 Year Support v2013 (ESD) £1,847.11 231268 for Linux - Single Developer + 1 Year Support v2013 (ESD) £1,847.11

Intel Parallel Studio XE Intel226388 for Windows - Single Licence + 1 Year Support v2013 (ESD) £1,439.98226392 for Linux - Single Licence + 1 Year Support v2013 (ESD) £1,439.98

Intel C++ Composer XE Intel226340 for Windows - Single Licence + 1 Year Support v2013 (ESD) £437.82 226361 for Windows - 1 Developer + 1 Year Support v2013 (ESD) £750.99

Intel Composer XE Intel226364 for Linux - Single Developer + 1 Year Support v2013 (ESD) £907.58

Intel Fortran Composer XE Intel226415 for Linux - Single Licence + 1 Year Support v2013 (ESD) £625.73 226419 for OS X - Single Licence + 1 Year Support v2013 (ESD) £531.77

Intel Math Kernel Library Intel226381 for Windows - Single Licence + 1 Year Support v11 (ESD) £312.55 226382 for Linux- Single Licence + 1 Year Support v11 (ESD) £312.55

Intel MPI Library Intel195250 for Windows 1 Seat Dev Kit +1Year Support v4.x (ESD) £312.55 195252 for Linux Single Seat Dev Kit +1Year Support v4.x (ESD) £312.55

Intel Threading Building Blocks Intel226395 for Windows Single Licence + 1 Year Support v4.x (ESD) £312.55

Intel Visual Fortran Studio XE Intel226422 for Windows - Single Licence + 1 Year Support v2013 (ESD) £1,189.44

Intel Inspector XE Intel226376 for Windows - Single Licence + 1 Year Support v2013 (ESD) £563.09 226379 for Linux - Single Licence + 1 Year Support v2013 (ESD) £563.09

Intel Integrated Performance Primitives Intel194132 for Windows - Single Licence + 1 Year Support v7.x (ESD) £124.64 194134 for Linux - Single Licence + 1 Year Support v7.x (ESD) £124.64

Intel VTune Amplifier XE Intel226334 for Windows + 1 Year Support v2013 (ESD) £563.09 226337 for Linux + 1 Year Support v2013 (ESD) £563.09

dotCover JetBrains233979 Personal 1 User Licence + 1 Year Upgrade Subs v2.x (ESD) £69.13233980 Commercial 1 User Licence + 1 Year Upgrade Subs v2.x (ESD) £139.38

dotTRACE JetBrains233967 Performance Profiler Pro Personal 1 User Licence v5.x (ESD) £209.62 233970 Memory Profiler Personal Single User Licence v3.5 (ESD) £103.70

PhpStorm JetBrains237611 Personal 1 User Licence + 1 Year Upgrade Subs v6 (ESD) £69.13 237612 Commercial 1 User Licence + 1 Year Upgrade Subs v6 (ESD) £139.38

ReSharper JetBrains233987 for VB.NET Personal Single User Licence v7.x (ESD) £103.70 233988 for C# Personal Single User Licence v7.x (ESD) £103.70 233990 Full Edition Personal Single User Licence v7.x (ESD) £139.38

mobileME Multi Edit Software Inc167079 Single User Licence v2008 (USB) £111.73

Multi-Edit Multi Edit Software Inc191918 1 - 49 Users (Per User) v2008 (ESD) £83.69

Product Selection

Page 11: prODUCTS • LiCEnSing • ArTiCLES • priZES DeveloperDirectftp.qbssoftware.com/public/qbs/developerdirect_issue2_online.pdf · The launches of Visual Studio 2012 and Windows 8

©2013, Intel Corporation. All rights reserved. Intel, the Intel logo, Cilk Plus, and VTune are trademarks of Intel Corporation in the U.S. and/or other countries. *Other names and brands may be claimed as the property of others.

Intel Cluster Studio XE 2013 combines proven cluster and performance pro�lingtools with advanced threading and memory correctness anaylsis to boost HPCapplication performance and reliability.

Industry leading Intel MPI Library: New levels of performance, scalabilityand �exibility for cluster applications on Intel platforms.

Intel C. C++ and Fortran compilers:Built-in optimisation technologiesand multi-threading support.

Intel VTune Amplifer XE and Intel Inspector XE: E�cient thread and memory analysis.

Intel Clik Plus and Threading Building Blocks: Support open, standard parallel programmingmodels.

www.qbssoftware.com/clusterstudio