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

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

2
.Net / MonoのGUIとしてのWebkit
クロスプラットフォームアプリケーションを作成します。これには、デスクトップアプリケーション(Windows、iOS、Linux)がサーバーと通信し、ユーザーデータの同期を維持するWebサイトもあります。 これまでのところ、私が見るオプションは次のとおりです。 3つのOSごとにネイティブGUIを作成します。したがって、3つのGUIコードベース(および単一のバックエンドシステム)があります。 GTKのようなものを使用して、言及されたすべてのプラットフォームで1つのシステムをサポートできるようにします。 しかし、多くの情報を見つけることができなかった3番目(C#と.Netにまだ慣れていないので正しい用語を検索していないかもしれません)は、組み込みのWebKitインスタンスが組み込まれたウィンドウを持つことです、ウェブサイトに使用するのと同じGUIシステムを使用できます。これにより、クライアントアプリとWebサイトができるだけ近くに表示されるため、ユーザーはインターフェイスに精通しています。 WebKitのこの最後のオプションはもっともらしいですか?私はすでにJavaScript / HTMLをよく知っているので、その知識を使用してインターフェースを作成できれば、それは素晴らしいことです。また、ユーザーがプラグインを使用してインターフェイスをカスタマイズできるようにする優れた方法であり、ローカルからWebへのUI設定の同期を維持できます。
12 c#  .net  javascript  gui  mono 

5
抽象クラス内のすべてのパブリックメソッドを仮想としてマークする必要がありますか?
最近、使用しているOSSの抽象基本クラスを更新して、仮想化することでテストしやすくしました(2つを組み合わせたインターフェイスを使用できませんでした)。これにより、仮想に必要なすべてのメソッドをマークするか、すべてのパブリックメソッド/プロパティを仮想にマークする必要があるかを考えるようになりました。私は一般的に、すべての方法を仮想化する必要があるというロイ・オセロベに同意しますが、これが必要かどうかについて考えさせられるこの記事に出会いました。ただし、簡単にするためにこれを抽象クラスに限定します(具体的なパブリックメソッドがすべて仮想であるべきかどうかは、特に議論の余地があります)。 サブクラスがメソッドを使用できるようにするが、実装をオーバーライドしたくない場所を確認できました。しかし、リスコフの代替原則に従うことを信頼している限り、オーバーライドすることを許可しないのはなぜですか?抽象としてマークすることで、とにかく特定のオーバーライドを強制しているので、抽象クラス内のすべてのパブリックメソッドは実際に仮想としてマークする必要があるように思えます。 しかし、私が考えていないかもしれない何かがある場合に備えて尋ねたいと思いました。抽象クラス内のすべてのパブリックメソッドを仮想化する必要がありますか?

11
意味のある演算子のオーバーロードの例[終了]
閉じた。この質問はより集中する必要があります。現在、回答を受け付けていません。 この質問を改善したいですか?この投稿を編集するだけで1つの問題に焦点を当てるように質問を更新します。 4年前に閉鎖されました。 C#を学習しているときに、C#は演算子のオーバーロードをサポートしていることがわかりました。私は良い例に問題があります: 意味をなす(例:羊と牛という名前のクラスを追加する) 2つの文字列の連結の例ではありません 基本クラスライブラリの例は大歓迎です。
12 c#  .net  operators 

4
不要な参照や使用があるとどうなりますか?
私は少しきちんとしたフリークで、using実際に使用されているものだけを保持するために各クラスの参照とsをクリーニングすることでプロジェクトを維持する傾向があります。 (OCDの神経を落ち着かせる以外に)必需品を守ることについて、他にどのような議論ができますか?私は主にシステム参照を考えています、カスタム作業への参照は多くの後方互換性の問題をもたらします。リリースのフットプリントは大きいですか?コンパイル時間は長くなりますか?
12 c# 

3
Entity Frameworkとレイヤー分離
Entity Frameworkを少し使用しようとしていますが、レイヤーの分離に関する質問がありました。 私は通常UI-> BLL-> DALアプローチを使用しますが、ここでEFを使用する方法を知りたいです。 私のDALは通常、次のようなものです GetPerson(id) { // some sql return new Person(...) } BLL: GetPerson(id) { Return personDL.GetPerson(id) } UI: Person p = personBL.GetPerson(id) 私の質問は、EFが私のモデルとDALを作成するので、EFを自分のDAL内にラップするのは良い考えですか、それとも時間の無駄ですか? EFをラップする必要がない場合でも、Model.esmxを独自のクラスライブラリ内に配置しますか、それともBLL内に配置してそこで作業するだけでいいでしょうか? EFを自分のDAL内にラップする理由は実際にはわかりませんが、他の人が何をしているのか知りたいです。 したがって、上記の代わりに、DALを除外して、次のようにします。 BLL: GetPerson(id) { using (TestEntities context = new TestEntities()) { var result = from p in context.Persons.Where(p => p.Id = …

4
C#のハッシュテーブルと辞書の実用的なサイズ制限
C#4ディクショナリまたはHashtableに含めることができるアイテムの数と、これらの構造に合理的に含めることができる合計バイト数の実際的な制限は何ですか。多数のオブジェクトを使用して、これらの構造がいつ問題を起こし始めるかを知りたいと思います。 コンテキストでは、大量のメモリを備えた64ビットシステムを使用します。また、何らかのフォームまたは「キー」を使用してオブジェクトを見つける必要があります。パフォーマンスの要求を考えると、これらのオブジェクトはメモリに常駐する必要があり、多くは存続します。 サードパーティまたはオープンソースのライブラリを使用しないようにする必要がありますが、他のアプローチ/パターンを自由に提案してください。仕様上の理由から、ネイティブC#(またはC ++ \ CLI)を使用してこれをビルドできる必要があります。

4
.Netカスタムメンバーシッププロバイダーを使用/作成することの短所は何ですか?
最近、私はSOに次の質問を投稿しました:https : //stackoverflow.com/questions/7197337/using-asp-net-membership-provider-with-an-existing-user-database お気づきかもしれませんが、「カスタムメンバーシッププロバイダー」を作成/実装することが道であるように見えたという自分自身の質問に答えることになりました。 文字通り、数分後、私はこの質問に出くわしました:https : //stackoverflow.com/questions/7222306/simple-login-attempt-counter-using-mvc-3-and-ajax/7222407#7222407 私は、.Netメンバーシッププロバイダーが「多くのレベルでひどい」と答え、コメントを返そうとします。認めますが、これはメンバーシッププロバイダーを使用するのはこれが初めてですが、確かに滑らかに見えました。 「ひどい」主張を裏付けるものは見たことがありませんので、「ひどい」何かを実装する前に、コミュニティからフィードバックをもらいたいと思っていました。

6
.NET BigIntegerが何のために設計されているかを正確に述べているドキュメントはありますか?
私は.NET BigIntegerをいじっていますが、基本的には(予測される答えは問題ないでしょう) の曲線の偏差点((操作に必要な時間の増加)と(BigIntegerの値))? または、1から無限へのBigIntegerの値と操作に必要な時間の増加をプロットすると、滑らかな曲線になるように、そのような偏差なしで設計されていますか? たとえば、配列が50個のアイテムを処理できるように設計されていると仮定します。つまり、アイテムが1つある場合、操作はf(1)時間です。そして、私が2つのアイテムを持っているとき、操作はf(2)時間です。50個のアイテムがある場合、操作はf(50)時間です。ただし、50個のアイテムのみを処理するように設計されているため、51個のアイテムがある場合に実行される操作はg(51)で、g(51)> f(51)です。 適切に実装された場合、BigInteger演算の複雑さは滑らかな曲線になります。たとえば、乗算の時間計算量はO(NM)で、Nは最初の被乗数の桁数、Mは2番目の被乗数の桁数です。もちろん、数値がマシンに収まらないほど大きいNとMを選択できるという点で実用的な制限があります。 それがそのように実装されていると主張するドキュメントを知っていますか?
12 c#  .net  vb.net  numbers 

8
オブジェクト指向クラスの設計
オブジェクト指向の優れたクラス設計について疑問に思っていました。特に、これらのオプションを決定するのに苦労しています。 静的対インスタンスメソッド パラメータまたは戻り値のないメソッド vs パラメータおよび戻り値のあるメソッド オーバーラップする対の異なる方法で機能 民間対公共方法 例1: この実装では、戻り値やパラメーターを持たず、機能が重複しないインスタンスメソッドを使用します。すべてのメソッドはpublic XmlReader reader = new XmlReader(url); reader.openUrl(); reader.readXml(); Document result = reader.getDocument(); 例2: この実装では、戻り値とパラメータを備えた静的メソッドを使用し、重複する機能とプライベートメソッドを使用します。 Document result = XmlReader.readXml(url); 例1では、すべてのメソッドがパブリックインスタンスであるため、ユニットテストが簡単になります。すべてのメソッドは異なりますが、readXml()はopenUrl()に依存しているため、openUrl()を最初に呼び出す必要があります。すべてのデータはインスタンスフィールドで宣言されるため、コンストラクターとアクセサーを除き、どのメソッドにも戻り値やパラメーターはありません。 例2では、​​1つのメソッドのみがパブリックであり、残りはプライベートスタティックであるため、ユニットテストが困難です。readXml()がopenUrl()を呼び出すという点で、メソッドは重複しています。フィールドはありません。すべてのデータはメソッドのパラメーターとして渡され、結果はすぐに返されます。 適切なオブジェクト指向プログラミングを行うには、どの原則に従うべきですか?

3
現在のページネーション実装の設計に関する質問
asp.net mvcのページネーションの実装を具体的に確認しましたが、実装にはあまり効率的でないものがあると本当に感じています。 すべての実装の最初に、以下のようなページネーション値を使用します。 public ActionResult MostPopulars(int pageIndex,int pageSize) { } 私が間違っていると感じることは、pageIndexとpageSizeが完全にPaginationクラスのメンバーでなければならないことです。そうでなければ、この方法は非常に機能的な方法に見えます。また、アプリケーションの階層で不要なパラメーターパスを簡素化します。 2番目は、以下のインターフェイスを使用することです。 public interface IPagedList<T> : IList<T> { int PageCount { get; } int TotalItemCount { get; } int PageIndex { get; } int PageNumber { get; } int PageSize { get; } bool HasPreviousPage { get; } bool HasNextPage …

5
なぜWindows Forms / Swingフレームワークは、コンポジションよりも継承を好むのですか?
今日、私の教授は、SWTの哲学は作曲によって独自のコントロールを作成することの1つであるが、Swingは継承を支持しているようだと奇妙に感じたとコメントしました。 私は両方のフレームワークとはほとんど接触していませんが、C#のWindowsフォームで覚えていることから、通常はSwingと同様にコントロールを拡張しています。 一般に、人々は継承よりも合成を好む傾向があるため、Swing / Windows Formsの人々はなぜ継承ではなく合成を好まなかったのですか?
12 c#  java  swing  forms 

6
C#を学び、わだちにこだわった[終了]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Software Engineering Stack Exchangeのトピックになるようにします。 4年前に閉鎖されました。 私は約2/3ヶ月C#/。NET 4.0を学んでおり、最初の本格的なプログラミング言語です(PHP、HTML、CSS、JavaScript、およびVBAを以前に見てきましたが、決して深く掘り下げたことはありません)少し立ち往生し始めます: 「大きな」プロジェクトが不足しているため、学習の限界に達しました... 複雑なプロジェクトに取り組んでいないことが、自分の能力に疑問を投げかけています... 2週間前、私はジュニアプログラマーの仕事の面接を受け、私の答えられたほとんどの質問に答えることができました。行う! 前に言ったように、私はオープンソースプロジェクトに貢献するつもりはありませんが、どこから始めればいいのかわかりません。「大きな」プロジェクトには良いコーダーだけが必要だと思います:( 私が現在どのくらい「良い」(または「悪い」)かを示すオンラインプログラミングテストの形式はありますか?:) 助けてくれてありがとう。

1
データベースロジックを単体テストするにはどうすればよいですか?
TDDに関しては、まだ小さな問題を乗り越える問題があります。 データレイヤー(linq2SQL)からフィルター処理されたデータの特定のレコードセットを取得するメソッドが必要です。DBMLから生成されたlinq生成クラスを使用していることに注意してください。問題は、このためのテストを書きたいということです。 私は: a)最初にテストにレコードを挿入し、次にメソッドを実行して結果をテストします b)データベースにある可能性のあるデータを使用します。このロジックが原因で物事が壊れる可能性があることに熱心にしないでください。 c)あなたは何を提案しますか?
12 c#  unit-testing 

5
なぜユーザー/手書きコードが最小限で、XAMLですべてを行うのですか?
MVVMコミュニティは、90年代のOOプログラマーのように熱心になったように感じます。MVVMはコードのない同義語です。私の閉じたStackOverflow質問から: 多くの場合、コードビハインドではなくXAMLで同等のことをしようとしている人についての投稿に出くわします。彼らの唯一の理由は、コードを「クリーン」に保つことです。私が間違っている場合は修正しますが、そうではありません: XAMLも-BAMLにコンパイルされます-その後、実行時にコードを解析する必要があります。XAMLは、コンパイル時にコンパイラによって検出されないため、より多くの実行時バグを潜在的に持つ可能性があります-誤ったスペルから、これらのバグもデバッグが困難です。すでにコードビハインドがあります-似ているか、InitializeComponent(); 実行する必要があり、その中の.gicsファイルには多くのコードが含まれていますが、非表示になっている場合があります。純粋に心理的ですか?ウェブのバックグラウンドから来て、コードではなくマークアップが好きなのは開発者だと思います。 編集:私はXAMLの代わりにコードビハインドを提案しません-両方を使用します-私はXAMLでもバインディングを行うことを好みます-私はWPFアプリでespの背後にコードを書くことを避けるためにあらゆる努力をすることに反対です-それはの融合でなければなりません両方を最大限に活用します。 更新:マイクロソフトのアイデアでさえありません。MSDNのすべての例は、両方でそれを行う方法を示しています。
12 c#  wpf 

2
Webサイトを1つのdllにコンパイルする必要がありますか、それともページごとのdllにコンパイルする必要がありますか?
多数のクライアントサイトに展開される新しいプロジェクトを開発しています。プロジェクトには、その「アクセスポイント」の1つとしてWebベースのGUIが含まれています。Webインターフェースの速度は、このプロジェクトの優先事項であり、セキュリティに次ぐものです。 過去には、Visual Studioで常に "Webサイト"を作成してきました。公開すると、システム内の各ページに1つのdllファイルと1つのaspxファイルが作成されます。ただし、実際に「Webアプリケーション」を作成し、すべてを1つのdllにコンパイルできることを認識しています。 私にとって(実際のデータはなく、直感だけで)、サイトを単一のdllとしてコンパイルすることは、セキュリティと速度(どちらかといえば)の両方に優れているように思えます。 考慮すべき考慮事項は何ですか?また、適切な方法を選択する際に注意すべき明らかな落とし穴はありますか?

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