Announcing the TriSys SDK

We began developing the next generation of cloud enabled recruitment software in 2010 - version 10. In the two years since commencing this groundbreaking project, we have completely re-engineered our technology by building a recruitment software development kit (SDK) using the Microsoft .Net Framework as its foundation.

Our SDK is a suite of tools which are completely integrated into Microsoft Visual Studio, and they provide a robust framework to quickly build cloud enabled recruitment software functionality using advanced point and click smart tags. Developers are able to work alongside designers to write business logic code in C# or Visual Basic and use the full intellisense and debugging capabilities of Visual Studio.

The current version of TriSys is actually built using this same SDK. This is the ultimate in 'eating our own dogfood' and we are now making this SDK available to customers and partners to build their own advanced fully cloud enabled recruitment software systems.

Please click here to learn more about the TriSys SDK.

Windows 8 and Microsoft Surface

This week, TriSys took delivery of one of the first Microsoft Surface tablets to ship in the UK. Please follow this link to the TV advert currently being broadcast on national television.

Surface is a touch screen device, with a magnetic snap keyboard, and runs a brand new operating system from Microsoft called Windows RT. The RT moniker could stand for 'run-time' however this is not an official acronym. Windows RT is design for computers/tablets which use an ARM (here in Cambridge, UK) designed chip, which are the types of chips which power most mobile devices today such as smart phones and tablets.

Windows RT has two distinct personalities - the Modern UI (previously called Metro) is a tile based interface used in Windows 7 Phones. These tiles are live - meaning that they are automatically updated with content for example the number of new e-mails, or a change in stock price. Apps can be purchased and downloaded from the Windows Store and they will install onto the modern UI as new tiles. Stroking your finger horizontally from the right edge of the screen exposes the 'charms' - a context sensitive set of options for each application. Stroking your finger horizontally from the left edge of the screen switches between the running applications.

The second personality is the traditional windows desktop. This can be selected by choosing the Desktop tile and looks very similar to Windows 7. This is where traditional non-Microsoft Windows applications are designed run, however not on Windows RT. This desktop will only run traditional non-Microsoft Windows applications when running the professional version of Windows 8 which is designed for use on non-ARM chipsets i.e. Intel and AMD.

Microsoft has provided preview editions of Word, Excel, Powerpoint and OneNote which run on the Surface desktop and can connect to cloud files stored in SkyDrive.

We were able to get TriSys running on Surface by connecting through to our remote desktop services and am pleased to report that this is automatically touch enabled on the Surface tablet.

My conclusion is that the Surface is a very capable competitor to the iPad. There are certain advantages over the iPad:

  • Synchronisation of Google contacts and calendars does not require trickery
  • Entering contacts into Mail does proper lookup of your contacts, not recipient history
  • Plays more videos than iPad which supports less video formats
  • Skype integration is superb - can call or text directly from contacts
  • Microsoft Office apps
  • Netflix is a great experience with very high quality video

These are the drawbacks:

  • Fewer apps that iOS and Android
  • No native YouTube, Twitter or BBC iPlayer applications
  • Unable to use cloud storage from other vendors - it insists on SkyDrive
  • Xbox music and video is buggy

Overall, I prefer the Surface to iPad and the Kindle Fire HD. The Modern UI (Metro) is better than iOS and Android, although switching between this and Desktop may confuse some users.

Surface and Windows 8 are very credible products from Microsoft and puts them back into the tablet war, although well behind iPad and Android tablets, but much closer to them than previous Windows 7 tablets. Time will see Microsoft close the gap between itself and the tablet industry leaders and Surface is the start of this process.

Project Apex: Part 10

The last few weeks has seen enormous activity in the web development group, as they tackled ths most challenging aspect of TriSys - providing run-time form designing of complex business forms. Whilst this is a tough enough engineering exercise in a traditional windows application, it is much more difficult to do this in a web browser using HTML, Ajax and CSS.

We started off by utilising multiple nested splitters to allow the designer to draw field regions as shown below:

We then progressed to provide draggable and dockable field boxes which could be positioned and docked inside any splitter region:

In order to allow designers to create the splitter layout, we wrote components for splitter design:

We are now working on bringing the SDK toolbox into the browser based form designer to allow true drag/drop business form design.

Stay tuned.

UPDATE 2013:

Apex was put on-hold because browser technology is not yet performant or reliable enough for an industrial strength line of business application - take a look at todays competing browser CRM systems - they simply do not come close to the reliability, speed, extensibility and functionality of TriSys desktop solutions or TriSys delivered as a remote desktop via an HTML5 web browser. It is likely that this project will be resurrected in 2014 when the TriSys Web API and Mobile V2 technologies are completed and browser innovations improve todays issues.

Project Apex: Part 9

Last week we introduced the flexible declarative grid which allows developers/designers to simply declare a SQL statement and column layout to gain full grid functionality such as population, paging, sorting, grouping and filtering. It is also hyperlinkable with fingers on touch devices such as iPad and iPhone.

This week we have standardised the modal dialogues using jquery style popups. This is the user options dialogue which is opened after clicking the ribbon button:

This dialogue can be moved around the screen thus mimicking the windows forms approach used in windows desktop applications.

This form is invoked from a powerful Javascript client-side function:

openModalPopupClientSideFromJavascript("User Options",
                                        520, 600);


We have also added AJAX style client-side waiting animations to the login process to let the end-user know that an operation is in progress:

Typically login will take only a few seconds, but it is important to let the end-user know that something is happening at all times.

Project Apex: Part 8

Created the very important ctrlGrid component which is used throughout the application and allows developers to rapidly declare and specify powerful grids with full support for any SQL statement, column sorting, grouping, filtering, moving.

Here is the first usable version complete with integrated toolbar:

This also shows how to select additional fields to be dragged onto the grid at run-time.

This is a more detailed view showing grid paging in operation:

This uses complex client-side Javascript to render the grid dynamically when the browser is resized. The grid also remembers each end-users configuration of the grid including column sizes/ordering/sorting and filtering. These are stored as cookies and make it very user-friendly as they can have their data displayed exactly as they want it.

The declarative nature of this grid is very easy for web designers to use as shown in this example:

<trisys:ctrlGrid ID="grdPlacements" runat="server" 

            SQLCommand="Select PlacementId, Reference, PlacementType as 'Type',
	                        JobTitle as 'Job Title', Candidate, Skill as 'Status',
	                        Client, Company, PlacementDate as 'Start Date'
                        from v_WEB_PlacementSearch
                        Order by PlacementDate desc"
            RedirectURL="~/Pages/Placement.aspx?PlacementId="   > 

            <trisysGridColumn:GridColumn FieldName="PlacementId"    Width="100"      Visible="false"              
                                            Hyperlinked="true" DisplayFormat="#,###,###,###,##0"        />
            <trisysGridColumn:GridColumn FieldName="Reference"      Width="100"      VisibleIndex="0"                 
                                            Hyperlinked="true"                                          />
            <trisysGridColumn:GridColumn FieldName="Type"           Width="100"      VisibleIndex="1"   />
            <trisysGridColumn:GridColumn FieldName="Job Title"      Width="200"      VisibleIndex="2"   />
            <trisysGridColumn:GridColumn FieldName="Candidate"      Width="150"      VisibleIndex="3"   />
            <trisysGridColumn:GridColumn FieldName="Status"         Width="100"      VisibleIndex="4"   />
            <trisysGridColumn:GridColumn FieldName="Client"         Width="150"      VisibleIndex="5"   />
            <trisysGridColumn:GridColumn FieldName="Company"        Width="150"      VisibleIndex="6"   />
            <trisysGridColumn:GridColumn FieldName="Start Date"     Width="140"      VisibleIndex="7"   
                                            Alignment="right"   DisplayFormat="dd MMM yyyy"             />


As such, we are able to quickly port the existing SQL queries from V10 and get many of the lookup forms operational.

This will keep us busy over the next week, but we have also been working on system options which we will write about next time.

Project Apex: Part 7

Last week we introduced JQuery and client-side Javascript for maximum responsiveness to mimic our traditional windows desktop applications. This week we have connected the product to the back-end SQL Server database using our Business Objects Layer (BOL), and enhanced the forms framework to support contextual ribbon tabs, which are form specific ribbon tabs which only appear when the form is loaded.

This is the initial contextual tabs for the contact form as they will appear when the contact form is visible:

These contextual ribbon tabs become active and visible when the underlying form is visible as demonstrated in this early contact lookup form:

This form shows a DevExpress data grid which is connected to the logged in user database via the BOL and shows underlying test data from our OpusNet database server hosted at Amazon.

We are now working on the ctrlGrid SDK control which will abstract the underlying third party control and allow developers to rapidly build grids to work directly from the BOL. More on this next week.

Project Apex: Part 6

This last week, the design team has focused on the tab framework, and the database team has been working with the .Net developers on the business objects layer (BOL).

Here is the first login form which is automatically added to the tabbed framework you can see at the bottom of the page:

Much debate has focussed on the use of CSS and HTML tables and what is the best way to lay out data entry forms. We are now able to connect via the BOL to the back-end SQL Server.

The Javascript developers have introduced JQuery and Telerik client-side scripting to provide modality for message popups:

This shows the Office 2010 theme which has been implemented throughout as the default theme for the application.

Next week we will demonstrate the contextual ribbon tabs which are part of the underlying forms manager framework.

Project Apex: Part 5

We have now added the navigation bar item links including 16x16 web images and form hyperlinks:

Began work on the entity form layout and management framework. This allows developers and web designers to adhere to a well designed and proven interface for managing the layout and display operations of forms with a full event driven model.

Here is the first test form invoked from the navigation bar:

This technique will form the basis of the data entry form layouts in the next post.

Project Apex: Part 4

Added the drop down menu but it did not look correct:

The problem is due to cascading style sheets.

Here is the resolved menu which correctly floats on top of the ribbon and navigation bar area:

We have also create the navigation bar control and added this to the framework region:


It is gradually starting to resemble Version 10.

We are now working on the images and the hyperlinks for the navigation bar. More next time.

Project Apex: Part 3

The ribbon images are slightly more complex than in our WinForms Version 10 because they have to be multi-size web friendly i.e. PNG, GIF or JPG. Once we got our heads around this, we were able to create the correct images for the ribbon as shown in the following screenshot:

We have also added the alarms region to the right of the main content region, and of course tested in all browsers such as Firefox above.

We will complete the Home ribbon tab buttons over this weekend and hopefully solve some interesting problems with CSS overlays?