2009-08-26 8 views
2

私はデルファイとボーランドのツールに関する高い知識を持つプログラマです。私は現在、C#と.NETを学ぶ方向にあります。アドバイスを求める失われたプログラマ

商品化されたアプリケーションの全面的な書き換えを計画しています。

マイクロソフトのツールで利用できるすべての技術があれば、私は完全に失われています。

どのようにすればいいですか? WinForms? WPF? WCF? Asp.NET? Microsoft Ajaxを使用しますか? JQuery? NHibernate?強い型付きデータセット? S#arp?城? Rhino?

私はすべての技術が相互に排他的ではなく、互換性がないことを知っていますが、どの組み合わせが.NETの世界で最高のものか知りたいと思います。

簡単に言えば、私のアプリはデータベースアプリケーションです。私は報告とラベル/チケットプリンタにカスタム文字列を送る能力が必要です。アプリの特定のセクションでは、グラフィック操作が必要です。マウスの上/下/移動をトラップするようなイメージとマウス操作を行うことができます。本当に進んだものはありませんが、それは必要です。私はまた、私のアプリのいくつかの機能がWeb上で利用できるようにする必要があります...

アドバイス、トリック、ヒント、成功事例があれば...私は本当に私の手を汚しています。利用可能なすべてのものを読んで1日を過ごしているm。

ありがとうございました。

+0

既存のアプリケーションはWebベースですか?Webベース(つまり導入)には利点がありますが、あなたのスキルセットに近いものを使用したいと思うかもしれません。 – russau

+0

既存のアプリはウェブベースではありません。これは純粋なWin32 Delphiアプリケーションです。 私はテクノロジ(Win32またはWebベース)にバインドされていません。 – vIceBerg

+2

英語を話す人ではないので、私はそれを認めています。 – vIceBerg

答えて

5

あなたはデスクトップ(ないウェブ)アプリケーションに注力したいと思うように聞こえるこれまでに現在の-実装の詳細に関して提供してきたことから、お客様が最新の.NET Frameworkのインストールに反対しない場合、.NET 3.5 SP1ツール(または予定されている出荷日が6ヶ月以上ある場合は4.0フレームワーク)の使用に専念する必要があります。

あなたが言及した決定要因は周辺機器のサポートです。すなわちプリンタに印刷することができる。ウェブ技術はある程度のアプリケーションの置き換えには優れていますが、周辺のサポートは強力なものではありません。印刷文書を生成し、本質的に単に「ページを印刷する」ことができればうまくいくかもしれませんが、プリンタと低レベルの通信を行う必要がある場合、リッチクライアントアプリケーションは依然として強力です。

つまり、リッチクライアントアプリケーションでは、ラインがぼやける可能性があります。 ClickOnceのデプロイメントではアプリケーションの更新を配布することができ、WebServicesを使用すると特定のロジックを集中化できます)。

特定の技術については、それはあなたがインストールするクライアントとあなたのニーズが何であるかによって異なります。 WinFormsはまだ公平にサポートされていますが、WPFは進歩しているようです。 VS2010やその他の新製品では、マイクロソフト社がこれを真の技術(目玉ではない)として証明しています。 WCFは本質的に.NETの革命ですが、MicrosoftはWebサービスを行う新しい方法として、または既存のメッセージングテクノロジの代わりとして販売しています(ラッパーのほうが実際に)。生産性向上剤。

データレイヤの場合:ORMは大きくて強力ですが、正しく動作するためには知識が必要です。 .NET 4.0があなたのための可能なターゲットなら、あなたはEF4、マイクロソフトの公式ORM(現在のバージョンは完全に焼かれていない)を見ることができます。 NHibernateは成熟した安定したオプションでもあり、多くのリソースを提供します。 Typed-DataSetsはかなり日付が近づいており、ますます頻繁に参照されています。

+0

ありがとう。非常に便利です! – vIceBerg

2

これは本当に答えるにはあまりにも曖昧です。 "場合によります"。

あなたのアプリは現在Windowsアプリですか?それをウェブサイトにする理由は何ですか?そうでない場合は、asp.netを忘れて、winformsとWPFを決めることができます。

ここで、あなたはどこでアプリを走らせるか考えてみましょう。あなた自身のPCやクライアントで?あなたの展開オプション(OSなど)に応じて、winformsはもっとサポートされるかもしれませんが、可能であればWPFを使ってください。

さて、解決したら、データベースに移動します。あなたがORMを望むなら(それはすべきです)、私はLLBLGenが大好きですが、それにはお金がかかります。 IMHO、それはそれの価値があるが、あなた自身のために決定する。それでソートしました...

ユニットテスト。おそらくあなたが書くことができない項目を嘲笑するためのものであるので、おそらくあなたは鼻緒を必要としません。 NUnitを使い始めると、テストが必要なものとできないものを決定します。これを学ぶことについて心配しないでください。

私はそれに近づくだろうかだ:)

+0

あなたの "asp.netについて忘れてください"私を驚かせます。 90%のサンプル/チュートリアル/記事はASP.NETに関する話題です。あなたの考えをありがとう – vIceBerg

+0

ウェブサイトを必要としない場合、まあ、私はそれを忘れることを意味します。私のプロジェクトのほとんどはウェブサイトなので、asp.netは私の仕事です。 –

1

私は数年前にデルファイからC#に来ました。あなたの痛みが分かります。 .NETフレームワークはモンスターであり、あなたのやり方を学ぶのにしばらく時間がかかります。あなたはあなたがいなければならない場所です。

私はあなたがWinformsアプリケーションから始めるべきだと思います。 WinFormsは、デスクトップアプリケーションを書くための標準の.NETフレームワークです。 Delphiのデザイナーと非常によく似ています。デザイナーの表面にコントロールをドラッグアンドドロップし、プロパティとイベントを割り当てます。成熟した.NETテクノロジです。

多くの人が、デスクトップ開発のためにWPFに向かってあなたを押しかけ、WPFアプリケーションとwinformsが死んでいることを伝えるように指示します。 IMO、WPFの設計時の経験はVS2008を吸う。それはVS10で是正されました。我々は見るでしょう。現在、WPFを設計するには、Blendを使用することをお勧めします。

私はwinformsに関する本とADO.NETに関する本を手に入れます。 ADO.NETは、Delphiの標準データアクセス機能とは少し異なります。また、WinformsはDelphiよりもはるかに柔軟なデータバインディングを備えています。実質的に.NETにバインドすることができます。 Delphiの開発者のための素晴らしい変更です。標準レポートコントロールを使用してレポートを作成します。

あなたがWinFormsに慣れたら、私はASP.NET、WPF、WCFに移動します。

Good Luck!

+0

ありがとうございます。補足として、フレームワークの醜さにもかかわらず、DelphiからC#に切り替えるのが最も難しいのは何ですか? – vIceBerg

+0

WPFの設計時の経験との対抗点として、意図的に貧弱です(ある程度)。ドラッグ・アンド・ドロップ・デザイナーは、生成している実際のコードを光沢を帯びる傾向があり、奇妙な副作用を伴う可能性があります。 XAMLエディタはIntellisenseとそれが表すUIのリアル​​タイムビューを提供します.XAMLをGUIでドラッグするほど速く書くことができます。 また、WinFormsのデザイナーは、UIとビジネスロジック(通常はスノーボールをUIクラスが組み込まれた神クラスにまとめること)を強く推奨しています。大きなプロジェクトや寿命の長いプロジェクトには適していません。 – STW

+0

@vIceBerg - 見てみましょう。マルチキャストデリゲート(イベントハンドラ)、切断データ(ADO.NET)、ガベージコレクション、ジェネリックス、匿名メソッド、およびLINQが含まれます。これはすべてデルファイの男の新しい領域です。 C#に関するJon Skeetの本を入手して、C#の進化と言語の高度な機能に精通してください。 ほとんどの場合、.NETは簡単です。古いAPI呼び出しは、.NETラッパークラスによって95%の時間に置き換えられました。あなたのF1キーで友達になれます。 VS2008のヘルプは素晴らしく、私たちがD7で持っていたものよりも優れています。 – Steve

2

インフラとモデルに集中し、私が現在使用して、となるだろう:

  • のIoC - 私はユニティを使用して、それがORM
  • これまで素晴らしい作品 - NHibernateはのためにNHibernateは+流暢NHibernateは+ LINQ
  • のり - Webアプリケーションが必要な場合、私はasp.netのMVCで行くと思います

物事をまとめるために、独自の接着剤を書きます。どんなjavascriptも使わずにすべての作業をしてから、jQueryとjavascriptを追加してより良いエクスペリエンスを得ることができますが、それを必要としません。

デスクトップアプリケーションが必要な場合は、自分が何を選択するかわからないため、他の人にそのアドバイスを提供します。

+0

あなたはインフラストラクチャの側面に入るのはあなただけです。ありがとうございました。 – vIceBerg

関連する問題