Как использовать фреймворк SenseNet с нашей базой данных

Я успешно установил SenseNet Framework, и он работает на моем компьютере, но я не знаю, как использовать этот фреймворк для нашей базы данных для разработки моего частного веб-проекта и с чего начать разработку? вы не могли бы мне помочь ?

огромное спасибо!


person Le Minh Hao    schedule 11.10.2016    source источник


Ответы (1)


Я постараюсь дать обзор текущих возможностей (начиная с версии SenseNet 6.5.4, потому что в ближайшем будущем появятся новые возможности).

Используйте SenseNet как отдельное веб-приложение

Вот что вы сделали: установите пакет и получите полноценное веб-приложение: интерфейс портала и репозиторий контента (db). Вы можете настроить графический интерфейс, создав новый скин или создав страницы и переместив портлеты вокруг на страницах . Вот несколько ссылок для начала:

О поддержке проекта (например, о резервном копировании и т. д.) читайте в статьях об операторах и разработчиках на вики — или задавайте конкретные вопросы здесь :).

Используйте SenseNet в качестве серверной службы

Разработчики могут использовать OData REST API, который мы предлагаем: вы можете управлять контентом в репозитории контента через http-запросы (или с помощью клиентского SDK из C#). Для этого требуется та же установка SenseNet, что и для первого варианта, но вы можете сохранить существующее приложение ASP.NET и отправлять запросы к API REST SenseNet только из вашего бэкэнда (также можно выполнять межсайтовые вызовы ajax из JavaScript, но вы придется иметь дело с межсайтовой аутентификацией в случае конфиденциального контента).

Создайте веб-формы ASP.NET или приложение mvc поверх репозитория содержимого SenseNet.

В настоящее время это немного сложно, поскольку для этого сценария нет вики-статьи «как это сделать». По сути, вы сможете использовать существующие (или новые) веб-формы ASP.NET или приложение MVC и использовать репозиторий контента в качестве хранилища. Таким образом, вы освободите встроенный пользовательский интерфейс и возможность выполнения вызовов REST API к репозиторию (как это возможно в предыдущих вариантах), но вы все равно сможете напрямую подключаться к репозиторию, используя SenseNet C# API (это называется внутрипроцессным поведением).

Для этого вам нужно скопировать все содержимое из встроенного SenseNet web.config в файл веб-конфигурации вашего приложения, и если вы хотите выполнить некоторые действия по инициализации при запуске (маршрутизация MVC или веб-API и т. д.), чем вы придется наследовать встроенный глобальный класс (называемый SenseNetGlobal), реализовать обычные методы (запуск приложения, конец приложения и т. д.) и зарегистрировать его в файле global.asax в корневом каталоге вашего веб-сайта. Если у вас есть правильная строка подключения и все остальные значения, настроенные в web.config, вы должны иметь возможность использовать SenseNet API (например, загружать элементы контента и управлять ими, запрашивать репозиторий) с этого момента.

Изменить: сведения о пользовательских таблицах

Пользовательские таблицы базы данных

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

Но если у вас уже есть структура таблицы, которую вы хотите повторно использовать или интегрировать, или если ее проще реализовать независимо от SN, вы можете хранить свои пользовательские данные в той же базе данных. Мы предлагаем API для доступа к базе данных, вам не нужно беспокоиться о строках подключения и других вещах, вы можете просто использовать вспомогательный класс SqlProcedure SenseNet для выполнения прямых запросов SQL.

using (var cmd = new SqlProcedure { CommandText = "SELECT * FROM MyTable WHERE RefId = @MyId", CommandType = CommandType.Text })
{
    cmd.Parameters.Add("@MyId", SqlDbType.Int).Value = myId;

    var result = new List<int>();
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
            result.Add(reader.GetSafeInt32(0));
        return result;
    }
}

Также можно представлять или даже редактировать внешние элементы (например, записи в пользовательской таблице) с помощью встроенный пользовательский интерфейс веб-форм ASP.NET SenseNet. Платформа (с небольшим объемом разработки) способна отображать внешний объект со встроенными элементами управления полями (например, короткие тексты, выпадающие списки и т. д.) и позволять пользователям манипулировать ими без необходимости создавать пользовательские интерфейсы CRUD с нуля.

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

person Miklós Tóth    schedule 11.10.2016
comment
спасибо за @Miklós Tóth, я прочитал ваш ответ и изучил его шаги. - person Le Minh Hao; 12.10.2016
comment
Привет @ Миклош Тот! Вы так ясно объяснили мне, как использовать Sensenet Framework. Я выбрал первый способ разработки (использование SenseNet в качестве отдельного веб-приложения) и хочу задать дополнительные вопросы по использованию базы данных. предположим, я добавил больше имени таблицы My_Table в исходную таблицу Sensenet, поэтому я могу использовать страницу портлета (мне удалось создать, установить портлет на страницу портлета), чтобы выполнить какое-то действие над ним (добавить новый, обновить, удалить данные в My_Table )? как разработать? большое спасибо! - person Le Minh Hao; 12.10.2016
comment
Привет, я добавил более подробную информацию о пользовательских таблицах в конце ответа. - person Miklós Tóth; 12.10.2016
comment
Привет @LeMinhHao, удался ли тебе твой эксперимент? Если приведенные выше сведения помогли, не могли бы вы отметить это как ответ, чтобы другие знали? Спасибо, М - person Miklós Tóth; 13.10.2016
comment
Привет, Миклош Тот, ответы выше точно помогли мне решить проблемы. Я отметил правильный ответ. Большое спасибо! - person Le Minh Hao; 15.10.2016
comment
Привет, @Miklós Tóth. Мне нужна твоя помощь для модели SenseNet. Внутри документов на вики я читал и видел взаимосвязь между контентом и полем (изображение здесь: wiki.sensenet.com /Getting_started_-_developing_applications). Но я не делаю экземпляр своего реального проекта с моей Базой данных‹=› Свойства ‹=› Поля ‹=› Представление. Как я могу сопоставить базу данных (я добавил больше таблиц в базу данных Sensenet) со свойствами и полями? Вы можете помочь мне? - person Le Minh Hao; 26.10.2016