Как стать автором
Обновить

Создаем новый NopCommerce проект с подключением PostgreSQL за 5 минут

В рамках этой небольшой статьи я расскажу, как всего за 5 минут и 9 несложных шагов можно создать новый NopCommerce-проект, подключив БД на PostgreSQL.

Краткий экскурс

NopCommerce - мощная и гибкая CMS система c открытым исходным кодом, построенная на ASP.NET (.NET Core), в частности, на архитектуре Model-View-Controller (MVC).

Главные преимущества системы: NopCommerce является полностью бесплатным решением (вы платите только за хостинг, который сами выбираете в дальнейшем), гибкость настройки и кастомизации проектов - можно как угодно менять и дополнять интерфейс и функциональность (создавать свои плагины, выбирать СУБД и т.д.), адаптируя сайт под специфические требования бизнеса.

Среди других характеристик NopCommerce:

  • Масштабируемость;

  • Возможность SEO-оптимизации;

  • Безопасность;

  • Возможность интеграций с различными API, платежными системами и т.д.

Таким образом, по многим аспектам мало чем уступает широко известным Wordpress, Shopify и др.

Кстати

Существуют и альтернативные CMS системы на ASP.NET – например, такие как Orchard Core, DotNetNuke и другие, однако если ваша цель – создание интернет-магазина, NopCommerce – это более оптимальный выбор. Он предлагает необходимый для e-commerce функционал, простоту использования и наличие живого, растущего сообщества. Так или иначе, выбор инструмента за вами.

В качестве подключаемой СУБД выбран PostgreSQL (есть альтернативные варианты – SQL Server, MySQL)

Для работы нам понадобится: разумеется, Visual Studio с установленным в ней фреймворком ASP.NET и, конечно же, pgAdmin или другой инструмент для работы с PostgreSQL.

Итак, приступим.

Шаг 1. Скачиваем решение

Сперва нужно скачать "Package with source code" на официальном сайте https://www.nopcommerce.com/en/download-nopcommerce. После распаковки архива, в папке вы найдете файл "NopCommerce.sln" – его открываем в студии.

Сайт, с которого загружаем решение Package with source code
Сайт, с которого загружаем решение Package with source code
Выбираем NopCommerce.sln
Выбираем NopCommerce.sln

Шаг 2. Подключаем пакет Npgsql

Через менеджер пакетов NuGet нужно добавить пакет для работы с СУБД PostgreSQL -Npgsql.EntityFrameworkCore.PostgreSQL (last version - 8.0.10), обратите внимание на версию.

подключаем пакет Npgsql к Nop.Data
подключаем пакет Npgsql к Nop.Data

Шаг 3. Проверяем подключение пакета в Nop.Data.csproj

Для справки, Nop.Data.csproj - файл, который содержит метаданные о проекте Nop.Data (папка с классами). Его основные задачи:

  • Указывает целевую платформу - <TargetFramework>net8.0</TargetFramework> означает, что проект скомпилирован для .NET 8.0.

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

  • В секции <ItemGroup>  будут перечислены все внешние библиотеки и пакеты, необходимые для работы проекта, т.е. файл отвечает за управление зависимостями.

  • Конфигурирует сборку, т.е. как компилировать проект, какие файлы включать в сборку, и т.д.

В целом папка Nop.Data является частью ядра NopCommerce и содержит классы и функции для работы с БД.

В файле Nop.Data.csproj ( .../Libraries/Nop.data/Nop.data.csproj) нужно проверить подключение пакета последней версии - <PackageReference Include="Npgsql" Version="8.0.10" />

проверка подключения пакета
проверка подключения пакета

Шаг 4. Создаем сервер и БД

Далее нужно создать свой сервер и БД (в pgadmin или через терминал), запомните имя сервера, имя БД, порт, пароль. В моем примере - localhost с портом 5432. БД имеет следующие параметры:

Создание сервера и БД shopDB в pgadmin
Создание сервера и БД shopDB в pgadmin

Шаг 5. Задаем параметры подключения БД в web.config

 Файл web.config определенно известен всем тем, кто так или иначе работал с ASP.NET -  это конфигурационный файл, который используется в приложениях ASP.NET, в том числе и в NopCommerce. Здесь указывается тип базы данных (SQL Server, MySQL и т.д.), строка подключения, имя пользователя и пароль, определяется аутентификация, авторизация и другие параметры безопасности, указываются HTTP-модули, которые будут использоваться приложением, настраиваются сессии и многое другое. Сейчас нас интересует только подключение БД.

В решении NopCommerce файл можно найти тут: ...\Presentation\Nop.Web\web.config.

Перед закрывающим тегом </configuration> должно быть это:

 <connectionStrings> <add name="NopCommerce.Framework" connectionString="Server=SERVER_NAME; Port=5432;Database=DB_NAME;User Id=USERNAME;Password=YOUR_PASSWORD;" providerName="Npgsql" /></connectionStrings>

Где:

  • SERVER_NAME - название вашего сервера;

  • DB_NAME – название вашей БД;

  • USERNAME – ваше имя пользователя;

  • YOUR_PASSWORD – ваш пароль;

Шаг 6. Запускаем проект (Nop.Web), не отключая соединение PostgreSQL

запускаем проект (важно - Nop.Web, не Nop.Test)
запускаем проект (важно - Nop.Web, не Nop.Test)

Шаг 7. Заполняем форму первоначальной установки NopCommerce

После запуска проекта, в браузере откроется несложная форма первоначальной установки NopCommerce. В форме введите данные для подключения к базе данных, указав реквизиты своего сервера и БД (= реквизиты в теге <connectionStrings>).

Заполняем форму первоначальной установки NopCommerce с учетом ранее подключенной БД
Заполняем форму первоначальной установки NopCommerce с учетом ранее подключенной БД

Первоначальная установка длится примерно 1-2 минуты.

Примечание: email выступает в качестве логина, вы можете его придумать.

Шаг 8. Авторизуемся на сайте

Сайт запущен, авторизуйтесь – введите email и пароль, который был указан на предыдущем шаге.

Шаг 9. Зайдем в админку интернет-магазина

Для этого нужно просто добавить /admin в адресную строку.

админка вашего интернет-магазина на NopCommerce
админка вашего интернет-магазина на NopCommerce

Вот такой несложный способ!

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.