Welcome to Mobile Tech Tracker. Our mission is to help technically-minded people to become better versions of themselves and to help ordinary people to use modern smart technologies to their own advantage. If you want to support us, please consider visiting the pages of our advertisers.
Web GIS: Making modal pop-up on an OpenLayers map
If you want to develop a website that has an interactive map on it, there are plenty of options you can choose from. Google and Bing maps are obvious choices, but both of them have a cost associated with them, which may be excessive, especially if you don't intend to use your website as a commercial product. However, there are several free alternatives that, for many use cases, just as good as the APIs provided by either Google or Bing. Once of such map APIs is OpenLayers.
All of these map providers fall under a software category known as GIS. GIS (which stands for Geographic Information System) is a type of software that provides geographic information, while also giving you the ability to associate non-spacial data with locational attributes. For example, a point on a map may hold a whole collection of attributes, akin to a row in a standard database table. Another example would be a public road, as represented by a multi-point line, having a whole set of traffic-related attributes, such as direction and speed limit. Connecting several of such roads into a network would allow you to calculate the route and estimated time from one point to another, as it is possible on Google and Bing maps.
This functionality, along with other spatial computation capabilities, can be performed by absolutely any types of GIS, so you don't really have to use the ones provided by the major tech companies. The problem with it is, however, that any specific functionality that you would want to implement may not yet be documented, so you will have to figure out how to do it yourself.
As great as OpenLayers is for displaying maps on your web page, it does lacks official documentation for some of the most common use cases. The developers behind it were very generous and have provided many examples, but there are some common use cases that are still missing (at least, at the time of writing). One of such use cases is the ability to display a clickable marker on the map that, when clicked, opens up a modal dialog with more information about the location. And this is precisely what we will talk about in this tutorial.
Using .NET Core SDK projects in .NET Framework
As a software-building platform, .NET Core has already reached a sufficient level of maturity and can do many of the things that its predecessor - .NET Framework, can. Microsoft has even recommended to use it instead of .NET Framework, unless it's absolutely necessary to do otherwise.
.NET Core has many advantages over .NET Framework. One of such advantages is the SDK-type project file. If the content of any project file needs to be edited, a new SDK-type project file doesn't have to be unloaded, unlike a project file that uses classic .NET Framework format. The latter are also way less verbose than the former, which makes it easier to read and edit.
Unfortunately, despite all of its advantages, there are still many real-life situations where .NET Core cannot be used. There are many .NET Framework features that simply don't exist on .NET Core. Some of these features, such as playing audio, can be implemented by using third party libraries, while others, such as the ability to build full feature native GUI apps, isn't available on .NET Core at all (or, at least, not fully available yet).
However, even if you are stuck with .NET Framework, you don't have to be stuck with its ugly and awkward project file format. Even though it's not obvious how to apply SDK projects to .NET Framework, it's not difficult at all. And this trick will significantly improve your productivity.
Learning .NET Core from scratch
.NET Core, which is pronounced as dot net core and is, sometimes, written as dotnet core, is a fairly fresh programming platform from Microsoft that is set to dominate Microsoft software development stack. Therefore, if you are enthusiastic about programming and planning to start career in the industry, .NET Core is one of the hottest specialities that will guarantee you employment with good salaries for years to come.
So, how do you get started learning .NET Core, especially if you never had any prior programming experience?
Learning from free online resources might be feasible. There are plenty of them out there. However, as a beginner, you are very likely to just get overwhelmed with the information. You don't know what you don't know, so it will be difficult to know where to start and it will be easy to get lost and completely discouraged.
I am a self-taught programmer and I know what struggles beginners go through. This is why I have put together a structured course tailored specifically for those who have very little programming experience or no programming experience at all.
Playing audio on .NET Core with NetCoreAudio
For well over a decade, .NET Framework was the main software development platform that Microsoft stack programmers were using. As great as it was, it had one significant disadvantage - it could only be ran on Windows. This limitation has prompted Microsoft to release another programming platform, .NET Core, which is intended to eventually replace .NET Framework.
Unlike .NET Framework, .NET Core can run on Linux and Mac as well as Windows. However, as the platform is still very young, it lacks some of the basic functionality that .NET Framework developers learned to take for granted. Until recently, one of these missing pieces of functionality was the ability to play audio.
However, with NetCoreAudio NuGet package, this is no longer an issue.
Building .NET Core sound application - part 3
This is the third and final part of the tutorial on building a platform-independent audio app on .NET Core. In the first part of this tutorial, we talked about setting up the general project structure and enabling audio playback capabilities on Windows. The second part of the tutorial spoke about adding the ability to play audio on Linux, while also enabling the library to pull the specific code, based on the operating system the software is running on. Today, we will talk about enabling audio capabilities on Mac.
As it has been mentioned before, .NET Core is a great platform-independent technology to build software with. However, due to its platform-independent nature, it lacks some of the most basic capabilities, which were too different in implementation on different operating systems. One of these is the ability to natively play audio.
Although there are reliable ways of enabling audio playback on .NET Core, those require a large number of dependencies.
The goal of this three-part tutorial is to build our own library that will enable us to use basic playback capabilities without any additional third-party dependencies whatsoever.
Building .NET Core sound application - part 2
This is the second part in our series of tutorials on building audio capabilities into .NET Core, which the platform doesn't have out of the box. In the first tutorial of this series, we have set up a basic project structure and have added a class that enabled us to play audio on Windows.
However, .NET Core wasn't created for Windows alone. Therefore, in this tutorial, we will add Linux playback capabilities to our application.
Although there is already a reliable way of playing audio on .NET Core in a cross-platform fashion, it relies on a number of dependencies and inter-operability with Node.js, which is achieved by NodeServices. The solution presented in this series of tutorials, however, doesn't rely on any third party dependencies at all. It doesn't even require any additional standard libraries from .NET Core or ASP.NET Core.
Building .NET Core audio application - part 1
As great as .NET Core is for writing software for multiple platforms, it lacks some basic capabilities. This applies to those functionalities that would work radically differently on different platforms under the hood, especially the ones that weren't the priority for the authors of .NET Core. One of these is the ability to play sound.
With it's predecessor, .NET Framework, you could play sound easily by using classes like SoundPlayer from the standard class library of the framework itself. Likewise, NuGet packages such as NAudio added many extra audio-processing capabilities.
Unfortunately, NAudio is not fully compatible with .NET Framework yet. Although there is a pre-release version that is available in .NET Standard and is compatible with .NET Core, the bulk of its functionality is still only available on Windows.
There is, of course, a reliable way to play sound on .NET Core on any platform, but it requires quite a few additional dependencies. You will have to load ASP.NET Core components, Node.js and use NodeServices to get this solution to work.
Therefore, if you would want to be able to play audio on .NET Core in the most efficient way without loading too many additional components, you can write your own library to do so. Fortunately, the process is not prohibitively difficult.
Building .NET Core desktop application
.NET Core is great for cross-platform app development. Unfortunately, the compatibility with multiple platforms was achieved primarily by excluding any components that are specific to Windows OS that it's predecessor, .NET Framework was built for. This is why, out of the box, .NET Core can only be used to build command line applications with no GUI and, with addition of ASP.NET packages, web application with nothing more than a standard functionality.
So, how can one build a .NET Core desktop application with GUI? Fortunately, the framework is extendable and the extendability goes above and beyond simply relying on NuGet packages.
Any common software functionality that isn't yet available in .NET Core is available via a more mature cross-platform software-building technology: Node.js. And the good news is that two frameworks can inter-operate easily.
In my previous article, I talked about how to play audio in .NET Core by using one of its standard libraries, NodeServices. In this article, I will talk about utilising Node.js from within a .NET Core app to build a desktop application with GUI. However, this time, the methodology is somewhat different.
How to play sound on .NET Core
How do you play sound in .NET Core apps? Is there a version of NAudio NuGet package for .NET Core or it's equivalent? Sadly, playing sound is nowhere near as straight forward on .NET Core as it is on .NET Framework. And there isn't a simple NuGet-based solution either. However, there is a way.
.NET Core certainly came a long way since Visual Studio 2017 was first released. It is now at the stage where the framework itself and the technologies that support it are mature enough to be used in production. However, although .NET Core can be deployed on any of the most widely-used operating systems and any CPU architecture that supports those, the framework is still pretty bare-bone compared to it's predecessor, .NET Framework.
Many things that .NET Framework can do are very Windows-specific with no platform-independent equivalent, therefore .NET Core does not natively support those. One of such functionalities is the ability to play sound from the code. With .NET Framework, you have native classes that support it, such as SoundPlayer from System.Media namespace and third-party NuGet packages, such as NAudio. Neither of these are available in .NET Core and, if you browse NuGet repository for sound libraries compatible with .NET Core, you'll soon realise that there is nothing that will enable you to play sound from the code in a straight-forward manner. At best, you can download some library that acts as a wrapper around some other assembly that needs to be compiled specifically for a particular operating system or a specific CPU architecture. As well as potentially not being available for a particular type of a machine, most of such libraries have a strictly enforced paid-for license.
Despite all this, there is a reliable and simple way of playing sound in .NET Core without having to splash out for an expensive software license. But first, let's see why NAudio, one of the most popular NuGet packages for audio processing, cannot live up to this task.
How to protect your website from spammers
If you own a website and have given its users the ability to post content, such as comments or articles, you are bound to clash with malicious spammers at some point. They will come when you least expect them.
So, imagine that you woke up one day after posting an amazing article that you've put a lot of effort into. And you see that people are obviously interested in what you had to say, as it attracted over hundred comments. At first, it makes you happy. However, your happiness doesn't last, as you discover that all of the comments are about Viagra.
The bad news is that this kind of thing is extremely common. The good news is, however, that it is extremely easy to protect your website against spammers. This is why you rarely, if ever, see these kind of comments on reputable websites.
Tech Blog Articles
Why I won't support anti-human Extinction Rebellion
Being toxically masculine to become a greater coder
All you need to know about Cisco router vulnerability email scam
Biggest misconceptions about full stack developers
It's not Capitalism that's the problem
The most important skill for 21st century
How to think like a hacker
One human trait that slows down humanity's progress
See everything that Facebook and Google know about you
How society conditions you for mediocrity
© Mobile Tech Tracker. All rights reserved. Unauthorised copying of any of this website's content is prohibited under international law.
For any queries, comments or suggestions, please write to email@example.com.