Looking at this title, many developers would say “Are you mad? You can’t build single page applications with C#! You need a front end framework, like Angular, React or Vue”. Right now I can’t say that I can prove them wrong, but I can definitely at least say that building SPAs with C# is in fact possible. For now it’s only experimental, but the ASP.NET team announced an experimental project called Blazor. Blazor is an experimental web UI framework based on C#, Razor, and HTML that runs completely in the browser via WebAssembly. This really opens new perspectives on the fact that you may build modern SPAs using C# and the entire .NET stack. Continue reading
If you develop using C# and the .Net ecosystem, chances are that you will need to use enums at a certain point. The enum keyword is used to declare an enumeration, a distinct type that consists of a set of named constants called the enumerator list. Enums are easy to use and especially useful if you have to work with some data data you don’t necessarily want to put in a database. Here’s a very short example of an enum: Continue reading
Cloud computing is now growing at a very fast pace for over 4 years now. Strictly related to the increased adoption of cloud technologies there is also an increasing interest in software as a service, as companies of all sizes around the world realized the benefits of paying a subscription for the software they use. In these perspective, software development companies and independent developers around the world build now multi tenant applications. However, multi tenant applications are a tricky from the planning phase, since customer data needs to be strictly isolated, the application itself must be highly available and easily scalable. And, as I also briefly mentioned in my previous article, everything starts from the database. That;s why I would like to briefly point out the main SQL design patterns for multi tenant applications.
In practical examples I will refer mostly to Azure SQL databases and the .NET ecosystem, although the main design patterns are still valid for any relational databases you might want to use. A lot of these aspects are described in different Microsoft Azure documentation articles. My goal is to summarize information that is otherwise dissipated in different sources. Continue reading
Databases are one of the first things to think about when developing new software, especially web applications. I know that at a first sight, this topic seems to be a little odd: you simply use a relational database like SQL or MySQL ant that’s it, right? Well, I think that modern web applications are a little bit more complex and it might be worth considering other options and that’s why I would like to tackle this topic.
Traditional relational databases are clearly a goo fit for static applications. By static I think about applications that don’t change very often or that don’t require a huge amount of read and write operations. For example, if I would like to build my own blog at a certain time, I would surely choose SQL. And if I think about the data model for a blog post, it could be designed as something like this: Continue reading
It’s been a month since I became a full time software developer at Amdaris and I thought it might be fun to write down some things I’ve learned during this exciting 30 days. This might be useful for people that are in the same position I was during my last year: having some dev knowledge, but finding it difficult to make a bold steps towards a full time developer role. My insights won’t be deeply technical right now and I will definitely avoid very specific .NET topics.
I didn’t know what to expect at the beginning, but for now every single minute was worth this change, because I really had a lot to learn. My first big challenge was getting fully familiar wit Git, branches, commits, pull requests, user stories and so on. These concepts were not necessarily new to me, but I really didn’t know exactly how they are put in practice during day to day activities. Discovering how developers collaborate using specific tools was so great, that I started to work with repositories also for my “personal” projects, since I can clone a specific repository to whichever machine I am working at a specific moment and I can continue to work even if I’m not always on the same computer. If you’re wondering, I am using Visual Studio Team Services to do that. Continue reading
Microsoft just released the Quantum Development Kit, taking a first bold step towards the democratization of quantum computing. Few months ago, the Redmond based company officially published a lot of their internal research and quantum computing roadmap, hence the release of the development kit was an event heavily expected by computer science enthusiasts. With the Quantum Development Kit, developers all around the world can now write quantum computing algorithms dive into deeper into concepts that till now we were able only to speak out to impress everybody around us.
The new released Quantum Development Kit contains the following:
- Q# language and compiler. Q# is a domain-specific programming language used for expressing quantum algorithms. It is used for writing sub-programs that execute on an adjunct quantum processor under the control of a classical host program and computer.
- Q# standard library. The library contains operations and functions that support both the classical language control requirement and the Q# quantum algorithms.
- Local quantum machine simulator. A full state vector simulator optimized for accurate vector simulation and speed.
- Quantum computer trace simulator. The trace simulator does not simulate the quantum environment like the local quantum simulator. It is used to estimate the resources required to execute a quantum program and also allow faster debugging of the non-Q# control code.
- Visual Studio extension. The extension contains templates for Q# files and projects as well as syntax highlighting. The extension also installs and creates automatic hooks to the compiler.
Technology evolves on a very fast pace and it’s often difficult to predict the future of technology or some specific directions that technological development will head to. Still, last week there was an event that unarguably defines some strategic directions that technology development will surely emphasize. So last week, AlphaZero won a 100 games chess marathon against Stockfish. Not only did AlphaZero win, but it didn’t lose a game at all! It won 28 games and drew 72. The spectacular aspect from a tech perspective is that AlphaZero learned the game in only 4 hours. Continue reading
Azure automation is, in my opinion, one of the heavily underrated offerings in the Microsoft Azure platform. During my time at Microsoft I had the opportunity to work with some great partners on Azure automation projects and also talk about it at the Microsoft Partner Days in Munich. So I thought it might be worth writing a few words about it on my blog and move away from the .NET Core topic. A huge challenge is to keep this as short as possible.
Microsoft Azure Automation provides a way for users to automate the manual, long-running, error-prone, and frequently repeated tasks that are commonly performed in a cloud and enterprise environment. It saves time and increases the reliability of regular administrative tasks and even schedules them to be automatically performed at regular intervals. You can automate processes using runbooks or automate configuration management using Desired State Configuration. I will not give the entire “Intro” talk here :). If you are not familiar at all with this topic, you may check the official Microsoft getting started guide. Continue reading
Few days ago I blogged about .NET Standard, .NET Core and .NET framework and I think it might be a goo idea to write something about .NET Core today. .NET Core is an open source, cross platform development framework in the .NET world. What I would like to do today is to show how to deploy a .NET Core console application using command line. This is nothing complicated or particularly useful, but it will help to get a better understanding on what “cross platform” means. I will use Visual Studio Code and the integrated terminal to run the needed commands. Continue reading
Reading Twitter and several discussion threads on GitHub or Reddit, I came to the conclusion that there still is a lot of confusion when discussing .NET Standard, .NET Core and .NET Framework. The truth is, .NET Core and .NET Standard are still new and Microsoft also keeps making some changes when releasing different versions that add to the confusion. That’s why I will try to demystify these different components of the .NET world. Before getting into it, I would like to underline that this is my understanding and therefore I might be wrong at some points, but overall I think the overall picture is still helpful for clearing some of the confusion out there. Continue reading