Отвечу на вторую часть вопроса. Чтобы писать на .net лицензии не нужны (спорный вопрос насчет лицензии для винды :) ) Проекты пишутся в visual studio, в каждой версии есть самая простая бесплатная (в последних называется community). С ней так же поставляется урезанная версия SQL сервера. Этого вполне достаточно для разработки.
Для более крутых версий (они обладают дополнительными необязательными возможностями) лицензии стоят дорого.
Но, чтобы опубликовать приложение, нужны лицензии на windows сервер и MS SQL сервер.
То есть может быть ситуация, когда у вас на работе стоит лицензия на виндовс 10, лицензия на visual studio ultimate, лицензированный MS SQL с management studio, ну и на серверах все лицензии. Но когда вы программируете дома для себя, у вас может быть пиратская винда, бесплатная студия и отсутствие sql management studio и вам будет так же комфортно, как и на работе.
Уточню еще, что если вы сделаете какой-либо проект для себя на .net стеке, то аренда серверов с *никс системами будет гораздо дешевле именно из-за отсутствия лицензий, к примеру, самый дешманский шаред хостинг на линуксе стоит 65 рублей в месяц, а аналогичная конфигурация для винды уже 300 рублей в месяц.
Хотя уже появилась возможность писать на .net core и компилировать под линуксовые сервера, но там нужно заморачиваться