Clarizen Appathon 2015 – Clarizen.NET & Clarizen2Trello


clarizen-appathon

Finally finished it.

It has been a busy 2 months personally, with my wife’s 30th birthday and her various parties, upping running training to start tackling Marathons (and hopefully at the back end of 2016, Ultra 50ths), plus all my myriad of coding projects, including Windows 10 development and Windows 10 Internet of Things (IoT) for a Raspberry Pi App – more on that soon.

One of my coding projects is an App for the Clarizen Appathon. For anyone who does not know, Clarizen is a Project Management collaboration and tool, and honestly I’m a big fan. Clarizen comes with a a very good Custom Engine for building:

  • Custom Fields
  • Custom Work flows
  • Custom Visualisations using HTML/JS (Called Panels)
  • Custom Business Logic
  • Not really part of the Customisation Engine but a robust RESTful API

This is very good, because there are some areas which Clarizen struggles with, one being their Agile/Scrum implementation. There are various bespoke add-ons for this area but they are not very good.

Which is where I come in.

I decided to try and create an interface to my favourite (free, as Clarizen is an Enterprise implementation) tool outside of work – Trello. This project grew larger than I expected, mainly due to the fact that I also decided to write a Clarizen .NET code library to wrap around their RESTful services. So that is what I did. Because I only wanted to pull down Tasks from Clarizen, I concentrated on the necessary actions from the list to accomplish this:

* Authentication / Session ID

*  Metadata (DescribeEntities)

* Query and a simple Clarizen Query Language (CZQL) implementation.

I have of course used great frameworks like Newtstonsofts JSON.NET and json2csharp to create my POCO’s and built a brute-force alpha-stage API. I enjoyed doing this very much and plan in the following month to get these issues completed:

issues_clarizendotnet

So once I have the bare basics of this done, I moved onto the quick and easy Clarizen2Trello console application, that pulls down tasks and updates Trello (Tasks as cards within various Todo/Doing/Done lists). here is a snippet:

client.Data.Query.Select("Name,Work,CreatedOn,ActualCost,RemainingEffort,DueDate") 
                 .From("Task")
                 .Where("StartDate > 2015-06-01");
            client.ExecuteQuery();

            foreach (Bradaz.Clarizen.API.Models.Task t in client.Tasks)
            {

                if (t.RemainingEffort.Value == t.Work.Value)
                {
                    Card newCardTodo = trello.Cards.Add(new NewCard(t.Name, todo));
                    trello.Cards.ChangeDueDate(newCardTodo, t.DueDate);
                    trello.Cards.AddComment(newCardTodo, "Remaining Effort is : " + t.RemainingEffort.Value);
                    trello.Cards.ChangeDescription(newCardTodo, t.Id);
                }

                if (t.RemainingEffort.Value == 0)
                {
                    Card newCardDone = trello.Cards.Add(new NewCard(t.Name, done));
                    trello.Cards.ChangeDueDate(newCardDone, t.DueDate);
                    trello.Cards.AddComment(newCardDone, "Remaining Effort is : " + t.RemainingEffort.Value);
                    trello.Cards.ChangeDescription(newCardDone, t.Id);
                }
                else
                {
                    Card newCardDoing = trello.Cards.Add(new NewCard(t.Name, doing));
                    trello.Cards.ChangeDueDate(newCardDoing, t.DueDate);
                    trello.Cards.AddComment(newCardDoing, "Remaining Effort is : " + t.RemainingEffort.Value);
                    trello.Cards.ChangeDescription(newCardDoing, t.Id);
                }




            }

Easy! Its the Trello.Net and Clarizen.Net API’s that are doing the grunt. Here is a quick video explaining how it works:

Code can be found here:

A little bit of Clarity.

That isn’t it by a long stretch, I want to really flesh out the Clarizen.NET code so it can be used by other developers, plus I’m also working on a Chrome Extension (Clarity) that enchances the Configuration page within Clarizen itself, and I may even try and convert Clarizen.NET to Javascript AND Windows 10 UWP and create a Windows 10 Clarizen Client (for Desktop, Phone and possibily Hololens – haver some ideas on 3D data visualisation).

Watch this space.

Fresh new Theme, Fresh New Direction


making sweet code.

I have had the old Theme for this blog since its inception a long time ago, and it has not aged well. I have updated with a fresh new look which hopefully reflects my own life at the moment and the direction it is going, which is good. I’m currently extremely busy creating my own site (quick Single Page Application using Knockout.js), learning Windows 10 UWP development, especially for the Raspberry Pi and the IoT branch, plus a number of small projects (like the Clarizen Appathon), so alot going on,

If anyone is interested, my projects are hosted on my Trello Page.

Source of Cover Image.

C#/XAML Compile Error – Various Errors (The name “LayoutAwarePage” does not exist”)


Not a good night. After all my progress my Visual Studio 2012 Project for Accountable has bugged out and I get the following error:

Error 5 The name “LayoutAwarePage” does not exist in the namespace “using:Accountable.Common”. G:\Coding Projects\Visual Studio 2012\SAVED\Accountable\Accountable\BasicPage1.xaml 1 1 Accountable

Weird, as all I have been doing is adding new XAML Views to the project, them bamn, Visual Studio has bugged out. So I furiously last night tried the following:

  1. Had a look on StackOverFlow and found  post  which didn’t help at all. I then logged my own here ONLY after trying the following triage on my Project:
    • Deleted the SUO (Hidden) file from the Solutions folder. No luck.
    • Removed my XAML Files, Classes (Models and ViewModels) and deleted the Common Classes and created a new XAML Basic Page. This causes the Project to reload the Common Classes (including LayoutAwarePage.cs). Rebuilt the Solution, no luck.
    • Removed the reference Syncfusion Controls for WinRT XAML which I use for Custom DatePickers. Still the same issue.
    • Repaired the Visual Studio 2012 installation using Control Panel->Program Features->Visual Studio 2012->Change. Again, nothing happened.

The (very helpful) guys over on Stack couldn’t resolve the issue as well, plus I created a new Project and this works, so i logged a call on Microsoft Connect here:

https://connect.microsoft.com/VisualStudio/feedback/details/771648/c-xaml-compile-error-various-errors-the-name-layoutawarepage-does-not-exist#tabs

As you can see, not very helpful! So I’m now left with no option but to create the Project again, and add it bit-by-bit up from existing code. Hopefully the issue doesnt replicate BUT if it does, I might be able to isolate and provide more detail. For the time being I will keep the SO question open. If anyone else gets this issue, comment here or post on the SO question.

Enhanced by Zemanta

Project Personal….. Say hello to Accountable (Windows 8 Version)


Hi All,

 

As you know I have had a bit of a nightmare over the last couple of weeks whereby my Accountable MVC4 version has come to a bit of a halt due to PC Upgrades etc. I didn’t want to stop while I was on a roll, so I started a Windows 8 Version, and what can I say, I LOVE C#/XAML!  Such a powerful tool set plus having Blend included within Visual Studio 2012, makes UI Design easier. Im loving it so far, so even though I have my MVC4 code back, I have decided to continue. Here are some screenshots of Accountable Windows 8 Version:

Windows 8

Windows 8 (Photo credit: Andy_BB)

This slideshow requires JavaScript.

 

Now I’m plugging in the input Views to create/edit transactions at the moment, which using the ViewModels and the powerful model binding facility, should be easily done.

Enhanced by Zemanta

Project Personal….A bit of an Nightmare!


What a week from hell! My Windows 7 PC’s PSU decided to blow on the day my new brand spanking new Windows 8 Machine arrived (courtesy of Novatech). Unfortunately all my Accountable MVC4 App code is on that machine and then I found I had booked in and synced my latest code (Checked In) on Team Foundation Service so I didn’t have the latest code #sigh#

This was even more frustrating as the I wanted to enter the project into the Dev Circles Code Crash hackathonSo I have decided while I wait to get my data off (New PSU) to start learning Windows 8 App development and create Accountable as a Windows 8 App. So I have read the MSDN Tutorials and tried them out (best place to start) and studied some of the guidelines:

Part 1 – 5 Tutorials

With the basics out of the way I have decided to read Iris Classon’s brilliant WinRT Series, WinRT app guide…. which Iris takes you through the process of creating an WinRT app from design to code. Very good read and I’m finding helpful.

Here are some links:

http://www.irisclasson.com/tag/step-by-step-guide/page/2/

http://www.irisclasson.com/tag/step-by-step-guide/

 

 
For anyone who doesn’t know Iris on Twitter or read her blog, then please read this inspirational post detailing Iris coding career since 2011….yes you read it right, 2011. As you may of guess I’m an Iris fan, and completely blown away by her commitment and passion for a craft I hold dearly above everything in my life (Apart from my wife/children, though I’m sure she will disagree).

http://www.irisclasson.com/2012/07/13/my-first-year-of-programming-july-11-2011-july-12-2012/

Anyway tonight I need to sketch my design of the UI…..wish me luck as I’m not artistic at all!

Enhanced by Zemanta

Project Personal – End-Of-Week Update #2


I haven’t posted any updates for three weeks but that but that is because I have been concentrating on implementing my Repository and Unit Of Work patterns and learning about them. This has taken longer than expected but I had some brilliant help along the way:

  • Pluralsight videos which I have found invaluable and I suggest all Developers go and sign up. There are tons of videos I would like to watch.
  • ASP.NET MVC Post which is awesome.
  • Shawson – My good friend helping me via Skype. Always willing to help and he help me re-affirm my approach was sound.
  • Smartcaveman – A very helpful guy who has helped me on Stack and Twitter.

So what have I accomplished:

  1. EntityFrameworkRepository and EntityFrameworkUnitOfWork implemented and up and working. I blogged about that here.
  2. Implemented a Metro UI CSS as my style for the site. Again blogged here.
  3. Setup a Team Foundation Service account for source code. I want to blog about this soon as this is going to be a useful tool.

    https://garfbradaz.tfspreview.com/DefaultCollection/Accountable

  4. Joined the Dev Cirle Hackathon in which we have 30 days from yesterday to finish a Modern UI inspired App using Windows 8 or ASP.NET or WPF. This gives me something to aim for and is a good way of showing off my ideas:

    https://www.facebook.com/groups/devcircle/doc/187197771416800/

Also interest in 8weekgame a competition I used to run to make a game in 8 weeks, has risen, so I have decided to organise this (Im not entering) which starts on the 3rd December. Alot of people have entered this year, but it shouldnt be too much of a juggle. If you are interested have a look at Facebook Page’s Events:

https://www.facebook.com/8weekgame

Enhanced by Zemanta

Modern UI aka Metro


Hi Guys,

 

For Accountable, i have decided to use Microsoft’s Modern UI (No more Metro) for the design. After careful consideration I have gone with Metro UI CSS instead of Code52’s Metro.css for the sole reason I was having trouble with MVC4’s bundling feature on LESS files which is what Metro.css uses.

 

Metro UI CSS though is easy to implement. Once I have completed Accountable, i will create a MVC4 Project Template and some custon scaffolding and T4 Templates that uses the custom CSS and Javascript that it utilises so anyone can pick it up without the pain of manually amending views CSS etc.

 

Here are some images so far. Some of the styling is turd at the moment and will improve, but this is just a glimpse of what is to come:

 

This slideshow requires JavaScript.

Enhanced by Zemanta