We believe in good software

because we make it

JavaScript here we come!

CODEFUSION is still a young company. We are on the market since 6 years. From the very beginning we are very tight with the web. We are constantly fascinated with the direction and speed in witch the technologies around internet are evolving and we evolve together with them. Our first projects were created in Microsoft ASP.NET MVC. The life cycle of ASP.NET MVC application is very traditional. User works in the browser and sends the request to the server. On the server side the HTML, CSS and possibly JavaScript is prepared. On the server .NET and C# are used to generate the data that is send back to the browser. The documents are the rendered and showed to the user. The only extravagance back then was an Ajax call (Asynchronous JavaScript and XML).

Then we created ExCalc – Leasing Calculator. It is a mobile app that is created in web technologies (KnockoutJS i JQuery UI). The server side API (written again in C#) serves the data to the application that uses HTML 5 and CSS for the UI and JavaScript to manage the data. Everything is wrapped in the Cordova framework to ship it to the Android and iPhone stores.

Now we are preparing another web project. We wil be using one of the JavaScript framework as a base for that application. It will be something like AngularJS, Knockout, React or Blaze. So virtually no page callbacks and 100% of the data management done using Javascript (or TypeScript or CofeeScript for that matter). CSS will be done using Less or SASS. User interface will be done usingjQueyUI, KednoUI, IgniteUI or AngularUI. The life cycle of such application is very different from the traditional approach. After initial delivery of HTML, CSS and JavaScript, all the communication with the server is done using a lightweight API and communication limited to the data (usually formatted using JSON). The management of the data is done solely in JavaScript and DOM (Document Object Model). Using this technology, we nearly eliminate the load latency, we limit the server load and time needed to render the web application. JavaScript here we come again. JavaScript here we come!

CF Insights part 3 – Hardware

We have acquired a new server lately. A large one. Multi-CPU, multicore, with a lot of-RAM, SSD and lightning fast HDD. It was not cheap. It stays secured in our small server room. What we need it for in the age of SaaS? We should know better because we have in our offer SaaS solutions. Yes, we know better. We know that not everything can be SaaSed. Some services we don’t want to have in the cloud. We want to have them here. We gained our expert knowledge by personally engaging in the IT side of things. Because of that we are able to conduct the Software Product Life Cycle for each and every part of our software. Beginning with silicon and ending at the bits’ level. We have nothing against delegating the more boring IT tasks away, as long as we are able to solve them ourselves – in case of a problem with external provider.

OFR 2016 and internship

Once again a year has passed and once again Opole Robots Fair is coming along. This year we are once again a gold sponsor of that event. This eyar our tournament management software together with the website will be used. We’ve created the software with the internship students during the summer internship program. We are very happy to be able to help in such events like the Robots Fair. This year during summer we will work with the internship students on another interesting project. In a meanwhile have a look at http://ofr.po.opole.pl.

Managed/unmanaged code interoperability

Believe it or not, there are still many projects for which original development began 20 or 30 or so years ago! It is hard to maintain and extend such software. Jung software developers do not know and don’t want to learn Delphi, Fotran or Clarion. The 3rd party vendors are sometimes not supporting the older platforms. The IDEs and operatin systems changed. It is impossible or economically not viable to migrate from old programming languages and environments. So to extend such software it might be easier to develop the new features in .NET. There are several ways of running .NET code from native code and we are slowly becoming experts in it. We are just starting the third project that combines an old software our customer needs to maintain with the new C#/XAML/WPF/WCF functionality.The procedure ist seemingly simple the an old application written in Delphi or Clarion is seamlessly conntected to the new .NET functionality we write using so called interoperability layer.

We are running our third project that uses this technology. We have a new customer that needed an interoperability layer on top of the new .NET API for CrystalReports. The new CrystalReports vendor (SAP) is no longer maintaining the old API that our customer relays upon. So we build an interoperability layer to provide the .NET API for his software. Having the experience we were able to quickly came up with the solution that is being tested right now.

Flirting with science

From time to time in every company there is a need for something really new. In our craft those ideas grow around software: tools that help developers work smarter, ways to optimize the software development process. Those ideas – true innovations – needs to be verified. Our CEO Marcin Kawalerowicz is doing scientific research in software engineering. Our team does not only provide him with experimental data but is very helpful when it comes to ideas and tools. One of those tools that are not available on the market is NActivitySensor. A Microsoft Visual Studio plug-in that gathers the developer operations in IDE (Integrated Development Environment). This tool uses Visual Studio API (Application Programming Interface) to gather activity data. Those “activity data” contains files operations, solution management, build, test data like for example the exact time of the specific operations occurrence. What this data is good for? Only the researcher imagination is here the limit. For example, our CEO is researching software testing.

NActivitySensor is open source and available on GitHub. As a ready to use plug-in it is available on Visual Studio Gallery.