Search
Write a publication
Pull to refresh

Создаем новый 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

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.