Krististudio.ru

Онлайн образование
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Asp net mvc уроки

ASP.NET

Изучение ASP.NET Core MVC / #1 — Создание сайта на C#

Видеоурок

Полезные ссылки:

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

ASP.NET – это платформа для разработки в вебе (сайты, приложения). Она поддерживает работу с несколькими языками программирования, входящими в сборку фреймворка: Basic NET, C# , J# и ряд прочих. С данной платформой есть возможность создавать как простейшие веб-ресурсы, так и очень сложные сайты, способные к обработке многотысячного потока пользователей.

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

Популярнейшие технологии и языки программирования для разработки веб-ресурсов:

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

В этом списке присутствуют:

  • StackOverflow – это один из самых больших форумов. С его помощью тысячи людей ежедневно получают ответы на насущные вопросы;
  • Основной портал корпорации Microsoft ;
  • Крупнейший сайт для регистрации доменов GoDaddy . Сегодня занимает лидирующие места в сфере веб-хостинга.
  • Официальный веб-сайт Dell .

Этим список не ограничивается, есть масса других сайтов.

В ASP .NET применяется традиционная схема MVC – Модель-Вид-Контроллер. Все элементы отвечают за конкретные действия. Для примера, пользователь запускает процесс регистрации и отправляет на сервер регистрационные данные. Контроллер интерпретирует действия человека и передаёт модели информацию о внесённых изменениях в статус пользователя. Модель реагирует на действия контроллера и работает с поставляемыми данными. Вид отвечает за отображение информации с модели.

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

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

ASP .NET или ASP .NET Core?

.NET Core – кроссплатформенная среда выполнения для приложений из веба или консольных программ. Программные продукты, разработанные на ней, могут успешно исполняться на Linux, Windows, MacOS.

Основные плюсы: мультиплатформенность, открытый исходный код.

.NET Framework – среда исполнения, которая предназначена исключительно для Виндовс. Помогает в разработке десктопных программ под Windows и веб-приложений ASP .NET под IIS.

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

Сегодня Microsoft усиленно продвигает и модернизирует Core, постоянно добавляя полезный функционал. Может быть скоро эта среда сравняется с .NET Framework.

Пара сценариев для разработчиков веб-ресурсов на профессиональном уровне.

ASP .NET Core – лучше применять, если вы:

  • Желаете установить таргетинг в приложении на все популярные ОС;
  • Не страшитесь изучения нового;
  • Не боитесь уделять достаточно времени исправлениям и доработкам, ведь Core не дошёл до статической точки, периодически меняется.

ASP .NET – идеальное решение, если вы:

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

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

Дополнительные курсы

Фреймворк .NET поддерживает множество языков, но самым популярным является C#. Прежде чем приступать к видео курсу вам следует изучить C#. На нашем ресурсе представлено множество курсов на эту тематику. Просмотреть их все можете по этой ссылке .

Большое задание по курсу

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

Как за час создать сайт на ASP.NET

Что делать, если сайт нужен был вчера, но писать его еще даже не начали? Самое время воспользоваться ASP.NET Web Forms!

ASP.NET Web Forms позволяет даже новичку быстро создать простой сайт. Если не планировать очень широкий функционал, то вполне можно справиться и за час.

Рассказываем, как это сделать, шаг за шагом.

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

Для начала создайте проект ASP.NET:

Евгений Кучерявый

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

Затем укажите его имя:

А потом выберите модель Web Forms:

Как только Visual Studio подготовит шаблон проекта, его можно будет запустить, чтобы проверить. Для этого нажмите кнопку IIS Express:

Читать еще:  Видео уроки дизайна ногтей гель лаком

Visual Studio скомпилирует все файлы, запустит сайт и откроет его в браузере по умолчанию. Если сайт не открылся, на него можно перейти самостоятельно. Для этого в трее найдите иконку IIS Express и посмотрите там адрес сайта. Он должен быть примерно таким: http://localhost:5000 (цифры в конце могут отличаться).

Вот как выглядит шаблон сайта:

Тут уже есть несколько страниц и немного стилей. Каждая страница состоит из трех файлов:

  • Page.aspx. Файл с HTML-кодом страницы.
  • Page.aspx.cs. Класс, который отвечает за логику работы страницы.
  • Page.aspx.designer.cs. Класс, который служит прослойкой между HTML и C#.

Вот как выглядит About.aspx этого проекта:

А вот класс, который занимается логикой:

В About.aspx находится только фрагмент готовой страницы. Остальная часть располагается в файле Site.Master или Site.Mobile.Master. Контент из тега (About.aspx) встраивается на место тега (Site.Master) с идентичным ID:

Так на одной странице может быть несколько таких плейсхолдеров с разными ID: MainContent, RelevantArticles, Comments и так далее. Это позволяет легко управлять отдельными блоками страницы (как при использовании функции include() в PHP).

Как создать страницу в ASP.NET Web Forms

Чтобы создать другие страницы, нажмите правой кнопкой на название проекта и в контекстном меню выберите Add —> Web Form:

Будет создана страница с таким кодом:

Как добавить ссылку в меню

Меню находится в Site.Master:

В начале ссылки ставится знак «

», а название файла указывается без расширения.

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

Как вставить HTML-код в страницу

Допустим, есть такая строка:

Если ее вывести, то пользователь увидит текст «Hello, World!», а не жирный шрифт. Чтобы передать в HTML-код строку вместе с тегом, нужно использовать не обычный тип string, а HtmlString:

Получение данных из URL

Дальше нужно получить данные из URL. Например, в ссылке /Article?id=1 хранится свойство id, которое необходимо, чтобы выбрать из базы данных статью с определенным идентификатором.

Получить это свойство можно с помощью статического класса Request (в нем хранятся и другие данные о запросе пользователя):

Перед тем как использовать значение, нужно проверить, существует ли оно, а потом привести его к необходимому типу:

Теперь значение можно использовать, чтобы открывать статьи по ссылке.

Вывод информации из базы данных

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

Затем добавьте таблицу в базе данных с идентичными полями:

Теперь можно создать класс для получения данных из СУБД:

Теперь можно перейти в код страницы и добавить получение и вывод статей в методе Page_OnLoad():

Вот как это работает:

Заключение

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

  • о внешнем виде;
  • ограничении количества выводимых статей;
  • админской панели;
  • наполнении страниц и других важных вещах.

Если вы хотите научиться создавать более сложные сайты с помощью ASP.NET, записывайтесь на курс «Профессия C#-разработчик», на котором вы освоите C# и ASP.NET, а также соберете портфолио из проектов для компьютеров и веб-проектов.

Курс

Профессия С#-разработчик

130 часов — и вы научитесь писать программы на языке, созданном Microsoft. В ы создадите 5 проектов для портфолио, даже если до этого никогда не программировали. После обучения — гарантированное трудоустройство.

ASP.NET MVC Tutorial for Beginners

What is ASP.NET MVC?

ASP.NET MVC is an open source web development framework from Microsoft that provides a Model View Controller architecture.

ASP.net MVC offers an alternative to ASP.net web forms for building web applications. It is a part of the .Net platform for building, deploying and running web apps. You can develop web apps and website with the help of HTML, CSS, jQuery, Javascript, etc.

Why ASP.net MVC?

Although web forms were very successful, Microsoft thought of developing ASP.net MVC. The main issue with ASP.net webForms is performance.

In a web application, there are four main aspects which define performance:-

  • Response time issues
  • Problem of Unit Testing
  • HTML customization
  • Reusability of the code-behind class

ASP.net MVC excels on the above parameters.

Version History of MVC

ASP.NET MVC1

  • Released on Mar 13, 2009
  • It runs on.NET 3.5
  • Visual Studio 2008
  • MVC Pattern architecture with WebForm Engine
  • Main Features includes Html & Unit testing, Ajax Helpers, Routing, etc.

ASP.NET MVC2

  • This version released on March 10, 2010
  • Runs on .NET 3.5,4.0 and with Microsoft Visual Studio 2008
  • Include Feature like Templated helpers, Ul helpers with automatic scaffolding & customizable templates
  • It supports for DataAnnotations Attributes to apply model validation on client and server sides

ASP.NET MVC3

  • It was released on Jan 13, 2011
  • Runs on .NET 4.0 and with Microsoft Visual Studio 2010
  • Use of NuGet to deliver software and allows you to manage dependencies across the platform
  • Better JavaScript support with, jQuery Validation, and JSON binding
  • It offers features like the Razor view engine; enhanced Data Annotations attributes for model validation on both client and server sides
Читать еще:  Ms sql уроки

ASP.NET MVC4

  • This version was released on Aug 2012
  • It runs on .NET 4.0,4.5 and with Visual Studio 2010 & Visual Studio 2012
  • Enhancements to default project templates
  • Offers features like Mobile project template using jQuery Mobile, Task support for Asynchronous Controllers, bundling, minification, etc.

ASP.NET MVÇ5

  • Released on 17 October 2013
  • Runs on .NET 4.5,4.5.1 and with Visual Studio 2012 & Visual OneASP.NET

Features of MVC

  • Easy and frictionless testability
  • Full control over your HTML, JavaScript , and URLs
  • Leverage existing ASP.Net Features
  • A new presentation option for ASP.Net
  • A simpler way to program Asp.Net
  • Clear separation of logic: Model, View, Controller
  • Test-Driven Development
  • Support for parallel development

Things to remember while creating MVC Application

Here, are a few useful things which you need to remember for creating MVC application:

  • You need to remember that ASP .net MVC is NOT a replacement of ASP.Net web forms based applications
  • The approach of MVC app development must be decided based on the application requirements and features provided by ASP .net MVC to suit the specific development needs.
  • Application development process with ASP .NET MVC is more complex compared with web forms based applications.
  • Application maintainability always be higher with separation of application tasks.

MVC architectural Pattern

MVC is a software architecture pattern which follows the separation of concerns method. In this model .Net applications are divided into three interconnected parts which are called Model, View, and Controller.

The goal of the MVC pattern is that each of these parts can be developed, tested in relative isolation and also combined to create a very robust application.

Let see all of them in detail:

Models

Model objects are parts of the application which implement the logic for the application’s data domain. It retrieves and stores model state in a database. For example, product object might retrieve information from a database, operate on it. Then write information back to products table in the SQL server.

Views

View are the components which are used to display the application’s user interface (UI). It displays the .Net MVC application’s which is created from the model data.

The common example would be an edit view of an Item table. It displays text boxes, pop-ups and checks boxes based on the current state of products & object.

Controller

Controllers handle user interaction, work with the model, and select a view to render that displays Ul. In a .Net MVC app, the view only displays information, the controller manages and responds to user input & interaction.

For example, the controller manages query-string values and passes those values to the model.

ASP.NET MVC Урок 1. Начало

Цель урока: Изучить Global.asax и поведение запуска веб-приложения, обработки веб-запроса. Изучение Nuget и Подключение протоколирования.

Начало

Создадим приложение ASP.NET MVC 4 Web Application «Lesson1» (рис 1.):

Не будем запускать приложение, а сразу установим (если до этого не сделали) NuGet расширение:

NuGet Package Manager — это расширение для Visual Studio, которое позволяет добавлять в существующие проекты модули, которые значительно упрощают работу. При создании «Basic» asp.net mvc4 приложения в само приложение было добавлено изначально много модулей. Их список мы можем найти, кликнув в Manage NuGet Packages… в контекстном меню проекта:

О них по порядку:

  • Entity Framework — обеспечивает работу с БД
  • jQuery (+ jQuery UI, jQuery Validation) — популярный javascript framework (о нем еще пойдет речь позже).
  • Json.NET — классы для работы с json-форматом данных.
  • knockoutjs — javascript библиотека для работы с Model View ViewModel архитектурой. (http://knockoutjs.com/)
  • Microsoft.Net Framework 4 Http Client Libraries — программный интерфейс для работы с HttpContext-ом.
  • Microsoft ASP.NET MVC 4 — собственно, классы паттерна проектирования MVC (то, что есть предметом изучения)
  • Microsoft ASP.NET Razor 2 — view-движок. Есть еще ASPX и Spark — мы о них также будем говорить позже
  • Microsoft ASP.NET Universal Providers Core Libraries (Microsoft ASP.NET Universal Providers for LocalDB) — предоставляет инструменты для поддержки всех SQL Server 2005 (и более поздних) и для SQL Azure.
  • Microsoft ASP.NET Web API (Microsoft ASP.NET Web API Client Libraries, Microsoft ASP.NET Web API Core Libraries, Microsoft ASP.NET Web API Web Host) — для создания REST приложений, работа с XML, JSON и так далее
  • Microsoft ASP.NET Web Optimization Framework — оптимизирует передачу данных, например, минимизирует js-код
  • Microsoft ASP.NET WebPages 2 — набор классов для работы во View
  • Microsoft jQuery Unobtrusive Ajax (Microsoft jQuery Unobtrusive Validation) — jQuery библиотека для поддержки ajax/валидации
  • Microsoft.Web.Infrastructure — позволяет динамически регистрировать HTTP-модули во время выполнения
  • Modernizr — js-библиотека, которая позволяет использовать html5 и css3 в старых браузерах
  • WebGrease — позволяет минифицировать html, css, js.

Теперь, когда мы примерно прикинули, из чего состоит наше приложение, давайте запустим его.
Для этого необходимо создать HomeController:

Для метода (действия) Index добавим View и выберем

Views/Shared/_Layout.cshtml в качестве layout (типа master page):

Собственно, можем запускать.
Всё что мы увидим — это:

Почему контроллер надо было назвать именно Home и как это работает, мы будем изучать более подробно в следующих уроках.

Global.asax

А сейчас обратим внимание на файл Global.asax:

public class MvcApplication : System.Web.HttpApplication < protected void Application_Start() < AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); >>
Класс MvcApplication наследует HttpApplication и содержит инструкции для инициализации приложения. Есть еще несколько событий, на которые можно добавить код. Рассмотрим их:

  • public void Init() — приложение инициализируется или при первом вызове. Оно вызывается для всех экземпляров объекта HttpApplication.
  • public void Dispose() — вызывается непосредственно перед уничтожением объекта HttpApplication. Это идеальное место для очистки ранее используемых ресурсов.
  • Application_Error — наступает, когда необработанное исключение случается в приложении.
  • Application_Start — наступает, когда первый экземпляр HttpApplication создается. Это позволяет создавать объекты доступные для всех экземпляров класса HttpApplication.
  • Application_End — наступает, когда все созданные ранее экземпляры класса HttpApplication уничтожены. Это событие наступает только однажды в течение всего времени жизни приложения.
  • Application_BeginRequest — наступает, когда приложение получает запрос. Первый раз это событие наступает для запроса страницы, когда пользователь вводит URL.
  • Application_EndRequest — Последнее событие, которое наступает для запроса к приложению.
  • Application_PreRequestHandlerExecute — наступает прежде, чем ASP.NET запустит обработчик страницы или веб-службу.
  • Application_PostRequestHandlerExecute — наступает, когда ASP.NET заканчивает обработку.
  • Applcation_PreSendRequestHeaders — наступает перед тем, как ASP.NET посылает клиенту (браузеру) HTTP заголовки.
  • Application_PreSendContent — наступает перед тем, как ASP.NET посылает клиенту (браузеру) HTTP содержимое.
  • Application_AcquireRequestState — наступает, когда ASP.NET получает текущее состояние (состояние сессии), связанное с текущим запросом.
  • Application_ReleaseRequestState — наступает, когда ASP.NET завершает исполнение всех событий. В результате все модули сохраняют свои текущие состояния.
  • Application_ResolveRequestCache — наступает, когда ASP.NET выполняет запрос авторизации. Это позволяет модулям кеширования обработать запрос и обслужить из кэша, минуя обработчик выполнения.
  • Application_UpdateRequestCache — наступает, когда ASP.NET завершает выполнение обработчика, чтобы модули кеширования могли сохранить результат для использования в последующих ответах.
  • Application_AuthenticateRequest — наступает, когда модуль идентификации устанавливает личность текущего пользователя как действительную. В текущий момент, учетные данные пользователя уже проверены.
  • Application_AuthorizeRequest — наступает, когда модуль авторизации подтверждает, что пользователь может иметь доступ к ресурсам.
  • Session_Start — наступает, когда новый пользователь заходит на сайт.
  • Session_End — наступает, когда истекает время сессии пользователя, или он покидает сайт.

Хорошо. Теперь, чтобы воочию убедимся, что всё именно так и происходит, добавим протоколирование и сделаем это через добавление NLog модуля в NuGet.

Package Manager Console

В NuGet есть консоль для выполнения команд по установкеудалениюпоиску модулей, и других вещей, типа скаффолдинга.
Для вывода всех установленных модулей пишем:
Get-Package
Для получения всех доступных к установке модулей:
Get-Package -ListAvailable
Для получения всех доступных модулей с названием NLog
Get-Package -ListAvailable -Filter NLog
Или
Get-Package -ListAvailable / where <$_.Id -match "NLog">(это дольше)
Для установки модуля NLog необходимо вначале выбрать проект (если их в солюшене больше одного) и ввести команду:
Install-Package NLog

Файлы копируются в проект, добавляются ссылки на сборки и web.config может быть обновлен.
Для удаления из проекта модуля необходимо, чтобы он не был связан с другими модулями. Удаляем так:

После установки пользуемся документацией на NLog (http://nlog-project.org/wiki/Tutorial) и добавляем в Web.config:

2012-09-18 19:18:11.5668/INFO/Lesson1.MvcApplication/Application Start 2012-09-18 19:18:13.7319/INFO/Lesson1.MvcApplication/Application Init 2012-09-18 19:18:14.2709/INFO/Lesson1.MvcApplication/Application Init 2012-09-18 19:18:14.2769/INFO/Lesson1.MvcApplication/Application BeginRequest 2012-09-18 19:18:14.3579/INFO/Lesson1.MvcApplication/Application AuthenticateRequest 2012-09-18 19:18:14.3579/INFO/Lesson1.MvcApplication/Application AuthorizeRequest 2012-09-18 19:18:14.3579/INFO/Lesson1.MvcApplication/Application ResolveRequestCache 2012-09-18 19:18:14.3989/INFO/Lesson1.MvcApplication/Session Start 2012-09-18 19:18:14.3989/INFO/Lesson1.MvcApplication/Application AcquireRequestState 2012-09-18 19:18:14.3989/INFO/Lesson1.MvcApplication/Application PreRequestHandlerExecute 2012-09-18 19:18:15.9580/INFO/Lesson1.MvcApplication/Application PreRequestHandlerExecute 2012-09-18 19:18:15.9580/INFO/Lesson1.MvcApplication/Application ReleaseRequestState 2012-09-18 19:18:15.9580/INFO/Lesson1.MvcApplication/Application UpdateRequestCache 2012-09-18 19:18:15.9580/INFO/Lesson1.MvcApplication/Application EndRequest 2012-09-18 19:18:15.9580/INFO/Lesson1.MvcApplication/Application PreSendRequestHeaders 2012-09-18 19:18:35.6061/INFO/Lesson1.MvcApplication/Session End 2012-09-18 19:18:38.0833/INFO/Lesson1.MvcApplication/Application Dispose 2012-09-18 19:18:38.0833/INFO/Lesson1.MvcApplication/Application End 2012-09-18 19:18:39.1383/INFO/Lesson1.MvcApplication/Application Dispose
В Application_Start выполняется регистрация:

  • Area (области),
  • Filter (фильтры),
  • Bundle (комплекты),
  • Route (маршруты).

Подробности по инициализации Filter, Вundle и Route находятся в папке App_Start.

WebActivator

WebActivator — это модуль, который позволяет запустить код до самого первого старта App_Start. Это может быть необходимо для того, чтобы, к примеру, создать тестовую БД перед запуском.
Установим:

Install-Package WebActivator
Добавим класс в App_Start папку:

[assembly: WebActivator.PreApplicationStartMethod(typeof(PreStartApp), «Start»)] namespace Lesson1.App_Start < public static class PreStartApp < private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); /// /// Метод запускается один раз перед стартом приложения /// public static void Start() < logger.Info("Application PreStart"); >> >
В файле логов увидим, что строка Application PreStart исполняется раньше Application Start:
2012-09-19 10:29:01.3950/INFO/Lesson1.App_Start.PreStartApp/Application PreStart 2012-09-19 10:29:01.6290/INFO/Lesson1.MvcApplication/Application Start
Создадим четыре файла отдельно для trace (трассировки), debug (отладки), info (информации), error (ошибки). Определим место записи: /Contents/logs/[текущая дата] Перепишем конфигурацию:

Log2Console

Для NLog есть еще классная программа Log2Console, которая позволяет получать логи прямо в окне программы.

Запускаем программу и настраиваем приемщик:

Ссылка на основную публикацию
Adblock
detector