SharePoint 2010 and Accessibility

As part of the development of a new Intranet product in Parity, I’ve recently spent some time looking into how making collaboration sites in SharePoint 2010 accessible.

First, we need to begin our discussion by defining what accessibility is:

Web accessibility refers to the inclusive practice of making websites usable by people of all abilities and disabilities. When sites are correctly designed, developed and edited, all users can have equal access to information and functionality. – Wikipedia on Web Accessibility

Accessibility is becoming increasingly important for all organisations.  In the United Kingdom, there are some 10 million disabled people, who have a wide range of physical and mental impairments.  The number of people with a disability is expected to increase as the UK’s population ages.  As more services and information are made available online, it is important this web content is accessible to all users, and increasingly legislation is used to ensure organisations do so. 

In the UK, public sector organisations are advised by the Central Office of Information (COI), that sets the minimum standard of accessibility for public sector web content as the W3C WCAG 2.0 AA guidelines.  [Note, the COI will close down on 31st March 2012.]  The RNIB also recommends this level of accessibility for all websites. 

So, how accessible is SharePoint 2010, and does it meet the WGAC 2.0 AA guidelines? 

SharePoint 2010 is designed with the WCAG 2.0 AA accessibility guidelines in mind, and offers a substantial improvement in accessibility compared to MOSS 2007.  In particular, the following features have improved:

  • Enhanced keyboard accessibility access to all functionality, to maximize device compatibility.
  • Support for high contrast and different zoom modes.
  • Accessible Rich Internet Applications  (ARIA) Integration.  ARIA is a new specification from W3C WAI that specifies how to increase the accessibility of web pages, in particular, dynamic content and user interface components developed with Ajax, HTML, JavaScript and related technologies.

Despite the new accessibility features (and in the case of ARIA, because of it), SharePoint 2010 is not fully compliant to the WCAG 2.0 AA, with the main issues being:

  • Legacy markup in master pages and page layouts that does not meet web (XHTML and CSS) standards.
  • Use of Silverlight web parts.
  • WebPartZone and WebPartPage introduce invalid HTML.
  • ImageField – uses invalid HTML 4.1 to store image value.
  • Rich Text Editor – makes use of WAI:ARIA markup that is not included in the XHTML specification.
  • Use of JavaScript links.

The above issues have known fixes (typically using custom control adaptors and JavaScript), but these require a substantial developer effort to implement.

The ARIA features significantly help improve the accessibility of SharePoint 2010.  However, ARIA is a new specification, and has not yet been adopted as a standard, so older browsers and screen readers do not support the ARIA implementation.  Additionally, the WAI ARIA attributes have not been defined in the DTDs for XHTML or HTML, so will cause validation errors when a web page using them is checked using an automated validation service such as W3C’s Markup Validation Service.  This is not a minor issue – many automated accessibility validators will also validate a web page against the web standards and so raise errors against ARIA accessibility features.  In order to be fully compliant to the WCAG 2.0 AA guidelines, some of the ARIA accessibility features would need to be stripped from SharePoint 2010, reducing it’s usefulness to users using assistive technologies. 

The ARIA issue also points to a more general issue.  Simply using an automated accessibility checker will not give you a proper understanding of how accessible a website is.  In general, accessibility checkers are good for raising issues around invalid HTML markup, and for identifying possible regions that may need further manual inspection.  But to fully assess accessibility will also involve user testing by people who have different disabilities and who make use of different assistive technologies.  Typically, the user testing will be conducted by an organisation with experience in providing accessibility audits, such as the RNIB.

As an aside, the various accessibility validators (WAVE, TAW, etc)  do not give identical results when checking the same page against WCAG 2.0 AA,  so if  meeting the guidelines is a part of a contractual obligation and will be used in user acceptance testing, the validation tool to be used must also be agreed in advance.

Of course, the above only deals with developing an accessible SharePoint solution. In order to maintain a site’s accessibility, the content uploaded to the site must be assessed as part of a content approval process to ensure that it is accessible.  HiSoftware’s Compliance Sheriff for SharePoint is a compliance tool recommended by Microsoft to aid this process.

Conclusion

Whilst the accessibility of SharePoint 2010 has significantly improved, there is a substantial effort to implement a site that is fully compliant to the WCAG 2.0 AA guidelines.  However, making a site accessible is not the same as being compliant with the accessibility guidelines. 

In Parity, we have looked at the above issues, and have put in place solutions to fix the common accessibility issues for SharePoint 2010.  If you are interested in discussing our new SharePoint Intranet solution, please get in touch.

Resources

You may find the following articles of interest:

Posted in Accessibility, SharePoint | Leave a comment

SharePoint 2010 Multi-tenancy Add-SPSiteSubscriptionProfileConfig Error

I have recently been tasked to investigate the setup of a cloud based, multi-tenancy SharePoint 2010 farm that runs on MS SQL 2012. I found Spencer Harbar’s excellent article Rational Guide to Multi Tenancy with SharePoint 2010 and I was able to work my way through the series of articles and scripts. Everything worked perfectly except for an error that I received when setting up the individual tenants. The PowerShell error is as follows:

Add-SPSiteSubscriptionProfileConfig : Object reference not set to an instance of an object.
At C:\Scripts\PowerShell6_provision_tenants.ps1:83 char:44
+         Add-SPSiteSubscriptionProfileConfig <<<<  -id $sub -SynchronizationOU $customerName -MySiteHostLocation “http
://$customerURL/mysites” -MySiteManagedPath “/mysites/personal” -SiteNamingConflictResolution “None” -ProfileServiceApp
licationProxy $upaProxy
    + CategoryInfo          : InvalidData: (Microsoft.Offic…ddProfileTenant:SPCmdletAddProfileTenant) [Add-SPSiteSub
   scriptionProfileConfig], NullReferenceException
    + FullyQualifiedErrorId : Microsoft.Office.Server.UserProfiles.PowerShell.SPCmdletAddProfileTenant

I spent a lot of time trying to determine where the missing object reference was. Having checked all input variables and after adding several Start-Sleep statements throughout the script, it became apparent that the issue was outside of variable and site provisioning issues.

We then started checking log files but there was nothing apparent in either the SharePoint or the Windows event logs. By chance we spotted an error concerning permissions when attempting to open the Business Data Connectivity Service Application from within Central Admin. We has been using the SharePoint Setup account to run the scripts and so decided to try the SharePoint Farm account. The script ran without error and completed successfully.

The upshot is that if you plan to run any of Spencer’s PowerShell scripts to create your multi-tenancy environment, then you should grant local Administrator rights on your machine to the SharePoint Farm account and then run all the scripts under this account name.

Hopefully this will save you a few hours of debug time

William

Posted in SharePoint | Tagged | Leave a comment

SQL Server 2012 and Power View for BI

Over the past few weeks, I’ve been playing with the latest CTP of the new Business Intelligence offering from Microsoft, Power View (formerly known as  Project Crescent).  Power View is a powerful new ad hoc reporting and data visualization tool that comes with SQL Server 2012 (formerly known as Project Denali).

Power View is a web based report authoring tool built entirely in Silverlight.  It is aimed at business end users, and as it is entirely web based, you only require a browser to run it.  Power View builds on Excel’s PowerPivot, with a similar interface that offers:

  • powerful drag-and-drop functionality.
  • highly interactive data display.
  • use of storyboarding to tell and share a story with the data.

My First Power View Report

The storyboarding functionality includes the ability to export an ad hoc report to PowerPoint, allowing users to update and interact with the data in the generated presentation.

Being web based, Power View will (eventually) be accessible from mobile devices such as iPads, Android tablets and Windows 7 Phones. Planned touch-centric features of Power View will be released a few months after the release of SQL Server 2012.  This forms part of Microsoft’s Mobile BI roadmap, which was announced in the recent SQL PASS 2011 conference.

Power View requires SharePoint 2010 and SQL Server Reporting Services.  This may put it beyond the reach of smaller companies who do not want to manage a SharePoint installation.   It is also worth noting that Power View is not meant to replace SQL Server Reporting Services or Report Builder.  These tools are for creating more complex static reports, while Power View is designed for ad hoc reporting. 

A Sample Power Pivot Report

It is worth noting that while using Power View, I found that some of the data transformations and visualization options were not as intuitive as might be expected.  This will hopefully be resolved by the RTM release.  Even so,  despite the similarity to PowerPivot, even the power users that this tool is aimed at will require additional training and support in using the product.   Also, the server setup for Power View required a server with a minimum of 8GB RAM just for a responsive demo.  Obviously, significantly more RAM would be required for the servers in a production environment.  Again, this hardware constraint pushes Power View out of the reach of smaller organisations and companies

Power View is the latest in Microsoft’s Service Service BI Tools range, which are designed to allow business users to create and share powerful business intelligence solutions through familiar applications in Microsoft Office and SharePoint 2010.

Additional links:

Posted in Business Intelligence, SharePoint, SQL Server, Trends | Leave a comment

CRM: So you want a Virtual Machine

Recently I have been looking at Microsoft CRM 2011.  The first obstacle I had was to generate a virtual machine that would allow development … nothing is ever as simple as one would expect so after a lot of hair pulling and teeth gnashing and of course google usage I came up with the following

The process below details the steps to be taken to create a virtual machine containing the following products

  • Microsoft Windows 2008 R2 (including active domain)
  • Microsoft SQL Server 2008 R2
  • Microsoft CRM 2011

This information came from various sources but the bulk came from a video I found on YouTube  by ‘neilmed82′ entitled ‘Microsoft Dynamics CRM 2011 beta installation (http://www.youtube.com/watch?v=dDeebvZ8xNo)

The virtual machine should be a minimum of 30Gb in size

Windows 2008 R2 installation

  1. Install Windows 2008 R2
    1. Include active domain
    2. Set computer name to ‘devcrm’
  2. Install Active Directory
    1. Start -> Administrative tools -> Server manager
    2. Roles -> Add roles
    3. Ensure the following are ticked
      1. Active directory domain services
      2. DNS Server
      3. File Services
      4. Web Server (IIS)  ????(see point 6 below)
    4. This may request the .Net Framework to be installed
    5. On completion reboot the virtual machine
  3.  Run ‘dcpromo’ and create a new forest
    1. FQDN = ‘dev.dom’
    2. Functional Level = Win 2008
    3. Password  = ‘Password1’ (suggested)
    4. On completion reboot the virtual machine
  4. Create the domain in the forest
    1. Start -> Administrative tools -> Server manager
    2. Roles -> Active directory domain services
    3. Run ‘Active directory domain services installation wizard’ (dcpromo.exe)
      1. Select ‘Create a new domain in a new forest’
      2. FQDN = ‘dev.dom’
      3. Forest functional = Win 2008 R2
      4. Dynamic IP Address = (select)
      5. Password = ‘Password1’ (suggested)
    4. On completion reboot the virtual machine
  5. Create OUs and Service User Accounts
    1. Start -> Administrative tools -> Active directory users and groups
    2. Select ‘dev.dom’ domain
    3. Right-click (on ‘dev.dom’) -> New -> Organisational unit
      1. Name = ‘CRM’
    4. Right-click (on ‘dev.dom’) -> New -> Organisational unit
      1. Name = ‘service accounts’
    5. Right-click (on ‘service accounts’ OU) -> New -> User
      1. First name = ‘SQL’
      2. Surname = ‘SVC’
      3. Login =‘sqlsvc’
      4. Password = ‘never expires’
    6. Right-click (on ‘service accounts’ OU) -> New -> User
      1. First name = ‘dynamics’
      2. Surname = ‘admin’
      3. Login =‘dynamicsadmin’
      4. Password = ‘never expires’
  6. Add IIS Role
    1. Start -> right-click (on ‘Computer’) -> Manage
    2. Roles -> Add roles
    3. Select ‘Web Server (IIS)’
      1. HTTP redirection
      2. ASP.Net (plus offered children)
      3. Windows authentication
      4. IIS6 management compatibility (plus children
  7. Add service users to local admin group
    1. Start -> Control Panel -> Users -> Manage user accounts -> Add
      1. User = ‘sqlsvc’; domain = ‘dev.dom’; Administrator
      2. User = ‘dynamics.admin’; domain = ‘dev.dom’; Administrator
    2. On completion reboot the virtual machine

SQL Server 2008 R2 Installation

  1. Include
    1. Database Engine (inc. full text)
    2. Reporting Services
    3. Management Tools (complete)
    4. BIDS
    5. Client Tools           (MSSQLSERVER)
  2. Service accounts                  dev\sqlsvc
  3. On account provisioning
    1. Mixed mode                         ‘Password1’ (suggested)
    2. Administrators                      (dev\dynamicsadmin,
      dev\sqlsrc, administrator)
  4. On completion reboot the virtual machine

It is suggested that at this point a backup is taken of the virtual machine.

CRM 2011 Installation

  1. Install CRM>
    1. Select ‘Create a new deployment’ (devcrm)
    2. OU -> browse to CRM
    3. Security account = domain user dev\dynamicsadmin
    4. Email router = devcrm
    5. Display name = <sitename>
    6. Report server = http://devcrm/reportserver
  2. System check screen will show some warnings
  3. Run ‘set SPN’ for service user account
    1. Go to a command prompt and enter the following commands
    2. Setspn –a http/devcrm dynamicsadmin
    3. Setspn –a http/devcrm.dev.dom dynamicsadmin
    4. Close command window
  4. Continue with CRM set up
    1. Select ‘install reporting services connector
    2. On completion reboot the virtual machine
  5. Start up and test
    1. http://devcrm/<sitename>
    2. Settings -> Currencies -> New
      1. Currency code     ‘US Dollar’
      2. GBP (1.00)             <suitable exchange rate>
      3. Save and close>
    3. Settings -> Customisations -> Publishers
      1. Select default publisher
      2. Set up prefix (up to 8 characters)
      3. Set ‘Option value prefix’ to suitable number (e.g. 10,000)
    4. Other configuration: File -> Options
      1. General: Currency               pound sterling
      2. General: Default Tab           <preferred tab>
      3. Formats: current format     English/united kingdom

Additional Installation

  1. Install additional organisations
    1. Start -> All Programs -> Microsoft
      Dynamics CRM 2011 -> Deployment Manager
    2. Right click (on ‘Organisation’) -> New
      organisation

      1. Enter display name (but otherwise accept defaults)
    3. Recommended that ‘Contoso1’ is created (as a minimum)
    4. Check that organisation can be accessed using http://devcrm/Contoso1
  2. Download and install Microsoft CRM 2011 SDK (place in directory c:\CRM2011 SDK)
  3. In browser enter URL of appropriate organisation (e.g. http://devcrm/Contoso1)
    1. Files -> Tools -> Import Data
    2. Browse to c:\crm2011 sdk\sdk\handsonlabs\orgsetupfiles\
    3. Import the following files
      1. importaccountscontoso1.csv (map to ‘Account’)
      2. importcontactscontoso1.csv (map to ‘Contact’)

Alternatively if you know someone who may just have a virtual machine already built … ask them!

If you spot any errors in the above please let me know and I will update accordingly.

Posted in CRM, Development | Leave a comment

Continuous Integration for SharePoint 2010

Chris O’Brien, a respected SharePoint developer who has previously worked with Parity, is currently developing a series of blog posts with Microsoft’s SharePoint Developer Team on how to implement a Continuous Integration development process with SharePoint 2010.  The fifth sixth post in the series has just been released, and it is a fantastic read.  The outline for the series is as follows:

  1. SharePoint 2010 Continuous Integration
  2. Configuring a TFS Environment with Test Controller, Test Agent, and Build Server
  3. Creating Your First TFS Build Process for SharePoint Projects
  4. Configuring Versioning of Assemblies in SharePoint Automated Build
  5. Using PowerShell to deploy the WSP
  6. Running tests as part of a build
  7. Integrating additional tools in the build (code profiling, code analysis, SPDisposeCheck, etc.)
  8. Wrap-up

I really recommend that all SharePoint developers check out these informative articles.

Posted in Development, SharePoint | Tagged , , , | Leave a comment

Added benefit of ensuring Active Directory is complete: Outlook Team Calendars

One of the common discussion I have with client’s and our own IT department is the importance of ensuring that users Active Directory (AD) attributes are complete. With products like Outlook, SharePoint and Lync all being driven (by default) by information held within AD it’s usually easy to persuade administrator that there needs to be some work in getting the information up to date and, as important,  kept up to date.

I’m just going through an exercise of updating or own AD and we’ve come across a feature in Outlook 2010 (might occur in previous versions as well)1 that I wasn’t previously aware of.

I’ve gone through and ensured that individuals manager are entered, primarily to get the organisation charts in SharePoint 2010 working and to drive some of the internal workflows.

What we’ve found is that once this is done in Outlook you automatically get additional calendars added.

Team Calendar

In the Calendar view you will get a Calendar Group called Team: <Your manager’s Name> with all the people who have the same manager as yourself.

If you are the manager of people you also get a Calendar Group called Team: <Your name> with all your staff listed.

No more manually adding Calendar Groups Smile.

1. Looks like it’s only Outlook 2010

Posted in Information Worker | Tagged , , , | Leave a comment

Coding in the Cloud – Conclusions

Over the past few weeks, we have examined a number of online development environments, to see if they offer anything different to desktop IDEs, and what impact they might have on future development trends.

Online IDEs Compared

We have looked at five of the major online IDEs as part of this blog series.  Here is a comparison of their various features:

Feature CodeRun Kodingen Compilr Cloud9 Orion
Languages Supported C#, PHP, JavaScript, CSS PHP, Ruby, Python, ColdFusion, Classic ASP C#, VB.NET, Java, Ruby, C++ HTML5, JavaScript, CSS, Ruby, PHP, Python,

OCaml,

Clojure

HTML5, JavaScript, CSS
Syntax Highlighting
Code Completion
Debugger
Upload Existing Projects
Reference Third Party Libraries
Database Support
Version Control
Private Code
Cloud Hosting N/A
Offline Capability
Customization or Plug-in Framework

In addition to the differences between the IDEs as shown above, it is also worth looking at some of the similarities between the IDEs:

  • The majority of the IDEs are commercial offerings, with only one open source licensed IDE (Orion).
  • All of the commercial tools offer free basic accounts. However, in the case of Compilr, we can already see the feature set for the free account being reduced.
  • Most of the tools are aimed at web development only, and the main language support is for dynamic web languages (JavaScript, PHP, Ruby and Python).
  • There is relatively little support for .NET and Java development.
  • There is very little support for third party code libraries.
  • Integration with other toolsets (hosted or private source control, databases) is limited.
  • Only one of the tools (Cloud9) offers an offline capability. Orion can be hosted locally, and so does not strictly require an internet connection.
  • Only one tool (Orion) can be used internally in an organisation without reference to a third party site.

Conclusions

After investigating various online IDEs, it has become clear to me that they won’t replace traditional desktop IDEs such as Eclipse and Visual Studio.  If they have a future at all, they will instead become supplementary tools in addition to a developer’s primary desktop IDE.

Currently, online IDEs simply don’t have the rich feature set required by developers.  Their lack of customization options and the absence of an extensible plug-in framework means that developers are unable to customize the vanilla offering from an online IDE for their specific roles.   In addition, the online IDEs have a number of inherent disadvantages:

  • Code security – you are entrusting your application’s source code to a third party.  Every line of code created in an online IDE will be visible to those responsible for the IDE, which will not be suitable for certain projects.
  • Data loss – by hosting your source code in an online repository, you must be prepared for data loss.  That means keeping local copies of all your code.
  • Online IDEs require that you are online – how do you overcome periods without a suitable internet connection?

Where online IDEs will be used is to develop proof of concept applications in new languages and paradigms, without the need for an upfront investment in specific desktop tooling.  They will also be used for accessing and modifying code on the move, when the developer is unable to access their desktop IDE.  Several of the online IDEs we considered had iPhone and Android clients to allow developers to access and manage live web applications outside of the office.  Online IDEs could also be used to modify code in the corporate environment, when a developer needs to make a code change on a PC that does not have their primary desktop IDE installed i.e. a corporate server.

In addition, an online IDE could be used in specific team working scenarios, i.e. where a contract developer is brought on to a team for a short period. Instead of having the developer waste time configuring a desktop environment, an online IDE could be used to quickly allow the contractor to write productive code.  Online IDEs could also allow developers to collaboratively write code in different locations, i.e. pair programming at a distance.

Long Term Trends

In the long term (3+ years), I expect to see the concept of a standalone online IDE to disappear.  Instead, the traditional desktop IDEs will simply incorporate some of their features.  The Eclipse Foundation is already exploring this with the Orion project, which is seen as an addition to the desktop IDE, not a replacement to it.  I would expect desktop IDEs to offer the following in future:

  • A cloud synchronized configuration option.  Once a developer has setup their IDE, they will simply synchronize their custom configuration settings, including their various extensions and plug-ins, to a cloud host.  Whenever they move to another PC that has the desktop IDE installed on it, they will simply login to the cloud hosted configuration, and the settings on the new machine will be automatically synchronized.  This is already possible on Visual Studio using an open source extension.
  • Desktop IDEs will include the option to host online versions of the IDEs. Instead of the security threat of using a third party online IDE, the desktop IDEs will allow developers to use locally hosted online IDEs.  For an analogy, think of Microsoft Exchange – as well as powering the desktop Outlook client, there is also the option to use the Outlook Web App to access your emails. Similarly, the commercial desktop IDEs will have to provide online (and mobile) clients for their products.  These online and mobile versions will not offer the full capability of the desktop client, but they offer enough features to allow a developer to remain productive whilst on the move.
  • Greater team working features to be built-in to the desktop IDEs.  Instead of using a separate application or an online IDE to work together with a developer in a different location, the desktop IDE will mature to allow developers to work collaboratively on the same code file and to show the changes made by the other developer in real time.
  • Additionally, desktop IDEs will allow you to swap elements of their toolset for online hosted versions, i.e. having built-in integration for online code hosting providers like BitBucket and GitHub.

In summary, online IDEs won’t replace the existing desktop IDEs.  But they will force the desktop IDEs to mature and provide the additional features I’ve listed above.

Posted in Cloud Computing, Development, Trends | Tagged , , , , | Leave a comment

Coding in the Cloud – Part 6

As part of our continuing series of posts on cloud-based development tools, we will consider the Eclipse Foundation’s Orion project.

Orion

Orion is one of the newest online IDEs to merge (it was only announced in January 2011), but it has quickly progressed.  The vision for Orion can be summarised as “a web platform for web developers”.  The Eclipse Foundation is not interested in trying to cram a desktop IDE into a single browser tab.  Instead, the aim is to create a completely new web tools platform that makes full use of the browser capabilities.

Like other Eclipse Foundation offerings, Orion is an open source project.  It is available as downloadable local server, or through a cloud hosted version, orionhub.org.

Orion-CodeEditor

Once you create an account on Orion (either locally or in the hosted version), you can log and start coding.  The currently supported languages are HTML(5), JavaScript and CSS.  You organise your new web projects by creating folders  in the Navigator view.  You quickly realise that unlike the other cloud based IDEs we have looked at, Orion is not constrained to a single browser tab, but makes full use of browser features, including:

  • Bookmarks to identify commonly used files.
  • Preview and edit files in new browser tabs.
  • Share code using URLs.

You can then create a web site configuration using the Sites functionality:

Orion-CreateSite

Other features include:

  • Syntax highlighting.Orion-editor-key-assist
  • Support for many of the Eclipse desktop IDE key bindings (commenting and indenting code).
  • Automatic versioning with the Git source control system.
  • Local deployment option.
  • Global search using Apache Lucene.
  • Integration with Firebug.
  • Extensible using plug-ins that utilise a RESTful API.
  • Browser support for Chrome, Firefox 3.6 and 4.0, Internet Explorer 8 & 9, and Safari 5.

What is it like to use?

Orion’s code editor is described as fast and scalable, and it lives up to this, opening large (30K lines + ) files faster than the desktop Eclipse editor.  The editor offers real-time syntax checking for JavaScript using a JSLint plug-in. For debugging, Firebug is now integrated with the code editor.  Firebug is an indispensable web tool, allowing you to do more than debug code, including the ability to set breakpoints, single-step, and inspect variables visible from your stack. It can also be used to monitor HTTPS requests, and inspect the browser’s DOM and CSS styles.

Orion also has full integration with the Git version control system, in both the hosted and local versions.

Orion-PluginsThis open source project has quickly progressed over the past 6 months, but there is still limited functionality.  However, the team does not intend to provide all the major IDE features.  Instead, the focus is on providing an extensible framework to add existing web-based development tools, such as JSLint, Firebug and JSBeautify

Also, the architecture of the Orion project, and its use of the full browser model, is extremely innovative.  Most of the features in the other code editors we have reviewed are direct ports of common desktop IDE features. Orion sets itself apart by trying to develop a innovative online development experience.  This focus on building a true web development platform is what sets Orion apart from the other online IDEs we have considered.

Posted in Cloud Computing, Development, Trends | Tagged , , , , | Leave a comment

Coding in the Cloud – Part 5

As part of a series of articles on cloud based IDEs, we are going to look at Cloud9.

Cloud9

The Cloud9 team aims to allow developers to create, run, debug and deploy applications using just a web browser.  Indeed, Cloud9’s tag line is “Your code anywhere, anytime”. The Cloud IDE is being used by over 30,000 developers, and is seen as one of the leading companies in the emerging Development as a Service (DaaS) sector.  The company has recently raised $5.5 million in venture funding, and sees itself as challenging the existing desktop providers such as Microsoft Visual Studio and the open source Eclipse IDE and its derivatives.

Cloud9 Code Editor

The application’s focus is on web development, with the core languages support being JavaScript, HTML5 and CSS.  These are the same languages that Cloud9 itself is built on.  Other languages that developers can code in are Ruby, PHP, Python, OCaml and Clojure.

To get started on Cloud9, you need to create an account.  The basic free account allows you create an unlimited number of projects, but they are all publicly viewable. In fact, when you use the free account, all projects created are open source projects, and you are expected to meet open source licensing requirements.   To create a private project, you need to upgrade to the premium account. 

Once you create your free account, you can use nearly all of the features offered by Cloud9. And there are many:

  • Node.js support, with an option to deploy to the Joyent No.de service, a hosted version of the Node.js platformCloud9-SourceControl.
  • Integration with existing GitHub and BitBucket projects.
  • Team collaboration, including:
    • Simultaneous read/write access to multiple team members on the same project.
    • Integrated chat client to communicate with other team members.
  • Cloud9 developed ACE, an open source online code editor that is supported by Mozilla and has significant community support.  The community support has lead to additional languages being supported by the editor.
  • Line error reporting – the editor will report on syntax errors as you type in the browser.
  • JavaScript refactoring and debugging tools.
  • Syntax highlighting for the languages supported.
  • An offline mode to allow you to continue making changes to your code even without an internet connection.  Any changes made are merged back to the server repository once an internet connection is re-established.

Features that are planned in the Cloud9 roadmap:

  • Database support – probably MySQL and Couch DB.
  • FTP access.
  • Additional deployment options.
  • Cloud9 is currently developing a version of the IDE for Python that will integrate with Google’s App Engine.

What is it like to use?

Cloud9’s focus is on the core web development languages of JavaScript, (standards compliant) HTML(5) and CSS.  These are the same languages that Cloud9 itself is built on.  The web editor is fast, and the line error reporting is particularly useful.  You can quickly write and deploy locally web pages.  The JavaScript debugging tools are very slick and easy to use, with breakpoints, a call stack watch and variable watches available.  There are also a number of online video tutorials to help you get started.

Support for the other dynamic web languages (PHP, Python and Ruby) isn’t quite as good, but the Cloud9 team plan on adding support for debugging soon.  The team collaboration features are particularly impressive.  Even on the basic account, you are able to pair program on the same project with other developers in separate locations.

Additionally, the offline capability of Cloud9 sets it apart from the other online IDE we have considered so far.

Cloud9-DeploymentThe major disadvantages of Cloud9 are the lack of hosted database integration and deployment options.  The FTP and integration with hosting companies other than Jolent for Node.js mean that the deployment functionality is incomplete.  Also, there is no option to download your code files, unless you are using the source code integration with BitBucket or Github.

Overall, the Cloud9 comes across as being the cloud IDE closest to being production ready.  However, it’s focus on web development means it is unlikely to get much attention in an enterprise setting, with no support for .NET or Java. 

Posted in Cloud Computing, Development, Trends | Tagged , , , , | Leave a comment

Coding in the Cloud – Part 4

As part of the on-going series of posts looking at online code development platforms, today we will consider Compilr.

Compilr

Compilr differs from the previous web based tools we have looked at.  Unlike them, Compilr is an online compiler, so it will not actually run the source code, but will only build it and confirm that the code successfully compiles.  Compilr aims to become a fully fledged IDE to develop desktop applications, unlike the other IDEs we have considered that focus on developing web applications.

Compilr-CreateProjectTo start using Compilr, you need to create an account.  On accessing your account, you can then create a project.  To create a project, you assign it a name, a category, a programming language (Compilr supports C#, VB.Net, Java, PHP, Ruby and C++), a platform (for C#, this is 2.0. 3.5 and 4.0, and XNA 4.0 Windows), and a project template (for C#, this is Windows Forms, Console and 3D game application templates).

By default, the basic account allows you to create a maximum of 3 projects, all of which are public.  To create a private project, you need to upgrade your account to a paid monthly subscription.

The other main features of Compilr are:

  • Develop desktop applications and games (using the Microsoft XNA framework).
  • Code editor supports syntax highlighting for all of the above languages.
  • Compiles C#, VB.net and Java projects.
  • Allows custom libraries to be uploaded and referenced from your own projects.
  • Generates and displays compilation errors on building a project.
  • You can view other public projects (with read-only access)

Currently, Compilr boosts of 32,000 users. Like the other online development tools we have looked at, Compilr aims to become a social network for developers, in addition to being a development tool.  However, the features associated with the free account offered by Compilr are pretty miserable compared to some of the other tools on offer.    The paid accounts range from $9 to $49 per month, and offer more projects, as well as the option to keep projects private.  Also, there appears to be no integration with source control, though the Compilr team has said they plan to add this feature soon.

What is it like to use?

The Compilr code editor is again reminiscent of Visual Studio, with a similar layout.  The editor is fast to use, and the syntax highlighting is particularly clear and useful.  The main menu is along the top of the browser and is quite small, and is not prominent enough.  There is a small Google Ad displayed in the bottom right-hand corner that is annoying, but it is a minor inconvenience.

Compilr-Editor

When I first attempted to use the application, I was unable to get it to build a basic Hello World project.  Thinking it was an issue with my code, I attempted to use one of Compilr’s default project types.  This still wouldn’t build, despite trying across three major browsers (IE9, Chrome and Firefox). When I tried to resolve the issue, I found that there was no FAQ or tutorials.  There is a forum, but this suffers the same issue that all forums – a complete lack of structure.

The error I experienced appears to have been an issue with the corporate proxy server Compilr-Errorsblocking some content; however, a more useful error message would have been helpful.  Compilr may want to look again at its interface.  When I tried Compilr again the next day, I was able to successfully compile my applications, and they compiled quickly.  Other users have reported of delays when your project has to wait in a queue before being processed.   The error console at the bottom of the code editor gives useful feedback for a developer on the reasons for a failed compilation, allowing them to debug their code.

Overall, Compilr is the least impressive code editor I have looked at so far.  Its basic features are OK, but there are several other applications that offer similar functionality with much greater freedom for developers (i.e. database support).  The fact that it is concentrating on desktop applications seems very strange to me- why?  If I was developing a desktop application, I want to be able to test it directly from my IDE, which is just not possible with a browser based tool like Compilr.  Instead, you must download the built executable to your desktop before you can run it.  In many corporate environments, the firewall would prevent you directly downloading an executable file.

There is some support for web development in the support for Ruby and PHP, but these options do not even include compilation support.  The only features that stand out for me are the support for third party libraries, allowing you to re-use already developed components, and the fact that Compilr is the only editor so far to support Java.

For the enterprise, Compilr looks to be worthless.  There is no support for databases, source control, and there appears to be minimal support for team working.  You can export projects you create in Compilr, but you are not able to upload existing projects.  Compilr may be useful for organisations that occasionally need to create desktop tools, but I don’t see it being useful for anyone doing serious desktop development work.

Posted in Cloud Computing, Development, Trends | Tagged , , , , | Leave a comment