Some time ago I saw an information about new StackOverflow section named Documentation. At the very beginning, I was very excited about this new feature. It sounds great to structure and organizes all the knowledge contained into this portal. Every day thousands of developers contribute to growing this one of the world’s biggest knowledge base. It is a great goal to achieve. However, when I started to look carefully at the content and the form of the knowledge in this documentation I realized that I even don’t know what good documentation means.
For the last two months, I was taking a little break with writing a blog. I wanted to finish writing my book and close some other projects. I succeeded. I also have an idea to use this time to work a bit on my blog. I decided to move it to another hosting server. That my adventures begins. I installed it on the new server and migrate all the content. The deciding moment was changing in the domain configuration. The only things that I needed to do are: change DNS addresses and Wordpress address in its configuration.
Knowledge base is the most basic tool for managing information. One of the knowledge management principles mentioned earlier, is to storing and sharing. Knowledge base satisfies them. There exist many mature software tools to manage it and the biggest one is broadly known by almost everybody. Wikipedia is probably the biggest open knowledge management tool in the internet. You can use a custom library to configure your own Wiki web site. It is very important to structure knowledge in this repository respectively to organization needs.
Some times ago I faced a task to write tests for generic classes. In the simplest approach it is quite easy task. If we want to test this class using for example NUnit library we can simply write a few test cases.
During my whole professional experience I always wondering what is the most important factor of technical project success. This question is important although for every day work and our side projects. I also reveal that during the work on start up projects we can meet this problem.
KendoUI Grid control is very flexible and powerful widget to present table data. It provides us a set of useful features. All of them is described very well in Kendo Grid documentation. However there is some cases that these possibilities is not enough to fulfill our requirements.
KendoUI Grid support filters and sorting data in user interface. These filters can do some complex logic. Especially if we decide to pass them to API layer and evaluate server side. Let’s imagine that user set a complex filtering and sorting rules that helps him to manage his data. Then he move to another page and when he want to get back he have to set all filters again.
The delegating handler in WebAPI is the most basic mechanism to intercept HTTP message lifecycle. We can find a very clear and useful visualisation of on WebAPI poster. We can see that message handlers is the first place in HTTP request processing which is able to read of modify the message. It is many cases when we would need to place some code before request will be executed and after. But first, we will introduce how to write that kind of handlers.
During the API creating work, it is necessary to test API calls. We can do this in many ways. One of the good method could be just using browser to enter url in address bar. However using this method we can test only GET requests. Also there is problems with setting up headers.
Other method to test HTTP requests is using cURL format and appropriate software. This is a console program, so it is very extensible and powerful. However it is a console program and it is more complicated to use and we should manage request database on our own. It can be easier.
Fortunately it exists a program Postman. It is a software for all kind of HTTP request work. It can be installed as a standalone application and as a Chrome plug in.
If we write code working with databases, usually it is beneficial to preview what SQL is used during the system use. It is the most useful when we want to use some ORM like Entity Framework. Each query executed by Entity Framework is transformed into some SQL query, the it is executed on database. Profilers is mostly use to:
– complexity check of generated SQL query
– query optimization
– checking of existence of common querying problems (e.g N+1 problem)
Integration test is used for checking the behaviour of application from interface to the database. In our case it will be used with API. It is most useful to:
– testing if correctly operate on data
– perform smoke test (checking if some part of API is working)
– simulate some types of behaviour on API server