Asp новая структура системы


Содержание

Библиотека Интернет Индустрии I2R.ru

Малобюджетные сайты.

Продвижение веб-сайта.

Контент и авторское право.

ASP: новые перспективы для малых и средних предприятий

Что такое ASP? Если говорить коротко, application service providers (ASP) — провайдер услуг доступа к приложениям, расположенным на удаленном от потребителя сервере, через Интернет или частную сеть.

Кабельное телевидение и доступ в Интернет уже приучили всех к возможности получения услуг за месячную плату. Естественным продолжением явилась концепция ASP — предоставлять доступ к приложениям как услугу. Идея была не так уж и нова, предоставление удаленного доступа к приложениям началось еще в 60-е годы, с развитием mainframe и частных сетей. Теперь же механизмом доставки приложений становится Интернет, позволяющий сделать такой способ использования программного обеспечения массовым и приемлемым по стоимости даже для начинающих компаний.

ASPnews.com называет три независимых тенденции, которые привели к возникновению направления ASP.

Вопреки сложившемуся мнению, аутсорсинг и ASP — два различных понятия. Их основное различие состоит в том, что традиционный аутсорсинг определяется отношением «один-к-одному», и каждое решение разрабатывается под определенного заказчика, по его индивидуальным требованиям. При этом внешняя сторона управляет приложениями и IT-инфраструктурой, принадлежащими самой компании. ASP, напротив, характеризуется отношением «один-к-многим», предлагая пользователям стандартизированные пакеты решений, владельцем которых является сам провайдер.

Аутсорсинг ASP
Расположение оборудования локальное или удаленное только удаленное
Оплата в зависимости от затраченного времени и приложений ежемесячная, фиксированная плата за подписчика
Владение приложениями (как правило) во владении клиента арендуется у ASP
Сфера охвата IT, бизнес-процессы только приложения
Расходы целиком лежат на одном клиенте поделены между множеством клиентов
Модель «один-к-одному» «один-к-многим»

Появление ASP характеризуется переходом от двухуровневой к трехуровневой архитектуре «клиент-сервер». Двухуровневая схема рассчитана на «толстого» клиента, то есть приложения расположены на компьютере клиента, а данные хранятся на сервере провайдера. Трехуровневая архитектура уже рассчитана на «тонкого клиента» — приложения перемещаются на сервер провайдера, и клиент получает возможность пользоваться ими напрямую через Интернет.

Основные технологии, сделавшие возможным предоставление удаленного доступа к приложениям, следующие.

Несколько неожиданно в этом перечне появляется беспроводный доступ (wireless). Тем не менее, по оценкам Gartner Group, доходы ASP беспроводного доступа составят 4.5 млрд. долл. или 15% от всего рынка ASP в 2004.

Типы ASP. Предоставляемые приложения

В настоящее время можно выделить 4 типа ASP:

Приложения, которые они предлагают, можно отнести к следующим категориям:

Если же рассматривать процентное соотношение предлагаемых программных продуктов, то первая шестерка будет выглядеть таким образом.

В России, главным образом, представлена аренда e-mail-приложений и электронных магазинов или витрин в торговом ряду. Под арендой e-mail-приложений (www.mail.ru, www.beep.ru) следует понимать не сакраментальное предоставление персонального почтового ящика каждому отдельному пользователю. В данном случае в качестве клиентов выступают компании, которые хотят организовать корпоративную почтовую службу (или автоматизировать документооборот), или провайдер Интернет услуг (например, портал вроде Рамблера или Яндекса), желающий организовать службу бесплатной Web-почты для своей аудитории.

Что касается аренды магазинов (www.torg.ru, www.ipassage.ru), следует заметить, что для многих российских компаний выход в Интернет — дело новое и рискованное. Не многие готовы сделать этот шаг, особенно учитывая существующее большое количество неудачных примеров. Несмотря на относительную дешевизну создания электронного магазина в России по сравнению с западными аналогами, часто даже подобные средства оказываются не по карману начинающей компании или считаются неоправданными расходами при отсутствии гарантий достижения результата. Кроме того, нужно заметить, что для достижения успеха мало воспользоваться услугами пусть и хороших программистов, но не имеющих опыта в подобных проектах, а расценки на услуги солидной компании с хорошей репутацией будут выше среднего уровня. В этом случае аренда магазина в торговом ряду будет наиболее безболезненной формой открытия собственного представительства в Интернет: она не потребует больших средств, а в случае неудачи может быть легко прекращена.

Системы ERP являются классическим примером, иллюстрирующим все выгоды партнерства с ASP. Дорогостоящие, необычайно сложные в установке и дальнейшем сопровождении, раньше они были доступны только крупным компаниям, которые могли себе позволить значительные затраты на приобретение программного обеспечения, лицензии, консалтинг и установку, обучение персонала для работы с системой. В результате, по данным Forrester Research менее чем у 5% предприятий малого бизнеса автоматизированы внутренние операции (это по сравнению со 100 % среди крупных и более 50% средних). Теперь подобные бизнес-приложения становятся доступными через ASP компаниям всех размеров и уровней дохода. Так, компания USinternetworking, лидер среди ASP в США, заключила соглашение о партнерстве с PeopleSoft и Siebel Systems. Компания Corio, позиционируя себя как Enterprise Application Service Provider (провайдер услуг доступа к корпоративным приложениям), вступила в альянс с PeopleSoft. World Technology Services предлагает аренду ERP-систем в содружестве с JD Edwards.

В России аренда приложений ERP находится еще на стадии пилотных проектов. Здесь можно отметить компанию «Колумбус», продвигающую на российский рынок систему АКСАПТА, идеально подходящую для концепции ASP (в основе ее технологической реализации лежит трехуровневая архитектура клиент-сервер).

Преимущества использования услуг ASP

Итак, каковы основные причины, по которым компании прибегают к услугам ASP? Стоит отметить следующие:

Безусловно, главными клиентами ASP являются малые и средние компании. Для них часто бывает предпочтительно платить ежемесячные взносы, нежели сразу же вложить внушительные суммы в программное обеспечение. Подобный способ использования приложений описывается классическим сценарием «80/20»: не вкладывая существенных инвестиций в IT, клиенты ASP получают 80% выгод от использования приложений, полностью приспособленных под нужды конкретного заказчика, за 20 % от стоимости этой полной адаптации. При этом молодая компания раньше чувствует отдачу от вложенных средств. Ниже приведены данные сравнения стоимости самостоятельного внедрения приложений и использования услуг ведущего американского провайдера доступа к приложениям USinternetworking.

Сравнение стоимости внедрения приложений внутри компаний и использование услуг ASP (источник: USinternetworking)

Внедрение услуги
внутри компании USinternetworking
Лицензия $300,000 включено в стоимость
Оборудование $85,000 включено в стоимость
Внедрение $60,000 включено в стоимость
Общие инвестиции $985,000 нет
Поддержка $5,000 включено в стоимость
Устранение последствий сбоев $5,000 включено в стоимость
Затраты на функционирование системы $25,000 включено в стоимость
Общие ежемесячные затраты $40,000 $60,000
Время на окупаемость 5-24 месяцев 1-3 месяц

Но не следует считать, что рынок ASP ограничивается малым и средним бизнесом. Для крупных компаний это простой, эффективный и прибыльный способ внедрения новых приложений без вовлечения и так загруженного работой IT-персонала, особенно когда это не имеет отношение к основному профилю деятельности компании и не является жизненно необходимым. Аналитики The Phillips Group весьма оптимистично оценивают перспективы ASP среди крупных компаний:

Следует отметить, что ASP быстрее предоставляет приложение клиенту, чем это мог бы сделать внешний системный интегратор или сама компания внутренними силами.

Сравнение времени установки приложения внутри компании и времени адаптации приложения под конкретного клиента ASP (источник: Collaborative Strategies LLC)

Шаг Установка внутри компании ASP
1) Разработка стратегии 3-6 месяца 2-6 недель
2) Оценка возможных программных приложений 3-6 месяца 1-2 недель
3) Выбор и приобретение соответствующих приложений 1-2 месяца 1 неделя
4) Установка и тестирование программного обеспечения 3-6 месяца 4-8 недель
5) Запуск и обеспечение стабильного функционирования 2-4 месяца 4-8 недель
Общее время: 1-2 лет 3-6 месяца

При этом компания получает определенные преимущества в сравнении с установкой приложений непосредственно внутри предприятия. К ним относятся большая предсказуемость стоимости использования программного обеспечения, масштабируемость приложений, гибкая ценовая политика — компания получает лишь ту функциональность, в которой она нуждается. Таким образом, издержки в точности соответствуют бизнес-требованиям.

Другой неприятный момент, которого удается избежать при использовании услуг ASP, — это замена приложений новыми версиями или даже полная смена устаревшего программного обеспечения. Для компании это плохо предсказуемый, болезненный процесс, требующий немалых инвестиций. Если же компания является клиентом ASP, то получает все нововведения без временных и финансовых затрат. Отношение «один-к-многим» и меньшая приспособленность приложения к каждому конкретному клиенту способствуют мгновенному одновременному введению улучшений, обновлению устаревших приложений, быстрому появлению у клиентов новых возможностей. К тому же, обычно провайдер имеет более тесную связь с производителями программного обеспечения, что, в свою очередь, ускоряет доставку нового программного продукта.

Суммируя вышесказанное, можно привести данные опроса 250 IT-менеджеров, которые отвечают за выбор бизнес-приложений в своих компаниях (исследование проведено еженедельником InformationWeek). На вопрос «Почему Вы пользуетесь услугами ASP?» респонденты отвечали следующим образом.

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

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

Компания, по сути, доверяет ASP хранение своих данных, представляющих немалую коммерческую ценность. Необходимо убедиться в гарантиях сохранности информации и невозможности постороннего доступа к данным. Это понимают и сами ASP. Один из выходов в подобной ситуации — проверка внешней аудиторской фирмой соблюдения конфиденциальности данных и выполнения ASP своих обязательств. В качестве примера можно привести слова Джонотана Родина, вице-президента по технической архитектуре хостинговой компании Navisite: «Мы регулярно подвергаемся аудиту, и так должно быть».

Итак, если компании не требуется индивидуальный подход, она ограничена в средствах или ощущает нехватку квалифицированного IT-персонала, услуги ASP будут для нее идеальным выходом из положения.

Проблемы выбора ASP

Выбор самого провайдера — довольно непростое занятие, особенно если компания заинтересована в аренде нескольких приложений сразу. Было бы разумно отдать предпочтение провайдеру, который сможет предложить полный набор необходимых приложений. Но если у компании большие запросы, найти такого провайдера будет весьма непросто в силу недостаточной развитости рынка. Помимо этого, западные компании сталкиваются с такой проблемой: недостаточно найти нужного провайдера; может оказаться, что в данный момент он загружена работой. По словам Лоренцо Мартинелли, вице-президента по маркетингу компании Aristasoft, специализирующейся на предоставлении услуг по доступу к приложениям производителям IT-оборудования, в настоящее время его компания вынуждена отказывать 80% своих потенциальных клиентов.

Основными критериями при оценке ASP служит срок, в течение которого провайдер успешно работает на рынке, опыт и знания персонала. Важно быть уверенным, что провайдер в состоянии справиться со всеми нуждами заказчика, поддержкой сети и управлением текущими приложениями. Лучше всего, если компания может оценить провайдера по отзывам клиентов, уже с ним работавших. Может быть, в начале следует заключить контракт на короткий срок. Это дает клиенту больше гибкости и возможность изменений в будущем. Долгосрочный контракт — это гарантия долгосрочных соглашений с ASP, что может в дальнейшем стать не выгодным.

Не стоит оценивать стоимость услуг ASP, исходя из предположительной стоимости внедрения приложения самой компанией. Подобные оценки слишком завышены. Будет гораздо правильней сравнить между собой предложения нескольких ASP и выбрать оптимальное. В вопросе же оплаты для большинства клиентов ASP и компаний, которые только собираются прибегнуть к услугам ASP, наиболее предпочтительными являются ежемесячные взносы.

После того, как компания определится с выбором провайдера услуг, наступает время заключения Service level agreement (SLA) — соглашения об уровне (качестве) обслуживания, в котором оговаривается ответственность провайдера и возможности клиента. Хорошо составленное, ясное соглашение поможет снизить риск возникновения конфликтов в дальнейшем, так как источник наибольшего числа конфликтов — это несоответствие реальной работы ASP и ожиданий заказчика.

  1. описание услуг;
  2. продолжительность соглашения;
  3. начало действия соглашения;
  4. время инсталляции;
  5. условия платежей;
  6. условия расторжения соглашения;
  7. правовые вопросы.

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

Обычно наряду с управлением приложениями, ASP берет на себя и администрирование прав пользователей. Здесь важным моментом является определение конкретных сроков добавления и исключения пользователей из списков допущенных к приложению. Отсутствие должной быстроты реакции провайдера может дорого стоить компании, если, к примеру, уволенный сотрудник задумает нанести компании какой-либо ущерб.

Также важно заранее затронуть вопрос увеличения стоимости с расширением использования приложения и договориться, в чем измерять этот рост (число пользователей, транзакций, проходящих через сайт документов и т.д.).

Если же имеется в виду и долгосрочная перспектива, будет нелишним предусмотреть возможность будущего переноса приложений в компанию клиента.

Прогнозы и перспективы на будущее

Рынок ASP ждет быстрый рост в течение ближайших лет, что в свою очередь окажет стабилизирующий эффект на развитие бизнеса, предоставляя всем компаниям равный доступ к любым бизнес-приложениям. Многие аналитики считают, что эта модель впоследствии может даже доминировать среди способов использования подобных приложений.

США традиционно доминирует и на рынке провайдеров услуг доступа к приложениям.

Несмотря на то, что Европа пока еще отстает от США, ее готовность к принятию новой концепции ASP весьма высока.

Если в 1999 году доля Европы на мировом рынке ASP составляла 20 %, то к 2004 году по прогнозам Gartner Group она возрастет до 32 %:

На рынок ASP начинают выходить и сами производители приложений: J.D. Edwards&Co., Peoplesoft, SAP, Siebel Systems и др. Помимо доходов, эти компании привлекает возможность установить более тесное взаимодействие с потребителями своей продукции. Сотрудничая непосредственно с конечными потребителями, компании пытаются покончить с практикой продвижения системными интеграторами одного их программного продукта в ущерб другому.

Другая причина, по которой в последнее время активизировались ведущие производители ERP-систем, в частности SAP, Peoplesoft и J.D. Edwards, заключается в текущем замедлении роста продаж. Борьба за клиентов сейчас направлена не на крупные компании, которые уже автоматизировали свои внутренние операции, а на средние и малые. Таким образом, производители рассматривают концепцию ASP как перспективное средство для расширения спектра клиентов за счет небольших предприятий, несмотря на то, что предоставление доступа к ERP-системам по схеме ASP пока еще не получило широкого распространения. Компании-производители имеют на этом рынке свои преимущества, и ключевой аспект здесь — доверие. Не каждый рискнет доверить свои корпоративные данные и бизнес-функции неизвестной фирме, в отличие от фирмы с уже устоявшейся репутацией. Не нужно забывать и про их широкие возможности в области продаж и обслуживания продукции.

В то же время, производители понимают, что, полностью перетягивая одеяло на себя, они могут остаться в проигрыше. К примеру, Oracle, пытаясь привлечь внимание компаний к собственному подразделению хостинга приложений Oracle Business OnLine, отказывался сотрудничать с независимыми провайдерами услуг доступа к приложениям. Глава Oracle Ларри Эллисон заявлял, что если независимые фирмы и займутся хостингом бизнес-приложений его корпорации, то «только через его труп». Но, опасаясь перехода потенциальных клиентов к SAP и прочим производителям ERP-систем, которые уже сотрудничают с ASP, компании пришлось изменить свои взгляды.

Глядя на быстрое развитие рынка ASP, активизировались и производители оборудования, используемого провайдерами услуг доступа к приложениям. Так, компания Sun Microsystems заключила партнерские соглашения с Lucent Technologies и iPlanet. Три компании собираются создать и поставлять для организации центров обработки данных комплексное высокопроизводительное решение, которое будет иметь надежность 99,999%, что соответствует 5 минутам простоя в год. Для того чтобы провайдеры выбирали серверы компании Sun, корпорация начала программу сертификации провайдеров услуг доступа к приложениям, которая получила название SunTone.

Активная борьба ведется и на рынке баз данных. Так компания IBM начинает перестраивать свой бизнес с учетом новых веяний. По этому поводу можно привести слова старшего менеджера по программным продуктам в отделении IBM Data Management Solutions Джеффа Джонса: «Мы решили, что ASP — это новая категория фирм, и поэтому хотим подстроиться под них, приспособить наши условия под их нужды». Теперь ASP могут приобрести DB2 Universal Database за минимальную начальную цену и выплачивать IBM проценты доходов, полученных ими после внедрения решения в эксплуатацию, исходя из расчета на одного абонента или одну транзакцию. Стратегия работы с ASP компании IBM предусматривает реализацию программ ASP Prime и Hosting Advantage, призванных помочь этим компаниям в использовании ее программного обеспечения.

Конечно, будущее для провайдеров услуг доступа к приложениям не выглядит безоблачным. Во-первых, немало предстоит сделать для обеспечения должной безопасности, скорости и качества работы приложений. Эти вопросы наиболее остро сейчас стоят перед ASP, и перспективы развития рынка предоставления услуг доступа напрямую зависят от их решения.

Не менее остро перед провайдерами сейчас стоит проблема поиска квалифицированного персонала, особенно учитывая молодость рынка ASP. Наконец, одной из основных задач остается повышение осведомленности компаний об услугах ASP и увеличение доверия клиентов к провайдерам. Аналитики из AMR утверждают, что около 30-40 % компаний сейчас рассматривают возможность использования такой схемы, но не более 10 % останавливают свой выбор на ней. Однако, как считают исследователи, это уже прогресс — год назад лишь 5 % компаний знали о существовании услуг ASP, а доля использующих эти услуги не превышала 1%.

Было бы странно, если бы ASP обошли стороной проблемы, преследующие в последнее время высокотехнологичные отрасли. По прогнозам Gartner Group, 60% из 480 ASP-компаний через год прекратят свою работу. Среди последних жертв можно назвать компанию Enabled Markets — провайдера, занимающегося календарным планированием и отслеживанием товаров, и предприятие Hosteu, одного из 12-ти партнеров Microsoft по Exchange 2000, которое было приобретено своим собственным конкурентом 7 Global и тем самым спасено от банкротства. По прогнозам AMR Research, рынок ASP еще ожидает волна слияний и банкротств. Как и везде, где высока конкуренция, выживет только сильнейший.

И все же, большинство аналитических компаний находит поводы для оптимизма. Согласно недавним исследованиям, все больше и больше компаний в США начинают пользоваться услугами ASP. Недаром по прогнозам Forrester Research к концу 2003 года 25 % всех программных приложений для предприятий будут предоставляться провайдерами услуг доступа.

В обзоре использованы данные отчета «The ASP Report» аналитической компании eMarketer.

Думаю, со мной согласятся, что наиболее прибыльным сервисом для ASP является предоставление в аренду CRM и ERP — систем. Особенно в России, где эта ниша пока почти свободна. На мой взгляд, основной проблемой в этой области является то, что вся информация, составляющая коммерческую тайну предприятия, находится у ASP.

Как справедливо заметила автор: «Компания, по сути, доверяет ASP хранение своих данных, представляющих немалую коммерческую ценность. Необходимо убедиться в гарантиях сохранности информации и невозможности постороннего доступа к данным.»

Но в любом случае нельзя гарантировать отсутствие доступа к данным со стороны самого ASP! В связи с этим хотелось бы обсудить следующую проблему. Представим себе компанию-ASP, которая специализируется на сдаче в аренду CRM/ERP систем для какой-либо отрасли. У всех компаний есть общие проблемы, обусловленные спецификой данной отрасли. ASP разрабатывает/покупает ПО, дорабатывает его для решения всех (почти всех) общеотраслевых проблем и сдает в аренду компаниям в том или ином виде (в упрощенном или усложненном варианте, в зависимости от потребностей заказчика). Несомненно, для ASP это очень удобно.

Что же получает при этом сам ASP? В этом случае у ASP аккумулируется ЗНАНИЕ о данной отрасли. Появляется возможность доступа к информации, которая характеризует состояние рынка в этой отрасли в реальном масштабе времени. Фактически можно отследить, какие дилеры и с какими компаниями работают, по каким скидкам и в каком объеме они получают/продают продукцию, можно совершенно точно оценить объемы рынка, потребности рынка, финансовое состояние любой компании и т.д. и т.п. (здесь предела не существует).

Теперь обратим внимание на то, что мы живем в России. Ни для кого не секрет, что в компаниях существуют «белая» и «черная» бухгалтерии (самая «безобидная» причина — уклонение от налогов). Особенно остро эта проблема стоит как раз в малом и среднем бизнесе.

Что же касается взаимоотношений с дилерами — в России еще никто не отменял «телефонного» права. Приехать и лично договориться о нужной сделке/скидке, «выбить» товар, выписанный со склада дилеру еще неделю назад, дать взятку своему партнеру за своевременную доставку партии товара — вот, к сожалению, реалии нашего, все еще «совкового», оффлайнового бизнеса.

Какой предприниматель захочет раскрывать всю эту информацию перед незнакомой, неизвестной ему компанией, которая при этом ДАЖЕ НЕ ИМЕЕТ отношения к его рынку?

Суммируя все вышеизложенное, возникает масса вопросов.
— Возможна ли вообще работа ASP по вышеприведенной схеме в России?
— Будут ли востребованы услуги ASP малым и средним бизнесом?
— Если да, то существует ли возможность сохранения ASP как компании, не имеющей никакого отношения к отрасли? Или же за ASP в любом случае должен стоять один из крупнейших игроков оффлайного рынка, который тем самым получает контроль над целой отраслью?

Очень было бы интересно узнать Ваше мнение на эту тему.

Затрагиваемая проблема распадается по крайней мере на две части: технологическую и организационную. С технологической все просто: существуют возможности организовать сервис так, что сам ASP-поставщик не будет иметь доступа к хранимой на его серверах информации — в самом очевидном варианте информация шифруется, а ключи находятся только у заказчика. В худшем случае ASP может только уничтожить информацию, но такие случаи должны оговариваться в соглашении об обслуживании (или Service Level Agreement).


С организационной точки зрения проблема сводится к общей культуре ведения бизнеса и, в частности, к вопросу доверия между бизнес-партнерами. Проблема эта не нова и проявляется во множестве случаев, начиная от использования кредитных карточек (менеджеры вашего магазина во дворе могут узнать, сколько денег вы тратите на покупку продуктов) и заполнения декларации о доходах (ничто не мешает чиновнику в налоговой инспекции сделать копию с декларации и затем продать ее «нужным» людям) и заканчивая консалтинговыми и аудиторскими услугами (вы сами предоставляете аудиторским компаниям всю информацию о вашем бизнесе). Во всех случаях перед человеком встает проблема выбора: доверять (банку, бизнес-партнеру, государству) информацию о своей деятельности или нет.

Что касается «человеческого» фактора в ведении бизнеса, безусловно, его никто не отменял, и важность его будет сохраняться всегда. Вопрос в другом: как расширить поле ведения бизнеса? Безусловно, существуют важные партнеры, с которыми надо встречаться, убеждать, идти на компромиссы. Но существует и множество компаний, потенциально готовых работать с вами на предложенных вами условиях, и дело только в том, чтобы хватило времени «дойти» до них. Скорее всего, каждый из этих мелких клиентов приносит вам денег на порядок или два меньше, чем ваши главные партнеры, но этих мелких заказчиков может быть множество, и на круг выйдет, что цифры дохода от них и от крупных партнеров сравнимы. Зачем же отказываться от дополнительных денег?

Таким образом, я бы так ответил на поставленные вопросы:

Создание нового ASP.NET MVC проекта

Мы начнем с создания нового MVC проекта в Visual Studio. Выберите New Project из меню File , чтобы открыть диалоговое окно New Project . Если вы выберите в разделе Visual C# шаблоны Web , вы увидите, что одним из доступных типов проекта является ASP.NET MVC 4 Web Application . Выберите этот тип проекта, как показано на рисунке 2-1.

Рисунок 2-1: Шаблон Visual Studio MVC 4 проекта

Visual Studio 2012 включает в себя поддержку MVC 3, также как и MVC 4, и вы видите, что старые шаблоны доступны вместе с новыми. При создании нового проекта обратите на это внимание и выберите правильный

Назовите новый проект PartyInvites и нажмите кнопку ОК , чтобы продолжить. Вы увидите другое диалоговое окно, показанное на рисунке 2-2, где вас попросят выбрать между тремя различными типами шаблонов MVC проекта.

Рисунок 2-2: Выбор типа MVC 4 проекта

Разные шаблоны MVC проектов создают проекты с разной базовой поддержкой таких функций, как аутентификация, навигация и стили. Мы не будем все усложнять в этой главе. Выберите вариант Empty , который создает проект с базовой структурой папок, но без файлов, необходимых для создания MVC приложений. Мы будем добавлять файлы, которые нам понадобятся, по мере прочтения главы, и каждый раз будем пояснять, что мы делаем.

Нажмите кнопку OK , чтобы создать новый проект.

На рисунке 2-2 вы можете увидеть выпадающее меню, которое позволяет вам указать вид движка представления. В MVC 3 Microsoft представила новый и улучшенный вид движка, который называется Razor, и мы будем использовать Razor в этой книге. Мы рекомендуем вам сделать то же самое. Но если вы хотите использовать стандартный вид ASP.NET движка (известный как ASPX) – это ваш выбор. Мы расскажем все о Razor и о том, что делает движок представления, в главах 5 и 18.

Когда Visual Studio создаст проект, вы увидите файлы и папки, отображаемые в окне Solution Explorer . Это стандартная структура MVC 4 проекта. Вы можете попробовать запустить приложение, выбрав Start Debugging из меню Debug (если он попросит вас включить отладку, просто нажмите кнопку ОК ). Результат показан на рисунке 2-3. Поскольку мы начали с пустого шаблона проекта, приложение ничего не содержит, так что мы получаем ошибку 404 Not Found .

Рисунок 2-3: Попытка запустить пустой проект

Когда вы закончите, не забудьте остановить отладку, закрыв окно браузера, который показывает ошибку, или вернитесь к Visual Studio и выберите Stop Debugging в меню Debug .

Visual Studio открывает браузер для отображения проекта, и вы можете изменить браузер, который используется, в меню, показанном на рисунке 2-4. Вы видите, что тут представлены Microsoft Internet Explorer и Google Chrome.

Рисунок 2-4: Смена браузера, который Visual Studio использует для запуска проекта

В этой книге мы будем использовать Internet Explorer 10. Все современные веб браузеры довольно хорошо на сегодняшний день, но мы будем работать с IE, потому что он установлен у многих людей.

Добавление первого контроллера

В архитектуре MVC входящие запросы обрабатываются контроллерами. В ASP.NET MVC контроллеры являются простыми C# классами (как правило, наследуются от System.Web.Mvc.Controller , встроенных во фреймворк базовых классов контроллеров). Каждый открытый метод в контроллере известен как метод действия, то есть вы можете вызвать его из Интернет через некоторые URL, чтобы выполнить действие. В MVC контроллеры находятся в папке под названием Controllers , которую Visual Studio создала для нас при создании проекта. Вам не нужно следить за этим и большинством других соглашений MVC, но мы рекомендуем вам сделать не в последнюю очередь потому, что это поможет вам разобраться в примерах, приведенных в данной книге.

Илон Маск рекомендует:  Что такое код muscat_close

Чтобы добавить контроллер в наш проект, просто щелкните правой кнопкой мыши по папке Controllers в окне Solution Explorer Visual Studio и затем выберите Add во всплывающем меню, как показано на рисунке 2-5.

Рисунок 2-5: Добавление контроллера в MVC проект

Когда появится диалоговое окно Add Controller , назовите контроллер HomeController , как показано на рисунке 2-6. Это еще одно соглашение: имена, которые мы даем контроллерам, должны быть описательными и заканчиваться Controller .

Рисунок 2-6: Называем контроллер

Раздел диалогового окна Scaffolding options позволяет нам создать контроллер с помощью шаблона с общими функциями. Мы не собираемся использовать эту возможность, поэтому убедитесь, что в меню Template выбрано Empty MVC controller , как показано на рисунке.

Нажмите кнопку Add , чтобы создать контроллер. Visual Studio создаст новый файл с C# кодом с названием HomeController.cs в папке Controllers и откроет его для редактирования. Мы показали контент по умолчанию, который Visual Studio помещает в классовый файл, в листинге 2-1. Вы видите, что класс называется HomeController , и он является производным от System.Web.Mvc.Controller .

Листинг 2-1: Содержание по умолчанию класса HomeController

Хороший способ начать работу с MVC – это сделать несколько простых изменений в классе контроллера. Измените код в файле HomeController.cs так, чтобы он соответствовал коду листинга 2-2. Мы выделили изменения, чтобы их было легче увидеть.

Листинг 2-2: Изменение класса HomeController

Мы не создали ничего захватывающего, но это хороший пример. Мы изменили метод действия (action method) Index таким образом, что он возвращает строку » Hello, world «. Запустите проект еще раз, выбрав Start Debugging в Visual Studio меню Debug . Браузер отобразит результат метода действия Index , как показано на рисунке 2-7.

Рисунок 2-7: Результат, возвращенный методом контроллера

Роуты

Также как и модели, представления и контроллеры, MVC приложения используют систему маршрутизации (роутинговую систему) ASP.NET, которая решает, как URL-адреса картируют конкретные контроллеры и действия. Когда Visual Studio создает MVC проект, она в начале добавляет некоторые роуты по умолчанию. Вы можете запросить любую из следующих ссылок, и они будут направлены на HomeController метод Index :

Поэтому когда браузер запрашивает http://yoursite/ или http://yoursite/Home , он получает выходные данные HomeController метода Index . Вы можете попробовать сделать это самостоятельно, изменив URL в браузере. На данный момент, это будет http://localhost:61982/ , за исключением того, что порт может быть другим. Если добавить в URL /Home или /Home/Index и обновить страницу, вы увидите тот же Hello World MVC приложения.

Это хороший пример пользы от MVC соглашений. В данном случае соглашение заключается в том, что у нас есть контроллер HomeController и что он будет отправной точкой для нашего MVC приложения. Роуты по умолчанию, которые Visual Studio создает для нового проекта, предполагают, что мы будем следовать этому соглашению. И так как мы следовали соглашению, мы получили поддержку для URL адресов из предыдущего списка.

Если бы мы не следовали соглашению, мы должны были бы изменить роуты до точки к тому контроллеру, который мы создали вместо этого. Для этого простого примера конфигурация по умолчанию это как раз то, что нам нужно.

Структура каталогов ASP.NET Core ASP.NET Core directory structure

Каталог публикации содержит развертываемые ресурсы приложения, созданные командной dotnet publish. The publish directory contains the app’s deployable assets produced by the dotnet publish command. Каталог содержит следующее. The directory contains:

  • Файлы приложения. Application files
  • Файлы конфигурации. Configuration files
  • Статические ресурсы. Static assets
  • Пакеты Packages
  • Среда выполнения (только автономное развертывание) A runtime (self-contained deployment only)
Тип приложения App Type Структура каталогов Directory Structure
Развертывание, зависящее от платформы Framework-dependent Deployment
  • publish† publish†
    • Views† (в приложениях MVC, если представления не компилируются заранее) Views† (MVC apps; if views aren’t precompiled)
    • Pages† (в приложениях MVC или Razor Pages, если страницы не компилируются заранее) Pages† (MVC or Razor Pages apps; if pages aren’t precompiled)
    • wwwroot† wwwroot†
    • *.DLL-файлы *.dll files
    • <имя_сборки>.deps.json .deps.json
    • <имя_сборки>.dll .dll
    • <имя_сборки>.pdb .pdb
    • <имя_сборки>.Views.dll .Views.dll
    • <имя_сборки>.Views.pdb .Views.pdb
    • <имя_сборки>.runtimeconfig.json .runtimeconfig.json
    • web.config (в развертываниях IIS) web.config (IIS deployments)
Автономное развертывание Self-contained Deployment
  • publish† publish†
    • Views† (в приложениях MVC, если представления не компилируются заранее) Views† (MVC apps; if views aren’t precompiled)
    • Pages† (в приложениях MVC или Razor Pages, если страницы не компилируются заранее) Pages† (MVC or Razor Pages apps; if pages aren’t precompiled)
    • wwwroot† wwwroot†
    • *DLL-файлы *.dll files
    • <имя_сборки>.deps.json .deps.json
    • <имя_сборки>.dll .dll
    • <имя_сборки>.exe .exe
    • <имя_сборки>.pdb .pdb
    • <имя_сборки>.Views.dll .Views.dll
    • <имя_сборки>.Views.pdb .Views.pdb
    • <имя_сборки>.runtimeconfig.json .runtimeconfig.json
    • web.config (в развертываниях IIS) web.config (IIS deployments)

†Обозначает каталог †Indicates a directory

Каталог публикации представляет корневой путь содержимого для развертывания, который также называется путь к базовой папке приложения. The publish directory represents the content root path, also called the application base path, of the deployment. Независимо от того, какое имя присвоено каталогу публикации, развернутого на сервере приложения, именно это расположение обозначает физический путь к размещенному приложению на этом сервере. Whatever name is given to the publish directory of the deployed app on the server, its location serves as the server’s physical path to the hosted app.

Каталог wwwroot, если таковой имеется, содержит только статические активы. The wwwroot directory, if present, only contains static assets.

Создание папки Logs полезно для ведения расширенного журнала отладки модуля ASP.NET Core. Creating a Logs folder is useful for ASP.NET Core Module enhanced debug logging. Папки, указанные в пути к значению , не создаются автоматически и должны заранее существовать в развертывании, чтобы модуль мог осуществлять запись в журнал отладки. Folders in the path provided to the value aren’t created by the module automatically and should pre-exist in the deployment to allow the module to write the debug log.

Каталог Logs для развертывания можно создать одним из двух указанных далее методов. A Logs directory can be created for the deployment using one of the following two approaches:

Добавьте в файл проекта элемент следующего содержания: Add the following element to the project file:

Элемент создает пустую папку Logs в публикуемых выходных данных. The element creates an empty Logs folder in the published output. Этот элемент использует свойство PublishDir , чтобы определить целевое расположение для создания папки. The element uses the PublishDir property to determine the target location for creating the folder. Несколько методов развертывания, например веб-развертывание, пропускают пустые папки во время развертывания. Several deployment methods, such as Web Deploy, skip empty folders during deployment. Элемент создает файл в папке Logs, чтобы гарантировать ее развертывание на целевом сервере. The element generates a file in the Logs folder, which guarantees deployment of the folder to the server. Создание папки с помощью этого подхода завершается ошибкой, если рабочий процесс не имеет прав на запись в целевую папку. Folder creation using this approach fails if the worker process doesn’t have write access to the target folder.

Самостоятельно создайте физическую папку Logs на сервере в каталоге развертывания. Physically create the Logs directory on the server in the deployment.

Для каталога развертывания нужны права на чтение и выполнение. The deployment directory requires Read/Execute permissions. Для каталога Logs нужны права на чтение и запись. The Logs directory requires Read/Write permissions. Для дополнительных каталогов, в которые записываются файлы, нужны права на чтение и запись. Additional directories where files are written require Read/Write permissions.

Кто такие ASP?

В современных экономических условиях, которые сегодня во многом определяются нестабильным положением на рынке NASDAQ, высокотехнологичный бизнес вынужден постоянно меняться, сокращая оперативные расходы и идя на слияние с офлайновым бизнесом — в целях поиска новых инвестиций и статей дохода. Управляющие и менеджеры проектов ищут новые пути сокращения расходов и увеличения доходов или по крайней мере возможности выхода на уровень безубыточности. В подобной ситуации одним из удачных решений является использование услуг ASP (Application Service Providers) — компаний, предоставляющих своим партнерам конкретный пакет услуг или программного обеспечения на определенный период времени (как правило, на основе помесячной оплаты).

Кто такие ASP

Application Service Providers — это компании, предоставляющие своим клиентам возможность арендовать (использовать в течение определенного периода времени) свои аппаратные и программные мощности. При этом заранее сформированный пакет приложений выполняется и обслуживается компанией — провайдером сервиса на ее собственной технологической площадке. Другими словами, аппаратные мощности клиента в данном случае остаются незадействованными, а доступ к приложениям осуществляется, как правило, через Интернет либо, что случается реже, через локальную или VPN-сеть.

Несмотря на то что идея предоставлять подобного рода услуги возникла относительно недавно, уже сегодня на рынке довольно значительное число компаний осознало перспективность данного направления деятельности. Высокий спрос на услуги ASP объясняется довольно просто.

Развитие бизнеса в наше время происходит стремительно: высокая конкуренция заставляет компании оперативно реагировать на изменение ситуации. В результате компании появляются и исчезают, образуются и распадаются крупные холдинги, происходят слияния и реорганизации, однако информационные отделы часто не успевают за происходящими метаморфозами. Именно поэтому общей тенденцией последнего времени становится передача на контрактной основе значительной части функций ИТ-отдела специализированным фирмам, не входящим непосредственно в структуру компании. А поскольку современные инструменты разработки позволяют быстро создавать и разворачивать приложения, подобная организация работы ведет к очень значительному сокращению временных и материальных затрат на организацию и поддержание деятельности.

Простейшим примером услуг ASP, предназначенных для «домашних» пользователей, может служить онлайновый словарь или программаантивирус, предлагаемая компанией-разработчиком на своем сайте или например, предоставляемая пользователям, провайдером доступа в Интернете. Появление подобных сервисов делает необязательным наличие всех необходимых ПО на собственной машине или в локальной сети. Теперь, если вы хотите узнать значение или перевод незнакомого слова или проверить компьютер на наличие вирусов, необходимо всего лишь иметь доступ в Интернет, поскольку довольно часто эти сервисы предоставляются бесплатно. В итоге конечный пользователь получает необходимый ему сервис, а сетевой ресурс — посетителей.

Год назад о начале предоставления услуг ASP объявила Microsoft, крупнейшая компания — разработчик офисного ПО. Теперь любой желающий может зайти на сайт компании, создать, отредактировать и сохранить свой документ в формате MS Word.

История возникновения ASP

Нельзя сказать, что ASP — новое достижение прогресса, по сути это лишь новая форма отношений между клиентом и заказчиком, возникшая на очередном этапе развития индустрии.

ASP является логическим звеном в модели бизнеса, где взаимодействуют производители инструментальных средств разработки и баз данных и независимые разработчики, создающие приложения на их основе. И если ранее последним звеном в этой цепочке был конечный пользователь, то теперь появилось еще одно звено — ASP, компания, приспосабливающая приложения к нуждам пользователей, которые будут арендовать эти приложения, получая к ним доступ по Сети. Другими словами, ASP — это эволюционный, а отнюдь не революционный шаг в развитии ИТ.

Аналитики выделяют две независимые тенденции, обусловившие возникновение данного направления деятельности. Прежде всего это уже упоминавшаяся тенденция к аутсорсингу (outsourcing (англ.) — передача функций отдельных второстепенных подразделений внешним исполнителям; заключение субдоговора на выполнение работ с внешними фирмами, особенно иностранными или теми, которые не имеют профсоюза) в сфере ИТ. Сегодня аутсорсинг в компьютерной сфере является чрезвычайно распространенным явлением, выгодным как для работодателя, так и для исполнителя. ASP, хотя и не является аутсорсингом в чистом виде, все же вобрал в себя многие его особенности и основные принципы.

Второй по значимости причиной является высокая конкуренция среди Интернет-компаний, вынужденных вести постоянный поиск способов привлечения новых Интернет-пользователей. Поскольку потребности продвинутых пользователей уже не ограничиваются простым чтением Интернет-контента, порталы вынуждены помимо информации предлагать и различные бесплатные онлайновые услуги и приложения.

В условиях конкуренции вынуждены были искать новые решения и провайдеры Интернет-услуг, развивая тенденцию к хостингу готовых приложений.

Почему выгодно пользоваться услугами ASP

Многие компании уже осознали преимущества ASP. Фактически их появление означало принципиально новую организацию отношений между поставщиком услуг и потребителем, необходимость в которой возникла как бы сама собой по мере развития рынка.


Сегодня услуги компаний — поставщиков различных сервисов пользуются устойчивой популярностью и у крупных ИТ-компаний, и у небольших фирм, которые стремятся сократить расходы на поддержание внутренней компьютерной структуры предприятия или на поддержание собственного представительства в Сети, и у персональных пользователей. Услуги аренды приложений сегодня явно пользуются спросом на рынке.

Использование услуг ASP-провайдеров дает несомненные преимущества, главным из которых является значительное сокращение оперативных расходов компании: теперь отпала необходимость заниматься разработкой и внедрением и оплачивать обслуживание дорогостоящей системы, а также необходимость в приобретении дорогостоящего оборудования и программного обеспечения и содержании квалифицированного IT-персонала.

В результате пользователь получает доступ к необходимым ему новейшим технологиям, причем без риска, значительных затрат и административной ответственности, связанной с разработкой и поддержкой соответствующей IT-инфраструктуры. Прибегая к услугам провайдера, компания может использовать приложения сразу после доступа к ним; перестает быть проблемой отсутствие необходимых навыков у ИТ-персонала и его малая численность, а у штатных сотрудников появляется возможность сосредоточиться на ключевых аспектах деятельности компании. Стоит также отметить, что если по каким-либо причинам сервис, предоставляемый ASP, не устраивает клиента, у него есть возможность легко от него отказаться по истечении срока, предусмотренного контрактом, что зачастую невозможно в случае, если компания решается на приобретение или создание необходимого сервиса своими силами.

Рассмотрим на примере одного из крупных ASP-провайдеров США USInternetworking, насколько выгодна для компании аренда приложения по сравнению с самостоятельным его внедрением.

Сравнение расходов по внедрению приложений внутри компаний с использованием услуг ASP

Следует также отметить, что ASP, как правило, предоставляет клиенту доступ к приложению намного быстрее, чем это могут сделать внешний системный интегратор или сама компания внутренними силами.

Сравнение времени установки приложения внутри компании и времени адаптации приложения для конкретного клиента ASP

Помимо значительного сокращения временных затрат компания получает и другие преимущества по сравнению с установкой приложений непосредственно внутри предприятия. К ним относятся возможность заранее рассчитать затраты на использование и поддержание функциональности программного обеспечения, значительная масштабируемость приложений и достаточно гибкие условия предоставления сервиса, так как компания получает лишь ту функциональность, в которой она нуждается и которую может оплатить. Таким образом, при аренде услуг у провайдера получаемый результат соответствует потребностям, а расходы не превышают показателей, заложенных в бизнес-плане.

Неприятный момент, которого удается избежать, — это замена приложений на новые версии или полная замена устаревшего программного обеспечения, потребность в которой периодически возникает. Обычно замена ПО — это плохо предсказуемый и довольно болезненный процесс, часто требующий немалых расходов. Однако, если компания является клиентом ASP, она получает все новые версии ПО без временных и, главное, без финансовых затрат. Отношение «одно приложение — много пользователей» и незначительная приспособленность приложения к каждому конкретному клиенту способствуют практически мгновенному введению улучшений и обновлению устаревших версий программ, что позволяет клиенту незамедлительно воспользоваться новыми возможностями. Помимо этого у провайдера обычно налажена более тесная связь с производителем программного обеспечения, что, в свою очередь, ускоряет доставку нового программного продукта конечным пользователям — клиентам ASP.

Какие же конкретно услуги могут быть предоставлены провайдером приложений?

Услуги

Приложения и услуги, которые предлагают провайдеры приложений, можно разделить на несколько категорий:

  • персональные приложения или пакеты приложений, подобные MS Office, игры и образовательное ПО;
  • совместные приложения, средства коммуникации и взаимодействия (электронная почта, ПО для телеконференций);
  • приложения для организации и поддержки коммерческих проектов в Интернете (e-commerce), автоматизация работы с покупателями и поставщиками (CRM, SCM) и предоставление в аренду готовых виртуальных торговых площадок для осуществления продаж через Интернет;
  • ERP-системы для распределения корпоративных ресурсов;
  • готовые интегрированные ERP-решения для определенных типов бизнеса на вертикальных рынках — специализированные приложения для определенных отраслей промышленности;
  • аналитические приложения для проведения финансового анализа, анализа рисков и спроса/предложения на рынке;
  • предоставление хостинга.

Наиболее популярные ASP-приложения

Основной задачей ASP, что заложено в самом их названии, являются предоставление платного доступа к приложениям и аренда ПО, хотя правильнее было бы говорить об аренде сервисов, построенных на основе программных приложений. Если с персональными приложениями и программами для совместного использования все достаточно очевидно, то на услугах масштаба предприятия, в том числе в сфере e-commerce, имеет смысл остановиться подробнее.

Одним из сервисов, предоставляемых сегодня провайдерами, являются приложения по управлению связями с потребителями (CRM — Customer Relationship Management). Основное предназначение этой системы — предоставлять пользователю (в данном случае продавцу товаров или услуг) возможность общаться со своими клиентами в режиме реального времени, анализировать и управлять всеми своими маркетинговыми процессами и продажами. Что же может включать в себя CRM?

Прежде всего CRM подразумевает создание «умной» системы продаж, которая бы за несколько щелчков мышкой автоматически «препровождала» каждого клиента к интересущему его товару, причем показывала на витрине электронного магазина только тот товар, который может быть доставлен и отгружен в ближайшее время. Менеджмент отношений с потребителем может также заключаться и в создании «умных» сервисов автоматического распределения запросов покупателей, способных распознать суть запроса и переадресовать его нужному человеку внутри компании, и в создании системы, которая бы явно или тайно собирала информацию о каждом пользователе и на ее основе могла «учиться», анализируя поведение клиента на сайте.

Популярной услугой ASP являются системы планирования ресурсов корпорации (ERP — Enterprise Resources Planning). ERP-системы представляют собой набор интегрированных приложений, позволяющих создать единую среду для автоматизации планирования, учета, контроля и анализа всех основных бизнес-операций в масштабе предприятия.

ERP-системы строятся на базе трехуровневой клиент-серверной архитектуры, когда между сервером базы данных и клиентскими терминалами есть сервер приложений, отвечающий за осуществление всей бизнес-логики системы. При аренде сервер приложений и сервер базы данных устанавливаются на оборудовании провайдера (ASP), в этом случае пользователи ERP-системы инсталлируют на свои компьютеры лишь клиентские приложения системы и работают с удаленным сервером приложений через Интернет или VPN.

Зачастую провайдеры ERP-систем предлагают специализированные интегрированные системы для применения в компаниях, работающих на вертикальных рынках. Подобная система настраивается ASP специально для бизнес-модели конкретных промышленных отраслей. В этом случае предприятие работает с системой, смоделированной с учетом специфики конкретной индустрии. Создание готовых интегрированных решений для различных типов бизнеса на вертикальных рынках представляет определенные трудности для ASP, однако в будущем может привлечь большое количество новых клиентов.

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

Хостинг

Web-хостинг — это наиболее простая и одна из самых первых услуг, предоставляемых провайдерами. В этом случае клиент арендует дисковое пространство на сервере, принадлежащем ASP и подключенном к Интернету. Клиент ASP фактически арендует аппаратные мощности провайдера, если у него нет своих мощностей либо они недостаточны.

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

При покупке хостинга арендатору предоставляется возможность удаленного управления виртуальным сервером, которая может осуществляться с использованием любого коммутируемого канала связи, что намного выгоднее, чем поддерживать и обслуживать сам сервер и выделенный канал в Сети.

Обычно поставщик услуг хостинга имеет один или несколько высокопроизводительных серверов, а в пользование своих клиентов предоставляет серверы виртуальные, однако под крупные проекты, требующие использования существенных вычислительных мощностей, как правило, предоставляется выделенный сервер (или группа серверов), что, естественно, создает определенные преимущества для клиента. Конечно, аренда выделенного сервера обходится дороже, зато в этом случае компания-арендатор получает полный контроль над компьютером, возможность конфигурировать систему в соответствии со своими нуждами и устанавливать любое программное обеспечение, которое считает необходимым. При этом затраты на аренду хотя и выше, чем при использовании виртуального сервера, однако все же значительно ниже, чем при покупке и обслуживании собственного аппаратного обеспечения и линии связи.

Классификация

В соответствии с предлагаемыми услугами провайдеров услуг и приложений можно разделить на несколько категорий.

    Провайдеры систем масштаба предприятий (Enterprise ASP)

Enterprise ASP обычно работают с крупными компаниями и предприятиями, предоставляя им в аренду сложные высокотехнологичные решения. Обычно сервис включает индивидуальную настройку и полное техобслуживание выбранных приложений. Иногда, если в этом возникает необходимость, ASP берут на себя обучение сотрудников предприятия работе с арендуемыми приложениями.

Локальные/региональные провайдеры (Local/regional ASP)

Cпециализация региональных ASP — работа с малыми компаниями в небольшом географическом регионе. Как правило, в аренду предоставляется набор наиболее распространенных несложных офисных приложений.

Провайдеры специализированных решений (Specialist ASP)

Эти компании предоставляют доступ к приложениям, решающим специфические задачи в рамках узкой сферы профессиональной деятельности или бизнеса. Это могут быть обслуживание обратной связи с пользователем, автоматизация управления персоналом или аренда Web-сервера.

Провайдеры комплексных решений (Volume business ASP)

Специализируются на предоставлении аренды заранее сформированных пакетов услуг и приложений для решения основного набора задач на конкретном рынке. Основная сфера деятельности — комплексное обслуживание небольших предприятий.

Провайдеры по эксплуатации и обслуживанию законченных бизнес-процессов (Business process outsourcers (BPO))

Специализируются на выполнении отдельных функций в бизнес-процессах (например, на обслуживании потребителей или доставке товаров).

Провайдеры коммерческих сетей (Commerce network providers )

Бизнес, обслуживающий коммерческие сети, по которым осуществляется электронный обмен данными между компаниями, например в сфере B2B.

Следует сказать, что большинство сегодняшних ASP не являются «чистыми игроками» на рынке. Другими словами, большинство сегодняшних ASP — это не вновь созданные сервисы, а крупные компании, которые лишь немного видоизменились при появлении новых сферы бизнеса. Как правило, они достаточно компетентны в телекоммуникациях, компьютерных технологиях, программном обеспечении и системной интеграции.

На рынке ASP работают самые разные компании, занимающиеся различными видами традиционного бизнеса. Это могут быть:

  1. Провайдеры телекоммуникационных и сетевых сервисов (ISP и NSP), такие как AT&T, Sprint или «Глобал Телеком». Провайдеры доступа и сетевых услуг рассматривают модель ASP в качестве дополнительной услуги, способной приносить дополнительную прибыль. Поэтому эти компании, как правило, не останавливаются только на предоставлении каналов для ASP, а стремятся к интеграции.
  2. Производители компьютерных платформ, такие как Sun Microsystems, Hewlett-Packard или IBM. Разработчики работают над созданием расширяемых компьютерных платформ, одновременно осуществляя поддержку большого количества пользователей. Производители ПО рассматривают рынок ASP в качестве еще одного рынка сбыта высокотехнологичной продукции серверов и «тяжелой» техники. Ради увеличения продаж они прибегают к оригинальным маркетинговым ходам… Так, компания Sun разработала собственную программу сертификации ASP SunTone в надежде на увеличение продаж серверов.
  3. Поставщики инфраструктур для ASP, к примеру Citrix или NewMoon, которые предлагают технологии, необходимые для бесперебойного функционирования ASP-модели. Поставщики обеспечивают запросы ASP-провайдеров в масштабировании сервисных предложений с целью поддержания более обширной базы пользователей.
  4. Производители программных продуктов, такие как Microsoft, Oracle, Computer Associates, Novell, PeopleSoft и многие другие. Производители непосредственно разрабатывают ASP-приложения, причем зачастую ощущают потребность интеграции с провайдерами доступа в Интернет и довольно упешно ее осуществляют.
  5. Провайдеры приложений корпоративных порталов, которые предоставляют программное обеспечение и информационное наполнение для своих клиентов в основном по модели ASP.
  6. ASP-агрегаторы, такие как Jamcracker. Агрегаторы формируют пакет ASP-приложений под конкретного клиента, интегрируют Web-услуги, приложения и инструменты и обеспечивают их доставку через Интернет. Для управления приложениями требуется достаточно высокий уровень профессионализма, поэтому многие провайдеры ограничиваются предоставлением пяти-шести приложений, в то время как ASP-агрегаторы позволяют запускать пакет приложений в единой интегрированной среде и управлять ими с помощью единого интерфейса. Зачастую ASP-агрегаторы представляют собой единый пункт продажи коммуникационных и ИТ-услуг и предлагают выбор из нескольких провайдров. Иногда агрегаторы могут интегрировать биллинговую систему, обсчитывающую услуги ASP, в свою инфраструктуру и выставлять единый счет за пакет услуг, что, несомненно, облегчает пользователю задачу ведения бухгалтерии и расчета помесячных затрат.
  7. Консультанты и независимые провайдеры профессиональных услуг (IPSP — Independent professional service prov >

Узкие места

Необходимо отметить, что помимо положительных сторон в отношениях «одно приложение — много пользователей», на которых основана вся деятельность ASP, скрыт и источник определенных проблем; ведь одна единственная техническая проблема, возникшая у провайдера, может привести к сбоям в работе множества заказчиков. При этом на первый план выходит проблема обеспечения приемлемого уровня QoS.

Поскольку ASP имеют прямые связи с конечными пользователями, именно на них ложится ответственность за обеспечение гарантированного уровня QoS, которое, в свою очередь, зависит от того, каналы какого провайдера сетевых услуг (NSP) использует ASP-провайдер.

До недавнего времени существенной проблемой для предоставления полноценного QoS-обслуживания была низкая пропускная способность сетей. Поскольку изначальное предназначение Интернета состоит в пересылке статических данных по множеству точек, то он плохо подходит для работы динамических приложений. Кроме того, распределение пропускной способности ASP зависит от предоставляемых приложений, и если для несложных приложений типа MS Office достаточно минимального bandwidth, то для потокового видео требуется значительно большая ширина полос пропускания. Развитие оптической технологии передачи данных значительно повысило пропускную способность кабелей, однако сегодня ощущается потребность в создании нового механизма автоматической подстройки полосы пропускания в соответствии с изменениями потребностей клиента. Следует отметить, что услуги ASP могут предоставляться и через Frame Relay и ATM-сети, что несколько повышает надежность передачи. Однако, несмотря на повышение надежности связи, ограничения в методах транспортировки данных еще долго будут оставаться ограничивающим фактором в развитии рынка аренды приложений.

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

Третья серьезная проблема — управляемость сетевой инфраструктуры. Сегодня потребность в увеличении производительности, надежности и пропускной способности существует на уровне центров данных, что заставляет крупные компании создавать более современные и надежные дата-центры, где используются новейшие технологии, способные обеспечить очень высокий уровень QoS.

Гарантии надежности ASP — чрезвычайно важная сторона отношений между клиентом и провайдером, что помимо технических характеристик включает в себя и другие аспекты, ведь не каждая компания, особенно крупная, решится передать управление своими бизнес-процессами внешней фирме. Здесь на первый план выходят вопросы безопасности и контроля информационных потоков. Важность проблемы безопасности понимают и сами ASP. Выходом из подобной ситуации являются контроль деятельности с привлечением внешних аудиторских фирм, безусловное соблюдение конфиденциальности и выполнение ASP обязательств, предусмотренных контрактом.

От того, какому провайдеру вы доверите свою информацию, может зависеть судьба вашего бизнеса, поэтому чрезвычайно важно ответственно отнестись к выбору ASP и условиям вашего контракта.

Выбор провайдера

Выбор конкретного провайдера — задача довольно непростая, особенно если компания рассчитывает арендовать не одно, а несколько различных приложений.

Общее правило при выборе провайдера: отдавать предпочтение достаточно крупным, хорошо зарекомендовавшим себя на рынке компаниям, которые могут предложить если не полный, то значительный набор необходимых приложений и услуг. Однако, если у компании большие запросы, найти такого провайдера бывает весьма непросто — в силу недостаточной развитости рынка. К тому же часто бывает так, что найти нужного провайдера недостаточно, так как может оказаться, что в данный момент он перегружен работой и не может обслуживать новых клиентов.

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

Хорошо, если есть возможность оценить провайдера по отзывам клиентов, ранее пользовавшихся его услугами. Возможно, имеет смысл заключить контракт на короткий «тестовый» период, что позволит оценить качество сервиса и возможности внесения изменений в будущем. Контракт, заключенный на длительный период, связывает пользователя, поэтому заключать его имеет смысл лишь при наличии полной уверенности в качестве работы конкретного ASP.

При выборе конкретного ASP не стоит оценивать его услуги исходя лишь из предположительной стоимости внедрения приложения собственными силами компании, гораздо разумнее сравнить между собой стоимость услуг нескольких ASP, опробовать качество сервиса (QoS) каждого из них и выбрать оптимальный вариант.

Рынок ASP в России, или Особенности национальной аренды

Большинство субъектов российского бизнеса, будь то крупная промышленная компания или небольшой магазин, стремятся использовать информационные технологии. Однако до недавнего времени эти возможности не всем были по карману. С появлением ASP можно получать все выгоды от использования ИТ, даже при весьма ограниченном бюджете.

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

Основными игроками на современном российском рынке ASP являются, как правило, либо ISP-провайдеры доступа в Интернет, либо крупные телекоммуникационные и Интернет-компании, специализирующиеся на разработке Web-систем или продаже сетевого оборудования. Наиболее крупными из них являются Zenon, Demos-Internet, Desten Computers и «Голден Телеком».

Основная доля рынка приходится на низкоуровневые услуги, то есть аренду аппаратного обеспечения и виртуального пространства. Далеко не все российские ASP предоставляют услуги по аренде ПО, однако многие готовы предоставить клиентам свои аппаратные мощности.

Возможности аренды ПО у российских лидеров рынка ASP

Распределение компаний — лидеров ASP по сегментам рынка

В настоящее время на российском рынке ASP наблюдается некоторое оживление. Разработчики ПО медленно, но верно приходят к осознанию перспективности бизнес-модели ASP применительно и к российским условиям.


Летом прошлого года «Россия-Он-Лайн» провела достаточно показательную акцию: тысячи клиентов крупнейшего провайдера получили возможность за символическую плату приобрести известный антивирусный пакет AVP Lite. Наряду с другими Интернет-услугами пользователи могли получить специальный ключ, который активизировал полнофункциональную работу AVP Lite и предоставлял доступ к ежедневным обновлениям антивирусной базы программы через Интернет. Оплата такого рода услуги производилась непосредственно с личного счета клиента у провайдера.

В качестве примера прозрачного и наиболее востребованного ASP можно привести «Голден Телеком», не так давно открывшего первый в России центр данных (data center), услугами которого уже пользуются многие известные российские Интернет-компании. Помимо Интернет-компаний клиентами центра стали традиционные коммерческие структуры со значительными торговыми и финансовыми оборотами.

Сегодня модель ASP намерена освоить и компания IBS, которая уже начала реализацию соответствующего проекта совместно с одним из западных телекоммуникационных операторов.

Перспективы развития

«Чем более сложными становятся информационные приложения, тем больше компаний стараются переложить свои трудности на плечи квалифицированных исполнителей». Пожалуй, именно эти слова старшего аналитика компании Forrester Research Тома Гормли наиболее точно определяют будущее рынка ASP.

По мнению аналитиков, в ближайшем будущем рынок ASP ждет бурный рост, что, в свою очередь, окажет стабилизирующий эффект на развитие бизнеса в целом, так как практически любая компания сможет позволить себе на правах арендатора использовать в своей работе даже наиболее продвинутые бизнес-приложения.

Разумеется, будущее провайдеров услуг и приложений не безоблачно. Им предстоит решить немало проблем, в том числе проблемы «узких мест», и многое сделать для обеспечения должной безопасности, скорости и качества работы. Именно эти вопросы стоят перед провайдерами наиболее остро, и перспективы развития рынка ASP напрямую зависят от их решения.

Заключение

Распространение услуг доступа к приложениям (Application Service Providing) может серьезно повлиять на ИТ-индустрию, взаимоотношения между продавцами и их клиентами и даже изменить взаимоотношения между различными разработчиками ПО.

Большинство информационных систем можно сделать пригодными для использования ASP, однако, скорее всего, компании начнут с аренды приложений, либо не требующих немедленной интеграции с другими системами, либо добавляющих бизнесу компании максимальную ценность. Аренда хостинга, приложений для электронной коммерции, дистрибьюция товаров и услуг, продажа билетов, справочно-консультационные и медицинские системы, управление ресурсами и HR — вот лишь некоторые примеры ASP-приложений, которые уже вошли или скоро войдут в нашу жизнь.

Радует то, что Россия не остается в стороне от этого процесса: революция Интернета, давшая жизнь концепции ASP, — неоспоримый факт, и хотим мы это или нет, мы станем частью процесса преобразования бизнеса. Сегодня самое главное для поставщиков традиционных услуг — не игнорировать особенности модели ASP, ведь она открывает перед компаниями новые возможности ведения бизнеса, о которых раньше можно было только мечтать.

В Группе компаний «АСП» установлена система электронного документооборота

Система, автоматизирующая работу с корреспонденцией, внутренними и организационно-распорядительными документами, установлена на двухстах рабочих местах сотрудников семи компаний, входящих в Группу.

В процессе внедрения CompanyMedia в ней были реализованы некоторые доработки. В частности, для облегчения работы пользователей со стандартными формами документов сотрудники Отдела программных решений Группы компаний «АСП» создали для баз данных «Документы» и «Каталог» специализированные подформы (в частности, «Бланк учета затрат»), упрощающие обработку документов.

Также была реализована доработка, позволяющая автоматически отправлять на подпись положительно согласованный документ. Так, если документ согласован и в листе согласований нет виз «Не согласен» или «Особое мнение», документ сразу идет на подпись из базы данных «Документы» в базу данных «Внутренние документы», а автору документа приходит уведомление «Документ согласован и отправлен на подпись».

Использование системы электронного документооборота CompanyMedia позволит повысить эффективность процессов управления и деятельности компании в целом за счет:

• повышения скорости прохождения управленческой информации;• повышения скорости принятия управленческих решений и их качества;• формирования единого информационного пространства компаний, входящих в Группу;• повышения продуктивности работы сотрудников, рабочих групп, и Группы в целом;• усиления и персонализации контроля деятельности сотрудников, повышения исполнительской дисциплины.

Кроме того, практическая эксплуатация системы электронного документооборота CompanyMedia сотрудниками Группы компаний «АСП», являющейся бизнес-партнером «ИнтерТраст» в Уральском Федеральном округе в области создания систем электронного документооборота, позволит им глубже понять потребности своих клиентов, чтобы учесть их в будущем при реализации проектов внедрения СЭД.

Группа компаний «АСП» – многопрофильная структура, созданная в 1992 году и объединяющая на сегодняшний день девять предприятий, в сферу деятельности которых входит поставка и сервисное обслуживание компьютерной техники, построение кабельных систем, обучение и бизнес-консалтинг, продажа и внедрение программного обеспечения, автоматизирующего управление компанией. ГК «АСП» также является бизнес-партнером «ИнтерТраст» в Уральском Федеральном округе с 2003 года. Подробнее о компетенциях ГК «АСП» Вы можете узнать на сайте http://www.asp.ru.

ЗАО «Компания «ИнтерТраст» входит в пятерку лидеров российского рынка систем электронного документооборота. Она предоставляет комплекс услуг по созданию современных территориально-распределенных систем автоматизации документооборота, делопроизводства и бизнес-процессов, включающий: консалтинг в области документационного обеспечения управления, разработку, внедрение и сопровождение программного обеспечения, обучение пользователей работе с ним. Промышленные решения компании CompanyMedia© и OfficeMedia© являются одними из наиболее популярных на рынке как по категории решений для организаций крупного и среднего бизнеса, так и для предприятий малого бизнеса. Более подробную информацию Вы можете получить, посетив сайт Компании «ИнтерТраст» http://www.intertrust.ru.

Специалист по связям с общественностью,ЗАО «Компания «ИнтерТраст».Тел./факс: 8 (495) 956-7928E-mail: polina@intertrust.ruhttp://www.intertrust.ru/

Релиз опубликован: 2007-10-30

Основана в 1994

Адрес: Россия, Москва, ул. Усиевича, д. 3

Сайт компании: www.intertrust.ru

Профиль деятельности: Компания «ИнтерТраст» входит в пятерку лидеров российского рынка систем электронного документооборота. Она предоставляет комплекс услуг по созданию современных территориально-распределенных систем автоматизации делопроизводства и документооборота, поддержки бизнес-процессов, включающий: консалтинг в области организации документационного обеспечения управления, информационной безопасности; разработку ПО на заказ; внедрение и сопровождение программного обеспечения; обучение пользователей работе с ним; техническое сопровождение систем. Программные продукты компании «ИнтерТраст» CompanyMedia и OfficeMedia являются одними из лидирующих на рынке систем электронного документооборота. Система OfficeMedia предназначена для управления документопотоками малых и средних организаций. Она проста в эксплуатации и может быть установлена самостоятельно. OfficeMedia включает четыре подсистемы: «Внешние контакты»; «Управление и планирование»; «Делопроизводство»; «Учет материальных ценностей». Система CompanyMedia в основном предназначена для средних и крупных компаний. Она включает подсистемы, автоматизирующие делопроизводство и документооборот («CompanyMedia-Делопроизводство», «CompanyMedia-Договоры», «CompanyMedia-Факс», «CompanyMedia-Библиотека электронных документов», «CompanyMedia-Обращения граждан»); бизнес-системы («CompanyMedia-Клиенты и контакты», «CompanyMedia-Планирование», «CompanyMedia-Проекты», «CompanyMedia-TimeSheet», «CompanyMedia-Заседания», «CompanyMedia-Workflow»); систему, автоматизирующую работу кадровых служб («CompanyMedia-Управление персоналом»); взаимодействие пользователей и специалистов отделов технической поддержки («CompanyMedia-HelpDesk»); системы, автоматизирующие обучение работе с CompanyMedia («CompanyMedia-Корпоративный тренинг»). Кроме того, специалистами ИнтерТраст разработаны системы (Locker, eToken), обеспечивающие защиту информации сертифицированными средствами криптозащиты, система «Центр отчетов», автоматизирующая построение отчетов в среде Lotus Domino/Notes, а также ряд других программных продуктов.

Проекты: Компания «ИнтерТраст» входит в пятерку лидеров российского рынка систем электронного документооборота. Она предоставляет комплекс услуг по созданию современных территориально-распределенных систем автоматизации делопроизводства и документооборота, поддержки бизнес-процессов, включающий: консалтинг в области организации документационного обеспечения управления, информационной безопасности; разработку ПО на заказ; внедрение и сопровождение программного обеспечения; обучение пользователей работе с ним; техническое сопровождение систем. Программные продукты компании «ИнтерТраст» CompanyMedia и OfficeMedia являются одними из лидирующих на рынке систем электронного документооборота. Система OfficeMedia предназначена для управления документопотоками малых и средних организаций. Она проста в эксплуатации и может быть установлена самостоятельно. OfficeMedia включает четыре подсистемы: «Внешние контакты»; «Управление и планирование»; «Делопроизводство»; «Учет материальных ценностей». Система CompanyMedia в основном предназначена для средних и крупных компаний. Она включает подсистемы, автоматизирующие делопроизводство и документооборот («CompanyMedia-Делопроизводство», «CompanyMedia-Договоры», «CompanyMedia-Факс», «CompanyMedia-Библиотека электронных документов», «CompanyMedia-Обращения граждан»); бизнес-системы («CompanyMedia-Клиенты и контакты», «CompanyMedia-Планирование», «CompanyMedia-Проекты», «CompanyMedia-TimeSheet», «CompanyMedia-Заседания», «CompanyMedia-Workflow»); систему, автоматизирующую работу кадровых служб («CompanyMedia-Управление персоналом»); взаимодействие пользователей и специалистов отделов технической поддержки («CompanyMedia-HelpDesk»); системы, автоматизирующие обучение работе с CompanyMedia («CompanyMedia-Корпоративный тренинг»). Кроме того, специалистами ИнтерТраст разработаны системы (Locker, eToken), обеспечивающие защиту информации сертифицированными средствами криптозащиты, система «Центр отчетов», автоматизирующая построение отчетов в среде Lotus Domino/Notes, а также ряд других программных продуктов.

Адрес: Россия, Москва, ул. Усиевича, д. 3, Контактное лицо: Кочеткова Полина Николаевна, менеджер по связям с общественностью, Д. р.: 20.11.1982, Тел.: (495) 956-79-28

.asp и .aspx 2020

ASP является основой для веб-разработки и поддерживает различные модели, такие как классический ASP, веб-формы ASP.NET, ASP.NET MVC, веб-страницы ASP.NET, API ASP.NET и ядро ​​ASP.NET.

ASP и ASP.NET — это серверные технологии, выполняющие код на веб-сервере.

Активные страницы сервера (ASP), разработанные Microsoft, такие же, как страницы HTML, содержащие скрипты и встроенные носители, а затем обработанные на веб-сервере. В прошлом (с классическим ASP) он был развернут только в среде Microsoft.

Активные серверные страницы имеют расширения файлов .asp (для классического ASP) или .aspx (для ASP.NET)

Когда веб-пользователь инициирует запрос, вызывая страницу ASP или ASP.NET, веб-сервер обрабатывает Активные страницы сервера и механизм сценариев генерирует содержимое, отображаемое обратно (на лету) веб-пользователю. ASP работает с любым браузером, поддерживающим HTML (как вывод HTML).

Активные страницы сервера представить интерфейсные веб-приложения, выполнив ActiveX скриптов и компонентов, вставленных в веб-страницы.

ActiveX похож на Java-апплеты и использует объектно-ориентированные технологии для программистов для более эффективного создания мощных и динамичных веб-приложений. Эти скрипты и компоненты упаковываются как элементы управления ActiveX, которые многократно используются и могут использоваться разными программистами и программами.

ASP.NET был впервые выпущен в 2002 году в .NET Framework 1.0, и заменил Classic ASP, который выпустил три версии в период с 1996 по 2000 год.

Последняя версия Classic ASP была выпущена в ноябре 2000 года как ASP 3.0 для IIS 5.0 и до сих пор официально поддерживается Microsoft до 2020 года.

Это может быть классический, но ASP по-прежнему является мощным подходом к динамическим веб-страницам.

Классический ASP

Первоначально ASP была дополнением для Microsoft IIS (Internet Information Server), однако, с выпуском Windows Server 2000, он стал постоянным и свободным компонентом IIS.

Microsoft Internet Information Services — настраиваемый и модульный механизм веб-сервера Microsoft, который поддерживает протоколы HTTP, HTTPS, FTP, FTPS, SMTP и NNTP.

Являясь первым сервером Microsoft на языке сценариев для динамических веб-страниц, классический ASP (.asp) может работать только на платформе Microsoft, поскольку используются два языка: VBScript и JScript. В то время Microsoft не предоставляла встроенную поддержку других языков программирования.

VBScript был фактически разработан для браузеров Internet Explorer и ограничен функциональностью в пределах своих возможностей сценариев, а JScript поддерживался только в браузерах Internet Explorer и Netscape.

.NET Framework

Microsoft .NET Framework[i] является средой для разработчиков для создания динамических веб-сайтов, веб-приложений и веб-сервисов.

Это программная среда (среда), которая предоставляет большую библиотеку классов (Библиотека классов классов — FCL) и поддерживает несколько языков, позволяющих системе обрабатывать код, написанный на других языках.

.NET-программы выполняются в Common Language Runtime (CLR) среды, поэтому, по существу, FCL и CLR составляют .NET Framework.

В течение последних 15 лет .NET выпустила накопительные обновления и подкомпоненты, обеспечив стабильную и широко внедренную веб-платформу, которая больше не является эксклюзивным для среды Microsoft.

Хотя выпуски ASP.NET тесно параллельны выпускам IIS, их можно разрабатывать на других платформах, таких как Spring.NET (framework для Java).

Перенос из ASP в ASPX

С .aspx замена .aspразработчикам рекомендуется сосредоточиться на разработке приложений с помощью графической модели, управляемой событиями, вместо веб-скриптов с использованием ASP (и PHP). PHP по-прежнему активно развивается в отличие от ASP, который просто заменяется ASP.NET.

Существует обширный список улучшений, которые могли бы мотивировать решение о миграции, с очень небольшим количеством причин, чтобы не смотреть на некоторые из мотивов:

Веб приложения ASP.NET 5¶

ASP.NET 5 предлагает несколько новых фундаментальных концепций веб программирования, которые важны для эффективного создания веб приложений. Эти концепции не обязательно являются новыми для веб программирования вообще, но они новы для ASP.NET и, скорее всего, новы для тех разработчиков, чей опыт веб программирования был тесно связан с ASP.NET и Visual Studio.

Структура проектов ASP.NET¶

В структуре проектов ASP.NET 5 появились новые концепции, а некоторое унаследованные элементы, присутствующие в более ранних версиях ASP.NET, заменены. По умолчанию новый шаблон веб проекта создает вот такое решение и структуру проекта:

Во-первых, вы, наверное, заметили, что новая структура включает в себя папку Solution Items с файлом global.json, а сам веб проект находится внутри папки src. Новая структура также включает в себя специальную папку wwwroot, а также раздел Dependencies в дополнение к разделу References, который присутствовал в прошлых версиях ASP.NET (но был обновлен в данной версии). В корневой директории проекта также присутствуют новые файлы, например, bower.json, appsettings.json, gulpfile.js, package.json, project.json и Startup.cs. Видите, файлов global.asax, packages.config и web.config нет. В предыдущих версиях ASP.NET почти вся конфигурация проекта хранилась в этих файлах и в файле проекта. В ASP.NET 5 эта информация и логика разделены по файлам, которые меньше по размеру и более конкретны.

Framework Target¶

ASP.NET 5 может работать с разными фреймворками, то есть, приложение может быть развернуто в различных хостинговых средах. По умолчанию приложения нацелены на полную версию .NET, но они также могут быть нацелены и на .NET Core. Большинство созданных приложений будут направлены на ASP.NET 5, по крайней мере, сначала, поскольку у них есть зависимости, которые включают в себя базовые библиотеки фреймворка, и эти библиотеки пока не доступны в .NET Core. .NET Core — это уменьшенная версия .NET framework, оптимизированная для веб приложений и поддерживаемая Linux и Mac. .NET Core можно разворачивать с приложением, позволяя нескольким приложениям на одном сервере нацеливаться на различные версии .NET Core. Этот модульный фреймворк также дает возможность использования дополнительного функционала только тогда, когда он нужен, в виде отдельных пакетов NuGet.

Вы можете увидеть, на какой фреймворк нацелено приложение, в свойствах проекта, если кликните по проекту в Solution Explorer и выберите Properties:

По умолчанию на Use Specific Runtime в Debug не стоит галочка. Чтобы выбрать конкретную версию, надо поставить галочку и выбрать соответствующие Version, Platform и Architecture.

Файл project.json¶

Файл project.json является новым в ASP.NET 5. Он используется для определения зависимостей со стороны сервера, а также другой проектной информации. Высокоуровневые разделы по умолчанию, включенные в project.json из шаблона, представлены ниже:

Свойство userSecretsId содержит значение, которое является уникальным ID для вашего веб приложения. См. Safe Storage of Application Secrets.

Свойство version указывает текущую версию проекта. Вы можете указать и другие метаданные проекта, например, authors и description.

Раздел compilationOptions вы можете использовать для того, чтобы установить некоторые настройки, например, languageVersion и useOssSigning .

Значения, обычно расположенные в разделе dependencies, касаются установленных пакетов NuGet или других проектов. Можно конкретно указать версию проекта, как показано выше, или использовать метасимволы, чтобы зависимости основной версии автоматически получали обновления второстепенной версии.

В ASP.NET 5 есть отличная поддержка инструментария командной строки, а раздел commands позволяет вам указывать команды, которые должны быть запущены с командной строки (например, запускать веб сайт или тесты).

Раздел frameworks показывает, какие фреймворки используются и какие зависимости должны быть включены. Например, если бы вы использовали LINQ или коллекции, вы бы включили их в .NET Core, добавив их в список зависимостей в dnxcore50 .

Раздел exclude используется для обозначения файлов и папок, которые нужно исключить из проекта. Кстати, publishExclude используется для обозначения частей проекта, которые нужно исключить при публикации сайта.


Раздел scripts используется для указания того, когда должны запускаться автоматические скрипты. В Visual Studio есть теперь встроенная поддержка запуска таких скриптов до и после определенных событий. В базовом шаблоне ASP.NET есть скрипты, которые запускаются во время postrestore и prepare , которые устанавливают Управление зависимостями на стороне клиента при помощи npm и bower. Больше информации о bower вы можете получить тут: Управление клиентскими пакетами с помощью Bower.

Файл global.json¶

Файл global.json используется для конфигурации решения в целом. По умолчанию в нем есть два раздела — projects и sdk .

Свойство projects показывает, какие папки содержат исходный код решения. По умолчанию исходные файлы находятся в папке src.

Свойство sdk указывает на версию DNX (.Net Execution Environment), которую будет использовать Visual Studio при открытии решения. Оно находится здесь, а не в project.json, и таким образом вы избежите ситуаций, когда различные проекты внутри решения будут нацелены на разные версии SDK. Больше информации про DNX вы найдете вот тут: Обзор DNX.

Папка wwwroot¶

В предыдущих версиях ASP.NET корневая директория проекта обычно являлась корнем веб приложения. Если вы разместили файл Default.aspx в корневой директории проекта в более ранней версии ASP.NET, то он будет загружен при запросе к корневой директории веб приложения. Затем в ASP.NET была добавлена поддержка маршрутизации, и это дало возможность разъединять местоположение файлов и их URL (таким образом, HomeController из папки Controllers имел возможность обслуживать запросы, сделанные к корневой директории сайта, используя реализацию маршрутизации по умолчанию). Однако такая маршрутизация использовалась только специфичной ASP.NET логикой, а не статическими файлами, необходимыми клиенту для должного отображения результирующей страницы. Такие ресурсы как изображения, скрипты, таблицы стилей все еще загружались в зависимости от своего местоположения в файловой структуре приложения.

Такой подход создавал несколько проблем. Во-первых, “чувствительные” файлы требовали защиту на уровне проекта для определенных имен файлов и расширений, чтобы, например, web.config или global.asax не отправлялись на сторону клиента в ответ на запрос. Блокировка отдельных файлов менее безопасна, чем доступ только к тем файлам, к которым и нужно предоставить этот доступ. Обычно требовались различные версии для разработки/тестирования и релиза (например, web.config). К скриптам обычно обращались напрямую в процессе разработки. А ведь в производственной версии лучше всего использовать только нужные для этого файлы, но с предыдущей файловой структурой это было сложно реализовать.

Папка wwwroot представляет корневую директорию проекта во время его запуска на веб сервере. Статические файлы, как appsettings.json, не расположенные в wwwroot, никогда не будут доступны, и нет необходимости вводить специальные правила, чтобы блокировать доступ к чувствительным файлам. Теперь для веб запросов доступны только необходимые файлы из wwwroot. Кроме того, поскольку папка wwwroot является корневой папкой по умолчанию, конкретная папка корня приложения может быть настроена в project.json.

Управление зависимостями на стороне клиента¶

Папка Dependencies содержит две подпапки: Bower и NPM. Эти папки соответствуют двум менеджерам пакетов с такими же именами, и они работают с зависимостями и инструментами на стороне клиента (например, jQuery, Bootstrap, или Gulp). Просмотр папок показывает, с какой зависимостью и ее версией работает каждый инструмент.

bower-зависимости управляются файлом bower.json, который находится в каждой подпапке wwwroot/lib. Каждый элемент, представленный на рисунке, соответствует зависимостям, перечисленным в файле bower.json:

Далее каждая зависимость настраивается в соответствующем разделе с помощью файла bower.json, и здесь показано, как она должна быть развернута в папке wwwroot. См. Разработка со стороны клиента.

Управление зависимостями на стороне сервера¶

В папке References в Solution Explorer Visual Studio представлены зависимости на стороне сервера. ASP.NET разработчикам это должно быть знакомо, но она была изменена, так что теперь есть различие между ссылками для разных целей фреймворков, например, DNX 4.5.1 vs. DNX Core 5.0. Внутри каждой цели фреймворка вы найдете отдельные ссылки с иконками, показывающими, ведет эта ссылка к сборке, пакету NuGet или проекту. Эти зависимости проверяются во время компиляции, и недостающие зависимости скачиваются с NuGet (Tools > NuGet Package Manager > Package Manager Settings > Package Sources).

Запуск приложения¶

В ASP.NET 5 есть несколько модулей, которые могут быть по отдельности добавлены в приложение. Это позволяет приложениям использовать только то, что нужно. Когда приложение запускается, среда разработки ASP.NET вызывает Configure в классе Startup . Если вы создаете новый ASP.NET проект с помощью шаблона Empty, то увидите, что в файле Startup.cs есть всего пару строк кода. По умолчанию класс Startup связывает конфигурацию, MVC, EF, сервисы идентификации, логгинг, маршрутизацию и так далее. Этот класс состоит из трех частей: конструктора, ConfigureServices и Configure . Метод Configure вызывается после ConfigureServices и используется для конфигурации связующего ПО (Связующее ПО (Middleware)).

Конструктор указывает, какой будет конфигурация приложения. Configuration — это свойство класса Startup , и его могут проесть различные форматы файлов и переменные среды. Шаблон по умолчанию использует ConfigurationBuilder , чтобы создать IConfiguration, который загружает appsettings.json и переменные среды.

Метод ConfigureServices указывает на то, какие сервисы доступны приложению. Шаблон по умолчанию использует вспомогательные методы, чтобы добавить сервисы, используемые EF, > ConfigureServices , включая вызов Configuration в качестве сервиса:

Наконец, метод Configure вызывается после ConfigureServices . В примере проекта Configure используется для связывания некоторых полезных функций в среде разработки и поддерживает статические файлы, > ConfigureServices — их таже нужно добавить в поток запросов при помощи вызовов в Configure .

Введение в ASP.NET 5 Preview

В этой статье обсуждаются предварительные версии ASP.NET 5 и Visual Studio 2015. Любая изложенная здесь информация может быть изменена.

Продукты и технологии:

ASP.NET 5, Visual Studio 2015 Preview

В статье рассматриваются:

  • основы исполняющей среды ASP.NET 5;
  • работа с Entity Framework;
  • функциональность командной строки;
  • обновления Visual Studio для ASP.NET 5.

ASP.NET поставлялась как часть Microsoft .NET Framework 1.0, выпущенной в 2002 году наряду с Visual Studio 2002. Это был результат эволюции Active Server Pages (ASP), который принес нам объектно-ориентированное проектирование, .NET-библиотеки базовых классов (Base Class Libraries, BCL), более высокую производительность и многое другое. ASP.NET была разработана для того, чтобы разработчикам, привыкшим писать настольные приложения, было легче создавать веб-приложения на основе ASP.NET Web Forms. По мере развития Web в ASP.NET добавлялись новые инфраструктуры: MVC в 2008 году, Web Pages в 2010 году, а также Web API и SignalR в 2012 году. Каждая из этих новых инфраструктур опиралась на базу от ASP.NET 1.0.

В случае пятой версии ASP.NET подвергается переосмыслению по аналогии с тем, что случилось с ASP в 2002 году. Этот процесс дает многих новых средств.

  • Полная поддержка сосуществования разных версий (side-by-side support) Теперь приложения ASP.NET 5 можно устанавливать на компьютере, не влияя на другие установленные приложения.
  • Кросс-платформенная поддержка ASP.NET 5 выполняется и поддерживается в Windows, Mac и Linux.
  • Готовность к работе в облаке Такие средства, как диагностика, состояние сеанса, кеш и конфигурация рассчитаны на работу как локально, так и в облаке.
  • Ускорение разработки Этап сборки удален; просто сохраните файлы исходного кода и обновите браузер — компиляция будет выполнена автоматически.
  • MVC, Web Pages и Web API Все эти технологии объединены, что упрощает ряд концепций.
  • Гибкий хостинг Теперь вы можете разместить свое приложение ASP.NET 5 целиком в IIS или в собственном процессе.

Приступаем к работе с ASP.NET 5 Preview

В этой статье я дам обзор новшеств, введенных группой разработки ASP.NET (членом которой я являюсь) в ASP.NET 5 и Visual Studio 2015 Preview. С общими вопросами по созданию и выполнению приложений ASP.NET 5 обращайтесь на asp.net/vNext, где вы найдете пошаговые руководства и дополнительную документацию. Кроме того, мы регулярно публикуем обновления в blogs.msdn.com/b/webdev. Чтобы начать работу, скачайте и установите Visual Studio 2015 Preview.

Обзор исполняющей среды ASP.NET 5

ASP.NET 5 была полностью переделана для поддержки создания современных веб-приложений и сервисов. Это кросс-платформенная инфраструктура с открытым исходным кодом, способная работать как локально, так и в облаке. В настоящее время ASP.NET 5 находится на стадии Preview и активно разрабатывается на GitHub (github.com/aspnet). Я дам обзор нововведений в ASP.NET 5 Preview и подскажу, где можно узнать больше.

Гибкая, кросс-платформенная исполняющая среда В основе ASP.NET 5 лежит новый гибкий хост исполняющих сред. Он обеспечивает гибкость в выполнении вашего приложения в одной из трех исполняющих сред.

  1. Microsoft .NET Framework Вы можете выполнять свои приложения ASP.NET 5 в существующей .NET Framework. Это дает вам высший уровень совместимости для существующих двоичных файлов.
  2. .NET Core Переработанная версия .NET Framework, поставляемая как набор NuGet-пакетов, которые вы можете включать в свое приложение. Благодаря .NET Core вы получаете поддержку истинного сосуществования разных версий и свободу в использовании новейших средств .NET в имеющейся у вас инфраструктуре. Заметьте, что пока не все API доступны в .NET Core, и существующие двоичные файлы, как правило, придется перекомпилировать для выполнения в .NET Core.
  3. Mono Mono CLR позволяет разрабатывать и выполнять приложения ASP.NET 5 на устройствах Mac или Linux. Подробнее см. публикацию в блоге «Develop ASP.NET vNext Applications on a Mac» bit.ly/1AdChNZ.

ASP.NET 5 независимо от выбранной вами CLR использует общую инфраструктуру хостинга CLR и предоставляет приложению разнообразные сервисы. Эта инфраструктура называется K Runtime Environment (KRE). Хотя буква «K» в KRE весьма загадочна (в память Katana Project? Или это аббревиатура от Krazy или Kool?), KRE обеспечивает все, что нужно для хостинга и выполнения вашего приложения.

Новый HTTP-конвейер В ASP.NET 5 введен новый модульный конвейер HTTP-запросов, который можно размещать на любом выбранном вами сервере. Вы можете поместить свои приложения ASP.NET 5 в IIS, на любой сервер на основе Open Web Interface for .NET (OWIN) или в собственный процесс. Поскольку вам нужно точно подобрать, какое именно промежуточное ПО будет работать в конвейере для вашего приложения, вы можете отобрать минимально необходимую функциональность и использовать преимущества производительности чистого сервера (bare-metal performance). ASP.NET 5 включает промежуточное ПО для защиты, маршрутизации запросов, диагностики и поддержку пользовательского промежуточного ПО вашей разработки. Например, вот простая реализация промежуточного ПО для обработки заголовка X-HTTP-Method-Override:

ASP.NET 5 использует модель HTTP-конвейера, во многих отношениях похожую на OWIN-модель, введенную в Project Katana, но с несколькими значительными улучшениями. Как и Katana, ASP.NET 5 поддерживает OWIN, но упрощает разработку, включая облегченную и простую в использовании абстракцию HttpContext.

Для этого есть пакет Диспетчеры пакетов изменили то, как разработчики воспринимают установку, обновление и управление зависимостями. В ASP.NET 5 все ваши зависимости представлены в виде пакетов. NuGet-пакеты являются единицами ссылок. ASP.NET 5 упрощает создание, установку и использование пакетов из их каналов передачи, а также работу с пакетами от сообщества, применяя диспетчер пакетов узла (node package manager, NPM) и Bower. В ASP.NET 5 введен простой формат JSON (project.json) для управления зависимостями NuGet-пакетов и для обеспечения кросс-платформенной инфраструктуры сборки. Пример файла project.json показан на рис. 1 (более подробное объяснение каждого из поддерживаемых свойств см. в GitHub по ссылке bit.ly/1AIOhK3).

Рис. 1. Пример файла project.json

Лучшее из C# Компиляция этапов разработки и выполнения для приложений ASP.NET 5 обрабатывается с применением управляемой .NET Compiler Platform (кодовое название «Roslyn»). То есть вы получаете преимущества новейших языковых средств C#, в то же время используя компиляцию в памяти для предотвращения лишних операций дискового ввода-вывода. Проекты ASP.NET 5 основаны на новой системе проектов, которая динамически компилирует приложение по мере его кодирования, поэтому вы можете избежать прерывания из-за специфического этапа сборки. Это дает вам мощь .NET и C# со всей гибкостью интерпретируемого языка.

Изначальная поддержка встраивания зависимостей Все приложения ASP.NET 5 имеют доступ к общему сервису встраивания зависимостей (dependency injection, DI), который помогает упростить композицию и тестирование. Все инфраструктуры ASP.NET, опирающиеся на ASP.NET 5 (MVC, Web API, SignalR и Identity), используют этот общий сервис DI. Хотя ASP.NET 5 поставляется с минималистским контейнером Inversion of Control (IoC) для начального запуска системы, вы можете легко заменить изначальный контейнер IoC любым другим.

Знакомые веб-инфраструктуры ASP.NET 5 включает инфраструктуры для создания веб-приложений и сервисов, такие как MVC, Web API, Web Pages (появится в будущем выпуске), SignalR и Identity. Каждая из них портирована для работы в новом конвейере HTTP-запросов и поддерживает выполнение в .NET Framework, .NET Core или в кросс-платформенной исполняющей среде.

Сегодня существующие реализации MVC, Web API и Web Pages совместно используют многие концепции и дублируют абстракции, но имеют мало общего в фактической реализации. В процессе переноса этих инфраструктур в ASP.NET 5 Microsoft решила по-новому взглянуть на объединение этих инфраструктур в единый унифицированный веб-стек. ASP.NET MVC 6 использует лучшее от MVC, Web API и Web Pages и объединяет это в единую инфраструктуру для создания Web UI и Web API. Это означает, что из единого контроллера вы можете легко как выполнять рендеринг представления, так и возвращать отформатированные данные на основе согласования контента (content negotiation).

Помимо унификации, в ASP.NET MVC 6 введен целый набор новых средств:

  • встроенная поддержка DI;
  • возможность создания контроллеров из любого класса — базовый класс больше не требуется;
  • диспетчеризация запросов на основе операции (action-based request dispatching);
  • View Components — простая замена дочерних операций;
  • усовершенствования в маршрутизации, в том числе упрощенная маршрутизация по атрибутам (attribute routing);
  • асинхронные представления с точками сброса (flush points);
  • возможность встраивания серверов и вспомогательных конструкций в представления с помощью @inject;
  • наследование ViewStart;
  • поддержка TagHelper.

Более подробные сведения и примеры вы найдете на github.com/aspnet/mvc.

Web Forms недоступна в ASP.NET 5, но по-прежнему полностью поддерживается в .NET Framework. В предстоящей версии .NET Framework предполагается включение ряда важных новых возможностей в Web Forms, в том числе поддержки HTTP 2.0, асинхронного связывания моделей и провайдера CodeDom на основе Roslyn. Мы также работаем над разнообразными средствами, напоминающими Web Forms в MVC 6, в частности над TagHelper и другими улучшениями Razor.

Entity Framework

Данные являются важной частью многих приложений, и Entity Framework (EF) — популярная среди ASP.NET-разработчиков инфраструктура для доступа данных. Хотя EF7 не специфична для ASP.NET, эта новая версия EF играет ключевую роль в ASP.NET 5.

EF7 поддерживает новые платформы EF широко используется в клиентских и серверных приложениях, ориентированных на полнофункциональную .NET Framework. Основной акцент в EF7 — предоставить возможность работы с EF на остальных платформах, где распространена .NET-разработка. К таковым относятся приложения ASP.NET 5, Windows Store и Windows Phone, а также основанные на .NET приложения для Mac и Linux.

В случае приложений Windows Phone и Windows Store изначальная цель — предоставить локальный доступ к данным с помощью EF. SQLite — самая распространенная база данных на устройствах, и она будет основным хранилищем локальных данных на устройствах с EF7. Однако будет доступна полнофункциональная модель провайдеров, поэтому другие хранилища данных тоже будут поддерживаться.

EF7 поддерживает новые хранилища данных Хотя ряд частей EF со всей очевидностью связан с реляционными хранилищами данных, многое из предоставляемой EF функциональности также применимо ко многим нереляционным хранилищам данных. К примерам такой функциональности относятся отслеживание изменений, LINQ и единица работы. EF7 позволит работать с провайдерами, ориентированными на нереляционные хранилища данных, такими как Microsoft Azure Table Storage.

Мы специально не пытаемся создать уровень абстракции, который скрывает тип хранилища данных, на который вы ориентируетесь. Общие шаблоны/компоненты, применимые к большинству хранилищ, будут обрабатываться базовой инфраструктурой. Тогда как все, что специфично для конкретных типов хранилищ, будет доступно в виде расширений, специфичных для провайдеров. Например, концепция средства формирования модели (model builder), которое позволяет вам конфигурировать свою модель, станет частью базовой инфраструктуры. Но возможность конфигурирования таких вещей, как каскадное удаление по ограничению внешнего ключа, будет включаться в виде расширений в провайдер реляционной базы данных.

EF7 компактна и расширяема EF7 будет облегченной и расширяемой версией, в которой на первый план выведены некоторые широко используемые средства. Кроме того, мы включим некоторые часто запрашиваемые средства, которые было бы трудно реализовать на кодовой базе EF6, но в EF7 они могут быть введены с самого начала.

Группа сохранит шаблоны и концепции, к которым вы привыкли в EF, за исключением тех, где есть веские причины для изменений. Вы увидите тот же API на основе DbContext/DbSet, но он будет создан поверх компонентов — строительных блоков, которые легко заменить или расширить при необходимости; этот же шаблон применялся для некоторых изолированных компонентов, добавленных в недавних выпусках EF.

Подробнее о EF7 Более детальные сведения о EF7 см. на странице GitHub «What Is EF7 All About» по ссылке aka.ms/AboutEF7. Эта страница включает проектировочную информацию, ссылки на публикации в блогах и инструкции по работе с предварительными версиями EF7.

Средства командной строки в ASP.NET

Одним из основополагающих принципов ASP.NET 5 была возможность работы из командной строки. То есть почти все операции, которые вам нужно выполнять с приложением ASP.NET 5, можно осуществлять из командной строки. Основная причина этого заключалась в том, чтобы вы могли работать с ASP.NET 5 без Visual Studio, например на компьютерах под управлением Mac или Linux.

KVM Первая утилита, которая понадобится вам для того, чтобы получить полнофункциональную командную строку для ASP.NET 5, — это K Version Manager (KVM). Утилита командной строки KVM может скачивать новые версии KRE и позволяет переключаться между ними. KRE содержит другие утилиты командной строки, которые вы, возможно, будете использовать. Как реализована KVM и как получить ее, зависит от конкретной ОС. Вы можете скачать и установить KVM для своей платформы, выполнив соответствующую команду из github.com/aspnet/Home.

Получив KVM, вы должны иметь возможность открыть окно командной строки и выполнить команду kvm. Если вы введете kvm list, то увидите список всех версий KRE на своем компьютере (рис. 2).

Рис. 2. Команда kvm list позволяет получить список версий KRE на вашем компьютере

Если в списке нет элементов, значит, в вашем профиле пользователя нет никаких версий KRE. Чтобы исправить это, вы можете выполнить команду kvm upgrade. Эта команда определит самую новую доступную версию KRE, скачает ее и модифицирует переменную окружения PATH так, чтобы вы могли использовать другие утилиты командной строки в самой KRE.

Для установки конкретной версии без ее задания как версии по умолчанию используйте команду kvm install . Ключ –r позволяет указать, какая версия KRE вам нужна — для .NET Core или .NET Framework, а ключи –x86 и –amd64 — скачать 32- или 64-разрядную KRE. Ключи –r и разрядности можно предоставлять либо для установки, либо для обновления.

После вызова kvm upgrade вы сможете использовать команды K и KPM. K позволяет запускать приложения, а KPM — управлять пакетами.

Как работает KVM? По сути, KVM — это просто удобный способ для манипуляций над переменной окружения PATH. Все, что делает команда KVM use , — изменяет вашу PATH на папку bin той версии KRE, которую вы указали в своей PATH. По умолчанию KRE устанавливается копированием и извлечением ZIP-файла KRE в папку %USERPROFILE%\.kre\packages, поэтому, когда вы набираете KVM use 1.0.0-beta1, KVM удостоверится, что папка %USERPROFILE%\.kre\packages\KRE-CLR-x86.1.0.0-beta1\bin имеется в вашей переменной PATH.

KPM Следующая утилита, которая наверняка понадобится вам, — KRE Package Manager (KPM). KPM выполняет две главные функции.


  1. Вы можете ввести kpm restore в папке с файлом project.json, чтобы скачать все пакеты, необходимые вашему приложению.
  2. Команда упаковки (kpm pack) принимает ваше приложение и генерирует самодостаточный исполняемый образ вашего приложения. Здесь под образом имеется в виду структура папок, которая должна быть скопирована на сервер и выполнена. Он включает все пакеты, необходимые вашему приложению, а также (не обязательно) KRE, в которой вы хотите выполнять приложение.

Команда restore может быть выполнена в папке, содержащей файл project.json. Она проанализирует файл и, используя NuGet.config, соединится с каналом NuGet и попытается скачать все пакеты, нужные вашему приложению. По умолчанию эти пакеты будут установлены в %USERPROFILE%\.kpm\packages, поэтому на компьютере разработчика требуется лишь единственная копия любого пакета, даже если они задействованы в нескольких проектах.

При упаковке приложения командой kpm pack генерируется папка, содержащая все, что нужно этому приложению для выполнения, в том числе пакеты, файлы исходного кода и ваш веб-корень. Вы можете даже включить KRE, хотя по умолчанию предполагается, что KRE уже имеется на сервере.

Команда K Эта команда запускает приложение ASP.NET 5 из командной строки. Команда K включена в KRE, как и в KPM, и является входной точкой для запуска приложения поверх KRE.

Основной способ использования команды K — запуск одной из команд в вашем файле command project.json. Команды указываются по имени в файле project.json под свойством commands. По умолчанию шаблон ASP.NET 5 Starter Web включает команду web в project.json, который служит хостом вашего приложения и прослушивает порт 5000. Чтобы выполнить эту команду, просто введите k web.

Обновления Visual Studio для ASP.NET 5

Одной из начальных целей ASP.NET 5 было обеспечение удобства группам, члены которых используют разные инструменты. Например, часть группы применяет Windows и Visual Studio и работает с другими, которые используют Sublime Text на Mac (средства кросс-платформенной .NET-разработки см. на omnisharp.net). Для достижения этой цели нам пришлось сделать шаг назад и пересмотреть поддержку Visual Studio. В предыдущих версиях Visual Studio система проектов предполагала, что большая часть разработки будет проходить в Visual Studio. Но Visual Studio не слишком хорошо работает, когда в создании файлов или модификации проекта участвуют другие инструменты. Так, в файле .csproj Visual Studio поддерживал список файлов, из которых состоит проект. Если вы использовали инструмент, который создает новый файл для вашего проекта, вам приходилось редактировать файл .csproj для включения созданного файла.

Создавая новый проект ASP.NET 5 в Visual Studio 2015, вы получаете новые средства. Вы можете по-прежнему разрабатывать, отлаживать и запускать свой проект, как обычно, но в дополнение к стандартным средствам, известным вам в проектах ASP.NET, вы получаете некоторые новые средства, уникальные для ASP.NET 5. Теперь у вас есть свобода в разработке с использованием выбранной вами платформы и инструментария. Я рассмотрю некоторые из этих средств.

Поддержка для всех файлов в папке В ASP.NET 5 все файлы в каталоге проекта автоматически включаются в проект. Вы можете исключать файлы из компиляции или публикации в файле project.json. Подробнее о том, как исключить файлы в project.json, см. страницу GitHub (bit.ly/1AIOhK3). После загрузки проекта Visual Studio запускает средство наблюдения за файлами (file watcher) и обновляет окно Solution Explorer для отражения изменений. Поскольку Solution Explorer всегда следит за файлами в каталоге проекта, мы сменили место сохранения генерируемых файлов. Вместо хранения таких файлов в каталоге проекта (в папках bin\ и obj\) теперь они помещаются по умолчанию в папку artifacts наряду с файлом решения.

Просто внесите изменения, сохраните и обновите браузер В существующих приложениях ASP.NET, когда вы изменяете логику для серверной стороны (например, код MVC-контроллера или фильтр), вы должны заново скомпилировать и развернуть приложение, чтобы изменения отразились в браузере. Microsoft хотела сделать рабочий процесс веб-разработки максимально простым и гибким, как при работе с интерпретируемыми платформами (вроде Node.js или Ruby), в тоже время сохранив возможность использования мощи .NET. В проектах ASP.NET 5, когда вы редактируете и сохраняете свой код на C#, средство наблюдения за файлами обнаруживает изменение и перезапускает приложение. Приложение перекомпилируется в памяти, поэтому вы можете видеть изменения в браузере почти в режиме реального времени. Заметьте, что этот рабочий процесс поддерживается, только когда вы не ведете отладку, — чтобы избежать прерывания сеанса отладки.

Обновленная поддержка NuGet-пакетов В ASP.NET 5 все ваши зависимости находятся в NuGet-пакетах. Зависимости пакетов указываются в project.json, причем перечисляются только прямые ссылки. Исполняющая среда разрешает зависимости пакетов за вас, и вы можете просматривать и вести поиск по всему графу зависимостей пакетов в Solution Explorer.

Чтобы установить NuGet-пакет, просто добавьте его в свой файл project.json. Как только вы сохраняете файл project.json, инициируется команда package restore, и любые изменения в ваших зависимостях отражаются узлом References в Solution Explorer. Вы можете видеть результат команды package restore и любые ошибки, которые могли произойти, в журнале диспетчера пакетов в окне Output. Вы даже получаете поддержку IntelliSense для пакетов, установленных локально на компьютере с Visual Studio, и пакетов, имеющихся в общедоступном канале NuGet, как показано на рис. 3.

Рис. 3. IntelliSense для зависимостей NuGet-пакетов в project.json

В существующих проектах ASP.NET при установке NuGet-пакета в проект копия этого пакета (и все его зависимости) помещаются в папку packages. В ASP.NET 5 применяется кеш, поэтому NuGet-пакеты являются общими между проектами для каждого пользователя. Когда в ASP.NET 5 выполняется команда package restore, любые пакеты, уже установленные в кеше, просто используются повторно. Вы можете просматривать и модифицировать кеш пакетов в своем профиле в папке .kpm.

По умолчанию проекты ASP.NET 5 компилируются в памяти исполняющей средой, и никакие артефакты на диске не сохраняются. Однако вы можете легко разрешить компиляцию NuGet-пакетов для своих библиотек классов ASP.NET 5, установив флажок Produce all outputs on build на вкладке Build страницы Properties для проекта. После выбора этого параметра вы найдете скомпилированный NuGet-пакет в папке artifacts решения.

Компиляция и Combined IntelliSense для нескольких целевых инфраструктур В ASP.NET 5 целевые инфраструктуры перечисляются в project.json. Ваш проект компилируется для каждой из перечисленных целевых инфраструктур. Это намного ускоряет обнаружение проблем, потому что вам не приходится явно переключаться на нужную целевую инфраструктуру и вы можете выполнять кросс-компиляцию для нескольких целевых инфраструктур из одного проекта.

Мы также обновили IntelliSense для проектов ASP.NET 5, введя Combined IntelliSense. С помощью Combined Intellisense, когда средство автоматического завершение предлагает разные варианты применительно к одной или более инфраструктурам, вы увидите расширенную подсказку, поясняющую различия. Эта подсказка демонстрируется на рис. 4 для класса StringComparison.

Рис. 4. Подсказка, показывающая Combined IntelliSense для нескольких целевых инфраструктур

Как видно на рис. 4, значение InvariantCulture недоступно для перечисления StringComparison при использовании ASP.NET Core 5.0.

Публикация в Web В Visual Studio 2015 Microsoft работает над новым процессом публикации проектов ASP.NET 5. В выпуске Preview соответствующий функционал ASP.NET 5 поддерживает публикацию в Azure Websites и в файловой системе (например, в папке local/network). При публикации в Azure Websites вы можете выбрать желательную конфигурацию сборки и версию KRE. В последующих выпусках эта поддержка будет расширена на больший спектр целей.

Переход на ASP.NET 5

Перевод существующего веб-приложения на ASP.NET 5 включает как создание нового проекта ASP.NET 5 для существующего приложения, так и последующий перенос вашего кода и зависимостей для выполнения в новой инфраструктуре. Создать новый проект ASP.NET 5 для приложения сравнительно легко. Прежде всего добавьте файл project.json в свою папку project. Изначально файл project.json должен включать только пустой JSON-объект (например, <>). Затем выберите File | Open Project, чтобы открыть файл project.json в Visual Studio 2015 Preview. После этого Visual Studio создаст проект ASP.NET 5 с файлом .kproj и автоматически включит в проект все файлы и каталоги, которые она найдет наряду с файлом project.json. Вы должны увидеть свои файлы проекта в новом проекте ASP.NET 5 в Solution Explorer. Вот вы и создали проект ASP.NET 5 для существующего веб-приложения!

Перенос вашего кода и зависимостей так, чтобы новый проект ASP.NET 5 компилировался и выполнялся корректно, — процесс более сложный. Вам нужно обновить свой project.json зависимостями пакетов верхнего уровня, ссылками на сборки инфраструктуры и ссылками проекта. Вы должны так перенести свой код, чтобы использовать новые абстракции HTTP, новое промежуточное ПО и новые версии веб-инфраструктур ASP.NET. Вам понадобится перевод кода под новую инфраструктуру для обработки таких задач, как конфигурирование, протоколирование и DI. Перенос вашего приложения для выполнения в .NET Core требует дополнительных изменений под платформу и учета ее ограничений. Полностью описать это в данной статье не удастся, но мы работаем над тем, чтобы предоставить полное руководство по миграции в будущей статье. Хотя усилия по переносу в ASP.NET 5 могут оказаться значительными, Microsoft считает, что преимущества кросс-платформенной, готовой к работе в облаке инфраструктуры с открытым исходным кодом, отслеживаемой сообществом, стоят этих усилий.

Где узнать больше?

В этой статье я исследовал ASP.NET 5 от высокоуровневых концепций до низкоуровневых компонентов. Но узнать об этом продукты можно гораздо больше! К счастью, есть масса ресурсов, которые помогут вам в этом.

На сайте ASP.NET имеется специальный раздел по ASP.NET 5 на странице asp.net/vnext. Эта страница постоянно обновляется новостями по выпускаемым средствам, документации, учебным пособиям ресурсам сообщества.

ASP.NET vNext Community Standup — открытая еженедельная онлайновая встреча с группой ASP.NET. Она проводится каждый вторник; ее время варьируется между утром и полднем по тихоокеанскому времени, и в ней могут принимать участие разработчики со всего мира. Присоединяйтесь к нам, чтобы узнать о ближайших планах, задать вопросы и сообщить свои предложения и отзывы.

Вы можете получить помощь от разработчиков, сотрудничающих с нами, и членов группы ASP.NET на форуме ASP.NET vNext по ссылке bit.ly/1xOuQx9. Кроме того, на JabbR.net есть тематический чат по разработке ASP.NET 5/vNext bit.ly/1HDAGFX.

Поскольку ASP.NET 5 разрабатывается как проект с открытым исходным кодом, вы можете участвовать в процессе разработки. Репозитарии исходного кода на github.com/aspnet постоянно обновляются группой, и это не зеркала внутреннего репозитария. То есть вы можете видеть операции передачи кода в эти репозитарии по мере того, как они происходят, и получать «снимок» кода в любой момент. Репозитарии включают исходный код для инфраструктур (например, KRuntime, Razor и MVC), а также для функциональных тестов и примеров проектов. Мы призываем вас к обратной связи с нами (как по ошибкам в коде, так и предложения по функционалу), открывая или комментируя формы по проблемам в репозитариях GitHub.

Сейчас наступили очень интересные времена в веб-разработке на веб-платформе Microsoft! Мы поощряем участие всех заинтересованных разработчиков на ранних этапах, чтобы вы были готовы к использованию преимуществ новых средств и держали с нами обратную связь в процессе разработки.

В заключение хочу поблагодарить Гленна Кондрона (Glenn Condron), Джону Гэллоуэя (Jon Galloway), Саида Ибрагима Хашими (Sayed Ibrahim Hashimi), Скотта Хантера (Scott Hunter) и Роуэна Миллера (Rowan Miller) за их неоценимую помощь, выходящую далеко за рамки обычного рецензирования, и за реальный вклад в написание значительных частей этой статьи.

Дэниел Рот (Daniel Roth) — старший менеджер программ в группе ASP.NET, которая в настоящее время работает над ASP.NET 5. В сферу его интересов входят .NET-разработка и создание простых в использовании инфраструктур для корпоративных клиентов.

Выражаю благодарность за рецензирование статьи экспертам Microsoft Гленну Кондрону (Glenn Condron), Дэвиду Фаулеру (David Fowler), Джону Гэллоуэю (Jon Galloway), Саиду Ибрагиму Хашими (Sayed Ibrahim Hashimi), Скотту Хантеру (Scott Hunter), Роуэну Миллеру (Rowan Miller) и Прабураджу Тиагараджу (Praburaj Thiagaraj).

Архитектура приложений

Onion-архитектура. Часть 1

Термин «Onion Architecture» («луковая» архитектура) был предложен Джеффри Палермо (Jeffrey Palermo) еще в 2008 году. Спустя годы данная концепция стала довольно популярной и является одной из наиболее применяемых типов архитектуры при построении приложения на ASP.NET.

Onion-архитектура представляет собой разделение приложения на уровни. При чем есть один независимый уровень, который находится в центре архитектуры. От этого уровня зависит второй уровень, от второго — третий и так далее. То есть получается, что вокруг первого независимого уровня наслаивается второй-зависимый. Вокруг второго наслаивается третий, который также может зависеть и от первого. Образно это может быть выражено в виде лука, в котором также есть сердцевина, вокруг которого наслаиваются все остальные слои, вплоть до шелухи.

Количество уровней может отличаться, но в центре всегда находится модель домена (Domain Model), то есть те классы моделей, которые используются в приложении и объекты которых хранятся в базе данных:

Первый уровень вокруг модели домена образуют интерфейсы, которые управляют работой с моделью домена. Обычно это интерфейсы репозиториев, через которые мы взаимодействуем с базой данных.

Внешний уровень представляет такие компоненты, которые очень часто изменяются. Обычно внешний уровень образуют пользовательский интерфейс, тесты, какие-то вспомогательные классы инфраструктуры приложения. К этому уровню также относятся конкретные реализации интерфейсов, объявленных на нижележащих уровнях. Например, реализация интерфейса репозитория, который объявлен на уровне Domain Services. Вообще все внутрение уровни, которые можно объединить в Application Core, определяют только интерфейсы, а конкретная реализация этих интерфейсов располагается на внешнем уровне.

Также стоит отметить, что все внешние хранилища, как базы данных, файлы, внешние веб-сервисы, от которых мы можем получать данные, — все это является внешним по отношению к архитектуре.

Для более подробного рассмотрения данного типа архитектуры создадим обычный проект ASP.NET MVC 5, который будет называться OnionApp.

Пока это монолитное приложение, в котором весь код размещен в одном проекте. Теперь добавим в решение (не в проект) новую папку. Назовем ее Domain . Затем добавим в папку новый проект. В качестве типа проекта выберем тип Class Library , а в качестве его названия укажем OnionApp.Domain.Core :

Добавим в новый проект класс, представляющий книгу, который и будут представлять Domain Model:

Затем добавим в папку Domain новый проект также по типу >OnionApp.Domain.Interfaces . Затем добавим в этот проект ссылку на вышеопределенный проект OnionApp.Domain.Core и также добавим новый интерфейса:

Этот интерфейс и составляет уровень Domain Services и зависит от уровня Domain Model.

И на данный момент проекты выглядят так:

При создании архитектуры приложения надо понимать, что реальное количество уровней здесь весьма условно. В зависимости от масштаба задач уровней может быть и больше, и меньше. Однако важно понимать сам принцип, что в центре у нас модели домена, а все остальное зависит от них. Каждый внешний уровень может зависеть от внутреннего, но не наоборот.

На выше представленной схеме между внешним уровнем и уровнем Domain Services есть еще уровень API или интерфейсов бизнес-логики приложения — уровень Application Services. Этот уровень может включать интерфейсы вспомогательных классов. Например, покупка книги может представлять собой объект, который в зависимости от способа оплата (наличкой, через кредитную карту, через электронные деньги) может включать тот или иной функционал. И, возможно, было бы неплохо определить общий интерфейс покупки, а в зависимости от типа магазина использовать его конкретную реализацию. Поэтому добавим в решение новую папку, которую назовем Services . В эту папку добавим новый проект по типу >OnionApp.Services.Interfaces

И добавим в этот проект интерфейс IOrder:

Данный проект также имеет зависимость от классов проекта OnionApp.Domain.Core . А интерфейс IOrder, представляющий процесс покупки и оформления заказа, использует эти классы в методе MakeOrder() . Предполагается, что в метод передается объект купленной книги.

Теперь перейдем к созданию внешнего уровня, который и будет реализовывать данные интерфейсы. Для этого добавим в решение папку Infrastructure и затем в нее добавим новый проект по типу >OnionApp.Infrastructure.Data .

Данный проект будет реализовывать интерфейсы, объявленные на нижних уровнях, и связывать их с хранилищем данных. В качестве хранилища данных будет использоваться бд MS SQL Server, с которой мы будем взаимодействовать через Entity Framework. Поэтому добавим в этот проект через nuGet все пакеты Entity Framework. Также добавим в проект ссылки на проекты OnionApp.Domain.Core и OnionApp.Domain.Interfaces.

После этого добавим в проект новый класс OrderContext :

Также добавим класс репозитория BookRepository:

Структура системы ASP.NET

Пример системы может потребовать:

  1. Презентация/администрирование (сайт ASP.NET MVC)
  2. Объектная модель для доступа к данным может использоваться другими приложениями (EntityFramework или аналогичными)
  3. Служба данных, используемая как веб-сайтом, так и клиентскими приложениями (служба данных WCF)

Чтобы сделать систему как настраиваемой, так и настраиваемой, как лучше всего разделить функции?

Существуют ли какие-либо проблемы с:

  • Веб-проект (проект ASP.NET для комбинированного представления/сайта администратора)
    • Пользовательская модель просмотра, которая сопоставляется с «внешней» объектной моделью
  • Библиотека классов (содержащая классы объектной модели/доступа к данным)
  • Служба данных (служба данных WCF, отображающая объектную модель и/или любые пользовательские функции)

Насколько я вижу, разделение компонентов позволит упростить управление, будь то обновление, перемещение служб, балансировка нагрузки и т.д.

Любые мысли/опыт за или против?

Эта настройка выглядит очень хорошо для меня. Я обычно встраиваю свои json/xml/rss/WCF-каналы в проект веб-презентации только потому, что они в основном делают то же самое, что и вывод html, за исключением того, что они выводят в какой-то другой формат для передачи по проводу. Но я думаю, что разделение вашего WCF — хороший вызов, потому что, когда каналы данных встроены в веб-проект, меня немного нервничает, чтобы обновить его, зная, что многое другое зависит от этих каналов.

Илон Маск рекомендует:  10 самых лучших пользовательских функций javascript за все времена
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL