タグ付けされた質問 「.net」

.NET Frameworkは、Microsoft Windowsオペレーティングシステム用のソフトウェアフレームワークです。これには、基本クラスライブラリ、共通言語ランタイム、および動的言語ランタイムの実装が含まれます。C#、VB.NET、F#、C ++など、多くのプログラミング言語をサポートしています。

11
テストを開始するためにデザインが必要な場合、TDDがどのように優れたデザインを取得するのに役立つかがわかりません。
TDD、特に開発の部分に頭を包み込もうとしています。私はいくつかの本を見てきましたが、私が見つけた本は主にテストの部分に取り組んでいます-NUnitの歴史、テストが良い理由、レッド/グリーン/リファクタリング、文字列計算機の作成方法。 良いものですが、それはTDDではなく「単なる」単体テストです。具体的には、テストを開始するためにデザインが必要な場合、TDDが優れたデザインを取得するのにどのように役立つか理解できません。 例として、次の3つの要件を想像してください。 カタログには製品のリストが必要です カタログは、ユーザーが閲覧した製品を記憶する必要があります ユーザーは製品を検索できる必要があります この時点で、多くの本は魔法のうさぎを帽子から引き出して「ProductServiceのテスト」に飛び込みますが、そもそもProductServiceがあるという結論に至った経緯については説明していません。それが私が理解しようとしているTDDの「開発」の部分です。 既存の設計が必要ですが、エンティティサービス以外のもの(つまり、Productがあるため、ProductServiceが必要です)はどこにも見つかりません(たとえば、2番目の要件では、ユーザーですが、思い出させる機能をどこに配置しますか?また、検索はProductServiceの機能または別のSearchServiceの機能ですか?どちらを選択すべきかをどのように知ることができますか?) SOLIDによると、UserServiceが必要になりますが、TDDなしでシステムを設計すると、単一メソッドサービスが大量に発生する可能性があります。TDDは、最初に自分のデザインを発見することを意図したものではありませんか? 私は.net開発者ですが、Javaリソースも機能します。実際のビジネスアプリケーションを扱う実際のサンプルアプリケーションや本はないようです。TDDを使用して設計を作成するプロセスを示す明確な例を提供できますか?
50 java  c#  .net  tdd 

1
なぜ.Netの世界は、静的に型付けされた代替の代わりに魔法の文字列を受け入れるように見えるのですか?
だから、私は.Netで働いています。.Netでオープンソースプロジェクトを作成します。それに関する私の最大の問題の1つは、.Netではなく、その周辺のコミュニティとフレームワークに必要なことです。魔法のネーミングスキームと文字列は、すべてを行うための最良の方法として扱われているようです。大胆な発言ですが、見てください: ASP.Net MVC: Hello world route: routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = "" } // Parameter defaults ); これが意味することは、ASP.Net MVCが何らかの形でHomeControllerコードを検索するということです。どういうわけか、それの新しいインスタンスを作成してから、Index 明らかidに何らかのパラメーターで関数を呼び出します。そして、次のようなものがあります: RenderView("Categories", categories); ...or.. ViewData["Foobar"]="meh"; そして、XAMLにも同様のことがあります。DataContextオブジェクトとして扱われ、希望するタイプに解決されることを期待し、祈らなければなりません。DependencyPropertiesは、マジックストリングとマジックネーミング規則を使用する必要があります。そして、このようなもの: MyData myDataObject = new MyData(DateTime.Now); Binding myBinding = new Binding("MyDataProperty"); …

5
C#開発者として、Javaを学習してAndroid用に開発するか、代わりにMonoDroidを使用しますか?[閉まっている]
私は、C#に精通していると思います。現時点では私の選択言語であり、基本的に私の専門的な経験はすべてここにあります。 それでも、MonoDroidプロジェクトの存在に戸惑っています。私の理解では、C#とJavaは非常に近いということです。例えば、あなたが一方を知っていれば、もう一方を本当に素早く学ぶことができます。ですから、最初のAndroidアプリの開発を検討しているとき、Javaを使い始めて、学習しながら学習するのに十分なJavaに精通していると思いました。 これは、Java Android SDKよりも機能豊富ではない可能性が高いMonoDroidを使用するよりも理にかなっていないのでしょうか。あなたが経験している技術にこだわるよりも、新しい言語(そして、その時点で非常に人気のある言語)を学び、その言語で経験を積む方がいいと思います。で、それ以上の貴重なスキルを獲得することなく。 たぶん、私は平均的な潜在的なMonoDroidユーザーをひどく間違って伝えています。たぶん、Javaと.NETの経験があり、.NETを好む人にとってはもっといいでしょう。または多分(実際にはそうであるかもしれません)私がちょうど考慮しなかった他の要因があります。Javaを使用してAndroid用に開発するのではなく、なぜMonoDroidを使用するのでしょうか?
46 java  c#  .net  android  monodroid 

7
.NETプロパティ-プライベートセットまたは読み取り専用プロパティを使用しますか?
プロパティでプライベートセットを使用し、ReadOnlyプロパティにする場合はどのような状況ですか?以下の非常に単純な2つの例を考慮してください。 最初の例: Public Class Person Private _name As String Public Property Name As String Get Return _name End Get Private Set(ByVal value As String) _name = value End Set End Property Public Sub WorkOnName() Dim txtInfo As TextInfo = _ Threading.Thread.CurrentThread.CurrentCulture.TextInfo Me.Name = txtInfo.ToTitleCase(Me.Name) End Sub End Class // ---------- …
45 c#  .net  vb.net 

13
Any()がnull参照例外をスローしないことを期待するのは理不尽ですか?
拡張メソッドを作成する場合、もちろん、それを呼び出すことができnullます。ただし、インスタンスメソッドの呼び出しとは異なり、nullで呼び出す場合、aをスローする必要はありませんNullReferenceException->手動でチェックしてスローする必要があります。 Linq拡張メソッドの実装について、Any()MicrosoftはArgumentNullException(https://github.com/dotnet/corefx/blob/master/src/System.Linq/src/System/Linq/AnyAll.cs)をスローすることを決定しました。 書かなければならないのはイライラする if( myCollection != null && myCollection.Any() ) このコードのクライアントとして、例えば((int[])null).Any()戻るべきだと期待するのは間違っていますfalseか?

8
IFステートメントの反転
それで、私は数年前からプログラミングをしていて、最近ReSharperをもっと使い始めました。ReSharperが私に常に示唆していることの1つは、「 'if'ステートメントを逆にして入れ子を減らす」ことです。 このコードがあるとしましょう: foreach (someObject in someObjectList) { if(someObject != null) { someOtherObject = someObject.SomeProperty; } } そして、ReSharperは私がこれを行うことを提案します: foreach (someObject in someObjectList) { if(someObject == null) continue; someOtherObject = someObject.SomeProperty; } ReSharperは、ネストがどれだけ進んでいるかに関係なく、IFを反転させることを常に提案するようです。この問題は、少なくともいくつかの状況でネストするのが好きだということです。私にとっては、特定の場所で何が起こっているのかを読み、理解するのが簡単に思えます。これは常にそうではありませんが、私は時々より快適なネストを感じます。 私の質問は、個人的な好みや読みやすさ以外に、ネストを減らす理由はありますか?パフォーマンスの違いや、私が気付いていない他の何かがありますか?

7
なぜ「オブジェクト参照がオブジェクトのインスタンスに設定されていない」とどのオブジェクトがわからないのですか?
私たちはシステムを立ち上げており、時々NullReferenceExceptionメッセージで有名な例外を受け取りますObject reference not set to an instance of an object。 しかし、ほぼ20個のオブジェクトがあるメソッドでは、オブジェクトがnullであると言うログを持つことは、まったく役に立ちません。あなたがセミナーの警備員であるとき、100人の出席者のうちの1人がテロリストであるとあなたに言うようなものです。それは本当にあなたにはまったく役に立ちません。どの男が脅迫的な男であるかを検出したい場合は、より多くの情報を取得する必要があります。 同様に、バグを削除する場合は、どのオブジェクトがnullであるかを知る必要があります。 今、何かが私の心を数ヶ月の間取りつづけています、そしてそれは: なぜ.NETから名前、または少なくともオブジェクト参照のタイプが提供されないのですか?。リフレクションまたは他のソースからタイプを理解できませんか? また、どのオブジェクトがnullであるかを理解するためのベストプラクティスは何ですか?これらのコンテキスト内のオブジェクトのNULL可能性を常に手動でテストし、結果をログに記録する必要がありますか?もっと良い方法はありますか? 更新: 例外The system cannot find the file specifiedは同じ性質を持っています。プロセスにアタッチしてデバッグするまで、どのファイルを見つけることができません。これらのタイプの例外はよりインテリジェントになる可能性があると思います。.NETがc:\temp.txt doesn't exist.その一般的なメッセージの代わりに私たちに伝えることができたらもっと良いと思いませんか?開発者として、私は賛成票を投じます。

4
なぜマイクロソフト「Roslyn」に時間を費やすのでしょうか?
Microsoft "Roslyn"のホワイトペーパーと例のいくつかを読んでいるところですが、このコンセプトは非常に興味深いようです。私が知ることができることから、コンパイラであるブラックボックスを開き、Visual Studioで記述されたコードに関する情報とメトリックを取得するために使用できるインターフェイスを提供します。 Roslynには、コードを「スクリプト化」してオンザフライでコンパイル/実行する機能もあるようです(CodeDomに似ています)が、私の経験では、そのタイプの機能の使用は限られています。 コード分​​析とメトリック要素は興味深いスペースですが、それは非常に長い間存在しており、コード分析とリファクタリングツール(ReSharper、CodeRushなど)にすでに多くのお金を投資している多くのプロバイダーがあります、nCoverなど)、彼らはそれをかなりうまくやっています! 既存のツールのいずれかのライセンスを購入することで、わずかなコストで提供できるものを実装するために、なぜ会社が邪魔にならないのでしょうか? おそらく、言及されたツールのドメイン外に配置するRoslynプロジェクトの重要な機能をいくつか見落としていました...

8
.Netブックがスタックとヒープメモリの割り当てについて説明しているのはなぜですか?
すべての.netブックは、値型と参照型について述べており、各型が格納されている状態(ヒープまたはスタック)を(多くの場合は誤って)示すようにしています。通常、最初の数章にあり、非常に重要な事実として提示されます。認定試験でもカバーされていると思います。スタックとヒープが(初心者).Net開発者にとっても重要なのはなぜですか?ものを割り当てると、それは機能します。
36 .net 

8
Linqが.NETプログラマーに気のめいるような影響を与えていますか?
私たちの多くは、jQueryを使用してクエリ文字列を取得するなどの非常に正気でないことを行う方法を尋ね始めた約1年前に、jQueryでこの現象を見始めました。ライブラリ(jQuery)と言語(JavaScript)の違いは、多くのプログラマーで明らかに失われ、多くの不適切で複雑なコードが必要のない場所に書き込まれます。 たぶんそれは私の想像だけかもしれませんが、ソートされた配列の範囲を見つけるなど、人々がLinqで同様の非常識なことをするように求めている質問の数が増えていると確信しています。Linq拡張機能がその問題を解決するのにどれほど不適切であるかを克服することはできませんが、さらに重要なことは、著者が理想的な解決策が実際にそれについて考えずにLinqを含むと仮定したという事実です(私が知る限り)。私たちは歴史を繰り返しており、言語(C#/ VB.NET)とライブラリ(Linq)の違いがわからない新世代の.NETプログラマーを育てているようです。 この現象の原因は何ですか?誇大広告ですか?カササギの傾向?Linqは魔法の形としての評判を獲得しましたか?実際にコードを書く代わりに、正しい呪文を発声するだけでいいのでしょうか?私はそれらの説明にはほとんど満足していませんが、他に何も考えられません。 さらに重要なのは、それが本当に問題なのか、もしそうなら、これらの人々を啓発するための最善の方法は何ですか?


13
キャリアアドバイス:PHPにとどまるか、他の何かで新しいキャリアを始めましょう(.Net?)[終了しました]
私は6〜12ヶ月でニューヨークに引っ越すことを計画しているので、新しい仕事を見つけざるを得ません。私が別の都市で生活を始めようと計画しているときは、おそらくキャリアの変化について考える良い機会でもあります。 PHP対.Net対Javaについて多くの異なる意見を見つけましたが、これはここのトピックではありません。どの言語が優れているかについて、新たな戦いを始めたくありません。プログラミング言語を知ることは、ソフトウェア開発者にとって最も重要なことではありません。本当に優れた開発者になるには、OOP、設計パターン、テストなどを知っておく必要があります。言語は物事を実現するためのツールにすぎません。 それでは私の質問に戻りましょう。ITの経験はさまざまです-ITサポート担当者として1年(Windowsの管理とサポート)、組み込みプログラミング(VB.Net 2005)で約2年の経験があり、過去2年間はPHP / MySQLを使用しています。私はMagentoのウェブショップで働き、Symfonyのいくつかのプロジェクトを支援し、いくつかのDrupalサイトを修正しました。 私の主な関心事は次のとおりです。 たとえば、Zendのような主要なPHPフレームワークの学習を開始するために、SymfonyはPHP認定を取得するなど、PHPのスキルを向上させ続けますか。 または、.NETまたはJavaの学習を開始しますか。私は.NETに精通しているので、.NETとJavaの間で選択する場合は選択するでしょう(または、Javaを選択するように説得できます:)。 キャリアに関しては、何が最良の選択かわかりません。新しいフレームワークと言語の学習は、PHPの既存のスキルを向上させるよりも時間がかかります。しかし.NETを使用すると、多くの可能性(Windows 7 Phone開発、Silverlight、WPF)があり、より良い仕事を見つける可能性が大きくなります。 私の調査によれば、PHPの仕事は少なくとも.NETよりも給与が少ない(間違っている場合は修正してください)。しかし、今.NETから始めた場合、私は初心者であり、給与は低くなります。ニューヨークで5万ドルから6万ドルを超える仕事を見つけるためにも、少なくとも2年以上、ある言語での経験が必要です。今後2〜3年の私の目標は、60〜80,000ドルのカテゴリで仕事を見つけることです。誤解しないでください、私はお金を追いかけているだけではありませんが、家族を始めようとしているとき、お金は重要な要素です。 私は27歳で、私のキャリアに関して間違った決定をする余地はあまりないと感じているので、アドバイスは大歓迎です。 更新 私の問題を解決するのに時間を割いてくれてありがとう。回答とコメントはすべて非常に役に立ちました。私はPHPに固執することに決めましたが、C#とSilverlight 4を学ぶことも決めました。

8
ソリッド、貧血ドメインの回避、依存性注入?
これはプログラミング言語にとらわれない質問かもしれませんが、.NETエコシステムを対象とした回答に興味があります。 これがシナリオです:行政用のシンプルなコンソールアプリケーションを開発する必要があるとします。アプリケーションは、車両税に関するものです。これらの(のみ)次のビジネスルールがあります。 1.a)車両が自動車で、所有者が最後に税金を支払ったのが30日前であれば、所有者は再度支払う必要があります。 1.b)車両がバイクで、所有者が最後に税金を支払ったのが60日前であれば、所有者は再度支払う必要があります。 つまり、車がある場合は30日ごとに支払う必要があり、バイクがある場合は60日ごとに支払う必要があります。 システム内の各車両について、アプリケーションはそれらのルールをテストし、それらを満たさない車両(プレート番号と所有者情報)を印刷する必要があります。 私が欲しいのは: 2.a)SOLID原則(特にオープン/クローズド原則)に準拠します。 私が欲しくないのは(私が思うに): 2.b)貧弱なドメイン。したがって、ビジネスロジックはビジネスエンティティ内に配置する必要があります。 私はこれから始めました: public class Person // You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. { public string Name { get; set; } public string Surname { get; set; } } public …
33 c#  .net  design  architecture 

4
F#にインタラクティブモードがあり、C#がないのはなぜですか?
F#は、対話型REPLですぐに使用できます。C#には何もありません。実際、完全なプロジェクトをセットアップせずに遊ぶのは少し難しいです(ただし、LINQpadは機能しますが、PowerShell経由でも実行できます)。 F#で対話型コンソールを使用できるようにするが、C#で実装するのが困難になる言語について根本的に異なるものはありますか? 何年も後に人々はまだこの質問に来ているので、私は今多くの選択肢があることに注意すべきです。PowerShell(最新のすべてのWindowsマシンにプリインストールされている)を使用して、.Netフレームワークで遊ぶことができます。または、LINQpadを使用して、任意のc#コードのプロトタイプを作成できます。それとも、使用することができますScriptCsをかあなたのようなオンラインjsfiddle型環境を使用することができますComplify.netまたはJsilを。たくさんのオプション。
32 c#  .net  tools  f# 

8
辞書とリスト
それで私はDictionary<int, int>今日仕事に出くわしました。おそらくList<int>代わりにa を使用したので、これは私には奇妙に思えました。違いはありますか?一方の構造がもう一方の構造よりも優先されるユースケースがありますか?

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