Contact Me

Contact Us
For an informal discussion

Everyone's business is different. Our business is software - ask where we can help.
eMail: john at appsolo.com
16
Apr

UI Flow

posted in: blog

Often, we use wire-framing or mock-up tools (like the good guys at Balsamiq) to help communicate design ideas between developers as well as to clients. However, there is a need for something more efficient to aid communication of possible user interface flows through our emerging application. This communication is for internal use typically and doesn’t need to approximate the appearance of the final product in any way – it’s just a means to explore the pathways through the program without getting side-tracked by the scenery along the way.

Ryan at 37Signals posted a very interesting way of addressing this issue. As you can see it seeks to communicate the movement between states more effectively. It also avoids getting bogged down with the detail of each representation of state, focusing instead on the salient aspects to each (probably, well-known) state.323 flow template UI Flow

The horizontal line separates what the user sees on the screen (topside) from what action he (can) take (bottom-side). Here’s a more detailed example Ryan provides:

324 todo flow UI Flow

As you can see it very succinctly captures the pathway that the user takes through the process of adding an item to a ‘To-Do List’. Building on this Ryan offers equally compact means to capture multiple choices of action by the user:

325 login flow UI FlowThe dashed lines separate alternative actions that the user can choose from, each naturally leading to alternative views from where further actions can be selected. I like Ryan’s reminder at the end that all these drawings are ‘destined for the garbage’ – like all prototyping and similar tooling, they are part of the process, not the product. The longer they linger the less use they serve.

10
Apr

Ogham Water Monitoring & Metering CRMDelighted to post an update on some interesting work being undertaken on behalf of Ogham Engineering Ltd.. Ogham were looking for a multi-faceted management system to permit both managers and tenants access to up to the minute water consumption and metering data.

The system will provide Ogham with the ability to integrate with their own in-house wireless water monitoring technology. Data is gathered from these sensors unobtrusively installed to water pipes about the building. The data is hosted in the cloud and retrieved by this application. This happens at very regular intervals offering strict control on consumption patterns and helping to identify leaks and mis-use.

Our application provides an interface to these meter readings. It also allows Ogham to keep tabs on their customers and tenants to ensure that data is limited only to those concerned. Given the significant customer-facing aspect to this product, a highly intuitive and yet information rich front-end was required. We turned to a now well-established Microsoft development stack – ASP.NET MVC – to provide the breadth of features needed. This coupled with extensive use of Javascript, jQuery and associated libraries, frameworks and plugins offers a very comprehensive package that serves the needs of our client well.

Estimation completion date: May ‘13.

8
Feb

Parallels Getting Parallels 7 to play nice with Windows 8One of the challenges of working in the Mac environment while developing in Microsoft technologies is getting the VM machine working as you want. Being a fan of keyboard shortcuts, it’s a major PITA if the key mappings aren’t set as you’d expect, especially as I move routinely between Mac and Windows PC.

So, with my Parallels 7 and Windows 8 setup, do the following to get it just right:

  1. In Parallels, choose Preferences…Keyboard and ensure Virtual Machine Shortcuts are off.
  2. At the bottom of that box, I leave ‘Enable Mac OSX system shortcuts’ enabled to give me the Fn controls across the top of my keyboard. This means I have to press Fn with, say, F6 to compile in VS2012 but that’s how I prefer it.
  3. That’s all she wrote.
8
Feb

There’s an issue when you try to attach a local MDF SQL database file to the local instance of SQL Express. VS typically will insert a USER INSTANCE = true into the connection string that it generates when you add the LINQ-to-SQL or ADO.NET Entity modelling to your project.

The connection to the database as attached to SQL EXPRESS will fail on open. Fix this by removing the User Instance clause from the connection string.

Other solutions advise deleting the SQL Express folder from the AppData folder for the user but I found the first options works for me and doesn’t require any privileges on the host machine.

25
Nov

My putting a toe in the water of Azure. Love the interface, very slick and well thought out – looks like Scott Gu kicked the team into action. Here’s a few very ‘MS’ tricks that I’ve overcome so far:

  • Using SSMS (SQL Server Management Studio 2008) isn’t a great place to start. Upgrade to 2008 R2 or jump into SSMS 2012 or you’ll get the ’sys.configurations’ error. I installed (the not insignificant) R2 upgrade and the problem went away and the next step rendered un-necessary.
  • For SSMS 2008 only: Once you have the Azure SQL database set up (along with the SQL Server), don’t try the normal server logon in SSMS. Instead, choose ‘New Query’ from the toolbar. Enter the database address (no need for https:// prefix), followed by your administrator username (not email or Azure sign-on), followed by the password for the SQL Server. It’s easy to reset the password from the Azure portal if you forget it.
  • I ran into difficulties in Chrome trying to ‘Manage’ the database server but it worked fine in Safari – problem was keystrokes wouldn’t appear in logon text-boxes – silly thing but a problem none-the-less.
  • I could make a connection to the server in VS2010 using View..Server Explorer but it’s easier in SSMS.
  • Seems now in SSMS 2008 R2, the table designer is gone for Azure table creation, so scripting is needed. Likely be simpler to let EF do the table generation.
  • This is a good resource for marrying up a ASP.NET MVC project to begin using Azure (both as a Azure web hosted app and using Azure SQL database).
  • Another thing worth remembering is that while working in a VM, ASP.NET won’t permit accessing a database that is on a  UNC share. Even if your database is local (as you see it), say, C:\vs\mydb.mdf, ASP.NET will not access it. Mapping to a drive letter won’t work either. Solution is to run native (using Bootcamp on a Mac, for example) or attach the database to a lock SQL Server instance. Or better, use an Azure SQL database.
16
Nov

Source control is great – or so I know I must believe. And TFS (Team Foundation Server) is as good as any. But here’s the interesting case of my efforts to delete a project from the server.
You’d think that there would be a right-click…choose Delete Project…are you sure….are you real sure kind of sequence here but you’d be wrong. MS apparently really don’t want you tripping up and doing something dumb like EVER kill a project and are out to make it as hard as possible.
Here are the steps:

  • Open a command prompt in administrator mode
  • ‘cd’ your way to the %Program Files%\Microsoft Visual Studio 11.0\Common7\IDE

  • Invoke the TFSDeleteProject program (the clue is in the name)
  • Use the following switches: /force /collection: followed by the fully qualified name to your Collection\Project

    Really, this needn’t be this hard….Screen Shot 2012 11 16 at 19.05.29 So you want to delete a project from Team Foundation Server

2
Nov

Having recently begun development proper with ASP.NET MVC, I can say I like the structured MVC approach a lot. However, there’s no getting away from the fact that modern web development is a pastiche of open-source with occasional clear strategies (ASP.NET MVC) being one, trying their best to bring order to the chaos and fashion a more coherent approach.
MS have made strides to welcome open-source technologies aboard and JQuery is an obvious choice. However, even with the advances that the Razor view engine brings and the reduced syntactical sugar that it brings, there’s no easy way to work with html, razor/C# and Javascript (w/ JQuery) in the one space. This is made all the more difficult by the loss of Intellisense once you stray from the C# path. However, there is a way to bring Intellisense to bear on JQuery in Views.
And here’s how to do it in VS2012:

  • Download the jsdoc file corresponding to your current version of JQuery
  • include the jsdoc file in your project in the same folder as the JQuery js file but ensure that the file names match albeit for the -vsdoc suffix
  • VS2012 plays nice with these steps alone but VS2010 often needs two additional steps:

  • Add the following into *each* View that you want Intellisense support: @if(false) { }
  • You may also need to press CTRL+SHIFT+J to update the Javascript Intellisense support
  • I need to do both these steps to get VS2010 to recognise the vsdoc Intellisense commentary but it’s well worth the effort.
    On a general note, I like VS2012 but do note that while you can open VS2010 solutions in VS2012, work on them and still be able to open those same solutions in VS2010, there are limitations. If, for example, you create a solution in VS2012, it won’t open (no way) in VS2010. Equally, I’m encountering very odd compile errors in VS2012 solutions – problems with missing references to metadata files – that go away if you open the same solution in VS2010. Reverting back to VS2012, the same solution now works – for a time. MS – not good enough for a core tool.

    16
    Sep

    With the arrival of Entity Framework (EF) 5.0, we’ve seen an explosion of options to integrate with a database. Being an early adopter of EF, one of the major bugbears was the plethora of problems that emerged when (I don’t mean if) your database schema updated. The ripple effect through your edmx model was chaotic to manage. Check our past posts to see how we managed that natural evolution of a database while embracing the other benefits of EF.

    As we begin another project (this time eschewing Silverlight and heading to MVC4) we’re still happy to work with EF but it’s only prudent that we check to see how schema changes are accommodated. The vista of possible options are muddied by the many CTPs and advances viewings of MS’s offerings in this area (I’m even looking at you, Pluralsight). With the release of VS2012 and EF5, thankfully, they have been accompanied by an excellent (blessedly, short) collection of videos. One of the new options is to generate a new database from your (still evolving) set of POCO – known as EF Code First. Being a programmer and looking for any opportunity to undermine the few remaining tasks of our DBA colleagues, this does appeal. However, before shacking up with Code First (afterall, this is MS and this is a new approach), the important question is how are changes to the underlying POCO propagated to the database after your first stab and a data model (never your last). Enter ‘Code First Migrations’. Not to give too much away, this handles, and crucially exposes the processes, the updating of the database schema prompted by changes to the underlying POCOs.

    14
    Sep
    image 093B9E9A Localhost not refreshing to reflect code changes

    IIS Express

    This problem has visited me a few times and like such problems you quickly forget what the cause/cure was. The problem is manifested when you run a debug session in Visual Studio (I use VS2010 in a Parallels VM for what it’s worth). The issue is changes that I make to the code and save should be immediately available to me in the browser following a refresh (F5 or similar). Instead, the site page served is that of the (now) older file.

    The usual solution I’ve worked with was to kill the localhost session, recompile and run prompting another development server to spawn and all was fine. However this seriously hits the development process.

    The solution that works is to ditch the built-in VS development server. I had done this before for other reasons and installed IIS Express – a lightweight version of IIS with the following benefits:

    • It doesn’t run as a service or require administrator user rights to perform most tasks.
    • IIS Express works well with ASP.NET and PHP applications.
    • Multiple users of IIS Express can work independently on the same computer.

    You can even write batch files to spawn a IIS Express process for deployment purposes. Anyhow, this *almost* fixes the problem.

    However the location of the source code as suggested in other answers is important – it works for me using the c:\windows folder or c:\users\DefaultAppPool – apparently it has something to do with security to ensure. Only applications running under the ‘DefaultAppPool’ identity are permitted under IIS. So for anyone using a VM and mapping the host OS code folder you won’t be able to rectify this unless you copy to a local folder in the c:\users\DefaultAppPool folder.
    More on DefaultAppPool at IIS.
    Now a further wrinkle is a likely problem you’ll encounter when you move your application to the DefaultAppPool identity – if you’ve used the Membership Provider of ASP.NET, the database it had created on SQL Server for members won’t permit access with the new identity. I looked at ways to add “IIS APPPOOL\\ASP.NET v4.0″ as a Login but it just wouldn’t recognise that as a valid user in SQL Server Management Studio Express. The solution I found was to open up IIS Manager (apparently it acts as the console for IIS Express as well) and choose ‘View Application Pools’.
    Screen Shot 2012 09 14 at 21.59.49 Localhost not refreshing to reflect code changes
    Then choose ‘Set Application Pool Defaults…’ and change the Identity property to LocalSystem from ApplicationPoolIdentity.
    Screen Shot 2012 09 14 at 22.00.13 Localhost not refreshing to reflect code changes
    So there we are. I’m thinking I might just have put up with restarting the IIS Express (or Development) server each time but I’ve learned something along the way.
    8
    Sep

    As we kick off a new development, it’s time to reconsider some version control options. Initially, GIT or Mercurial comes to mind as these are well established and well known. Reasonably priced hosting is now commonplace, even private hosting can be free. However, I’ve been interested in TFS (Team Foundation Server) from MS for some time.

    With the imminent launch of VS2012, MS have been offering free, private TFS hosting at tfspreview.com. Though this has been invite-only until recently, there are no guarantees around its long-term ‘free’ price tag. The install is a little easier with the VS2012 line-up but it also works with VS2010 (or even VS2008 with hotfix) though you’ll need VS2010 SP1 patch and a hotfix (no surprises there!). The tfspreview site is slick and it even kick starts VS2012 for you if installed. I haven’t found VS2012 Express too stable just yet and will wait for Win8 and VS2012 Ultimate before taking the plunge – new IDE looks good though.

    To use tfspreview.com, you’ll need a Windows Live ID to logon and register your Project on the site first. There’s a good walkthrough the whole process.

    For those looking to GIT, there’s a good free and private plan available from BitBucket, though I prefer (so far) the integration that TFS offers with VS2010. GIT just isn’t as slick to me but we’ll see. From what I’ve seen VS2012’s TFS integration looks even better than VS2010 – watch this space.

    6 pages

    latest news

    UI Flow

    Posted on Tuesday, 16th April, 2013

    Often, we use wire-framing or mock-up tools (like the good guys at Balsamiq) to help communicate design ideas between developers as well as to clients. However, there is a need for something more efficient to aid communication of possible user interface flows through our emerging application. This communication is for internal use typically and doesn’t [...]

    Testimonials

    Excellent design skills

    Posted on Sunday, 2nd May, 2010

    We at Taxonomy.ie are happy to be associated with Appsolo and look forward to further work together.

    follow me

    twitter facebook delicious

    AppsoloLtd. VAT No. IE97548691 - Copyright © 2010.