Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
EvilBeaver committed Oct 9, 2018
2 parents 8624c45 + be1c3df commit a44f302
Show file tree
Hide file tree
Showing 160 changed files with 5,899 additions and 441 deletions.
74 changes: 74 additions & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
## Инструкция для контрибьютора

### Регистрация issue (обсуждений)

> TODO
### подача pull-request (запросов на изменение)

для проекта действуют такие же принципы как и для проекта **oscript.io** - подробнее по ссылке http://oscript.io/dev/getting-started.

Перд отправкой `pull-request` пожалуйста изучите:

* [Требования к исходному коду на языке C#](https://github.com/EvilBeaver/OneScript/blob/develop/CODESTYLE.md)

для разработки используйте следующие IDE

* Visual Studio 2017 и выше
* Rider 2017.8 и выше

для приемочного тестирования используйте

* Docker Engine 17-ce и выше (с docker-compose)

### Отладочный запуск в режиме Docker

Вашу разработческую версию можно собрать и запустить для приемочного тестирования в режиме Docker (https://docs.docker.com/engine/reference/run/) или Docker-Compose (https://docs.docker.com/compose/reference/up/)

#### Сборка и запуск локальной версии образа OneScript.Web

* откройте файл `OneScript.sln` в вашей IDE
* выполните команду `publish solution` в вашей IDE (VisualStudio or Rider)
* в корне репозитория выполните команду `docker-compose build` - в списке ваших образов появится образ docker `omvc-engine-developer` на базе официального образа `mono:5.10`

После чего для запуска Web приложений используйте команду `docker run -v <КаталогНахожденияФайла_main.os>:/app -p <НомерЛокальногоПорта>:5000`
* в образе определена точка монтировани `/app` - в него монтируется локальный каталог исходников приложения на oscript
* в образе определён порт запуска `5000` процесса Web сервера `OneScript.WebHost.exe` - его необходимо связать с номером локального порта

Например :

##### Docker

* Linux

```
docker run --rm -v `pwd`/examples/empty/src:/app -p 5000:5000 omvc-engine-developer
```

* Windows

```
set CURPWD=%cd%
set CURPWD=%CURPWD:\=/%
docker run --rm -v %CURPWD%/examples/empty/src:/app -p 5000:5000 omvc-engine-developer
```

##### Docker-compose

используйте следующий пример кода в свойм docker-compose файле

```
version: '3'
services:
empty-web-app-oscript:
image: omvc-engine-developer
ports:
- 5000:5000
volumes:
- ./examples/empty/src:/app
```


7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,3 +15,10 @@ src/OneScriptWeb.Tests/obj/

src/OneScript/Properties/launchSettings\.json
examples/hello/oscript_modules/

.env
src/.idea
src/OneScriptWeb.Infobase/bin
src/OneScriptWeb.Infobase/obj

artifact
11 changes: 7 additions & 4 deletions src/OneScript/Dockerfile → Dockerfile
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
FROM evilbeaver/mono-ru:5.4
FROM mono:5.10

ARG binaries=bin/Release/PublishOutput
ENV LANG ru_RU.UTF-8

ARG binaries=artifact/net461/debian-x64

ENV BINPREFIX=/var/osp.net
ENV ASPNETCORE_ENVIRONMENT=Production
ENV ASPNETCORE_URLS=http://0.0.0.0:5000

ADD ${binaries} $BINPREFIX/
RUN cp $BINPREFIX/runtimes/debian-x64/native/*.so /usr/lib

EXPOSE 5000

WORKDIR $BINPREFIX
VOLUME [ "/app" ]
WORKDIR /app

ENTRYPOINT mono $BINPREFIX/OneScript.WebHost.exe
14 changes: 9 additions & 5 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,17 @@ pipeline {
dir('src'){
bat '''
@echo off
dotnet publish OneScript/OneScriptWeb.csproj -c Release -o ../../artifact -r win7-x64
dotnet publish OneScript/OneScriptWeb.csproj -c Release -f net461 -o ../../artifact/net461/win7-x64 -r win7-x64
dotnet publish OneScript/OneScriptWeb.csproj -c Release -f net461 -o ../../artifact/net461/debian-x64 -r debian-x64
'''
}

// новые версии дженкинса падают, если есть ранее зипованый артефакт
fileOperations([fileDeleteOperation(excludes: '', includes: '*.zip')])

zip archive: true, dir: 'artifact/net461/win7-x64', glob: '', zipFile: 'oscript.web-win7-x64.zip'
zip archive: true, dir: 'artifact/net461/debian-x64', glob: '', zipFile: 'oscript.web-debian-x64.zip'

dir('src/OneScriptWeb.Tests'){
bat '''
@echo off
Expand All @@ -26,10 +33,7 @@ pipeline {

nunit testResultsPattern: 'testresult.xml'
}

dir('artifact'){
archiveArtifacts '**'
}

}
}
}
Expand Down
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,8 @@
* На базе ASP.NET.MVC
* Серверная логика будет описываться на языке 1С.
* Тем не менее, цель проекта - серьезный веб-движок продуктового уровня для 1С-ников.


## Контрибьютору

* ознакомьтесь с [руководством контрибьютора](./.github/CONTRIBUTING.md)
37 changes: 37 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
version: '3'
services:
engine:
build: .
image: omvc-engine-developer
auth-example:
image: omvc-engine-developer
ports:
- 5002:5000
links:
- postgresql:db
volumes:
- ./examples/auth/src:/app
jobs-example:
image: omvc-engine-developer
ports:
- 5003:5000
links:
- postgresql:db
volumes:
- ./examples/backgroundjobs/src:/app
infobase-example:
image: omvc-engine-developer
ports:
- 5003:5000
links:
- postgresql:db
volumes:
- ./examples/infobase/src:/app
postgresql:
restart: always
image: sameersbn/postgresql:9.6-2
environment:
- DB_USER=onecuser
- DB_PASS=anotherpass
- DB_NAME=auth,jobs
- DB_EXTENSION=pg_trgm
4 changes: 4 additions & 0 deletions docs/.vuepress/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
module.exports = {
title: 'OneScript.Web - документация',
description: 'Документация по объектам os.web'
}
49 changes: 49 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
Оглавление
============================

* [Глобальный контекст](docs/Глобальный%20контекст.md)

## Настройка приложения

* [КоллекцияМаршрутов](docs/КоллекцияМаршрутов.md)
* [ОписаниеМаршрута](docs/ОписаниеМаршрута.md)
* [ПараметрыCookie](docs/ПараметрыCookie.md)

## Контроллер и формирование ответа

* [Контроллер](docs/Контроллер.md)
* [HTTPЗапросВходящий](docs/HTTPЗапросВходящий.md)
* [HttpОтветИсходящий](docs/HttpОтветИсходящий.md)
* [КоллекцияФайловФормы](docs/КоллекцияФайловФормы.md)
* [ФайлФормы](docs/ФайлФормы.md)
* [КоллекцияДанныхФормы](docs/КоллекцияДанныхФормы.md)
* [СессияHttp](docs/СессияHttp.md)
* [СостояниеМодели](docs/СостояниеМодели.md)

### Формирование ответа

* [РезультатДействияСодержимое](docs/РезультатДействияСодержимое.md)
* [РезультатДействияФайл](docs/РезультатДействияФайл.md)
* [РезультатДействияПеренаправление](docs/РезультатДействияПеренаправление.md)
* [РезультатДействияКодСостояния](docs/РезультатДействияКодСостояния.md)
* [РезультатДействияПредставление](docs/РезультатДействияПредставление.md)
* [СловарьДанныхПредставления](docs/СловарьДанныхПредставления.md)

## Компоненты представления

* [КомпонентПредставления](docs/КомпонентПредставления.md)
* [РезультатКомпонентаСодержимое](docs/РезультатКомпонентаСодержимое.md)
* [РезультатКомпонентаПредставление](docs/РезультатКомпонентаПредставление.md)

## Пользователи ИБ

* [ПользовательИнформационнойБазы](docs/ПользовательИнформационнойБазы.md)
* [МенеджерПользователейИнформационнойБазы](docs/МенеджерПользователейИнформационнойБазы.md)

## Регламентные и фоновые задания

* [ФоновоеЗадание](docs/ФоновоеЗадание.md)
* [МенеджерФоновыхЗаданий](docs/МенеджерФоновыхЗаданий.md)
* [РасписаниеФоновыхЗаданий](docs/РасписаниеФоновыхЗаданий.md)
* [МенеджерРегламентныхЗаданий](docs/МенеджерРегламентныхЗаданий.md)
* [ПараметрыОжиданияФоновыхЗаданий](docs/ПараметрыОжиданияФоновыхЗаданий.md)
59 changes: 59 additions & 0 deletions docs/docs/HTTPЗапросВходящий.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@

# HTTPЗапросВходящий / HTTPIncomingRequest


Описание входящего запроса HTTP


## Свойства


### Заголовки / Headers

Доступ: Чтение/Запись

ФиксированноеСоответствие. Заголовки входящего запроса

### Cookies / Cookies

Доступ: Чтение/Запись

ФиксированноеСоответствие. Cookies входящего запроса

### ДанныеФормы / FormData

Доступ: Чтение

Коллекция переменных, переданных в качестве данных формы

### Метод / Method

Доступ: Чтение

Текущий метод HTTP

### СтрокаЗапроса / QueryString

Доступ: Чтение

Текущая строка запроса (QueryString)

### Путь / Path

Доступ: Чтение

Путь текущего ресурса

## Методы


### ПолучитьТелоКакПоток / GetBodyAsStream()

Получение тела запроса в виде потока для чтения

#### Возвращаемое значение

Поток
### ПараметрыЗапроса / QueryParameters()

Коллекция параметров запроса (из СтрокиЗапроса)
77 changes: 77 additions & 0 deletions docs/docs/HttpОтветИсходящий.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@

# HttpОтветИсходящий / HttpOutgoingResponse


Описание исходящего HTTP-ответа


## Свойства


### Заголовки / Headers

Доступ: Чтение/Запись

Фиксированное соответствие. Заголовки исходящего запроса. Для установки заголовков см. метод УстановитьЗаголовки.

### КодСостояния / StatusCode

Доступ: Чтение/Запись

Возвращаемый код состояния.

### ТипСодержимого / ContentType

Доступ: Чтение/Запись

Возвращаемый тип содержимого (Content-type)

## Методы


### УстановитьЗаголовки / SetHeaders()

Устанавливает заголовки текущего ответа
#### Параметры


* *headers*: Соответствие. Устанавливаемые заголовки
### УстановитьCookie / SetCookie()

Добавляет значение Cookie в ответ
#### Параметры


* *key*: Имя параметра
* *value*: Значение параметра
* *options*: Опции Cookie
### УдалитьCookie / RemoveCookie()

Удаление значения Cookie
#### Параметры


* *key*: Имя параметра
* *options*: Опции Cookie
### ПолучитьТелоКакПоток / GetBodyAsStream()

Открывает Поток, применяемый для наполнения тела ответа.

#### Возвращаемое значение

Поток
### УстановитьТелоИзСтроки / SetBodyFromString()

Устанавливает тело ответа из строки с заданной кодировкой.
#### Параметры


* *body*: Тело ответа
* *encoding*: Кодировка текста ответа
### УстановитьТелоИзДвоичныхДанных / SetBodyFromBinaryData()

Устанавливает ДвоичныеДанные в качестве тела ответа
#### Параметры


* *data*: Данные
Loading

0 comments on commit a44f302

Please sign in to comment.