- Notifications
You must be signed in to change notification settings - Fork 20
Публикация вместе с RUNTIME в виде артефактов GA#79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
86847d090e035228d5d9d40bbafda9a351247a2a8feb981ebe0262a9a0a1e9b160a68a6ac60bd6a784da3916d07d353c25ebcaf2ccc643c404eda490b6df777bc0930File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,28 @@ | ||
| # Отладочное приложение для разработчика ядра OScript.Web | ||
| назначение данного приложения простое - необходимо отлаживать низкоуровневое поведение ASP.NET, в это случае мы используем функциональность `dotnet watch` - режим онлайн перезагрузки приложения `.NET` при изменении файлов | ||
| ## Использование | ||
| > на данный момент использование подразумевает наличие у вас Visual Studio Code и Chocolatey и Windows | ||
| * установить `choco install dotnetcore-sdk` | ||
| * запустить Visual Studio Code | ||
| * запустить `debug.bat` | ||
| ## Поведение | ||
| * `dotnet` следит за изменениями исходников в формате `OScript` в текущем каталоге, а в каталоге исходников `OScript.Web` только за изменениями в модуле `package-loader.os` | ||
| * | ||
| ## Особенности использования Visual Studio Code | ||
| наиболее полно функциональность расскрывается с помощью трёх расширений `VSCode` | ||
| * `ms-dotnettools.csharp` - поддержка C#, ASP.NET, Razor и отладчика C# | ||
| * `evilbeaver.oscript-debug` - поддержка отладки OScript | ||
| * `1c-syntax.language-1c-bsl` - поддержка языка 1С и OScript | ||
| ## Структура каталогов | ||
| * `./` - `content-root` - то есть корень контента приложения | ||
| * `wwwroot` - статический файлы - вообще конечно, удобней впереди ставить `nginx`, но мы будем ставить `Caddy` - https://caddyserver.com/ - в том числе и для https ;-) | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| { | ||
| "BackgroundJobs":{ | ||
| "StorageType":"Memory" | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| @echo off | ||
| set curDir=%CD% | ||
| dotnet watch --project ..\src\OneScript\OneScriptWeb.csproj watch run --framework netcoreapp3.1 --ContentRoot %curDir% |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| #Использовать "model" | ||
| Процедура ПриНачалеРаботыСистемы() | ||
| Сообщить("Старт отладочного приложения через DOTNET WATCH - То есть с перекомпиляцией при изменении"); | ||
| Сообщить("Фактически - медленно но верно позволяет кодить как на ОднОскрипте, так и на C#"); | ||
| ИспользоватьСтатическиеФайлы(); | ||
| ИспользоватьСессии(); | ||
| ИспользоватьМаршруты("ОпределениеМаршрутов"); | ||
| ИспользоватьФоновыеЗадания(); | ||
| НастроитьФоновыеЗадания(); | ||
| КонецПроцедуры | ||
| Процедура ОпределениеМаршрутов(КоллекцияМаршрутов) | ||
| КоллекцияМаршрутов.Добавить("ГлавнаяСтраница", "{controller=home}/{action=index}"); | ||
| КонецПроцедуры | ||
| Процедура НастроитьФоновыеЗадания() | ||
| Раписание = Новый РасписаниеФоновыхЗаданий(); | ||
| Раписание.КаждуюМинуту(); | ||
| РегламентныеЗадания.СоздатьПериодическоеЗаданиеПоРасписанию( | ||
| "СерверныеОповещения", "ОповеститьКлиентовОСтранном", Раписание | ||
| ); | ||
| КонецПроцедуры |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| Процедура ОповеститьКлиентовОСтранном() Экспорт | ||
aliczin marked this conversation as resolved.
Uh oh!There was an error while loading. Please reload this page. | ||
| Сообщить("Я работаю по расписанию - постоянно, пока не отключишь | ||
| |или могу выполниться принудительно | ||
| |кстати ;-)", СтатусСообщения.Информация); | ||
| Сообщить("Я как процедура должна быть экспортной - иначе сервис фоновых заданий меня не найдет | ||
| |вместе с этим мой модуль должен быть доступен статично - без слова Новый - за это отвечает Package Loader"); | ||
| КонецПроцедуры | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,44 @@ | ||
| Процедура ПриЗагрузкеБиблиотеки(Путь, СтандартнаяОбработка, Отказ) | ||
| СтандартнаяОбработка = Ложь; | ||
| ОбработатьСтруктуруКаталоговПоСоглашению(Путь, СтандартнаяОбработка, Отказ); | ||
| КонецПроцедуры | ||
| Процедура ОбработатьСтруктуруКаталоговПоСоглашению(Путь, СтандартнаяОбработка, Отказ) | ||
| КаталогКлассов = Новый Файл(ОбъединитьПути(Путь, "classes")); | ||
| КаталогМодулей = Новый Файл(ОбъединитьПути(Путь, "modules")); | ||
| КаталогФоновых = Новый Файл(ОбъединитьПути(Путь, "jobs")); | ||
| Если КаталогКлассов.Существует() Тогда | ||
| Файлы = НайтиФайлы(КаталогКлассов.ПолноеИмя, "*.os"); | ||
| Для Каждого Файл Из Файлы Цикл | ||
| СтандартнаяОбработка = Ложь; | ||
| ДобавитьКласс(Файл.ПолноеИмя, Файл.ИмяБезРасширения); | ||
| Сообщить("Сработал загрузчик классов | ||
| |для модуля " + Файл.ИмяБезРасширения); | ||
| КонецЦикла; | ||
| КонецЕсли; | ||
| Если КаталогМодулей.Существует() Тогда | ||
| Файлы = НайтиФайлы(КаталогМодулей.ПолноеИмя, "*.os"); | ||
| Для Каждого Файл Из Файлы Цикл | ||
| СтандартнаяОбработка = Ложь; | ||
| ДобавитьМодуль(Файл.ПолноеИмя, Файл.ИмяБезРасширения); | ||
| Сообщить("Сработал загрузчик модулей | ||
| |для модуля " + Файл.ИмяБезРасширения); | ||
| КонецЦикла; | ||
| КонецЕсли; | ||
| Если КаталогФоновых.Существует() Тогда | ||
| Файлы = НайтиФайлы(КаталогФоновых.ПолноеИмя, "*.os"); | ||
| Для Каждого Файл Из Файлы Цикл | ||
| СтандартнаяОбработка = Ложь; | ||
| ДобавитьМодуль(Файл.ПолноеИмя, Файл.ИмяБезРасширения); | ||
| Сообщить("Сработал загрузчик модулей | ||
| |для модуля " + Файл.ИмяБезРасширения); | ||
| КонецЦикла; | ||
| КонецЕсли; | ||
| КонецПроцедуры |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -75,4 +75,9 @@ | ||
| <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> | ||
| </Content> | ||
| </ItemGroup> | ||
| <ItemGroup> | ||
| <!-- extends watching group to include *.os files --> | ||
| <Watch Include="**\*.os" Exclude="oscript_modules\**\*" /> | ||
Owner There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Разве watch-перекомпиляция приводит к рестарту приложения? Если нет, то исходники 1скрипта не будут подхвачены приложением. | ||
| <Watch Include="..\..\debug-application\**\*.os" Exclude="oscript_modules\**\*" /> | ||
| </ItemGroup> | ||
| </Project> | ||
Uh oh!
There was an error while loading. Please reload this page.