タグ付けされた質問 「c#」

C#は、Microsoftが.NETプラットフォームと並行して作成した、マルチパラダイムで管理されたガベージコレクションのオブジェクト指向プログラミング言語です。

2
node.jsおよびc#の使用例
私はかなりのASP.NET作業(C#、MVC)を行っていますが、そのほとんどは典型的なWeb開発です。CRUDリポジトリーを使用してRestfulアーキテクチャーを実行します。私のクライアントのほとんどは、アプリケーション内に高度な要件をあまり持っていません。 私は現在node.jsを見ていて、パフォーマンスへの影響(私はスピードに夢中になっています)ですが、それほど深く掘り下げていません。 かしら node.jsは、C#およびASP.NET MVCでの私の典型的なWeb開発を現実的に置き換えることができます(既存のアプリを書き換えるのではなく、新しいアプリで作業する場合) node.jsは、既存のアーキテクチャに非同期機能を追加することで、ASP.NET MVCアプリを補完できます。 C#およびnode.jsのユースケースはありますか? 編集する 私はASP.NET MVCが大好きで、どこに行くのかとても興奮しています。node.jsを支持する特別なユースケースがあるかどうかを確認しようとしています

3
開発者としてコードレビューの準備ができていますか?
ここでいくつかのアイデアを探しています。 私は「コードレビューはどのように実行し、コードレビューを実行する必要がありますか」という記事を読みました。これは非常に有益でしたが、以下の質問をさらに明確にする必要があります。 私の質問は、 ターゲットの開発者として、コードをレビューする前に、開発者が組み込むことができるいくつかのベストプラクティスを提案できますか。 現在、私は以下の方法を練習しています 論理フローのPPT 詳細なコメント。 問題:上記のプラクティスを実装しましたが、レビューには役立ちません。私が直面した問題は、特定のロジックが参照されると、実装とフローを探し続け、プロセスに時間がかかりすぎて、人々の神経質になってしまうことです。 多くの開発者も私が経験していることを経験していると思います。
10 c#  code-reviews 

4
Web開発者向けのラーニングパス.NETまたはJava [終了]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、専門知識によって裏付けられると期待していますが、この質問は、議論、議論、投票、または拡張ディスカッションを求める可能性があります。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前休業。 Windowsでホストされている実際のWebアプリケーションサーバーの数を知りたいですか? C#とASP.NETについて学び、自分を組み込み開発者からWebアプリ開発者に変えたいと思っています。 私の友人は、WindowsサーバーよりもLinuxベースのサーバーの方がはるかに多いことを教えてくれました。また、Javaスキルスタックは、Webアプリケーションの世界では.NETよりもはるかに有用であると述べました。 JavaとC#の私の経験は大体同じです。私は経験豊富なC ++開発者です。 誰か私にそれについていくつかの提案をすることはできますか? どうもありがとう
10 c#  java  .net 

2
コマンドハンドラーとDDD
クエリサービスを使用してデータを取得し、コマンドサービスを使用してコマンドを送信するASP.NET MVCアプリケーションがあります。私の質問は、コマンド部分についてです。 リクエストが届くと、コマンドサービスはコマンドディスパッチャーを使用して、指定されたコマンドハンドラーにコマンドをルーティングします。このコマンドハンドラーは最初にコマンドを検証し、すべてが許容できる場合はコマンドを実行します。 具体例:AddCommentToArticleCommandHandlerは、ArticleId、CommentText、EmailAddressを持つAddCommentToArticleCommandを受け取ります。 最初; -記事が存在するかどうかを確認します-記事が閉じていないかどうかを確認します-コメントテキストが20〜500文字で入力されているかどうかを確認します-電子メールアドレスが入力されており、有効な形式であるかどうかを確認します この検証をどこに置くか疑問に思っていますか? 1 /コマンドハンドラ自体。ただし、他のコマンドハンドラで再利用することはできません。 2 /ドメインエンティティ内。しかし、ドメインエンティティはリポジトリやサービスを認識していないため、必要な検証を実行できません(記事が存在するかどうかを確認できません)。ただし、一方で、エンティティにロジックが含まれていない場合は、DDDの原則に従っていない単純なデータコンテナーになります。 3 /コマンドハンドラーはバリデーターを使用するため、検証を他のコマンドハンドラーで再利用できます。 4 /その他のメカニズム? この特定の例の一連の責任と、その中で役割を果たすオブジェクト(エンティティ、リポジトリなど)を探しています。 コマンドハンドラーからリポジトリまで、これをどのように実装するかについてのアイデアはありますか?

7
プロトタイプと本番レベルのソリューションの違いは何ですか?
この質問は、純粋に学習し、技術的な理解を深めるためのものです。私は完璧な解決策はないことを知っており、この問題は解決策のリストを終わらせる可能性がありますが、すべてのアーキテクトがデモとライブプロジェクトの違いを理解することは非常に重要だと思います。 過去に.Netで多くのデモソリューションを作成しました。私は現在、アーキテクトに割り当てられ、プロダクションレベルのWebソリューションを実装しているため、非常に高いレベルで、デモをプロダクションレベルのソリューションに変換するために何が必要かを尋ねたかったのです。私の理解から、これには(クライアントの要件を機能的に実装する以外に)必要があります: すべてのメソッドのユニットテスト 〜100%のコードカバレッジを確実に実現 すべての例外と可能なポイントカットのロギング-AOPで可能 インターフェース設計パターンの使用、依存関係の注入、おそらくspring.netなどのフレームワークの使用 インストルメンテーションのためのパフォーマンスカウンターとプロファイラーの使用 適切なセキュリティの適用-つまり、Windows認証(クライアントが必要とするものである場合)。 すべてのメソッドのトランザクション管理 ソリューションの新規展開前のWebアプリケーションファイルのバックアップ ほかに何か? 私の質問は、機能/ドキュメントではなく、技術面に関連しています。それ以外の場合は、別の方法に進むためです:-) ありがとうございました。

6
TDDで新しいプロジェクトを開始する
私はTDDを勉強していますが、アプリのデザインを定義するのにも役立ちます。 それで、私はそれをよりよく理解するのを助けるために新しいプロジェクトを作り始めることにしました。 名前、メールアドレス、国(リストから1つ選択します)、電話番号を尋ねる簡単なユーザー登録システムを作成したいと考えています。 だから問題は... 私はVS 2010で新しいソリューションを作成し、新しいテストプロジェクトを追加しましたが、作成するテストがわかりません! デザインを定義するのに役立つので、ここでどんなテストを書けますか? 助けてくれてありがとう!
10 c#  .net  tdd 

2
C#の第一級言語機能としてすでに実装されているGOF設計パターンはどれですか。
(この質問は、「広すぎる」および「本当の質問ではない」ため、Stack Overflowで締めくくられたため、ここでより適切でしょうか?) この質問に触発されました。イベントは、Observerパターンの言語レベルの実装であることを知っています。C#の言語機能として実装されている他のデザインパターンはありますか?他の言語で実装されたデザインパターンはたくさんあるので、この質問はC#固有のままにしておきたいです。 BCLのパターン実装(多くのWCFクラスのデコレーターやのファクトリーメソッドなどWebClient)ではなく、言語レベルのパターンを探しています。 これまでのところ、オブザーバー(event)とイテレーター(foreach多くのBCLクラスおよびインターフェースとの組み合わせ)を認識しています。私が見逃している明らかなものはおそらく他にもあります。

11
Microsoftスタックを使用してジョブに移行するにはどうすればよいですか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ソフトウェアエンジニアリングスタック交換のトピックになるようにします。 4年前休業。 私はコンピュータサイエンスの学位(BSc)で大学を卒業し、途中でC、C ++、Java、Python、およびOracleを修了しました。大学在学中にフリーランスをし、卒業時にこれをフルタイムの仕事に持ち込んで、現在1年フルタイムで働いています。 PHPは私が本当にやりたいことではありません。私がこの道に長くいればいるほど、私の機会を制限していると思います。それは私が日常的に使用するのが好きな言語ではなく、PHPがあまり使用されていないように思われる大規模な組織で働きたいと思っています。 私はWeb開発を続けたいと思っています。Microsoftスタックには、C#、SQL Server、ASP.NET MVCなど、たくさんの仕事があるようです。しかし、半学期を超えてVisual StudioでCommon-line C ++を作成しているので、Microsoftテクノロジーの経験はありません。 マイクロソフトショップでの仕事の着陸への移行はどこから始めればよいですか?私が重点的に取り組むべき特定の資格や、受講すべき大学のコースはありますか?雇用者や採用担当者は何を探していますか? 空き時間にペットプロジェクトを作成する以外に何ができますか?



9
変数に型が必要なのはなぜですか?
だから私たちは書きます: Customer c = new Customer(); なぜ私たちが書いたようなデザインではないのですか? c = new Customer(); c.CreditLimit = 1000; コンパイラーは、顧客を指すcポイントを計算し、顧客のメンバーをcで呼び出すことを許可できますか? 私たちは書きたいと思うかもしれません: IPerson c = new Customer(); IPerson e = new Employee(); 書くことができるように: public string GetName(IPerson object) { return object.Name } string name = GetName(c); // or GetName(e); しかし、私たちが書いた場合: c = new Customer(); e = new …

1
OSSプロジェクトの統合テスト-認証でサードパーティを処理する方法?
私の(オープンソースの)趣味プロジェクトの1つは、GitHub、Bitbucketなどからリポジトリのオフラインバックアップを作成するバックアップツールです。 ホスティング事業者のAPIを呼び出してリポジトリのリストを取得し、Git / Mercurial /何でもクローン/リポジトリをローカルコンピュータにプルします。 したがって、認証を使用してGitHub APIを呼び出す統合テストがあります。 (そして、クローン/プル機能が終了すると、おそらくGitHubからリポジトリをクローンするテストがあり、認証も必要になります) 特にこれらの統合テストで使用するユーザーと組織を作成しました。 問題:オープンソースであり、コードがGitHubで公開されているため、ソースコードのどこかにパスワードをハードコードすることはできません。 私が今やっていること テストでは、環境変数からすべてのユーザー名、パスワード、リポジトリ名を取得しています。 次に例を示します。 config.Name = TestHelper.EnvVar("GithubApiTests_Name"); config.Password = TestHelper.EnvVar("GithubApiTests_PW"); (TestHelper.EnvVar環境変数の値を取得し、存在しない場合は例外をスローするヘルパーメソッドです) 次に、これらの環境変数を設定するバッチファイルがあります。 実際のenvironment-variables.batスクリプト()は、ビルドスクリプトでテストを実行する前に呼び出されますが、ソース管理では無視されるため、実際にはリポジトリにありません。 何でソースコントロールであるでenvironment-variables.bat.sampleはなく、偽のパスワードで、同じ環境変数を設定し、: rem copy/rename this file to environment-variables.bat echo Setting environment variables for integration tests... set GithubApiTests_Name=scm-backup-testuser set GithubApiTests_OrgName=scm-backup-testorg set GithubApiTests_PW=not-the-real-password set GithubApiTests_Repo=scm-backup リポジトリを自分のマシンに複製し、このファイルの名前をに変更しenvironment-variables.bat、偽のパスワードを実際のパスワードに置き換えると、すべての統合テストが機能します。 これは継続的インテグレーションでも機能します。私はAppVeyorを使用しており、Web UIでこれらの環境変数を設定できます。 それについて私が嫌いなこと 私はそれがOSSプロジェクトにとって、特にこのプロジェクトにとっては良い解決策ではないと思います: 理論的には、私のプロジェクトの貢献者は、次の方法で統合テストをすぐに実行できます。 …

3
オブジェクト初期化子でビルダーと流体インターフェースを使用することに意味がありますか?
JavaおよびC#では、パラメーターを使用してコンストラクターを定義するか、オブジェクトの作成後に各プロパティを定義するか、ビルダー/流体インターフェイスパターンを使用して、初期化時に設定できるプロパティを持つオブジェクトを作成できます。ただし、C#3ではオブジェクトとコレクションの初期化子が導入されたため、ビルダーパターンはほとんど役に立たなかった。イニシャライザのない言語では、ビルダーを実装して次のように使用できます。 Vehicle v = new Vehicle.Builder() .manufacturer("Toyota") .model("Camry") .year(1997) .colour(CarColours.Red) .addSpecialFeature(new Feature.CDPlayer()) .addSpecialFeature(new Feature.SeatWarmer(4)) .build(); 逆に、C#では次のように記述できます。 var vehicle = new Vehicle { Manufacturer = "Toyota", Model = "Camry", Year = 1997, Colour = CarColours.Red, SpecialFeatures = new List<SpecialFeature> { new Feature.CDPlayer(), new Feature.SeatWarmer { Seats = 4 } } } …

4
不変性を保証することは、プロパティではなくフィールドを公開する正当な理由ですか?
C#の一般的なガイダンスは、常にパブリックフィールドではなくプロパティを使用することです。これは理にかなっています。フィールドを公開することで、実装の詳細の多くを公開することになります。プロパティを使用すると、その詳細をカプセル化して、コードを消費しないようにし、実装の変更をインターフェイスの変更から切り離します。 ただし、readonlyキーワードを処理するときに、このルールに有効な例外が時々あるかどうか疑問に思っています。このキーワードをパブリックフィールドに適用すると、不変性が保証されます。これは単なる実装の詳細ではなく、不変性は消費者が関心を持つ可能性のあるものです。readonlyフィールドを使用すると、フィールドがパブリックコントラクトの一部になり、パブリックインターフェースを変更することなく、将来の変更または継承によって破壊されないものになります。プロパティが提供できないものです。 それでは、不変性を保証することが、readonly場合によってはプロパティよりもフィールドを選択する正当な理由でしょうか? (明確にするために、クラスの設計の一部として意味があり、契約に不変性を含めることが意図されている場合にのみ、現時点でフィールドが不変であるという理由だけで、常にこの選択を行うべきだと言っているわけではありません。私は主に、メンバーがにある必要があるinterface場合や遅延読み込みを行う場合など、正当化できない特定のケースではなく、これが正当化されるかどうかに焦点を当てた回答に関心があります。)

3
プログラマに強制的に定義させる基本クラスの抽象プロパティ
組み込みデバイスの状態パターンでコーディングしています。Stateと呼ばれる基本/抽象クラスがあり、各離散(コンクリート)状態クラスが抽象状態クラスを実装します。 Stateクラスには、いくつかの抽象メソッドがあります。ディスクリート(コンクリート)クラスに抽象メソッドを実装しない場合、Visual Studioは次のようなエラーを出します。 ...エラー1 'myConcreteState'は継承された抽象メンバー 'myAbstractState'を実装していません さて、StateNameというStateごとにStringプロパティを作成しようとしています。新しい具象クラスを作成するときはいつでも、StateNameを定義する必要があります。使用しない場合はVSでエラーをスローする必要があります。これを行う簡単な方法はありますか? 私は抽象/基本クラスでこれを試しました: public abstract string StateName { get; set; } ただし、各状態にGetメソッドとSetメソッドを実装する必要はありません。 改訂された質問:理想的な状況では、各Stateクラスは、StateNameを定義して抽象基本クラスから継承する必要があります。 StateName = "MyState1"; //or whatever the state's name is そのステートメントがない場合、Visual Studioは上記のエラーを生成します。これは可能ですか?可能な場合、どのようにですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.