- 仕事へのさらなる動機を得るために昇給をリクエストする
- 退屈な仕事から休憩して力を得るには休暇が必要です。
- あなたがあなたを満足させる申し出を受け取ることを期待してあなたの履歴書を投稿することによって転職してください。
それでも3番目のオプションを選択した場合は、私が行ったことを実行しました。そして、私は夢のオファーを受け取りました:自分のスタック(最近、お気に入りのC#をphpに、そしてbitrixフレームワークにも変更することを余儀なくされました)、fintech、そして昇給。もちろん、まず、知識を更新することにしました。このテキストは、まず第一に、私の夢のMiddle .NETEngineerのポジションの空席テキストから編集された私のチートシートです。
ORM-エンティティフレームワーク/ NHibernate
エンティティフレームワークとNHibernateは、ORM(オブジェクト指向マッピング(マッピング)テクノロジを使用してオブジェクト(クラス)をデータベース内のテーブルにマッピングするフレームワークです。つまり、ORMは、条件付きで、プログラムで作成されたオブジェクトを許可するコードとデータベースの間のレイヤーです。データベースへの追加/データベースからの受信。
EFの長所
- コードまたはEFDesignerを使用してテーブルを作成し、新しいデータベースを生成できます
- オブジェクトの作成を「自動化」したり、これらのオブジェクトへの変更を追跡したりできるため、データベースの更新プロセスが簡素化されます。
- データベースからのデータであれ、単なるリストであれ、オブジェクトのコレクションに単一の構文(LINQ)を使用する。正しく使用すれば十分に高速であり、適度に簡潔です。
- EFは、自分で作成するコードの巨大なチャンクを置き換えることができます。
- 開発時間を短縮します。
- 非同期データベース操作をサポートします。
EFの短所
- すべてのデータベースで利用できるわけではないデータ処理への「型破りな」アプローチの使用。
- データベーススキーマに変更があった場合、EFは機能を拒否します。コードの変更が必要です。
- SQLコードは制御されていない方法で生成されるため、EF自体の開発者を信頼する必要があります。
- .
NHibernate
- .
- .
- Unit Of Work.
- .
- .
- .
NHibernate
- .
- , , XML — .
- , .
Writing unit tests frameworks
ユニットテストを使用すると、アプリケーションの他の部分とは関係なく、アプリケーションの個々のコンポーネントをすばやく自動的にテストできます。ユニットテストは、必ずしもアプリケーションコード全体をカバーするとは限りませんが、それでも、開発段階ですでに発生しているエラーの数を大幅に減らすことができます。
人気のあるフレームワーク:
- xUnit.net
- MSテスト
- NUnit
xUnitのxUnit
テストは次のように定義されます。 Fact、Theory属性が適用されるメソッド。
ファクトは、パラメーターを持たない別個のテストです。理論-パラメータを受け入れるテストには、いくつかのシナリオがあります。
例
[Fact]
public void Should_do_somthing(){...}
[Theory]
[InlineData(20, 180, 80, ”good”)]
[InlineData(20, 180, 50, ”bad”)]
public void Should_measure_weight(int age, int height, decimal weight, string expected){...}
xUnitが完全に実装するテストのパラダイム全体があります:Arrange-Act-Assert。
- 配置:テスト実行の初期条件を設定します
- Act:テストを実行します(通常は1行のコードを表します)
- アサート:テスト結果を確認します
ArrangeとActは通常のC#コードですが、Assertは、結果を確認するための一連の静的メソッドを備えた別個のクラスです。
基本的な方法
- すべて(コレクション、アクション):このメソッドは、コレクションコレクションのすべての要素がアクションアクションに対応することを確認します
- 含む(expectedSubString、actualString):メソッドはactualStringにexpectedSubStringが含まれていることを確認します
- DoesNotContain(expectedSubString, actualString): , actualString expectedSubString
- DoesNotMatch(expectedRegexPattern, actualString): , actualString expectedRegexPattern
- Matches(expectedRegexPattern, actualString): , actualString expectedRegexPattern
- Equal(expected, result): result expected
- NotEqual(expected, result): result expected
- Empty(collection): , collection
- NotEmpty(collection): , collection
- True(result): , true
- False(result): , false
- IsType(expected, result): , expected
- IsNotType(expected, result): , expected
- IsNull(result): , null
- IsNotNull(result): , null
- InRange(result, low, high): , low high
- NotInRange(result, low, high): , low high
- Same(expected, actual): , expected actual
- NotSame(expected, actual): , expected actual
- Throws(exception, expression): , expression exception
したがって、要約の7つのポイントのうち2つを通過しました。
次のパートでは:
- DIフレームワーク
- アプリケーション設計の理解(n層、オニオン)。
私は私が何かの準備だけではないんだということを理解して、読んでくれてありがとう;)
材料: 1、 2、 3