タグ

mvcに関するlepton9のブックマーク (142)

  • ソフトウェアアーキテクチャの歴史 - tasuwo's notes

    改めて ソフトウェアアーキテクチャ GUI のアーキテクチャの歴史を調べてみたくなった。来の MVC とは何か?何が正しくて何が間違っているか?も重要なのだが、それよりは、なぜそれが生まれたのか?何を解決しようとしたのか?どのような問題点が生まれて、それをどう工夫して解決・発展してきたのか?を知りたい。しかし、そういうことがまとまっている日語の情報が少ないので、自分で色々かいつまんでメモしておく。 MVC の原点は 70 年代にまで遡り、実装としては Smalltalk-80 のクラスライブラリとして実装されたのが最初だと思われる。しかし、後世に大きな影響を及ぼしたポイントをいくつか持ちつつも、当時のアーキテクチャが現代においてそのまま利用されているケースはほぼないといっていい。したがって、単に MVC といった時には大抵最初期の MVC を指すことは少なく、区別するために最初期の M

    ソフトウェアアーキテクチャの歴史 - tasuwo's notes
  • クライアントサイドのモデルとは何か 前編 ~ クライアントサイド MVC の死 - mizchi's blog

    前置き この記事、来は Flux には Model がないのではないかと思った覚書 - ナカザンドットネット と Flux の Store が ViewModel かって話からの MVW とかどうでもいいって話 - 型の蓄音機は 1 分間に 45 回にゃあと鳴く のアンサーとして書き始めた記事だが、前置きだけで別テーマとなったので、前後編に分割する。 僕は元々がゲームクライアント屋だったときの発想を引きずってるのと、既存の Web の開発の文脈に対して距離を置いていることを明言しておく。あとこういうテーマでとある原稿書いていたので、頭の整理も兼ねて。 ActiveRecord の功罪を振り返る このテーマを語るにあたって、まず Rails の MVC について述べなければならない。なぜなら、フロントエンドのアーキテクチャとは、サーバーサイドの MVC の模倣に始まり、破綻し、結果として

    クライアントサイドのモデルとは何か 前編 ~ クライアントサイド MVC の死 - mizchi's blog
  • コレクションのデータアノテーション検証

    ASP.NET MVC Web アプリケーションでユーザー入力の検証を行う場合、MVC2 以降ではデータアノテーション検証を標準で使用することができます。 データアノテーション検証とは、簡単に言えば、入力モデルのクラスの public プロパティにアノテーション属性を付与することによって、クライアントから送信されてきたデータをアクションメソッドのパラメータにバインド(モデルバインディング)する際に、付与した属性に従って検証を実行し、その結果を ModelStateDictionary(Controller.ModelState プロパティで取得できます)に格納することです。 記事としてはちょっと古いのですが、Microsoft が提供するチュートリアルの [C#] #21. データ アノテーション検証コントロールでの検証 がまとまっていて理解しやすいと思います。← このチュートリアルはリン

    コレクションのデータアノテーション検証
  • ASP.NET MVC - コレクションのコレクションにバインドする - いちろぐ

    できるかな?できるよね?と思って試したらやっぱりできたのでメモ。 コレクションにバインドする まずはおさらいということでコレクションにバインドするサンプルです。 name属性に配列のようにインデックスを指定します。 ビュー @using (Html.BeginForm()) { <input name="values[0]" type="text" value="a" /> <input name="values[1]" type="text" value="b" /> <input name="values[2]" type="text" value="c" /> <button type="submit">Save</button> } コントローラ public class SampleController : Controller { [HttpPost] public Actio

    ASP.NET MVC - コレクションのコレクションにバインドする - いちろぐ
  • ASP.NET MVC display and editor templates

    Display and editor templates in ASP.NET MVC let us create views in a more maintainable and elegant ways. This article looks at how to define custom templates to display and manipulate different data types. Display templates MVC has a bunch of handy helpers that we can use to create our views more efficiently. One such helper are the display templates that are used within views.

  • モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ

    こんにちは、サービス開発部の森川 (@morishin127) です。主にクックパッドの iOS アプリの開発に携わっています。 日々アプリを開発する中で、近頃は最適なアーキテクチャとは何かを考えながら色々な形を試行錯誤しています。世の中で採用されているモバイルアプリのアーキテクチャには様々なものがあります。MVC, MVP, MVVM, VIPER, Clean Architecture などなど。開発している、あるいは開発しようとしているアプリケーションでどういったアーキテクチャを選択するかというのは難しい問題です。選択するためにはアーキテクチャに求める要件を定義する必要があります。この記事では私がアーキテクチャに求める要件と、それらをある程度満たすと考えた MVVM と Flux という2つのアーキテクチャで実装したサンプルを見つつその長所・短所について考えてみようと思います。 アー

    モバイルアプリのアーキテクチャを考える - クックパッド開発者ブログ
  • ASP.NET MVC でページャーやパンくずリストを作るときには部分ビューなどを使うと便利 - しばやん雑記

    Twitter で酢酸先生が ASP.NET MVC でのビューの使い回しについて悩んでいたので、久しぶりに ASP.NET についてブログを書きます。 しばやんサイトに無限クロールして地獄を味合わせるか…。あ、asp,net mvcで複数のページの任意の場所にカスタムコントロールっていうかdivの塊(ページャーとかパンくずとか)を差し込みたいんだけど、複数のcshtmlにコピペしてるとメンテ不能になりそうなので良い方法ない?— 酢酸(さくさん) (@ch3cooh) May 1, 2014 こういったケースの場合、ASP.NET MVC では部分ビューや子アクション、そして Razor のセクションを使うと便利に書けます。それぞれ微妙に機能が異なるので分けて説明します。 Partial / RenderPartial 別ファイルとして用意されたビューを指定された位置にレンダリングします。

    ASP.NET MVC でページャーやパンくずリストを作るときには部分ビューなどを使うと便利 - しばやん雑記
  • DHH流のルーティングで得られるメリットと、取り入れる上でのポイント - KitchHike Tech Blog

    はじめに こんにちは。KitchHikeエンジニアの小川です。KitchHikeでは主にサーバーサイドを担当しています。 少し前のものですが、「DHHはどのようにRailsのコントローラを書くのか (原文)」というすばらしい記事があります。Railsのコントローラ分割の(DHH流)ベストプラクティスについて解説した記事なのですが、私はこの記事に大変感銘を受け、KitchHikeのルーティング定義にもこのプラクティスを取り入れるようになりました。 日はこのDHH流ルーティングを取り入れることで得られるメリット、実際の routes.rb でのルーティング定義のしかたについて紹介したいと思います。 DHH流ルーティングとは?何がうれしいの? 詳しくは元記事を是非とも読んで下さい・・・なのですが、かいつまむと、ここで示されているのはたったひとつの単純明快なルールです。 コントローラはデフォルト

    DHH流のルーティングで得られるメリットと、取り入れる上でのポイント - KitchHike Tech Blog
  • Patrick Desjardins Blog - How to validate model object with Asp.Net MVC correctly?

  • IValidatableObjectのValidateメソッドへDIを行う - blog.beaglesoft.net

    このエントリーはASP.NET MVC5に対応しています。ASP.NET MVC Core2に対応した記事はこちらになります。 blog.beaglesoft.net こんにちは。beaglesoftの真鍋です。 ASP.NET MVC5でモデルの検証を行うときにIValidatableObjectを実装してValidateで検証処理を行うことがあると思います。たとえば、対象のモデルの複数項目について検証を行う場合などが多いのではないでしょうか。 プログラミングMicrosoft ASP.NET MVC 第3版ASP.NET MVC 5 対応版 (マイクロソフト公式解説書)でも、IValidatableObjectインターフェースということで説明があります。 今回はこの検証でRepositoryやServiceオブジェクトなどを利用する方法を試してみました。 IValidatableObj

    IValidatableObjectのValidateメソッドへDIを行う - blog.beaglesoft.net
  • 今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP) - かずきのBlog@hatena

    Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります。 ここらへんで一度MVVMを実装するうえで必要になる技術要素を振り返ってみたいと思います。 その前にMVVM MVVMは以下のWikipediaあたりでも見てください。 Model View ViewModel - Wikipedia 見た目と、それ以外にクラスを分離して、さらに見た目をXAMLで作りやすいようにViewとViewModelに分離したようなイメージです。 見ていこう ということでMVVMで必要になる技術要素を見ていこうと思います。 INotifyPropertyChangedインターフェース まずは、これが無いと始まりません。MVVMではViewはViewModelを監視して、ViewModelはModelを監視していることが多いです。その時に、クラスのプロパティが変わった

    今さら入門するMVVMに必要な技術要素(Xamarin.Forms & UWP) - かずきのBlog@hatena
  • MVCのモデルを分割する方法 - 浜村拓夫(・∀・)作品集

    MVCフレームワークでWebアプリケーションを作成するとき、肥大化していくモデルをどのように分割すれば良いのか?悩みます。 いつもは適当にやっているのですが、だんだんファイル数、クラス数、メソッド数が増えてくると、把握しづらくなって、辛くなってきますw 他の人のやり方を参考にして、モデルを適切に分割する方法を検討してみました。 ●Webアプリとは? Webアプリの特徴は、インターネットをはさんで、 (1) クライアント側 (2) サーバー側 に分かれていることです。 サーバー側は、 (a) DB(データを置いておく場所。通常はリレーショナルデータベース) (b) DBのラッパー(CRUDを担当するアプリケーション層) に分かれています。 で、このラッパー部分(b)に、MVCフレームワークを使っています。 (via もみじ饅頭(こしあん):もみじ饅頭のやまだ屋) MVCフレームワークは、 (

    MVCのモデルを分割する方法 - 浜村拓夫(・∀・)作品集
  • #yapc8oji 得票数4位トーク「あの日見たM V WhateverのModelを僕たちはまだ知らない」実況中継 - Re.Ra.Ku tech blog

    丸山です。ヤパチー、最高に楽しかったですね。スライドの公開はしたのですが、正直重要なことは全部口頭で説明していて、スライドには情報が少ない。しかし、動画を見るのは正直だるい。40分もPCの前で集中して映像を観れないですよね。知ってる。というわけで、受験参考書の「実況中継」シリーズ(知ってます?)方式で、プレゼンをブログで再現します。長いぞ。でも多分動画見るよりははやく読み終われる。ぜひ読んでいってください。 アバンパート 今日はこういうトークをします。 簡単に自己紹介すると、こういうものです。 息子紹介です。かわいいですね。 WEB+DB Press 91号では特集を、92号ではPerlHackersHubに記事を書かせてもらいました。もう原稿料いただいてるので、もうこれ買ってもらってもわたしには一銭も入らないんですけど、いい雑誌なので買ってないひとはぜひ買って読んでください。 まずMVW

    #yapc8oji 得票数4位トーク「あの日見たM V WhateverのModelを僕たちはまだ知らない」実況中継 - Re.Ra.Ku tech blog
  • DHHはどのようにRailsのコントローラを書くのか | POSTD

    私たちの救世主DHH™は最近の Full Stack Radioのインタビュー で、 Basecamp の最新版で彼がどのようにRailsのコントローラを書いたかを説明しています。下記は、彼のすばらしい話を書き取ったものです。 これまでに思うようになってきたのは、「RESTの原則に従うには、どのタイミングで新たなコントローラを作るべきかを一度決めたら、ほぼ異例なくその原則を遵守するべきだ」ということです。いつだってその方がうまくいくんです。自分の作ったコントローラの状態を悔やむのは決まって、作ったコントローラの数が少なすぎた時です。多くの処理を任せようとしすぎてしまうんです。 そこでBasecamp 3では、ある程度理にかなったサブリソースがあれば、毎回コントローラを分割していきます。フィルタなどの場合ですね。例えば画面があって、それがある状態になっているとします。もしこれにいくつかのフィ

    DHHはどのようにRailsのコントローラを書くのか | POSTD
  • PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json

    (3/15 : タイトル修正しました。wは小文字ですね、すみません・・・) PlayFrameworkが流行り始めてから割と経ちますので、そろそろ正式採用しようと考える方も多いのではないかと思います。 強力な静的型付けで守られたPlayは、ミッションクリティカルなシステムや数万行を超える大規模システムの構築に特に向いているような気がします。 また、Servletを使っていないのに加えてMVC構造がベースなので、今までRailsなどで開発をしていた人でもシームレスに移行できると思います。 しかし、忘れてはならないのがPlayのアーキテクチャが全ての処理が非同期で行われることを前提としているという事です。 ここを忘れてPlayをただの強力な静的型付けで守られたMVCフレームワークとだけ考えて開発を進めてしまうと、番環境で稼動させた時にパフォーマンスが上がらずに困ることになるかもしれません。今

    PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json
  • ASP.NETのセッション管理方法を整理する - Qiita

    0.前置き ASP.NETのにおけるセッション状態の管理方法についてまとめます。 記事の内容は、ASP.NET 4.6を対象としています。 1.セッションの説明 Webアプリケーションを実現するHTTPは状態を持たない(ステートレスな)プロトコルです。そのため、「ユーザーが認証済みであること」や「ページをまたがったデータの管理」をする場合には、どこかでその状態を管理する必要があります。ASP.NETではその管理手法として、クッキー(cookie)、セッション、一時データ(TempDataやViewState)などがあります。 セッションは、サーバーサイドでデータを管理し、クライアントサイドにはそのデータへアクセスするキー(セッションID)のみを提供する(管理はクッキー)手法をとります。そのため、クッキーと比較し改ざんされる危険性が少ないため比較的安全な手法と言えます。 ASP.NETは、

    ASP.NETのセッション管理方法を整理する - Qiita
  • Rails:Service層を運用して良かったところ、悪かったところ - Qiita

    1年前くらいにRailsの設計にDDD(ドメイン駆動設計)のService層を導入し、Modelの肥大化対策をしました。 この記事では、まずどのようなルールでService層が組み込まれているかと、1年間運用してみて良かったところ、悪かったところの感想を書きます。 [2018/05追記] 最近ではサービス層の導入は賛否両論あるようなので、導入する際は自分のプロジェクトに合っているかどうかを十分にご検討ください! Service層を導入するきっかけになった問題点 Modelの肥大化 Model間の複雑な依存関係 多数のミドルウェアの導入による複雑さの倍増 これらにより.. メンテナンスやテストがしにくい コードが整理されていないのでとにかく読みづらい Model複雑化の例 <ユーザがECサイトの商品をお気に入り(like)にするメソッドを書く場合> 処理に関連するテーブル my_itemsテ

    Rails:Service層を運用して良かったところ、悪かったところ - Qiita
  • ASP.NET 5、.NET Core への移行作業をしてみた感想 - Qiita

    この記事は、ASP.NET Advent Calendar 2015 の 10 日目 の記事です。 はじめに 11月18日に、ASP.NET 5 と .NET Core の RC が公開されたので、統計メモ帳という ASP.NET MVC 5 で作成・運用しているサイトの ASP.NET 5 への移行作業をしてみました。ここでは、その作業の感想を書きます。 作業をしてみて全般的な感想としては、ASP.NET 5、.NET Core ともに "Go Live" になっただけあって、Windows 環境だと特に問題なく動いています。一方で、MVC 5 からの変更が大きいので移行にはかなり手間が掛かるし、.NET Core の方は、ライブラリーの整備にもう少し時間がかかりそうだということは感じました。 MVC 5 から MVC 6 への移行 今回の作業は大きく分けると、最初に MVC 5 から

    ASP.NET 5、.NET Core への移行作業をしてみた感想 - Qiita
  • ViewData vs ViewBag vs TempData - 夜は寝る

    C# Advent Calendar の6日目を担当します。 このブログでまともなことを書くのは初めてです。これを期にふざけるのはやめて、ちゃんとした技術ブログにしていきたいです。エンジニアと言い張って給料泥棒して生活をしてきましたが、そろそろバレそうなので C# を勉強しようと思っています。 ASP.NET MVC で、Model を介さずに一時的にデータを保管する方法が複数あります。名前も抽象的かつ似ているので、混乱しないために整理します。初心者が半分妄想で書いており間違いが108つほどあるはずなので、ご指摘いただければ幸いです。あと、極めてさりげない形でハイキュー!!の名言を紹介しています。 ViewData vs ViewBag 両方とも、Controller/View 層でデータを渡したいときに使います。違いは型の安全性です。ViewData はキャストか型変換が必要です。どちら

    ViewData vs ViewBag vs TempData - 夜は寝る
  • Disable User in ASPNET identity 2.0