Date archives "April 2016"

Measure your CPU & RAM usage with performance watcher

The latest, 6th watcher, has been recently added to the Warden library. It’s probably the simplest one, but it doesn’t mean it’s barely useful. The performance watcher has been created in order to measure the CPU & RAM usage, simple as that. Sounds interesting? If that’s the case, you might find the whole note useful then.

Continue reading

Post/Redirect/Get with new ASP.NET 5 & MVC 6

Post/Redirect/Get or PRG in short is a common pattern used amongst many web applications, that was designed to prevent duplicate submissions of the forms. Not using such pattern may result e.g. in multiple transactions by POSTing the same form twice, which is something that we definitely do not want to see in our applications. Although, it’s quite easy to be implemented in it’s purest form, it’s a little bit more tricky if we want to save the input data provided by the user (let’s say the form has a lot of fields, and regular redirect would reset it to its initial state since it renders a brand new view). In this post, I’ll present how to add such filters to the MVC application that will both save the input data and also the display the validation errors from the ModelState object.

Continue reading

Integration with SendGrid

SendGrid is one of the most popular services for delivering the email messages. It allows sending both, the regular, plain text email messages as well as the templated ones (called “transactional”). On top of that, it has also some other cool features such as marketing templates. In this post, I’m going to describe the way that the Warden project has been integrated with this service.

Continue reading

Pagination for MSSQL & MongoDB

Pagination is (should be) a well-known concept for most of the developers. Whether we want to execute an optimized query on a database that will fetch just a small subset of all available records or increase the web service throughput by returning less data than it’s needed – it all boils down to the efficient usage of the pagination.
I’m going to present my approach to this mechanism, both for the MSSQL and MongoDB databases, yet it can be also used in any other scenario such as in memory pagination.

Continue reading

Warden Web Panel – UI prototype

In my latest post, I’ve stated that one day I’d like to provide some kind of UI for the users, that would visualize what’s going on in their system that is being monitored by the Warden.
As you may have noticed, this special day has come quite fast.
In this post, I’ll present the first prototype of the web interface design (that took me just a couple of minutes to complete).

Continue reading

Warden migration to .NET Core

Big changes related to the Warden project – it has been totally rewritten to the new .NET Core in order to support cross-platform capabilities (at least in a future).
The functionality per se (including API) didn’t change, yet from now on you can use Warden with the new DNX runtime.
If you’re interested in the migration process, a current status of this update (including the supported parts of the project) and what are the next goals – take a look at the whole post.

Continue reading

Warden – extensions, integrations, NuGet

Quite recently I’ve started working on new features for the Warden project and published the first prelease version to the NuGet (along with other packages that are meant to be additional plugins). In this post, I will discuss the available extensions that are basically responsible for making the fluent API even more fluent and the integrations that are a totally new thing, implemented as separate plugins (similarly to the watchers), which provide a quick access to the external services that can be part of the Warden (e.g. the SendGrid).

Continue reading

Sentry project renamed to Warden (#100 commit anniversary)

Eventually, I’ve decided to change the name of my library called Sentry to the Warden. Why? Mostly due to the fact that there’s already a big service called Sentry and I don’t want to use the same name. To be honest, I was aware of that fact since the inception of my project, yet I’ve decided not to do anything about it. What has changed my mind? Mostly other user comments that maybe it would be wise to rename the project – so I did.

The new repository can be found here but it turned out that GitHub manages the repository renaming quite nicely, so the old link will redirect you to the new one as well.