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.
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.
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.
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.
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).
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.
In today’s post, I’ll briefly describe one of the most recent watchers responsible for the Redis monitoring. Of course, it is a part of the Warden project, therefore, all of the features such as hooks and integrations are available. Let’s not waste anymore time and start with the code examples.
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).
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.