Программная платформа. NET Framework явилась ответом компании Microsoft на появление у компании Sun Microsystems языка программирования Java. В обоих случаях сгенерированные программы используют не набор операторов установленного на вашем компьютере центрального процессора Intel или AMD, а операторы выдуманного компьютерного процессора. Исходная платформа. NET Framework (или, в случае с Java, виртуальная машина Java Virtual Machine) изучает операторы и выполняет их предписания. Иными словами, .NET-программы большей частью интерпретируются низкоуровневой программой при некоторых инженерных ухищрениях, заставляющих их работать чуть ли не с такой же скоростью, как и те программы, которые управляют вашим центральным процессором напрямую. То, что делается на этом интерпретирующем уровне, практически не позволяет неверно написанным или вышедшим из-под контроля программам вызвать аварийную ситуацию в Windows или помешать работе других приложений. Кроме этого, создатели. NET Framework получают свободу в конструировании выдуманных центральных процессоров с набором операторов, хорошо вписывающимся в современные языки программирования, не имеющие корней в устаревшем наборе операторов Intel. По крайней мере, теоретически, .NET-программы должны быть более надежными, чем «родные» программы. Кроме этого, .NET-программы пишутся на языках, которые берут на себя низкоуровневые особенности управления компьютерной памятью и объектами, поэтому программисту не нужно возиться с ними, и это, опять же теоретически, приводит к еще более высокой надежности. Часть «Framework» появилась в названии платформы благодаря тому факту, что программе. NET Framework доступна огромная библиотека функций и объектов программирования. Имеющийся в. NET интерфейс прикладного программирования (API) устроен намного сложнее исходного Windows API, на котором создавались Windows-приложения старого стиля. Он включает сотни объектов, позволяющих работать с графическими интерфейсами пользователя (GUI), получать доступ к базам данных, работать с сетевыми подключениями, выстраивать взаимодействие с Интернетом, выполнять криптографические функции, обрабатывать большие числовые массивы и делать еще многое другое.