Data Management Systemを使用したWebアプリケーションの設計(scaffoldテクノロジーに基づく)



前の記事で 、コンテンツ管理システムを使用した開発が効果的でないと考える理由について話しました。 この記事では、Webアプリケーションの構築に使用するアプローチについて説明します。

CMSの代替


前の記事へのコメントには、コンテンツ管理システムの代わりにコンテンツ管理フレームワークを使用する提案がありました。 これにより、Webアプリケーションアーキテクチャの設計が非常に柔軟になりますが、リソースの点ではより高価になります。
データ管理システムの形で代替手段を提供します。
続行する前に、コンテンツ管理システム、コンテンツ管理フレームワーク、およびデータ管理システムの概念を分離する必要があります。
コンテンツ管理システムの記事では、独自の指定されたデータベース構造と一連のドメインオブジェクトを持つシステムを理解しています。
Content Management Frameworkによって、プログラムコードレベルでのデータ操作の自動化に役立つ特定のクラスとメソッドのセットを理解します。
データ管理システムとは、データ管理機能を提供するスタンドアロンのWebアプリケーションを意味します。 同時に

データ管理システムを使用して開発する際のアプローチの特徴


データ管理システムを使用して開発する場合、プロジェクトはアーキテクチャ上、データベース、フロントエンド、バックエンドのいくつかの独立した部分に分割されます。


また、プロジェクトごとにユーザーインターフェイスを作成したり、CRUDロジック(作成、取得、更新、削除)を実装する必要がないことにも注意してください。この機能はデータ管理システム自体によって提供されるためです。

データ管理システムのベースとなる主要な機能は、足場です。 スキャフォールディングは、一部のMVCフレームワークでサポートされている技術であり、データスキームの追加の説明(クラス属性など)を使用して、データベースと対話するためのCRUD機能をサポートするアプリケーションを構築できます。 このテクノロジーを積極的に使用しているプロジェクトの1つがRuby on Railsです。 また、足場を使用するシステムには、ASP.NET Dynamic Data(.NET)およびDjango(Python)が含まれます。
そのため、一般的な場合、データ管理システムは以下に基づいています。




DMSを使用したWebアプリケーションの構築


DMSを使用した設計プロセスは、次のように説明できます。
  1. データベース設計
  2. ORM(Hibernate、EntityFramework、別のオブジェクトリレーショナルマッピングシステム)を使用してドメインクラスを作成します。
  3. ドメインクラスに属性を追加する(たとえば、データベース内のテキストフィールドは、通常のテキストフィールド、複数行のテキストフィールド、WYSIWYGエディターとしてユーザーインターフェイスに表示できます)。
  4. フロントエンドパーツの開発(実際のWebアプリケーション)
  5. バックエンド開発。これは、構成と、必要に応じてデータ管理システムのカスタマイズに要約されます(ほとんどの場合、CRUDモデルを実装するためにやり直す必要はありません)。

以下は、さまざまなプロジェクトコンポーネントの相互作用の図です。



データ管理システムの使用の制限


データ管理システムを使用する場合、いくつかの制限があります。


DMSを使用する利点


データ管理システムを使用する場合、次の利点があります。


実用化


私の実践では、次のようなコンポーネントに基づいて構築されたデータ管理システムを使用しています。

ほとんどの場合、Webアプリケーションを作成するときに、データ管理システムをカスタマイズする必要はありません。 たとえば、サブジェクト領域のクラスのセットを含むライブラリへのパスを変更するだけで十分です。また、別のアプリケーションを完全に管理できます。

結論


したがって、足場技術と制御要素の拡張ライブラリおよびドメインクラスの属性記述の柔軟な仕様により、広範なコンテンツ管理システムによる制限なしに、はるかに柔軟で強力なWebアプリケーションを構築できます。

参照資料


これらのリンクは、すでにWebアプリケーションの構築の経験がある人ではなく、初心者の開発者に役立ちます。

足場とは
ジャンゴ
ASP.NET動的データ
ASP。 NET Dynamic Dataのケーススタディ

Source: https://habr.com/ru/post/J141207/


All Articles