問題タブ [centralized]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - サード パーティ製アプリケーションの Windows 集中型構成?
アプリケーションのさまざまな「エンドポイント」を構成する標準的な方法を検討しています。私たちのアプリケーションは、Windows デスクトップ アプリケーション、Windows Server "サービス"、およびデータベースを備えた分散システムです。現在、XML ファイルを使用して各部分を構成しています。これは、アプリケーションを実行する数十のサーバーと数百のデスクトップ クライアントを持つことができる大規模な顧客と協力しているため、少し手に負えなくなってきています。
すべての構成情報を一元化し、すべてのアプリケーションを 1 か所で管理できる Microsoft テクノロジまたはサード パーティを推奨できる人はいますか? 変更は、関心のあるエンドポイントに「プッシュ」されます。
たとえば、データベースの 1 つのログインを変更する場合、その変更をデータベースに加え、その変更を中央システムに反映します。最後のステップの後、データベースに接続する必要があるすべてのサービスに変更が通知されます (そして、新しいデータを受け取る可能性があります)。各エンドポイントがその情報をどのように処理するかは、システムの範囲外です。
私たちの主な事業は「集中構成サービス」ではありません。私たちは、世界中のさまざまなユーティリティにソリューションを提供する GIS 企業です。
php - PHP: 集中型ページ セッション認証システム
私は現在、集中型のページオーセンティケーターをどのように実現できるか疑問に思っています。誰かが私のためにきちんとしたアルゴリズムを提案できますか? 私が達成しようとしているのは、保護したい各ページにセッション チェック コードを書かずに、バックエンド管理者ページのセッションを保護することです。私は現在、次のようなことをしています:
ログインページ -> 資格情報が正しい場合: セッションを設定 -> セッションなしで保護されたページを表示する場合: 拒否する場合: 許可する
これに関するベストプラクティス(またはより良い方法)はありますか?
sql-server - SQL-Server DB設計時シナリオ(分散型または集中型)
SQL Server DBの設計時のシナリオがあります。データベースにさまざまな組織(つまり、顧客、ベンダー、ディストリビューターなど)に関するデータを保存する必要があります。すべてのdiff組織は、(ほぼ)同じタイプの情報を共有します..アドレスの詳細など...そしてそれらは他のテーブルで参照されます(つまり、OrgIdを介してリンクされ、多くのdiffの場所でOrgNameを検索する必要があります)
2つのオプションがあります。
OrgCustomer、OrgDistributor、OrgVendorなどの組織ごとにテーブルを作成します...すべてのテーブルは同様の構造になり、一部のテーブルには、顧客がフィールドHomeAddress(他のOrgテーブルにはない)を持つように特別なフィールドがあります。 ) .. およびその逆。
共通のOrgMasterテーブルを作成し、すべての差分組織を1か所に保存します。テーブルには、Orgのdiffタイプを区別するためのOrgTypeフィールドがあります。そして、特別なフィールドがOrgMasterテーブルに追加されます(関連するOrgレコードのみがそのようなフィールドに値を持ち、それ以外の場合はNULLになります)
#1のいくつかの長所と短所
長所:
- 組織データのdiffタイプにアクセスする際に負荷を分散するのに役立つため、パフォーマンスが向上すると思います。
- 他の既存のOrgタイプに影響を与えることなく、特定のOrgテーブルをカスタマイズするための完全なスコープを提供します。
- 差分/分散テーブルの差分インデックスが単一の大きなテーブルよりもうまく機能するかどうかはわかりません。
短所:
- デザインの複製。ZipCodeフィールドのサイズを増やす必要がある場合は、すべてのテーブルで行う必要があります。
- 操作の実装におけるレプリケーション(つまり、CRUD操作にストアドプロシージャを使用したため、レプリケーションはn倍になります..3-4 Inert SP、2-3 SELECT SPなど...)
- DB制約\インデックス作成からSP、アプリケーションコード内のビジネスオブジェクトまで、すべてがn倍に拡大します。
- ある場所での変更(共通)は、他のすべての場所でも行う必要があります。
#2のいくつかの長所と短所:
長所:
- N倍は1倍になります:-)
- すべての操作に対して単一のエントリポイントを実装できるため、メンテナンスが容易になります(つまり、CRUD操作を処理する単一のSPなど)。
- 単一のテーブルを維持することを心配する必要があります。インデックス作成およびその他の最適化は、単一のテーブルに制限されています。
短所:
- ボトルネックが発生しますか?ビューやその他の最適化されたデータアクセス戦略を実装することで管理できますか?
- 一元化された実装のもう1つの側面は、すべての場所で1つの変更をテストおよび検証する必要があることです。抽象的ではありません。
- デザインは、特に「組織化/構造化」されていないように見えるかもしれません。'特別な'フィールド(他のテーブルとは無関係)を追加する必要があるいくつかの組織のため
また、オプション#3-Orgテーブルを分離したまま、共通のフィールドを格納するための共通のOrgAddressテーブルを作成することも念頭に置いています。しかし、これは私を#1と#2の真ん中に連れて行き、さらに混乱を引き起こしています!
正直なところ、私は経験豊富なプログラマーですが、同じように経験豊富なDBAではありません。これは私の主流の仕事ではないため、設計の複雑さやパフォーマンスなどのパラメーター間の正しいトレードオフを導き出すのを手伝ってください。
前もって感謝します。技術的な質問や提案は大歓迎です。
ヘマント
logging - 集中ログのベスト プラクティスは何ですか?
私のチームは 100 以上のアプリケーションのサポートを継承しています。アプリケーションには共通のアーキテクチャがまったくないため、ログを記録するアプリケーションは通常、カスタム コードを使用してローカル ファイルまたはローカル データベースに記録し、すべて管理されていません。私たちはそれを変えたいと思っています。
アプリケーションを log4net を使用するようにゆっくりと移行し、ログに記録されるものの種類を標準化しています。次の質問は、ログをどこに送信する必要があるかということです。
私は、すべてのログを受信する専用の中央 SQL Server を使用するのが良いと考えていました。これにより、メンテナンスが容易になり (バックアップ/アーカイブ用の 1 つの場所)、データ マイニングとトレンド分析の将来の可能性が提供されます。
それはこの種のベスト プラクティスですか、それとも代わりに検討すべき専用のアプリケーション ログ サーバーがありますか?
更新: log4net と SQL Server についてさりげなく言及するよりも、もっと明確にする必要がありました。UNIX ソリューションは私たちにとって役に立ちません。
git - 一元化されたワークフローによる Git のバージョン番号付け
中央サーバーで Git を使用しており、コードにはファイルにバージョン番号を含める必要があります。これが現在行われている方法は次のとおりです。
- 新しい開発者が「git clone」を行う
- ローカル コピーで、.git/hooks/pre-commit を編集して version.sh を呼び出します。
version.sh (プロジェクト ルートに含まれる) は、"git describe" からバージョン番号を取得し、ファイルに格納します。
これは機能しますが、開発者が pre-commit フックを編集するのを忘れた場合でも、バージョン番号が更新されるようにしたいと思います。
サーバーには作業コピーがないため、(pre|post)-receive フックを呼び出すだけでは機能しないため、これを行う方法があるかどうか疑問に思っています。
svn - 分散リビジョン管理を売り込む
何千もの同様のトピックが浮かんでいることを私は知っています。SO で少なくとも 5 つのスレッドを読みましたが、それでも DVCS について確信が持てないのはなぜですか?
以下の質問しかありません (勝手に Java プロジェクトだけを心配していることに注意してください)。
- ローカルでコミットすることの利点または価値は何ですか? 何?本当?最新のすべての IDE で、変更を追跡できますか? 必要に応じて、特定の変更を復元できます。また、IDE レベルで変更/バージョンにラベルを付ける機能もあります!?
- ハードドライブをクラッシュさせたらどうなりますか? 私のローカルリポジトリはどこに行きましたか? (では、中央レポにチェックインするのと比べて、どのようにクールなのですか?)
- オフラインまたは飛行機での作業。重要なことは何ですか?変更を加えてリリースをビルドするには、最終的に中央リポジトリに接続する必要があります。それまでは、自分の変更をローカルで追跡する方法は問題ではありません。
- わかりました Linus Torvalds は Git に人生を捧げ、それ以外はすべて嫌いです。それはやみくもに賛美を歌うのに十分ですか?Linus は、私の中規模プロジェクトのオフショア開発者とは違う世界に住んでいますか?
私を売り込む!
database - データベースへの変更のマーキング
中央サーバーと分散コンピューターで実行するアプリケーションを開発しています。
分散マシンからデータをバックアップし、中央サーバーにマージするアプリケーションを作成することになっています。ローカルデータベース全体を圧縮し、サーバーに送信してマージすることを考えました。しかし、データベースのサイズが大きくなるにつれて、圧縮ファイルのサイズも大きくなり始めました。データベース全体を送信せずに中央サーバーにデータをマージする方法はありますか。私は毎日それをする必要があります。
毎日バックアップを取り、サーバーに送信する
c# - アプリケーションのメッセージボックス処理を一元化
他の人がMessageBox関数の呼び出しを一元化しようとすることにどのように対処するのか疑問に思っています。以前は(.net以外の言語で)コードのいたるところに長いテキストを埋め込む代わりに、システムおよびアプリケーションベースの「メッセージボックス」タイプのメッセージをデータベースファイルに入れ、実行可能ファイルに「焼き付け」ました。 .Netのリソースファイルによく似ています。プロンプト条件が発生した場合、私は次のようなものを呼び出すだけです
MBAnswer = MyApplication.CallMsgBox(IDUserCantDoThat)
次に、戻ったときにMBAnswerを確認します。たとえば、yes / no/cancelなどです。
データベーステーブルには、メッセージボックスのタイトル、表示されるボタン、実際のメッセージ、「これが発生した場合はヘルプデスクに連絡してください」などの後続の標準コメントに自動的に追加される特別なフラグなどがあります。 。この関数は、該当するすべての設定を使用してメッセージボックスを呼び出し、応答を返すだけです。これの大きな利点は、メッセージのすべての「コンテキスト」を1つの場所に配置し、定数を介して、ユーザーに表示されるメッセージを読みやすくすることでした。
同様のアプローチを行うために.Netに同様のシステムを持っている人はいますか、それとも.Net環境ではこれは悪い考えです。
authorization - 複数のアプリケーションに対する集中認証の実行
ここで、私がしばらくの間取り組んできた質問があります。作成したアプリケーションが多数ある状況があります。これらは、長い時間をかけて有機的に成長してきました。
これらのアプリケーションにはすべて、現在ログインしているユーザーが必要な権限を持っているかどうかに応じて、アプリケーションのさまざまな部分へのアクセスを制御する権限コードが組み込まれています。
これらのアプリケーションと並んで、管理者がユーザーをすべてのアプリケーションのアクセス許可にマップできるようにするユーティリティ アプリケーションがあります。その仕組みは、すべてのアプリケーションに、前述のユーティリティ アプリケーションのこの外部データベースを読み取って、現在ログインしているユーザーが権限を持っているかどうかを確認するコードがあることです。許可が必要かどうか。
さて、問題はこれです。ユーザー権限のマッピング情報は、アプリケーション自体に存在して所有されるべきですか、それとも、この情報を外部のエンティティ/DB (この場合はユーティリティ アプリケーションのデータベース) 内に存在させても問題ありませんか。
私の一部は、アプリケーションのアクセス許可はアプリケーション コンテキスト自体に非常に固有のものであるため、アプリケーション自体から切り離すべきではないと考えています。しかし、よくわかりません。
コメントはありますか?
c# - Asp.Net ページの 1 か所ですべてのエラー/メッセージを処理するにはどうすればよいですか?
ここでいくつかのガイダンスを探しています。
私のサイトでは、Web ユーザー コントロールに配置しています。たとえば、NewsItem コントロール、Article コントロール、ContactForm コントロールがあります。
これらは、私のサイトのさまざまな場所に表示されます。
私が探しているのは、これらのコントロールが存在するページにメッセージを渡す方法です。
それらを密結合したくないので、イベント/デリゲートでこれを行う必要があると思います。ただし、これをどのように実装するかについては少しわかりません。
いくつかの例:
1
お問い合わせフォームが送信されます。送信後、そのメッセージの配置を制限する「あなたのメールが送信されました」に置き換えるのではなく、ステータス メッセージとおそらく推奨される動作でコントロールがオンになっていることをページに通知したいと思います。したがって、メッセージには、レンダリングするテキストと、いいenum
ねDisplayAs.Popup
やDisplayAs.Success
2
Article Control は、データベースに Article オブジェクトを照会します。データベースは例外を返します。DisplayAs.Error
カスタム例外は、列挙型とともにページに渡されます。ページはこのエラーを処理し、エラーが発生した場所に表示します。
ValidationSummary コントロールと同様のことを達成しようとしていますが、列挙型が適切であると感じたときにページにメッセージを表示できるようにしたいという点が異なります。
繰り返しますが、ページに存在するコントロールを厳密にバインドしたり、依存したりしたくありません。コントロールでこれらのイベントを発生させたいのですが、必要に応じてページでそれらを無視できます。
私はこれを正しい方法で行っていますか?
code
始めるためだけにサンプルが欲しいです。
これはより複雑な質問であることはわかっているので、回答を投票/選択する前に、もう少し待ちます.