Создание сайта на ASP.NET
 

C-sharpЧто-такое C#, Asp.Net и Mvc?

C# (Си шарп) - это новый язык программирования от компании Microsoft.

Первая причина разработки нового языка компанией Microsoft - cоздание компонентно-ориентированного языка для новой платформы .NET. 
Вторая  - это создание альтернативы языку Java. Это обусловлено тем, что Microsoft была вынуждена отказаться от Java, по существующим на то мотивам. Тогда они создали свой Java-подобный язык, который и получил название C#.

ASP.NET — это технология создания веб-приложений и веб-сервисов от компании Майкрософт.  Она исполняется на платформе Net FrameWork, которая увеличивает скорость разработки веб приложений, используя всю мощь платформы Net. Основным языком программирования на платформе Net служит С#.

В Asp.Net сущесвтует два основных направления Asp WebForms (разработка программ аналогична разработке настольных приложений) и Asp Net Mvc (об этой технологии и пойдет речь далее).

Схема архитектуры Model-View-Controller (MVC) разделяет приложение на три основных компонента: модель, представление и контроллер. Платформа ASP.NET MVC является легковесной платформой отображения с широкими возможностями тестирования и, подобно приложениям на основе веб-форм, интегрирована с существующими функциями ASP.NET.

Платформа ASP.NET MVC имеет следующие преимущества.

1. Она облегчает управление сложными структурами путем разделения приложения на модель, представление и контроллер.

2. Не использует состояние просмотра и серверные формы. Это делает платформу MVC идеальной для разработчиков, которым необходим полный контроль над поведением приложения.

3. Хорошо подходит для веб-приложений, поддерживаемых крупными коллективами разработчиков, а также веб-разработчикам, которым необходим высокий уровень контроля над поведением приложения.

Платформа ASP.NET MVC предоставляет следующие возможности.

Разделение задач приложения (логика ввода, бизнес-логика и логика пользовательского интерфейса), широкие возможности тестирования и разработки на основе тестирования. Все основные контракты платформы MVC основаны на интерфейсе и подлежат тестированию с помощью макетов объекта, которые имитируют поведение реальных объектов приложения. Приложение можно подвергать модульному тестированию без запуска контроллеров в процессе ASP.NET, что ускоряет тестирование и делает его более гибким. Для тестирования возможно использование любой платформы модульного тестирования, совместимой с .NET Framework.

Расширяемая и дополняемая платформа. Компоненты платформы ASP.NET MVC можно легко заменить или настроить. Разработчик может подключать собственный механизм представлений, политику маршрутизации URL-адресов, сериализацию параметров методов действий и другие компоненты. Платформа ASP.NET MVC также поддерживает использование моделей контейнера внедрения зависимости (DI) и инверсии элемента управления (IOC). Модель внедрения зависимости позволяет внедрять объекты в класс, а не ожидать создания объекта самим классом. Модель инверсии элемента управления указывает на то, что если один объект требует другой объект, то первые объекты должны получить второй объект из внешнего источника (например, из файла конфигурации). Это облегчает тестирование.


Преимущества разработки сайтов с Microsoft ASP.NET

Новейшая технология MS ASP.NET 4 применяется для разработки web-приложений, Internet-сайтов, web-сервисов. Технология была предложена компанией Майкрософт для тех, кто на базе ASP.NET выполняет определенные задачи, связанные с созданием сайтов с небольшим количеством данных, в равной степени, как и для тех, кто трудится над созданием высоконадежного сетевого портала, рассчитанного на сотни тысяч ежедневных посещений. Крупнейшие и популярные сайты известных брендов Майкрософт, Lego, Вольво, Тойота, Хонда, Радио Свобода, Коммерсант, L'Oreal, и других были разработаны именно на ASP.NET.

Надежность и стабильность вашего сайта

Огромное значение для современного бизнеса имеет отсутствие простоев, не важно, будет это на час или несколько часов в день. Простой приводит к серьезным убыткам, удару по репутации в деловом мире. Именно поэтому огромную роль в работе сайта играет его надежность и устойчивость к хакерским атакам. Встроенная защита от различных видов нападений, предоставляет следующие возможности: SQL Injection, переполнение буфера, XSS, изменение скрытых полей и прочие. Технология ASP.NET повышает степень устойчивости к вредоносным действиям и различным видам хакерских атак сайтов, построенных на ней.

Производительность и скорость работы сайта

Строение ASP.NET как технологии позволяет компилировать программный код и все страницы сайта. Код интерпретируется в PHP значительно медленнее и не дает нужного эффекта производительности. Особенно это касается активного использования в разработке сайта концепции ООП. Благодаря тому, что в ASP.NET встроено функционирование сайта на кластере сервера, при увеличении посещаемости на сайте достигается масштабируемость.

Интеграция с приложениями и прочими информационными системами

Платформа Microsoft .NET имеет множество встроенных технологий для интеграции информационных систем и приложений, таких как службы web, WCF, JSON, remoting, XML и пр., при этом ASP.NET существует как ее часть. Наличие таких многочисленных решений дает возможность выбора оптимальной технологии для каждого отдельного случая. Это обеспечит отменную производительность, масштабируемость и, самое главное, - безопасность.


PHP и Asp.Net (...для настоящих програмистов)


Что лучше?
Во-первых, по возможностям PHP-язык отстает от .Net-языков. Хотя в PHP5 (который вышел лишь летом 2004 года) и была значительно улучшена поддержка объектно-ориентированного программирования, но она по-прежнему слабее, чем в .Net, где языки (по крайней мере, C# и VB.Net) являются полностью объектными. В них нельзя создать просто функцию – только метод класса, нельзя создать просто переменную – только атрибут класса и т.п. В PHP нет перечислений (enum), нет событий («ручное создание» нельзя считать событиями, т.к. фактически встроенной возможности программирования с использованием модели событий нет), нет возможности перегружать методы (вследствие отсутствия типизации в языке) – это лишь некоторые неприятные особенности, с которыми приходится сталкиваться, используя PHP после серьезных объектно-ориентированных языков. В PHP нет поддержки многопоточности, есть проблемы с поддержкой Unicode (она есть, но реализована неудобно для разработчика, эту проблему обещают исправить в PHP6).
Во-вторых, PHP гораздо менее строгий язык, чем .Net-языки. В первую очередь – из-за отсутствия типизации. Переменные объявлять необязательно. В результате – множество опасных конструкций, которые не скомпилируются даже в компиляторе Си, в PHP будут выполнены, с непредсказуемым результатом. Некоторые из ошибок (например, неинициализированные переменные) можно увидеть, если включить режим отображения всех ошибок (error_reporting=all), но об этом нужно знать и помнить. Если человек начинает изучение программирования с PHP, то далеко не факт, что он будет информирован о необходимости «дополнительной настройки». К тому же, я часто встречал такое, что начинающему программисту просто надоедают постоянные Notice об ошибках, и он их отключает. Часто в таких случаях сайт по-прежнему работает, и, возможно, даже правильно работает. Но рано или поздно возникнет такая ситуация, когда пропущенная ошибка приведет к серьезным последствиям (взлом, некорректность работы и т.п.). В .Net-языках такое сделать не получится: пока не будет исправлена ошибка – программа не скомпилируется.
Кроме того, в PHP нет исключений, выкидываемых самим интерпретатором. Например, если в .Net вы попытаетесь обратиться к несозданному объекту (ссылка есть, а new вызвать забыли), то у вас произойдет исключение. В PHP в лучшем случае вы увидите предупреждение (если вы не забыли настроить их отображение). Кардинальное отличие заключается в том, что исключение вы не пропустите никак – вместо ожидаемой страницы вы получите информацию о том, что возникла ошибка. В PHP к исходной странице где-нибудь будет добавлено сообщение с предупреждением. Его можно легко не заметить – например, если сообщение появится в малозаметном месте, или внизу страницы, куда вы редко заглядываете и т.п.
Даже если PHP -программист – опытный и знает обо всех тонкостях, описанных выше, по-прежнему существует человеческий фактор. Например, расстался разработчик вчера с девушкой, но работать надо. Однако во время работы программист не сконцентрирован на программе, мысли совсем о другом – повышается вероятность того, что он забудет где-то что-то проверить. Во многих случаях это может остаться незамеченным – интерпретация в PHP произойдет успешно. А в ASP.Net ошибку не пропустить, т.к. либо не пройдет этап компиляции, либо произойдет исключение.
PHP дает разработчику столько вольностей (потенциально опасных), что я бы крайне не рекомендовал изучение программирования (именно программирования, а не веб-разработки) с PHP. Лучше всего начать с серьезного типизированного языка (например, тот же Си), а потом уже переходить на PHP, имея привитые полезные привычки (всегда объявлять и инициализировать переменную, не игнорировать предупреждения интерпретатора и т.п.).
То, что о чем в PHP нужно всегда помнить, в .Net-языках за вас проверяет компилятор. Пока не будет исправлена ошибка – программа не скомпилируется.
Коснусь вопроса производительности. В ASP.Net исходный код компилируется единожды в исполняемый байт-код, в PHP – интерпретируется каждый раз. Согласно этому, ASP.Net должен работать быстрее, однако реальные тесты показывают примерно равную производительность. В некоторых случаях какая-то из технологий вырывается вперед, однако в целом можно сказать, что в этом вопросе технологии примерно равнозначны. К тому же, нельзя забывать о том, что время генерации страницы – это еще и время выполнения запросов в базу данных, которое может быть на порядок больше времени интерпретации и не зависит от используемого языка программирования.

Посмотреть наше портфолио вы можете здесь.

OnlineSE
г. Москва, 4-я Магистральная ул., д.5 к.1
Контакты
Все права защищены. Услуги Хостинга. Регистрация Доменов. Разработка и продвижение сайтов. тел. +7 (919) 777-2574
Русский