ConTabs end of 2017 review

This entry is part of a 10 part series: Exploring modern .NET development with ConTabs

It’s about to be a brand new year. As 2017 ticks over into 2018, it seems like a good time to look back and review what we’ve been up to. ConTabs only really got underway quite late in the year and it’s no way near finished, so let’s call this an interim review. Still, we can see where we are, how we got here, who we met along the way, and where we might go next.

As I write this, it’s late in the evening of the 31st of December. It’s blowing a gale outside. I’m on the sofa with a (rather flatulent) dog, but otherwise alone. My son is in bed and my fiance is working a night shift. In other words, it’s the perfect time to get a bit reflective. So let’s get stuck in…

What ConTabs looks like now

First things first, let’s look at what we can do with the latest version of ConTabs. The following code (full code) demonstrates several features:

Running it produces this…

Neat, huh?

In this demo, we’re using the following features:

  1. Styling, to change the characters that make up the table
  2. Format strings, to change the way numbers are displayed
  3. Column hiding
  4. Long string handling, to truncate strings too long to display

The original aim of being able to generate tables with two lines of code still holds true, but now we have a lot more flexibility when we need it. The column-related features in particular are motivated by a desire to facilitate consumption of data types that exist for other purposes, without the need for throwaway intermediaries.

Another principle is extensibility. Where possible, consumers should be able to implement their own versions of built-in functionality. This is exhibited by the styling system, which provides simple means to tweak the predefined styles, or to specify something entirely new.


At this point, it’s important for me to doff my cap to a few people who’ve made valuable contributions to the ConTabs project:

Huge thanks to all three of you. I really hope our paths cross again in 2018. As we’ll see, there’s plenty to do…

What’s on the roadmap?

There’s still plenty of functionality left on the table. The list of issues on GitHub is pretty complete, but the big ones are probably:

There has also been talk of a new “builder syntax”, which looks as though it might be a more pleasant way of constructing tables.

All told, there’s plenty to keep us busy and new contributors are always very welcome. (If you’re interested, see our guide for contributors.)

What have we learnt along the way?

As I said in my initial blog post, ConTabs has always been at least partly an opportunity to learn about some aspects of modern .NET development. In the blog series so far, we’ve covered:

Future ConTabs blog posts

Looking ahead, it’s hard to know exactly what shiny things will grab my attention, but I have a few ideas. For a start, I consider my inability to get code coverage data into NDepend to be a bit of a loose end. I’d also like to write a little more on the topic of the .NET ecosystem – focusing on .NET Standard and how it fits in with .NET Framework and .NET Core. Finally, I’m hoping to be able to write about ReSharper at some point too (fingers crossed!)

In other words, this review does not signal the end of either ConTabs development or blog posts in this series. 2018 is going to be a great year – watch this space!

Series Navigation

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.