6

私はASP.NET MVC開発者で、Ruby と Ruby on Rails を学ぶことにしました。私はすでに何かを知っていて、RoR で Web サイトを作成しました。ASP.NET MVCでの開発では、データ層、ビジネス層、UI (またはプレゼンテーション) 層の 3 層アーキテクチャを常に使用してきました。

このアプローチを Ruby on Rails アプリケーションで使用しようとしたところ、それに関する情報がないことがわかりました (または、単に見つけられなかったのでしょうか?)。

おそらく誰かが、Ruby on Rails で 3 層アーキテクチャを作成または使用する方法を教えてくれませんか?

PS Ruby 1.9.3 と Ruby on Rails 3.2.3 を使用しています。

4

3 に答える 3

5

RoR アプリケーションを作成する際は、Ruby on Rails (RoR) スタイルに従うことをお勧めします。MVC アーキテクチャを見る Rails の方法は、Asp.net 3 層アーキテクチャには完全には適合しません。

UI (プレゼンテーション レイヤー | ビュー)

これら 2 つは同じロジックに従います。大きな違いはありません。

コントローラー(ビジネス層 | コントローラー)

ビジネスレイヤーとコントローラーの両方が UI からリクエストを受け取り、レスポンスを返します。Asp.net では、Business Layer が検証とビジネス ロジックを処理します。しかし、Rails では、検証とビジネス ロジックはモデルに属します。

モデル(データレイヤー | モデル)

Rails のモデルは、Asp.net のデータ層以上のことを行います。モデルは、ビジネス ロジックと検証を扱います。データ層とモデルは、ストレージへのデータ転送を処理します。

Asp.net から RoR に移行するときは、コントローラーを薄く保つようにしてください。RoR は、Web アプリケーションの構造に深刻な制約を課します。そして、それらに固執すると、よりプロフェッショナルな RoR アプリを作成できるようになります。

于 2012-05-28T11:37:54.127 に答える
4

4年以上経った今でも、これは関連する質問です。アプリケーション層の意味について、人々が混乱しているようです。

もちろん、MVC層について考えるとき、およびアプリケーションに適切なモデル、ビュー、およびコントローラーがある場合、アプリケーションを3層として定義するとき、以前の答えは正しいです。もちろん、Rails はデフォルトでこの意味で 3 層ですが、他の人が指摘しているように ASP.NET MVC とは大きく異なります。

ただし、元の質問は物事がどのように展開されるかについて言及していると感じています (もちろん私は間違っているかもしれませんが、この質問を見ている人はまだこれを探している可能性があります)。多くの場合、エンタープライズ アプリケーションは、Web アプリケーション (プレゼンテーション) がサービス (ビジネス ロジック) としか通信できず、ネットワーク レベルの制限とセキュリティ上の理由により、データベースとしか通信できないという意味で、3 層である必要があります。

このモデルでは、フロントエンド Web アプリケーションがセキュリティ機能 (CSRF やクリックジャッキング、おそらくセッション管理などのいくつかの種類の攻撃に対する保護) を実行し、アプリケーション サーバー上のサービスから読み取ったデータを提示します。これらのアプリケーション サーバーは、エンドユーザーが直接アクセスすることはできません。多くの場合、Web サーバーを信頼し (セキュリティ モデルによっては信頼しません)、Web サーバーから直接アクセスできないデータベースにデータを保存します。Windows 環境では、Web サーバー、アプリ サーバー、およびデータベース サーバーは通常、異なるドメインにあります。

ほとんどすべてのチュートリアルで説明されているように、Rails は同時に Web サーバーとアプリ サーバーであり、後者のモデルには適合しません。また、これを適切に行う方法について利用できるリソースは実際にはあまりありません。しかし、特に Rails 5 では、Rails を適切なサービスにして、API を使用してアプリケーション サーバーとして使用することは非常に簡単です (API のみのアプリケーション ガイドを参照)。 Web (プレゼンテーション) 層。ただし、Web とアプリ間の認証から、Web からアプリへのサービス クエリの作成まで、特に ActiveResource が廃止された今では、かなり多くのことを自分で解決する必要があります。

于 2016-09-03T22:35:09.550 に答える
4

Ruby on Rails3 層 (MVC) アーキテクチャです。Rails では、データ レイヤーはモデルと呼ばれ、ビジネス レイヤーはコントローラーと呼ばれ、ユーザー インターフェイス レイヤーはビューと呼ばれます。

開始するのに適した場所は次のとおりです: rails guidesrails tutorial for rails 3.2

于 2012-05-28T11:16:45.860 に答える