Используемые технологии
Начало развития технологии .NET Framwork практически совпало с выходом Windows XP и ознаменовало принципиально новый подход Microsoft к построению операционной системы. В основе .NET лежит принцип кроссплатформенности базирующийся на формате исполняемых файлов не привязанных к архитектуре конкретного процессора. Для исполнения таких файлов требуется запускающий модуль (common language runtime), который из промежуточного кода на лету создает и оптимизирует код, который уже исполняется на конкретной аппаратной платформе. Кроме того, в .NET используется так называемый управляемый код, который, например, исключает возможность выхода за размеры массива (буфера), тем самым исключая ошибки налезания на соседние данные или переполнения стека и исполнения вредоносного кода. .NET стандартизован ECMA и ISO/IEC и имеет кроссплатформенный эквивалент с открытым кодом Mono.
Вариант Mono для мобильных устройств представлен компанией Xamarin. Таким образом, использование .NET дает следующие преимущества - кросплатформенный код с защитой от некорректной работы с памятью, запуск на наиболее распространенной настольной операционной системе Windows без дополнительных установок (поскольку .NET штатно входит в систему) и очень высокое быстродействие, в некоторых случаях превосходящее C++ (если на C++ не совсем корректно написано), поскольку оптимизатор runtime разворачивает в inline все функции, которые может. Кроме того runtime версии 4 умеет оптимизировать вызовы функций из другого приложения (то есть из другой .dll), на что обычное (native) приложение не способно. Кстати, команда из Xamarin еще в 2012 году портировала Android на Mono, результаты впечатляющие.
В качестве базы данных могут быть использованы практически любые SQL серверы, в настоящее время доступны порты для бесплатных баз данных - Microsoft SQL Server Express Edition, Microsoft SQL Server Compact Edition, MySQL. SQL серверы от Microsoft работают только на платформе Windows, а MySQL доступен для любой платформы. Из них Microsoft SQL Server и MySQL представляют собой полноценные серверы, а Microsoft SQL Server Compact Edition является встраиваемой (в приложение) базой данных.
Для подключения другой базы данных к нашей информационной системе достаточно внести минимальные изменения в код порта, который является открытым и может быть скорректирован самим пользователем.
В качестве движка веб-сайта используется технология ASP.NET MVC (модель-представление-контроллер), которая позволяет получать максимально гибкий инструмент. Данная технология присутствует и в .NET и в Mono. Платформа MutliView, реализованная на данной технологии позволила получить максимальное быстродействие. Например, на одном из наших серверов (Intel Core i7 с 4-мя ядрами и гипертредингом) количество запросов в секунду первой страницы издательской системы, используемой редакцией физического факультета МГУ, составило почти 15 тысяч с суммарным трафиком 600 мегабит в секунду:
В течение последних лет технология ASP.NET MVC удерживает лидерство по производительности, опережая многие другие исторически более распространенные технологии. Например для php в системе 1c-bitrix считается нормальной производительность не менее 30 запросов в секунду, и даже дополнительные модули для ускорения php демонстрируют отставание от MVC.
В качестве языка программирования используется C#, который является одним из лучших языков, сочетающих простоту и удобство C++ и наглядность объектного подхода подобного Java.