Published on Sunday, February 18, 2018 8:30:00 AM UTC in
I just released a new version of Dapper Extensions Reloaded that fixes an issue with handling DBNull values in the default logger. I also started updating some of the surrounding details, like the documentation on GitHub and the included license files. As always, head over to NuGet to get the latest bits (version 3.1.2), or visit the GitHub repository for sources and more.
Published on Tuesday, February 13, 2018 6:00:00 AM UTC in
Creating a TypeScript IoC container was only the beginning. Until it can be integrated with other frameworks, it's only of limited use. Of course, using something like this in different contexts is always possible, but ideally it feels natural to the environment your application resides in, and not forced. As you probably already guessed, this article describes how to integrate "good-injector" with Vue.js. But it goes further: today I announce good-injector-vue, an adapter of my IoC container for Vue.js that does all the required work for you and seamlessly integrates with it.
Published on Monday, February 12, 2018 6:00:00 AM UTC in
In classic languages and frameworks on the server side, like C# and ASP.NET (Core), dependency injection today feels like a natural piece of the infrastructure. With more and more complex applications being developed in the browser, developers seek similar mechanisms and features for client-side languages like TypeScript too. Not only does it reduce coupling and simplify testing; nobody wants to hand-craft deep dependency trees and manually tune these after each refactoring. In TypeScript, there are some conceptual differences to how the topic is typically approached in languages like C#. In this post I briefly talk theory and options, then proceed to create a simple IoC container for TypeScript from scratch: good-injector.
Published on Friday, February 9, 2018 8:00:00 AM UTC in
Plugins are the recommended way to augment the feature set of Vue.js with additional properties, methods, assets and more. Writing them in TypeScript with current versions of Vue.js is straight-forward, but the advice you can find on the web often refers to older versions and does not apply anymore. In fact, the contradictory recommendations you find there may be quite confusing: how do I refer to the Vue.js type in my plugin? Do I use
VueConstructor? Is it
typeof Vue? Well, here is a general rule of thumb that will help and never lets you google for the required syntax again.
Published on Wednesday, February 7, 2018 9:45:00 AM UTC in
As you may have noticed, I've rolled out some changes to this blog recently, one of it being better localization support. In detail:
- You can now change UI language with the switcher to the upper right
- Dates are displayed in your language format and converted to your local time zone
- I provide additional RSS feeds for those only interested in German or English posts
- Some pages (details about myself and my projects etc.) have been translated to both supported languages.
Of course, all content will still only be available in whatever language it has been created in.
I hope you all enjoy these changes :). If you find any inconsistencies, let me know.
Published on Wednesday, February 7, 2018 6:00:00 AM UTC in
Ideally, running your code in production is something that happens completely transparent to your application. Meaning: your app really shouldn't care about the environment it's currently deployed in, and deliberately be as agnostic about that as possible. Sometimes however, there are situations where you need to know this, particularly at development time. Is this legitimate? And if so, how do you get that information? I give you an example and show you how you can easily access this information with Vue.js from TypeScript.
Published on Tuesday, February 6, 2018 6:00:00 AM UTC in
Whenever you work with forms and input fields, sooner or later validation of user input becomes an issue. Of course there's always the possibility to hand-code valdation into your app, but this is one of the topics that look straight-forward at first and then turn into a mess of trial and error quickly. When you're looking for a library to help you with that, you'll probably stumble upon the great curated list on vuejs.org. There's exactly one validation framework listed there, Vuelidate, which looks nice, easy to implement and is very actively maintained. When you try to integrate your TypeScript-based app with Vuelidate, you'll run into several issues that are not so easy to resolve though. One of the major pain points also is that typings are missing completely. After a lot of searching and testing different options, I found a better alternative: Vee-Validate. It's equally active maintained, has a very good documentation and has proven to be an excellent choice for TypeScript developers.
Published on Monday, February 5, 2018 6:00:00 AM UTC in
When I starting playing around with Vue.js, I was also interested in what the deployment story looks like, as this often is a major pain point with other frameworks. My tests were quite satisfying, because the Vue.js Webpack template has a built-in production config that seems to work great. Testing this on a local machine worked flawlessly. The trouble started when I wanted to roll out my sample app to a "real" server. After deployment, I was staring at a blank browser window. No errors, no hints what's wrong, nothing.
Published on Sunday, February 4, 2018 1:00:00 PM UTC in
In my first post on Vue.js, I assumed you want to work with so-called single-file components (SFC). But after playing around with the for a while, I realized that this has major drawbacks too. Here are the details, and other options to work around them.
Published on Sunday, February 4, 2018 12:00:00 AM UTC in
My last post was about setting up a TypeScript environment to work with Vue.js using WebPack. I was amazed about how simple that was and how well features like hot reloading worked. I always want more :). For example, debugging my code using source maps. Shouldn't be too hard, right? Oh boy was I wrong.