これは、企業間システムのアーキテクチャに関するテキストの続きです。推論は良いのですが、実用化しないとどうなるのでしょうか。フレームワークの動作を示します。
それはすべて、私が.NETでアプリケーションを設計する際の問題について話し、血まみれの企業での困難な生活について泣き言を言ったときに始まりました。次に、自分で思いついたソリューションであるReinforced.Tectureについて説明しました。それは理論、概念的な推論、先見の明、そして再び泣き言でした。今回は2020年頃で、HKTはC#に配信されていません。
今日は、例として簡単なプロジェクトを使用して実際のアプローチを示し、コードの量を減らすことから自動化をテストすること、そしてドキュメントへの独自のアプローチまで、それがもたらす利点を示します。古いTorvaldsがアドバイスしたように、「チャットは無意味です。コードを見せてください。」
ですから、Tectureで作業しながら簡単なことをする必要があります。企業について話しているので、漠然と実際のビジネスに似ている例を選択します。
必要なもの:
- シンプルなエッセンス。製品や注文はすぐに思い浮かびます。製品があるようにしましょう。
- EFDbContextおよびローカルデータベース。
- おもちゃのビジネスロジック;
- シンプルなWebプロジェクト。すべてランクごと、ASP.NET Core、WebAPI。ロジックをそれに固執します。
トレーニング
プロジェクトの構成は次のとおりです。
EF.Coreをアセンブリに接続し、Data
そこに移行用のDbContextとglueコードを配置しました。ロジックを.NETStandardに残し、EFをドラッグしたくないからです。
DAL-, . — . , Tecture. .
製品の操作例を使用して、Tectureの動作を見ていきます。これがその本質であり、その周りのロジックは単純で非常に愚かです。
DbContext
- , - . — . EF , . . EF — ORM-. EF-.
MS SQL Express. — . EF.Core - — MySQL PostgreSQL. , , Tecture, . . .
, . Reinforced.Tecture Reinforced.Tecture.Aspects.Orm.
. , O/RM:
, Id. , . :
. Tecture end-user . web-. , Startup.cs
, ConfigureServices
. DI-, ASP.NET MVC. , AcmeDbContext
:
Tecture EF. web-. 2 : O/RM DirectSQL. DirectSQL , . , - . , - , dll- . . — — :
Tecture . . . AcmeDbContext
, LazyDisposable
( Lazy Disposable, ) . , EF . fluent-:
. " " . , , Tecture, , . separation of concerns: , , — — . , — , .
. , . , . , , , . — . , separation of concerns .
, : , , . glue-. , — , .
Tecture , . .
, ITecture
. .
-, Id. , . DTO. , , :
, ITecture
, , From<>
. , Id DTO-:
, , . Id DTO- . C# . , DTO- :
:
IQueryable
, All<>
, . . — , . — AutoMapper, expression-. — . , . , . , . , .
, - . . , Tecture . . , :
, . . ORM- — :
, Id . ORM — . — , Id — . ? : Add
IAddition<>
. , IAddition<Product>
. Key
. Id. . IPrimaryKey<>
. :
. - :
Postman Id .
-, Tecture. , , . — , .
. , .
. . 90% . , , — , .
, — . — . — .
.
. Tecture BeginTrace
EndTrace
. . :
Explain
. Tecture . return
:
! . , - . , , , — , , , . , , :
.Describe
.
: - . , , , . — , .
, , . , . , . , .
Tecture : . . -, . , - , . , . , , . Knowledge management!
IDescriptive
, , , . "User entity" "User Vasiliy Pupkin". , . , .
, - . Explain
— , , . , : , .
.
. . web- : Reinforced.Tecture.Testing
. — Roslyn. , . :
2 . GenerateData
GenerateValidation
. , :
: , C#-. , Tecture fake- . , , , -, Mockaroo. - — . , ?
. Reinforced.Tecture.Testing
. , 4 :
: -, - ( + ). . !
, . - -. , .
, ...
Unit-
, . QA : ", , !". , , , unit-.
CI/CD — . , , , . . . , Tecture . : - , . — . .
— , , - . , , , . — — , .
. . .
— , GenerateData
GenerateValidation
. NuGet . , .
, :
, :
, unit- 5 . , .
, ( ). - unit-. , , , - .
.
-
. , . , .
, Tecture. , . , — , . .
— , DirectSql, . , . .
パッケージは公開されており、ソースはそこにあります。私はツイッター、テレグラム、およびgithubで連絡を取り合っています。あなたが突然早期採用者の仲間入りをして、あなたのペットプロジェクトのためにTectureを取りたいなら-私に書いてください、私は助けようとします。
特別な感謝 fillpackart、 arttom情報のサポートと編集のためのWeAreDoomedコミュニティ。彼らのポッドキャストを見てください、それは素晴らしいです。私と一緒にリリースもあります。
幸運を!