私はソフトウェア開発を始めようとしている Web 開発者です。デスクトップ アプリケーションを開発して展開する前に、デスクトップ アプリケーションについて知っておくべきことは何ですか?
この質問が少し漠然としていることは理解していますが、参考になれば、「公開 Web サイトを構築する前に開発者が知っておくべきこと」 のような回答を探しています。
私はソフトウェア開発を始めようとしている Web 開発者です。デスクトップ アプリケーションを開発して展開する前に、デスクトップ アプリケーションについて知っておくべきことは何ですか?
この質問が少し漠然としていることは理解していますが、参考になれば、「公開 Web サイトを構築する前に開発者が知っておくべきこと」 のような回答を探しています。
別の注意点として、データバインディングは通常、デスクトップモデルでは異なります。Webモデルは切断されているため、データの新しいコピーを常に確認するか、機会があればプレゼンテーション層に再バインドする必要があります。
通常、デスクトップアプリでは、使用する言語/フレームワークがバインディングを自動的にチェックして更新します。これにより、基になるデータレイヤーを変更する場合に便利ですが、グリッド/ドロップダウンリストが変更されて期待していなかった。
デスクトップアプリケーションではスレッド化がより明確になるため、おそらく基本的な概念に精通している必要があります。
インストーラーや ClickOnce などの展開戦略に取り組んでいました。初めてデスクトップ アプリを展開したときは、本当につまずきました。
デバッグは、より多くの「興味深い」ものになります。ほとんどの状況は一般的なシナリオで解決されますが、基本的にすべてのデスクトップはそれ自体が固有のものであり、特定のインストールまたはユーザーが実行している特別なアプリケーションがアプリケーションに未知の方法で影響を与える可能性があることを覚えておいてください. Windows の「環境フォルダー」を使用しているアプリケーションでまだ問題が発生していますが、デンマーク語版の Windows では正しく動作しないようです。
これは怖がらせるために言っているのではありませんが、ユーザーのマシンでアプリのトラブルシューティングを行う必要がある場合に、簡単にデバッグしたり、状況のダンプを取得したりする何らかの方法があることを確認するためです。
これは、ターゲット アプリケーション スペースに大きく依存します。
デスクトップ アプリは、Java から VB、C++、ASM まで、あらゆる言語で作成されています。
アプリケーションの開発に必要なテクノロジをアプリケーションに任せるべきです。
おそらく、VB で 3D ビデオ ゲームを作成するつもりはないでしょう。しかし、ASM でアカウント パッケージを作成するつもりはありません。
編集:
**Know** your customer.
**Know** your application.
**Know** what algorthms are necessary to implement your application.
**Know** your requirements and goals up front.
**Know** the platform. (Win32, Mac0S, Linux, JavaVM, etc...)
Evaluate tools that will help you acheive project requirements and goals.
Design your software.
Implement your software.
もう1つのメモが思い浮かびました。要件を明確に定義することから始めることは重要ですが、顧客によっては、要件が開発プロセス中に Flux に含まれる可能性があることにも注意する必要があります。スコープクリープが発生したときに管理しないと、最終的に噛みつきます。
デスクトップ アプリケーションはより OS に依存するため、プロセスとスレッドの管理、サービス (つまり Windows サービス) のインストールと管理、ファイル システムなど、OS に依存するいくつかの機能についての知識が必要になる場合があります。