Этот проект представляет собой функцию архитектуры следующего поколения на основе Dotnet Core и JavaScript. Когда я начал это, все было очень кровоточащим краем, но я сохранил эти репозитории, когда эти продукты повзрослели, и теперь все выпущено и готово к производству!
Вот вступительный пост. Есть последующие сообщения о моей реализации сертификатов Let's Encrypt, Frontend React, Redux и TypeScript, а также бэкэнд на основе Actor Orleans. Я также добавил Dockerfiles и развернул это решение в кластер Kubernetes. Файлы конфигурации для этого (минус секреты) находятся в папке развертывания.
Этот проект демонстрирует много технологий в контексте:
%AppData%RoamingMicrosoftUserSecretsrrod-secretssecrets.json , on osx, это в ~/.microsoft/usersecrets/rrod-secrets/secrets.json ). Сначала необходимо создать учетную запись хранения в Microsoft Azure. В Windows вы можете в качестве альтернативы установить эмулятор хранилища Azure и поместить «UndivementStorage = true» для строк подключения хранения. Строка подключения SMTP на самом деле не нужна. Можно настроить Orleans с другими типами кластеризации, которые не используют хранилище Azure (например, кластеризацию Native Kubernetes) с несколькими изменениями кода. Базовый класс Reduxgrain (используемый для хранения пользователей и значений счетчиков) жестко кодируется в отношении хранилища Azure и действительно нуждается в ReduxConnectionStricing. Файл минимальных секретов содержит: {
"ConnectionStrings": {
"DataConnectionString": "DefaultEndpointsProtocol=https;AccountName=[AZURE STORAGE ACCOUNT];AccountKey=[STORAGE KEY];EndpointSuffix=core.windows.net",
"ReduxConnectionString": "DefaultEndpointsProtocol=https;AccountName=[AZURE STORAGE ACCOUNT];AccountKey=[STORAGE KEY];EndpointSuffix=core.windows.net",
"SmtpConnectionString": "Host=[SMTP HOST];UserName=[SMTP USERNAME];Password=[SMTP PASSWORD]"
},
"AcmeSettings": {
"EmailAddress": "[YOUR EMAIL]",
"PfxPassword": "[A RANDOM PASSWORD]"
}
}
dotnet runnpm install (или yarn ), затем dotnet runИспользуя код VS или Visual Studio, вы также можете сделать это изнутри IDE.
Этот код следует считать экспериментальным. Он работает, однако проект может иметь грубые края и не был тщательно протестирован. Я приветствую отзывы!
- Маартен