Перейти к содержанию

Как опубликовать приложение Asp.Net Core

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...

[ Полезный рекламный блок ]

Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.


В этой статье, мы рассмотрим процесс публикации Asp.Net Core приложения, на Windows Хостинг. В качестве хостинга может выступать любой из популярных вариантов:

  • reg.ru
  • www.smarterasp.net
  • hostpro.ua
  • godaddy.com

Мной был выбран хостинг — hostpro.ua. Я ожидаю от вас знания концепций объектно-ориентированного программирования на C# и минимальные знания работы с хостинг провайдерами. Я предполагаю, что вы также знаете концепции .NET Core, особенно паттерн MVC.

Для примера будем использовать приложение по управлению пользователями. База данных Sql Server с управлением через Entity Framework.

Как опубликовать приложение Asp.Net Core

Создание проекта

Публикация проекта на хостинг

Обновления базы данных

Создание проекта

Откройте Visual Studio 2022.

Создайте проект «Asp.Net Core Web Application(.Net Core)» с шаблоном MVC Template. В графе “Authentication type”, оставляем значение None.

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

  1. В папку Models, добавим класс User:

2. Скачаем библиотеку: Microsoft.EntityFrameworkCore.SqlServer

3. В папку Models, добавим класс ApplicationContext:

5. Далее в файле конфигурации appsettings.json определим настройки подключения к БД, которая будет хранить данные пользователей. Для этого на сервере, создадим базу данных и передадим ее данные для подключения в файл:

Как опубликовать приложение Asp.Net Core

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

создание пользователя базы данных sql

Сам файл appsettings.json теперь содержит строку подключения к этой базе данных:

6. Изменим класс Program для установки сервисов Entity Framework. В начале получаем строку подключения к базе данных, после добавляем класс ApplicationContext, в сервисы:

7. Теперь добавим папку Interfaces и добавим туда новый интерфейс – IUsers:

8. Добавим папку Repository и туда новый класс UserRepository:

9. В классе Program, добавим сервис IUsers:

10. Сделаем начальное добавление данных, если они отсутствуют, реализуем добавление в отдельном классе, а не в ApplicationContext. Для этого в папке Models, создадим класс DbInit:

11. Используем данный класс, в Program:

12. Добавим папку ViewModels, а в нее, новый класс UserViewModel:

13. Создадим новый контроллер UsersController и добавим действия необходимые для управления пользователями:

14. В папке View, добавим папку Users и в нее файл Index.cshtml, со следующим содержимым:

15. В папку ViewUsers добавим файл Create.cshtml, со следующим содержимым:

16. В папку ViewUsers добавим файл Edit.cshtml, со следующим содержимым:

17. Изменим файл представления _Layout.cshtml, добавим ссылку на страницу с пользователями:

Готово, теперь можно переходить к публикации проекта на хостинг!

Публикация проекта на хостинг

Как опубликовать приложение Asp.Net Core, рассмотрим на данном этапе

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

  1. Прежде чем начать публикацию вашего проекта, убедимся, что сайт и домен работает.
  2. При публикации приложения, в папках где будут храниться картинки или файлы, всегда оставлять по одной картинке или файлу.
  3. Публикация проекта происходит через среду разработки, которая поддерживает Web Deploy, например, Visual Studio или WebMatrix. Мы рассмотрим процесс публикации веб-приложения через Visual Studio 2022. Открываем нужный проект и нажимаем правой клавишей по названию проекта – Publishпубликация проекта c#
  4. В выпадающем списке выберем пункт – FTP/FTPS Server.
  5. Укажем данные от хостинга, которые можно получить в письме или в настройках аккаунта провайдера:

В поле Site path, указываем папку, в которой размещается сайт, обычно это папка с названием домена.

6. Нажмем кнопку Finish. После этого попадем в главное окно публикации, в котором дополним по необходимости настройки:

Выберем пункт Show all settings и в появившемся окне по желанию меняем конфигурацию:

asp.net core configuration

  • Release: используется для сборки программы и её дальнейшего выпуска. Версия программы будет более оптимизирована по размеру и производительности и не будет содержать дополнительную информацию об отладке. Release обычно используется в качестве основной конфигурации по умолчанию.
  • Debug: предназначена для отладки программы. Эта конфигурация отключает все настройки по оптимизации, включает информацию об отладке, что делает ваши программы больше и медленнее, но гораздо проще для проведения отладки. 
  • Target Framework: версия netcore, под которой компилируется локальное приложение.
  • Deployment Mode: Framework-dependent
  • Target Runtime: Portable

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

Данная библиотека необходима для выполнения миграций в базе данных, для дальнейших публикаций, поэтому скачиваем ее и при настройках FTPProfile, мы сможем автоматически обновлять базу данных путем миграции (в данный момент галочку не ставим, таблицы создадутся за счет вызова метода Database.EnsureCreated() в классе ApplicationContext), об этом мы поговорим в следующей теме этой статьи:

как опубликовать asp.net core приложение на хостинг7. Выполняем публикацию проекта на сервер, нажимаем вверху кнопку Publish и ждем полного развертывания проекта на сервере.

После публикации, проверяем сайт на хостинге.

Обновления базы данных

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

  1. Определяем класс ApplicationContext:

  1. На сервере создаем новую базу данных и в файле appsettings.json прописываем подключение к ней:

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

Открываем Package Manager Console и вписываем команду:

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

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

  1. Теперь можно опубликовать проект на сервер, так как база данных уже наполнена всей необходимой информацией. Нажмем правой клавишей по названию проекта – Publish.
  2. Сайт опубликован, все работает, продолжаем писать сайт дальше. Добавляем новый класс Company и расширить класс User:

Так же добавляем DbSet<Company> в класс ApplicationContext:

  1. Для изменения базы данных на сервере, выполним новую миграцию. Открываем Package Manager Console и вписываем команду:

После этого создастся папка с миграцией, применяем ее, используя команду:

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

  1. Изменим файлы проекта. В классе DbInit, добавим компании и привяжем пользователей к ним:

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

8. Теперь обновим репозиторий — UserRepository (добавим компании для пользователей):

9. Обновим представление Index.cshtml, для вывода компаний пользователя. Так как у некоторых пользователей нет компании, необходимо проверить свойство Company на null, чтобы не получить ошибку (один из вариантов):

  1. Запустим проект, все должно успешно работать:

база данных sql server

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

На этом статья «как опубликовать приложение Asp.Net Core», подошла к концу, надеюсь вам было интересно.

Поделитесь вашим опытом в комментариях, как вы публикуете Asp.Net Core приложение на хостинг?

Так же вам может быть интересна предыдущая статья — Как увеличить органический трафик на сайте.

Вы начинающий программист, который хочет изучить все тонкости языка C#?

Пройдите наш тест на 13 вопросов, чтобы узнать, как много вы знаете на самом деле!

C# Braincheck


Вы хотите научится писать код на языке программирования C#?

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

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

  • Доступ к пройденному материалу
  • Тематические статьи
  • Библиотека книг
  • Онлайн тестирование
  • Общение в закрытых группах

https://dijix.com.ua

Живи в своем мире, программируй в нашем.


 

Опубликовано в рубрикеAsp.Net Core
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x