Создаем новый 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" – его открываем в студии.


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

Шаг 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. БД имеет следующие параметры:

Шаг 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

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

Первоначальная установка длится примерно 1-2 минуты.
Примечание: email выступает в качестве логина, вы можете его придумать.
Шаг 8. Авторизуемся на сайте
Сайт запущен, авторизуйтесь – введите email и пароль, который был указан на предыдущем шаге.

Шаг 9. Зайдем в админку интернет-магазина
Для этого нужно просто добавить /admin в адресную строку.

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