Work Placement Blog

Service Deployment

Monday 3rd April 2017

The Scheduler of the Geolocation service was deployed to Production earlier than the rest of the solution as it was an independent service and was not dependant on any other services. logs were then checked to verify the table had been polled, a message added to NServiceBus, processed and written to the log. There was some doubt as to whether this service was still being used, so as well as checking the log, we exported a number of the logs from the Production environment and used a file searching utility, Agent Ransack, to search  for the messages specific to this service.

The other solutions of the Geolocation service are due to be deployed later this month.

Killarney Expo Update

Tuesday 28th March 2017

In order to increase the value of the Quiz App an additional option was added at the end of the quiz for participants interested in a career at Aspen Grove to determine whether they were a student or not, whether their experience was Business or Technical and how many years experience they had.The adjustments to filter the results of the Quiz App involved some restructuring of the architecture of the apps server and database. The quiz was shortened slightly to keep to the goal of a two to three minute duration, also the schema and server were modified to accommodate the adjustments and Dapper, a NuGet package was installed in the solution and used as a wrapper around database Input/Output logic. A Get method was added to display the results when the database was queried. Once the server was tested it was then added to the quiz repository and integrated with the app. Once this is accomplished the App will be presented to Aspen Grove's CEO, Sean Ryan.

Service Deployment

Thursday 23rd March 2017

The service that had been refactored to implement ServicePulse was scheduled for deployment on Thursday morning. Wednesday afternoon was devoted to the preparations and testing the deployment to the Stage Environment. The Deployment Plan was written and circulated to to relevant people, appropriate access granted and the web servers and database server put into maintenance mode.  Once the service was successfully deployed to the Stage Environment it was rolled back by deploying the previous release.

On Thursday morning the service was successfully deployed, the database was then monitored throughout the day to see if it was functioning correctly.

Killarney Expo Sunday 9th April

Tuesday 14th March 2017

A fellow work placement student and I were assigned the task of designing and creating an app to be demonstrated at the Killarney Expo in April. The challenge was to interactively presenting information about the company in a way that was in keeping with the company image and attitude. We decided to do this by presenting attendees with a quiz to complete. The mock-ups for the quiz were created with Photoshop and the prototype built with Ionic, SQLite was used for storing the results. At the moment we are undecided whether to use a JSON file or the SQLite database to supply the questions and answers.

Service Deployment

Friday 10th March 2017

I shadowed the deployment of an update of third party dependency to the a service, this proved enthralling and educational. The deployment was necessary to invalidate redundant data in a cache. After the deployment an escalated support ticket was raised because of a configuration issue on the third party’s side of the integration. Very Exciting!

Automated Testing in ASP.NET MVC - Test Driven Development

Tuesday 7th March 2017

The next stage of this project was conducted by writing the test first and the code after. The functionality was increased by adapting the regular expression so that we can now parse all of the months of the year, but this was only done after writing the test.

Geolocation Project - Unit Testing

Thursday 2nd March 2017

After the initial refactoring of the Geolocation Service the initial unit tests needed to be relocated dependant on the location appropriate to where the code had been moved to. The unit tests were then edited to re-enable them. Once this was done, the code committed, pushed and reviewed, the branch was then merged to the project repository.

Dependency Injection

Monday 27th February 2017

Dependency Injection removes internal dependencies by allowing dependent objects to be injected into the class or method by an external caller. It is a mechanism that maximises dependency on interfaces while minimising dependency on specific implementation. To achieve a better grasp of Dependency Injection I used this simplistic version first in LINQPad and then created a Visual Studios project making it slightly more complex. Once this was achieved I implemented Dependency Injection into my Software Engineering Project removing a code smell and instead stored a ‘magic number’ value in AppSettings.

Automated Testing in ASP.NET MVC - NUnit Testing

Friday 24th February 2017

In the Automated Testing project the NUnit Testing package has been installed and the unit tests written for this project, there will be further refactoring to streamline them.

Adding SQLite to Software Engineering Project

Tuesday 21st February 2017

In order to practising the skills needed for the services we are working on I have decided to refactor the Software Engineering project from second year. To facilitate this a System.Data.SQLite package  was installed in the project, it is a library for working with SQLite databases. SQLite is  a self contained, serverless, transactional SQL database engine which can be embedded in the project files. SQLite reads and writes directly to ordinary disk files and doesn’t have a separate server process. The connection code was then modified to work with SQLite instead of oracle.

Automated Testing in ASP.NET MVC - Console Application

Friday 17th February 2017

The next stage of this project was to add a console application to allow for automated testing instead of testing manually. Once this had been added the console was also used to verify the tests were successful. Although this is a small project the usefulness of this feature should not be underestimated as it would save so much time as the project grows, allowing you to test the entire project at the click of a button.

Console Application

Automated Testing in ASP.NET MVC

Wednesday 15th February 2017

TaskController

This code is from a tutorial for Automated Testing in ASP.NET MVC, it is a web application for task reminders. It has proved very useful as it closely mimics what we have been doing Geocode Service we have been working on but in a much simpler form.

The first stage was to create a web app that allows the user to add tasks to a list, if a date is included the date and month will be parsed out and added to a separate column of the list. At each stage the code is being refactored and improved, whilst it is a very simple example, it is proving very useful not to say enjoyable.

Web App UI

C# Tutorials - Interfaces

Friday 10th February 2017

The C# tutorials have been very interesting, below are examples which demonstrates the use of IDisposable interface, one of the uses the keyword 'using' and delegate type functions.

Tutorial Example

Version Control - Git

Wednesday 8th February 2017

The Geolocation Service was migrated from SVN to Git in order to refactor and clean it up before redeploying it. Peer to peer programming with an assigned mentor has been incredibly interesting, seeing all the principles we have been learning at college applied to software that is in use. The code is confidential so cannot displayed here.

Project Git Log

C# Tutorials - Generics

Friday 3rd February 2017

Whiteboard Code

Tutorials continued covering the differences between C# and Java and advanced C# principles, concentrating on relevant features that will be needed for the projects we will be working on. Exercises included verbally describing written code and writing code on a white board as the code was verbally described to me. It was a good exercise to use the correct language with precision to communicate the code and what it does. An essential skill in the software development process. This example is based heavily on generic types.

The First Week of Work Placement

Wednesday 25th January 2017

The first week has been taken up with induction and training. We had meetings with key people in Aspen Grove which has provided an informative and thorough overview of the company and it's structure, it has also given a deeper insight into the companies customer base, the nature of the products we will be assisting with and it's Business Strategies.

The induction was thorough, with a collection of online courses which had to be completed, covering the Business Development Strategy, Health and Safety, Internal System Training, introduction to the Software Systems being used, reading the Company eBooklet, Security Awareness course, Information Security Management Systems Course, Business Continuity Management Systems Course and HR Questionnaires.

After completing the induction there were more courses as an introduction to the services like NService Bus, frameworks like Swagger, MVC, NUnit and MSUnit. As well as Nuget packages, MSMQ, REST web API, JSON, DTO,  C# Repository Pattern and MS SQL Server. Time was allowed for me to familiarise myself with the solution we would be working on first.

Certificate 1
Certificate 2
Certificate 3
Certificate 4
Certificate 5
Certificate 6