DeveloperDirect - QBS Software Ltd
Transcription
DeveloperDirect - QBS Software Ltd
PRODUCTS • LICENSING • ARTICLES • PRIZES DeveloperDirect Modern Programming tools Spring 2013 Start Weather News Reviews Business DON’T MISS THESE Top Reads Visual Studio 2012 for Individuals and Teams........................... 4 Win a Microsoft Surface............................................................ 6 Spice Up Your Apps with HTML5............................................... 7 Parallelism Opportunities.......................................................... 8 Develop with Pleasure............................................................. 10 Keeping Our Show on the Road............................................... 12 One App Fits All....................................................................... 14 Win a Microsoft Surface! - Page 6 Delivering Docs Across Devices............................................... 15 Back to the Future................................................................... 16 www.qbssoftware.com 08456 580 580 | [email protected] We make it happen DeveloperDirect Delightful charts, gauges and maps 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. Spring 2013 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 Kothari Marketing Manager CONTENTS STAY IN TOUCH Professional Network Sign Up to our RSS Feed 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 Share Your Views with Us Watch Solutions in Action Like Us We are @qbsdevelopers 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 Contact Us Start adding ‘delight’ to your applications today! www.fusioncharts.com www.qbssoftware.com/fusioncharts Our Business hours are from Monday to Friday 08.30 hrs - 18.00 hrs GMT/BST Talk to humans, not an answer service. Customer Service Technical Marketing QBS Software +44 (0)20 8733 7108 [email protected] Sales Republic of Ireland +353 766 060 808 [email protected] Accounts Sales UK 7 Wharfside Rosemont Road Wembley, Middlesex HA0 4QB, UK Free UK Mainland Delivery (online orders only) +44 (0)20 8733 7171 [email protected] +44 (0)20 8733 7105 [email protected] Free Technical Advice www.qbssoftware.com +44 (0)20 8733 7102 [email protected] 08456 580 580 +44 (0)20 8733 7101 (International) [email protected] Buy in £, $ or € 3 DeveloperDirect DeveloperDirect Visual Studio 2012 Integrated Development Environment for Individuals and Teams of All Sizes C# SaaS by Andy Wigley, Technical Evangelist, Microsoft. .NET @qbsdevelopers Web development 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. Visual Studio 2012 Editions G etting 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 managing virtual lab testing environments, agile project management tools, peer code review workflows, automated user interface, web, performance and load testing, tooling to collect and analyse runtime diagnostic 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 Foundation Server access, agile project management tools and automated user interface testing and code coverage analysis. Developing Apps for Windows 8 It’s no secret that a new age of modern apps is here. With connected devices 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. The whole Visual Studio IDE has been streamlined to give a clear, uncluttered developer experience compared to earlier editions. When the time comes to test, you can test directly on your Windows 8 development PC, or you can use the built-in simulator that allows you to test your app in different orientations and on different screen sizes. “Independent developers can plug in from anywhere.” • 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 catalogue of Microsoft software products. 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 Development Visual 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. Summary Previously, most applications ran either on a server or on a desktop. Today, many other platforms are common; smartphones and tablet devices are becoming ubiquitous. Learn more about Visual Studio 2012: www.qbssoftware.com/VS2012 • Visual Studio 2012 Professional – Support for app development for web, desktop, cloud, server and Windows Store, rich debugging and unit testing. 4 Music 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. • Visual Studio 2012 Test Professional with MSDN – Toolset to support the needs of the software test professional. All editions, except the base Professional edition, offer connectivity to Visual Studio Team Foundation Server 2012. Team Foundation Server gives you enterprise-grade source code control and tools that enable operations staff and project managers to work more closely with the development 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 Store Cloud Development (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 previously did not want to invest in or maintain a local server the opportunity to take full advantage of the capabilities of Visual Studio Team Foundation 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. IDE 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. www.qbssoftware.com 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. “Visual Studio 2012 offers full support for source control, testing, code reviews and deployment.” 08456 580 580 | [email protected] 5 DeveloperDirect Win! DeveloperDirect A NEW MICROSOFT SURFACE RT Spice Up Your Web and Mobile Applications with HTML5-based Data Visualisation by Kiril Matev, Technical Evangelist, Infragistics H TML5 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 offlinecapable 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 rendered 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 sophisticated 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. About the Microsoft Surface RT Microsoft 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. 6 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/microsoftsurface Competition entry will close on Friday 17th May, midnight. The winner will be announced shortly after via email. www.qbssoftware.com 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 customers 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 illustrated 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. 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 08456 580 580 | [email protected] 7 DeveloperDirect DeveloperDirect Identify Parallelism Opportunities with these Three Strategies by Intel Staff I n 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 serial code that lend themselves to parallelisation. This paper begins by defining 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 characteristics of bottlenecks that can be addressed using software multi-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 tuning 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 because 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 8 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 provides the ability of a processor core to support two threads simultaneously. • 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 portions may also occur within a larger application that is already multi-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 opportunities for parallelism exist. Examples of such opportunities, which are discussed in more detail below, include the following: www.qbssoftware.com • 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 opportunities in this category include operations such as converting multiple 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 design 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 Bottlenecks So 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 improvement 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 effectively 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 finding parts of the application where the processor spends the most time, it stands to reason that you must first minimise the effect of serial inefficiency. 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 parallelisable bottlenecks. A well-optimised serial application provides a strong foundation upon which to base your parallelisation efforts. As a corollary 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 opportunities 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, allowing multiple views where a programmer can drill down to the specific 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 interactions between them, so developers can see where imbalances exist within an application’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 opportunities 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 necessary 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 necessary to break the work up differently than in the serial code. There are various techniques for doing so, which are collectively known as decomposition. 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 redesign 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 functions, 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. Conclusion While 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 08456 580 580 | [email protected] 9 CHOICE • EXPERIENCE • RESPONSE • SERVICE DeveloperDirect Develop with Pleasure by Maria Khalusova, Product Marketing Manager, JetBrains D eveloping 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 intelligent 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 developers, ReSharper – an irreplaceable productivity tool for Microsoft Visual Studio, and many other IDEs and team tools. Now, all the experience, 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, onthe-fly code analysis with quick-fix suggestions and better code refactorings. 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 unnecessary, 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 research 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 easily 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 understands 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 expression 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 “Excellent, Excellent, Excellent service I’ll highly recommend your company.” Robin We make it happen Your first choice for technical software 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. General IDE look with the new popular UI theme called Darcula. 10 www.qbssoftware.com “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 “Thank you very much for looking after us and I very much look forward to working with you in the future.” - Graham “Wow, what can I say - fantastic customer service and many thanks for helping resolve his issue.” - Steve “Wow!! You guys are really good. You always make it happen!! Thank you guys” - May See our product selection from page 17 08456 580 580 | [email protected] 11 DeveloperDirect DeveloperDirect Keeping Our Show on the Road by Skye Quin, Director, QBS Software Talking about our internal systems 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 programming and technical marketing. Figure 4. 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. 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 working 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 websites; 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, CSS We currently maintain four websites: QBSSoftware.com, QBSD.co.uk, Quickreport.co.uk and an intranet for internal use. They are all written 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 publishers, 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 Figure 1. Adding questions to the same functions. Of the various sub-systems that we 12 a seminar in Nav. 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 website. 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 Quotations Figure 2. QBS Software website homepage 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. We 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 Reports Over the years we have had many requests for various data feeds. This could be a price feed, a daily order report, shipping information or information on products. Generally these requests come from our larger 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 procedure 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 “testharness” 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 impossible 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. 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. 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. Quickreport.co.uk The Present Figure 5. HTML email in VB We 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? Apparently not. We should be able to add the capability to our existing VB app that sends out quotes. Nice easy one. Figure 3. VB code to create radio buttons on the web form www.qbssoftware.com 08456 580 580 | [email protected] 13 DeveloperDirect One App Fits All by Clive Howard I f 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/JavaScript) to create apps that can be deployed to multiple device platforms. 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 UX Spend 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, BlackBerry’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 allows you to potentially have different UI for different target platforms whilst sharing code across them. Your chosen framework, IDE and project 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 experience. 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 Features When working across platforms it is not just the OS that needs considering but also the physical hardware of different devices. This includes screen size, resolution and the availability of certain features. Today’s 14 handsets have an almost 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 battery usage might be very different. The manufacturer websites provide detailed information on each device, so make sure to check. Performance Just 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 feedback 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 sluggish. 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 Simulators To 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 accelerometer in the Windows Phone 8 simulator. Whilst it is great to have this feature when developing, you will find that the experience is significantly different when you get the app on an actual device. At the same time this can be challenging because buying every available handset is expensive but you can look on eBay or Amazon for previously owned versions. Conclusion Build 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. Clive Howard Clive 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. www.qbssoftware.com DeveloperDirect Delivering Documents Across Devices Your File Format Experts by Simon Bell, Product Specialist, Aspose W hat 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 document 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 platform to another for years, but new devices, and the operating systems that run on them, is making sharing documents a challenge again. Finding a Solution How 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 Conversion Converting 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 encapsulate 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 liberate 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 formatting and document creation so that you can automate document creation, 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, PowerPoint, 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 Perspective It’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 challenge and it is one that we cannot ignore. 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/asposetotal The winner will be announced shortly after via email. 08456 580 580 | [email protected] 15 DeveloperDirect DeveloperDirect Back To The Future by Huw Collingbourne W rite, 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 hottest 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 ‘proper’ 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 entered 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 probability, 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 Pascal 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 really great Pascal product with the release of Delphi for Windows in 1995. For its time, Delphi was a fantastic product with a superb integrated environment 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 programming would be done in the future. Never again would anyone have to 16 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, modern IDE for it. It didn’t take me too long to find the perfect thing. It’s called Lazarus and it is a nifty visual development 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. Product Selection 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 Components ComponentOne OLAP for Silverlight ComponentOne £101.73 217402 Subscription + Standard Support v2012 v3 (ESD) £779.92 ComponentOne OLAP for Winforms ComponentOne 217276 Subscription + Standard Support v2012 v3 (ESD) £779.92 ComponentOne Studio for Entity Framework ComponentOne ImagXpress Accusoft 232460 Standard (.NET) - Single Licence v12.x (ESD) 232464 Professional (.NET) - Single Licence v12.x (ESD) £653.07 £1,306.77 Direct Oracle Access Allround Automations 106184 Standard Licence v4.x (ESD) £84.91 Aspose.BarCode Aspose 202630 for .NET - 1 Dev Small Bus. Subscription Licence v4.x (ESD) £373.01 Aspose.Cells Aspose 211959 for .NET - 1 Dev Small Bus. Subscription Licence v7.x (ESD) £622.08 Aspose.Email Aspose 216953 for .NET - 1 Dev Small Bus. Subscription Licence v1.x (ESD) £373.01 Aspose.PDF Aspose 222860 for .NET - 1 Dev Small Bus. Subscription Licence v7.x (ESD) £497.54 Aspose.Pdf.Kit Aspose 211962 for Java - 1 Dev Small Bus. Subscription Licence v4.x (ESD) £497.54 Aspose.Slides Aspose 216955 for .NET - 1 Dev Small Bus. Subscription Licence v6.x (ESD) £497.54 Aspose.Tasks Aspose 222793 for .NET -1 Dev Small Bus. Subscription Licence v4.x (ESD) £622.08 Aspose.Total Aspose 211963 for .NET - 1 Dev Small Bus. Subscription Licence (ESD) £1,556.14 Aspose.Words Aspose 216956 for .NET - 1 Dev Small Bus. Subscription Licence v11.x (ESD) £622.08 Xtreme SuitePro Codejock Software 205753 1 Dev (ActX) + 30 Day Maint Subs v2011 Vol 2 (ESD) £383.86 Xtreme ToolkitPro Codejock Software 205765 Pro 1 Dev Licence + 30 Day Maint Subs v2011 Vol 2 (ESD) £383.86 ComponentOne Studio Enterprise ComponentOne 217961 Subscription + Standard Support v2012 v3 (ESD) £779.92 ComponentOne Ultimate ComponentOne 217965 Subscription + Standard Support v2012 v3 (ESD) £1,040.76 217390 Subscription + Standard Support v2012 v3 (ESD) £466.90 ComponentOne Studio for ActiveX ComponentOne 217300 Subscription + Standard Support v2012 v3 (ESD) £466.90 XAP Optimizer ComponentOne 217414 Single User Licence v2012 v3 (ESD) DXperience Developer Express Inc 233672 ASP .NET 1 Dev Lic. + 1 Year Subs (No Source) v12.x (ESD) FastReport .NET Fast Reports Inc 234964 Basic Ed. Single Licence + 1 Year Subs v2013 (ESD) FastReport .NET Fast Reports Inc £258.25 £557.00 £63.05 234965 Basic Ed. Team Licence + 1 Year Subs v2013 (ESD) £190.42 FusionCharts XT InfoSoft Global 192130 Personal Licence v3.x (ESD) £126.06 MobileAdvantage Infragistics 230521 Subscription + Source Code v2012 Vol 2 (ESD) £388.25 NetAdvantage ASP.NET Infragistics 230565 Subscription + Source Code v2012 Vol 2 (ESD) NetAdvantage for .NET Infragistics 230567 Subscription + Source Code v2012 Vol 2 (ESD) NetAdvantage for SharePoint Infragistics 210821 Subscription Renewal (ESD) NetAdvantage for Windows Phone Infragistics 230561 Subscription Licence v2012 Vol 2 (ESD) 230562 Subscription Licence + Priority Support v2012 Vol 2 (ESD) NetAdvantage SilverLight Infragistics 230579 Subscription Licence v2012 Vol 2 (ESD) NetAdvantage Ultimate Infragistics 230541 Subscription + Source Code v2012 Vol 2 (ESD) NetAdvantage Windows Forms Infragistics £558.91 £724.45 £2,786.02 £110.08 £110.08 £558.91 £1,057.24 230577 Subscription + Source Code v2012 Vol 2 (ESD) £558.91 ComponentOne Studio for Compact Framework ComponentOne NetAdvantage WPF Infragistics 230563 Subscription Licence v2012 Vol 2 (ESD) £558.91 ComponentOne Studio for iPhone ComponentOne Janus WinForms Controls Suite Janus Systems 233662 1 Developer Licence v4.x (ESD) £574.00 231418 Subscription + Standard Support v2012 v3 (ESD) 217312 Subscription + Standard Support v2012 v3 (ESD) ComponentOne Studio for Windows Phone ComponentOne 217372 Subscription + Standard Support v2012 v3 (ESD) ComponentOne Studio for WinForms ComponentOne 217324 Subscription + Standard Support v2012 v3 (ESD) ComponentOne Studio for WPF ComponentOne 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! 217378 Subscription + Standard Support v2012 v3 (ESD) 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# 217348 Subscription + Standard Support v2012 v3 (ESD) www.qbssoftware.com ComponentOne IntelliSpell ComponentOne 224026 Single Licence v2012 v3 (ESD) ComponentOne Studio for Silverlight ComponentOne ComponentOne Studio for ASP.NET Wijmo ComponentOne 217336 Subscription + Standard Support v2012 v3 (ESD) ComponentOne Studio for LightSwitch ComponentOne 224014 Subscription + Standard Support v2012 v3 (ESD) £466.90 £466.90 £49.56 £466.90 £466.90 £466.90 £466.90 £457.51 Raize Components Raize Software Inc 210176 VCL Edition - Single Licence v6.0 (ESD) £244.06 Resco MobileForms Toolkit Resco 215862 Windows Mobile Ed 1 Licence + 1 Year Subs v2012 (ESD) £518.88 Resco MobileForms Toolkit Resco 215866 Windows Phone 7 Ed 1 Licence + 1 Year Subs v2012 (ESD) £389.16 Resco MobileForms Toolkit Resco 215870 iOS Edition 1 Licence + 1 Year Subs v2012 (ESD) £389.16 Resco MobileForms Toolkit Resco 215874 Android Edition 1 Licence + 1 Year Subs v2012 (ESD) £389.16 Resco MobileForms Toolkit Resco 215878 Universal Edition 1 Licence + 1 Year Subs v2012 (ESD) 08456 580 580 | [email protected] £778.34 17 DeveloperDirect DeveloperDirect Product Chart FX Software FX Inc 211047 Test Server Licence v7 (ESD) Chart FX Extension Pack Software FX Inc 211042 for VS 2010/2008/2005 - Test Server Licence v7 (ESD) Chart FX for .NET Software FX Inc 211039 Test Server Licence v6.2 (ESD) £506.71 UltraEdit IDM Computer Solutions 218183 Standard 1 - 24 Users (Each) v18.x (ESD) £337.62 Document! X Innovasys 203839 1 User v2011 (ESD) £506.71 Chart FX for COM Software FX Inc 211037 Test Server Licence v6.2 (ESD) £450.35 Chart FX for Java Software FX Inc 211045 Test Server Licence v7 (ESD) £563.06 Chart FX Gauges Software FX Inc 211043 Production Server Licence (ESD) £337.62 Grid FX Software FX Inc 211051 Test/Staggering Server Licence (ESD) £450.35 Studio FX Subscription Software FX Inc 211034 Premium 1 Year (ESD) £761.84 TeeChart ActiveX Steema 234227 Pro 1 Developer Licence + 1 Year Subscription v2012 (ESD) £277.14 TeeChart for Java Steema 216121 Pro 1 Developer Licence with Source v2012 (ESD) £265.31 217536 1 Developer Licence + 1 Year Subscription v2012 (ESD) £448.50 TeeChart for PHP Steema 234232 1 User Licence with Source + 1 Year Subscription v2012 (ESD) £88.04 £293.02 Intel C++ Studio XE Intel 226368 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 Intel 231265 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 Intel 226388 for Windows - Single Licence + 1 Year Support v2013 (ESD)£1,439.98 226392 for Linux - Single Licence + 1 Year Support v2013 (ESD) £1,439.98 Intel C++ Composer XE Intel 226340 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 Intel 226364 for Linux - Single Developer + 1 Year Support v2013 (ESD) Intel Fortran Composer XE Intel 226415 for Linux - Single Licence + 1 Year Support v2013 (ESD) 226419 for OS X - Single Licence + 1 Year Support v2013 (ESD) Intel Math Kernel Library Intel TeeChart for .NET Steema £38.93 226381 for Windows - Single Licence + 1 Year Support v11 (ESD) 226382 for Linux- Single Licence + 1 Year Support v11 (ESD) Intel MPI Library Intel TeeChart VCL Steema Intel Threading Building Blocks Intel 226395 for Windows Single Licence + 1 Year Support v4.x (ESD) £312.55 Intel Visual Fortran Studio XE Intel 226422 for Windows - Single Licence + 1 Year Support v2013 (ESD)£1,189.44 WSyncfusion Essential PDF Syncfusion Inc 216052 Single Licence (Binary) 1 Year Subs v2012 Vol 2 (ESD) Syncfusion Essential Studio Syncfusion Inc 216056 Business Intell Ed. Binary 1 Year Subs v2012 Vol 4 (ESD) £562.57 £1,065.43 Intel Inspector XE Intel 226376 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 Intel RadControls for ASP.NET AJAX Telerik 219336 1 Dev. Lic with Subs & Priority Support vQ3 2012 (ESD) £659.54 RadControls for Silverlight Telerik 219746 1 Dev. Licence with Subs & Priority Support vQ2 2012 (ESD) £659.54 RadControls for WinForms Telerik 219750 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £659.54 RadControls for WPF Telerik Xceed Ultimate Suite Xceed Software 234487 1 Developer + 1 Year Subscription v2013 v1 (ESD) £781.59 234490 1 Developer + 1 Year Blueprint Subscription v2013 v1 (ESD)£1,107.26 CodeRush Developer Express Inc 232503 1 Developer Licence + 1 Year Subscription v12.x (ESD) £155.00 PC-Lint Gimpel Software 162050 Single Workstation v9 (CD/DVD) £241.29 18 £639.76 ReportBuilder Unify (Gupta) 216689 Windows Single User v6.1 (ESD) AutomatedQA TestComplete SmartBear Software 221776 Standard 1 Node-Locked Licence + 1 Year Maint v9 (ESD) ED for Windows Soft As It Gets 109431 1-4 User Licence (Per Licence) v4.x (ESD) Systran Systran sa 204660 Home Translator - Euro Pack v7 (ESD) £97.02 £87.52 Team Developer Unify (Gupta) £65.49 Unify Q Unify (Gupta) 181903 Windows Single User v1.0 (ESD) £289.10 Automise VSoft Technologies Pty 206835 Pro Named User Lic + 1 Yr Software Assurance v4 (ESD) £149.71 IDEs PL/SQL Developer Allround Automations 208640 1 User v9.x (ESD) £2,053.10 £142.20 216694 Win32 Single Developer v6.1 (ESD) £2,445.10 CodeCharge Studio YesSoftware 218956 Personal Ed Non-perpetual Lic (per user, per year) v5.0 (ESD) £85.87 226351 Starter New User vXE3 (ESD) £132.30 226457 Starter Named User vXE3 (ESD) 226459 Professional Named User vXE3 (ESD) £132.30 £665.23 RAD Studio Embarcadero 226530 Professional Named User vXE3 (ESD) £930.77 RadPHP Embarcadero 208297 Named User vXE2 (ESD) £199.38 AppCode JetBrains Zend Guard Zend Technologies 143382 Single Annual Licence + 1 Year Maintenance v5.x (ESD) £501.24 Zend Server Zend Technologies 204144 1 Year Silver Support Subs cription (Windows) v5.x (ESD) £998.29 Zend Studio Zend Technologies 212017 Pro / for Eclipse Licence + 1 Year Maintenance v9.x (ESD) £249.77 XML Tools Altova UModel Altova 228091 Basic Installed Users (1) v2013 (ESD) £100.28 Altova XMLSpy Altova 228154 Professional installed Users (1) + 1 Yr SMP v 2013 (ESD) £395.54 Altova MissionKit Altova 227965 Professional Installed Users (1) v2013 (ESD) £547.22 233983 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 Stylus Studio XML DataDirect Technologies 212369 Pro - 1 User Licence vX14 (ESD) £297.86 Liquid XML Studio Liquid Technologies 237999 Personal Single User Licence v2 (ESD) 238000 Commercial Single User Licence v2 (ESD) IntelliJ IDEA JetBrains 233973 Personal Single User Licence v12.x (ESD) 233632 Commercial Single User Licence v12.x (ESD) £69.13 £139.38 £139.38 £350.11 PyCharm JetBrains 237503 Developer Edition 1-4 Installed User Lics (Each) v2013 (ESD) £495.00 Intel VTune Amplifier XE Intel 226334 for Windows + 1 Year Support v2013 (ESD) 226337 for Linux + 1 Year Support v2013 (ESD) £563.09 £563.09 TeamCity JetBrains 223253 Professional 1-4 Licences (Each) v14.x (ESD) dotCover JetBrains 233996 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 JetBrains 237226 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 233967 Performance Profiler Pro Personal 1 User Licence v5.x (ESD) £209.62 233970 Memory Profiler Personal Single User Licence v3.5 (ESD) £103.70 MSDN Subscriptions Microsoft PhpStorm JetBrains Visual Studio 2012 Microsoft 237611 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 JetBrains 233987 for VB.NET Personal Single User Licence v7.x (ESD) 233988 for C# Personal Single User Licence v7.x (ESD) 233990 Full Edition Personal Single User Licence v7.x (ESD) Code Tools NXJ Developer Unify (Gupta) 158803 Professional Single User WIN v12.1 (ESD) 192244 1 Named User Licence + 1 Year Maint v7.x (ESD) £499.00 234726 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 dotTRACE JetBrains £522.58 £383.60 AutomatedQA AQTime Pro SmartBear Software RubyMine JetBrains Telerik Reporting Telerik 229885 Studio Bundle v2013 (ESD) PowerBuilder Sybase 104985 Powerbuilder Ent 6 Upg (while stocks last) v6 (CD/DVD) £124.64 £124.64 233979 Personal 1 User Licence + 1 Year Upgrade Subs v2.x (ESD) £69.13 233980 Commercial 1 User Licence + 1 Year Upgrade Subs v2.x (ESD)£139.38 Infopower and 1stClass Bundles Woll2Woll Software £214.16 194132 for Windows - Single Licence + 1 Year Support v7.x (ESD) 194134 for Linux - Single Licence + 1 Year Support v7.x (ESD) 219754 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £659.54 219761 1 Dev Licence with Subs & Priority Support vQ3 2012 (ESD) £395.45 PrimalScript Sapien Technologies 218855 Single Licence v2012 (ESD) Delphi Embarcadero £312.55 £312.55 £58.50 £150.00 £625.73 £531.77 £312.55 £312.55 Red Hat JBoss Enterprise Red Hat 222446 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 107473 Standard v2.X Licence (ESD) C++ Builder Embarcadero 195250 for Windows 1 Seat Dev Kit +1Year Support v4.x (ESD) 195252 for Linux Single Seat Dev Kit +1Year Support v4.x (ESD) 234141 Standard 1 Developer Licence + 1 Year Subs v2012 (ESD) Delux QBS Publishing £907.58 TeeChart Mobile Steema 204353 Java for Android 1 User Licence + 1 Year Subs v2012 (ESD) £153.05 Selection mobileME Multi Edit Software Inc 167079 Single User Licence v2008 (USB) Multi-Edit Multi Edit Software Inc 191918 1 - 49 Users (Per User) v2008 (ESD) www.qbssoftware.com £103.70 £103.70 £139.38 232959 Operating Systems Subscription - 1 Year v2012 (CD/DVD) 226566 Professional Edition Licence v2012 (CD/DVD) Visual Studio 2012 Microsoft Premium Edition Licence v2012 Visual Studio 2012 Microsoft Ultimate Edition Licence v2012 £701.24 £501.10 Available under licence agreement Available under licence agreement AutoMate BPA Server Network Automation £111.73 212803 Std Ed Development Tools + 1 Year Maint & Supp v9 (ESD) £1,182.42 PhpED NuSphere Corporation £83.69 228207 Standard for Windows - Single Developer Licence v8.x (ESD) £75.53 oXygen XML Developer SyncRO Soft £218.24 Installation and Deployment AdminStudio Flexera 214683 Standard + Silver Maint Plan v11.x (ESD) AdminStudio Flexera 214689 Professional + Silver Maint Plan v11.x (ESD) InstallAnywhere Flexera 231662 Standard Ed Single Licence + Silver Maint v2012 (ESD) InstallShield Flexera 220439 Express + 1 Year Silver Maint v2012 Spr. (ESD) InstallShield Flexera 220444 Professional + 1 Year Silver Maint v2012 Spr. (ESD) Smart Packager Professional Scalable Software 234430 Single User Licence + 1 Year Maint (ESD) Smart Packager Professional Scalable Software 234438 3 Pack Bundle + 1 Year Maint (ESD) 08456 580 580 | [email protected] £2,192.85 £4,886.64 £1,253.65 £544.02 £1,832.23 £1,138.72 £3,245.41 19 Intel Cluster Studio XE 2013 combines proven cluster and performance profiling tools with advanced threading and memory correctness anaylsis to boost HPC application performance and reliability. Industry leading Intel MPI Library: New levels of performance, scalability and flexibility for cluster applications on Intel platforms. Intel C. C++ and Fortran compilers: Built-in optimisation technologies and multi-threading support. Intel VTune Amplifer XE and Intel Inspector XE: Efficient thread and memory analysis. Intel Clik Plus and Threading Building Blocks: Support open, standard parallel programming models. www.qbssoftware.com/clusterstudio ©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.