Currently software tester goal to be C# developer

Originally, I was a web developer doing Ruby on Rails then got involved more on the selenium testing using RSpec and capybara. I got laid off and now fast forward to my current job. I’m now involved in .NET C# environment doing manual testing with no coding. However, my company is providing QA Automation training and the hope is to be writing some code.

Should I stay within the Microsoft realm or spend my free time with front end stuff like HTML, CSS, JS, React, Angular side of web development?


How does Angular integrate with .NET these days?

welp… Microsoft .NET development can also include HTML, CSS, JS, React, Angular and all that. You can use C# on backend and the rest of tech on front end. (Though C#/.NET on front end is coming soon, aka Blazor).

And now, .NET also runs on Windows, OSX and Linux. (.NET Core 2)


Ideally you should try both and see which you enjoy more. C# is a good language but the statically typed languages like C# / Java are probably twice as challenging to learn as JavaScript. .NET is a huge ecosystem and is rapidly evolving because of the open-sourcing of dot net core. Knowing where to start is a real issue.

In my own experience, the front end is more accessible to the beginner. I’ve learned JavaScript and various front end frameworks and they’ve all seemed achievable. But when I tried .NET, I got that sinking feeling…


A gentler way to get on board C# (and have access to all the .NET libraries and frameworks) without learning the more complicated MVC pattern (which can be overkill for simpler projects) is using C# Razor Pages syntax.

I mean, you can even assign your C# variable values to your VueJS or JS code like this. It’s not a neither or. You can use both C#, JS, or other front-end frameworks at same time.

@section customscript {
    <script src="~/build/scripts/app-min.js"></script>

        var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

        // NOTE: Vuejs should come before CKEDITOR script, otherwise the editor does not work.
        // v-model will ignore initial value, checked or selected attributes of form elements.
        // will be the source of truth
        var app = new Vue({
            el: '#add-article-form',

            data: {
                publishDate: '@PublishDate',
                originalUrl: '@OriginalURL',
                originalUrlImported: 'N',
                issueEdition: '@IssueEdition',
                volumeNumber: '@VolumeNumber',
                issueNumber: '@IssueNumber',
                title: "@Title",
                subtitle: "@SubTitle",
                sortOrder: '@SortOrder',
                author: "@Author",
                articleSummary: '@ArticleSummary',
                articleText: '@ArticleText',
                articleFooter: '@ArticleFooter',
                tags: '@Tags'

            }, // end of data

    // rest of stuff here.... 

You can call custom C# functions in libraries and extensions you made, from the HTML page.

<div id="easytaghelp" class="col-sm-4" >
    @Utilities.DisplayEasyTags( )

On your HTML/Razor page template, you can use whatever .NET library you need. Embed it on the page.

@using System.Text.RegularExpressions;
@using System.Security.Cryptography;

then later on, use it on your page.

    // short summary/description for this article
    if (String.IsNullOrEmpty(Article.ArticleSummary))
        // use full story text for our summary
        articleSummary = ASP.Utilities.RemoveHTMLTags(articleText);
        articleSummary = articleSummary.Substring(0,400);   // get first 400 char
        articleSummary = Regex.Replace(articleSummary, @"\r\n?|\n", " ");    // remove line breaks
    } else {
        articleSummary = Article.ArticleSummary;

Connect easily to an SQL Server database, make SQL queries!

    var db = Database.Open("MYDATA");
    string query = "Select * FROM Articles WHERE ArticleID = @0 ";   
    var Article = db.QuerySingle(query, articleID);
    db.Close( );

I didn’t know that using .NET we could use both type of languages…
Amazing :open_mouth: