MSFramework
A micro service template
Deploy Seq
PH=$(echo '1qazZAQ!' | docker run --rm -i datalust/seq config hash)
docker run \
--name seq \
-d \
--restart unless-stopped \
-e ACCEPT_EULA=Y \
-e SEQ_FIRSTRUN_ADMINPASSWORDHASH="$PH" \
-p 5340:80 \
-p 5341:5341 \
datalust/seq
Add EF migrations
$ cd src/Ordering.Api
$ dotnet ef migrations add init --context OrderingContext -p ../Ordering.Infrastructure
$ dotnet ef migrations add init2 --context OrderingContext -p ../Ordering.Infrastructure
$ dotnet ef migrations add init2 --context OrderingContext2 -p ../Ordering.Infrastructure
思考
- 若是 DbContext1 修改了聚合根 1,发出了领域事件,可能触发再次修改这个聚合根吗?
若出现这样的情况,则是不正确的,聚合就是一个边界,在这个边界内的事件可以直接处理掉,只有通知别的边界(聚合)时才会发出事件。 若是发生这种错误,会导致框架异常:DbContext1 add 聚合/实体,在别的地方又找到这个对象(要么因为没有提交查询不到,要么把 Added 状态改 为 Modified 导致 Ef 的状态错误
dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true --self-contained true -p: IncludeNativeLibrariesForSelfExtract=true
- SaveFile 是否有使用文件名来取 MD5?
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -config localhost.conf -passin pass:qpalzm21!
实践说明
- 建议使用 schema 参数来进行隔离, 不再使用 table prefix 进行隔离
Dapr
dapr run --dapr-http-port 50001 --dapr-grpc-port 51001 --app-port 5001 --app-id ordering