1 名前:デフォルトの名無しさん [2012/06/03(日) 16:18:39.74 ] Java用のWeb Application Frameworkについて語るスレッド 海外では多数のFrameworkがあるのに、日本語の情報は意外と少ない 開発生産性、パフォーマンス、ドキュメントの充実度、安定性、使いやすさなどを 比較しながら、最高のフレームワークを探してみるスレッド Web Application Framework のリスト en.wikipedia.org/wiki/Comparison_of_web_application_frameworks 特徴の比較 en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Comparison_of_Features
55 名前:デフォルトの名無しさん [2012/09/24(月) 20:05:22.20 ] Play!とか選択する理由あるかな。
56 名前:デフォルトの名無しさん mailto:sage [2012/09/25(火) 00:42:40.80 ] 念入りに評価して自信持って結論出したならそんな質問不要 じゃなけりゃそんな質問無駄
57 名前:53 mailto:sage [2012/09/25(火) 19:12:52.59 ] >>54 レスありがとう どこかのサイトにも、Strutsは2.xより1.x利用者が多いと書いてあったけど 移行が終わっていないだけじゃなくて、2.xの出来が悪いってことか。 新規ならSpring MVCのが無難かな ORACLEが使いやすいFramework作らないからJavaの Web frameworkは混沌としてるな >>55 Play!スレに欠点が書いてあったよ
58 名前:デフォルトの名無しさん mailto:sage [2012/09/25(火) 19:18:45.87 ] Apache Wicket 6がリリースされた www.infoq.com/news/2012/09/wicket_6 wicket.apache.org/
59 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 03:28:52.72 ] >>57 Oracleが使いやすいFrameworkなんか作るわけないだろう Oracle(旧Sun)は、使いにくい JSF、JPA を推してくるだけだ。
60 名前:デフォルトの名無しさん mailto:sage [2012/09/26(水) 05:15:01.95 ] セミナーでハゲと外人にJSF2.0とJPA2.0は過去のバージョンと違って楽々開発だと洗脳され、金魚本買おうとした俺バカですか
61 名前:59 mailto:sage [2012/09/26(水) 09:55:47.77 ] >>60 それって今年5月の JavaUsersGroup CCC とか Java One かな? おれもいたぞw JSFはもううんざりだが、JPAは Hibernate とかもあるしいじってみようという気にはなる。 GlassFish は嫌いではない。 (WebLogic、WebSphere は重すぎる)
62 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 20:34:16.63 ] 禿の煽りを鵜呑みにする情弱はEE使って苦労していれば良いんじゃ無いかな。
63 名前:デフォルトの名無しさん mailto:sage [2012/09/27(木) 23:03:42.25 ] Playスレなんかどこに有んだよ。落ちたのか? と思ったら、PHP板に有った。
64 名前:デフォルトの名無しさん mailto:sage [2012/09/28(金) 01:26:56.63 ] >>60 過去のバージョンとは違うから! って力説されても前のバージョンが酷かっただけだからなあ
65 名前:デフォルトの名無しさん [2012/10/03(水) 23:21:23.33 ] 今ならSAStrutsとDB周りはS2JDBC もしくはSpringMVCにDB周りHibernateかなあ。 もしくはOracle一押しのJSF+JPA? なんかこの前OracleがやってたJSFの講座行ったけど 標準じゃないフレームワークはオワコンレベルでやたらプッシュしてたなあ。 ただ、JSF+JPAはTomcatだとどうも合わないんだよなあ…。 OracleなんざGlassFish使えで終わってるっぽいし。 今んとこ自分はSAStruts押しかなあ使いやすいし。 …まあ実際は保守案件でStruts1触ってる時間が一番長いんだけどさ。
66 名前:デフォルトの名無しさん mailto:sage [2012/10/03(水) 23:34:58.97 ] >>61 8月後半にOracle社であったJavaのJSFセミナーだと思う。 まさにハゲとオランダ人(だったと思う)がセッションしていたので。 JSF1.0はありゃ悲劇でしたねとか言って笑いを取ってた。 JSF2は良くなりましたとは言ってたけどさ。 ちなみに俺もその時は乗って金魚本を買おうとした。 結局まだ買ってないけど(笑)。
67 名前:デフォルトの名無しさん mailto:sage [2012/10/09(火) 18:51:47.06 ] Wicket+JDOがいいです。JPA2.0とか未だにインデックスも張れないだろ
68 名前:デフォルトの名無しさん mailto:sage [2012/10/09(火) 20:09:31.22 ] インデックス?選定ポイントそこ!?w
69 名前:デフォルトの名無しさん mailto:sage [2012/10/10(水) 02:45:38.49 ] じゃあJPA否定してどうすんだよ。 S2JDBCとかメソッドチェーンでクエリ書く様なのはJavaの構文じゃ無理。 C#のLINQみたいのが言語仕様で出てくるまではHibernate系のORMしかない。
70 名前:デフォルトの名無しさん mailto:sage [2012/10/10(水) 20:32:21.74 ] Java EE7やJava 8リリースでFrameworkの進化は期待できそう? これみたけどC#使ってるのでよくわからない www.publickey1.jp/blog/12/javajavascriptnashornopenjdkjavaone_2012.html www.publickey1.jp/blog/12/java_ee_7websocketsjpanosqljavaone_2012.html >>69 LINQいいね LINQ + Entity Framework最強 C#のHibernateは設定がめんどくさくて挫折したw
71 名前:デフォルトの名無しさん [2012/10/14(日) 16:32:52.50 ] 最近のJavaはどんどん進化してるな。
72 名前:デフォルトの名無しさん [2012/10/15(月) 13:01:59.73 ] 型推論 var array = new ArrayList<HashMap<String, Integer>>(); プロパティ setter getter ほしいな。 Servlet API 3.0 と ラムダ式で多少変わるぐらいだろう。 もう言語やフレームワークの進化は頭打ちだと思う。
73 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 19:11:41.68 ] varな型推論、プロパティ、ラムダ、AST操作、トレイト、パターンマッチング、非同期とか、その変が入った版がリリースされれば、とりあえずは満足してやんよ。
74 名前:デフォルトの名無しさん mailto:sage [2012/10/15(月) 19:21:46.96 ] 最近のJavaって進化してるのか? とりあえず、Xtendで出来るような事を標準でもできるようにしてほしい。
75 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 10:02:16.75 ] >>73 でもScalaは結局はやらなかった。
76 名前:デフォルトの名無しさん mailto:sage [2012/10/16(火) 10:27:38.54 ] Sunの時代にJavaは進化が止まっていた。 ORACLEのJavaになって多少は進歩するんじゃないか propertyは、C#やってる人間なら便利さがわかるが、 Javaの世界では「可読性がおちる」といって反対意見があった。 他のドットの意味と区別がつかないんだとさw C#は開発生産性重視で、柔軟にいろいろと取り入れているが Javaは厳格すぎるために生産性が悪くなってるな
77 名前:デフォルトの名無しさん mailto:sage [2012/10/17(水) 00:56:46.21 ] >>75 スカラはジャヴァ子の同人誌みたいなもんだからな。 本家が進化することに意味があるのだよ。
78 名前:デフォルトの名無しさん [2012/11/09(金) 09:30:12.50 ] 最新Java Windows8に入れてもおk
79 名前:デフォルトの名無しさん [2012/11/23(金) 23:04:32.71 ] SpringMVCだと、まだ日本では使ってるところ少ないのかな?
80 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 08:30:51.72 ] この前Javaのセミナーに行ったが、 ついにオラクルの担当者がSeasar2とTomcatをDisりはじめたのが印象的であった。 前々からStrutsならDisってたけど。 >>79 見たことないなあ…。まだSeasar2の方が多いんじゃないの日本では。
81 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 11:21:09.89 ] >>80 > ついにオラクルの担当者がSeasar2とTomcatをDisりはじめたのが印象的であった。 あの人はそれが仕事だから・・・(笑) 聴衆は、それを笑ってあげるのが仕事(話の内容が合っているかどうかに関わらず) ちなみにおれもその場にいた。 > 見たことないなあ…。まだSeasar2の方が多いんじゃないの日本では。 おれの周りでは SpringMVC のほうがかなり多い。Seasar2はだいぶいなくなった。 >>80 さんのレスを否定するわけではないが、日本全体でちゃんとした調査をしないと、そこら辺は何とも言えんのでは。
82 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 12:53:34.35 ] 俺の周りもSpring MVCが多いよ。 Seasarはもう役目を終えた感じだし。 ついでにJAX-RSは良いねという意見を聞くこともあるけど、Spring MVCの完全置き換えが出来るようになるのはJ2EE8とか9の頃じゃね、とも思う。 あと、良いのはJAX-RSではなくJerseyだろ、っという話もあるけど。
83 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 13:56:20.03 ] >>80 寺田氏?ならTomcatは前々からおおっぴらにdisってたな とはいえGlassfishを運用する勇気はねぇっす
84 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 13:58:18.68 ] >>82 Seasarは中の人がJavaからいなくなったしな
85 名前:デフォルトの名無しさん mailto:sage [2012/12/03(月) 17:49:10.59 ] TomcatをdisったりGlassfishをステマするのはまだわかるよ。 でも、開発にJ2EEを使え、っというのは笑うところ。
86 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 00:55:45.19 ] >>85 J2EEじゃなくてJavaEEだろ! と笑えって意味?
87 名前:80 mailto:sage [2012/12/04(火) 01:27:58.76 ] >>81 自分の周りがそうだってのはあるけど、 やっぱり他の会社が何使ってるかってのは参考になるよ。 Seasarスゲー安定してると思うけど、確かに発展性ないのは痛いからね。 SpringMVCは使ってみたいんだけどなんか昔やった時やたらとっつきが悪かったイメージがあって…。 最近大分あれから使いやすくなってるとは聞いてるんだけどね。 ネットで調べろって言われるんだろうけど、いい解説書があればいいんだけどなー。 ・・・もっとも、今やってる仕事デフォのStrutsアプリの改良案件だから それ以前の問題がうちの会社にはあるけどね。 あんな馬鹿デカいアプリSeasarにせよSpringにせよ移行できないよー(涙)。
88 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 08:43:26.29 ] >>85 JavaEEのツールですべてまかなえ、ということだろう やさしいな、おれ
89 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 09:03:53.58 ] ごくごく小規模ならJSF2.1にEJB3.1orCDI、裏はJPA2.0とかで組めなくもないけど… 小規模でやるには仕組みが大げさすぎるし、逆に大規模になると今度は大雑把すぎて扱いにくいんだよなぁ。 足りないところを色々と足して俺俺F/W作って教育するくらいなら、技術者集めやすい他の選択肢を探してしまう
90 名前:81 mailto:sage [2012/12/04(火) 10:34:09.96 ] > >>81 > 自分の周りがそうだってのはあるけど、 > やっぱり他の会社が何使ってるかってのは参考になるよ。 あ、それは私もそう思うので、正しいかどうかは置いといて、 「自分の周りだこうだよ」っていうレスは、うれしい資産高になりますね (そういう意味では >>81 の自分のレスは書き方が良くなかった) ただですらJavaの開発現場は衰退してきているので。 > Seasarスゲー安定してると思うけど、確かに発展性ないのは痛いからね。 たしかにSeasar2は発展性はないだろうけど、安定はしているし、Springよりは簡単で軽くていいと思う。 使い捨てとか、あまり大規模にならない開発だったら選んでもいいと思うけどね。 Springはアノテーション地獄になって読みづらいし、追いかけづらくなった。 XML地獄の方がまだマシだと思う(あとからメンテする側としては、追いかけやすい)
91 名前:81 mailto:sage [2012/12/04(火) 10:35:30.46 ] あ、 >>90 は >>87 へのレスです。 あと、誤記: 誤: 「自分の周りだこうだよ」っていうレスは、うれしい資産高になりますね 正: 「自分の周りだこうだよ」っていうレスは、うれしいし参考になりますね
92 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 12:48:08.37 ] >>89 まさにそれが使われない理由だよな。 >>90 うちもSpringだよ。 アノテーションが追いかけづらいという話をする人はいるけど、自分はそうかな〜?、と思う。 アノテーションを使うところってある意味明示的な記述をするところだし。 まあ、依存関係の設計でおかしな事をしていたり、独自のアノテーションとかを使って アノテーションやAOPではなくFWの拡張ポイントやスコープでの処理で解決すべきところまで 乱用してわかりにくい設計をしていたりとかは見たことあるけど。 そこはあまり優劣を比較するポイントにはならないかな、っというのが自分の感想。 Seasarも、個々のプロダクトではまだまだ良いな、っと思うものも多いんだけど、 色々考慮した結果うちではSpringを全面採用しているよ。 もっとも、Spring最高だと思っているわけでは無くて、消去法で消していくと現時点ではSpringが残るというだけだけど。
93 名前:デフォルトの名無しさん [2012/12/04(火) 20:06:05.56 ] S2JDBCと対するSpringプロダクトって何? S2JDBCがあるから、なかなかSpringへ踏み切れない。
94 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 20:53:08.58 ] >>93 専用のO/Rマッパーはないはず。 親和性の高さだとHibernateが一番だと思う。 あと、有名どころのプロダクトならSpringとつなぐための仕組みが提供されてるからその辺りの選択肢は広いよ。
95 名前:デフォルトの名無しさん mailto:sage [2012/12/04(火) 21:13:48.85 ] >>93 そうそう、SeasarはS2JDBCは良いんだけどね−。 他のFWでデータアクセスする時は、APTでマッピング用のDTOから条件式用のクラスを作ったり、 多少賢いSQLビルダーを自作して、実行とマッピング自体はFW付属やその他データアクセスFWの エンジンを使うことで、S2JDBCに近いことができるようにしているかな。 逆に言うと、S2JDBCに近いことをやりたいなら、SQLビルダーの自作やメタデータ系クラスの 操作なんかは必須。
96 名前:デフォルトの名無しさん mailto:sage [2012/12/05(水) 01:27:48.84 ] >>93 S2JDBCをSpringで使うってネタは豊富にあったはず 2way SQLがよければDBFlute, Doma, MirageなんかはSeasar2に依存してない
97 名前:デフォルトの名無しさん [2012/12/05(水) 20:31:55.99 ] 関連して聞いてよい? HibernateとかJPAって本当に使われているの? 結局、Criteriaとかこねくりまわしたり、SQLの代わりにxQL使ったりが必要になるので、 それならSQL書く(2way SQL)っていう選択しているところしか見たことないんだけど。
98 名前:デフォルトの名無しさん mailto:sage [2012/12/05(水) 20:54:09.65 ] 直近2年で6システムに絡んだけど採用0だったな。 2システムは客の親会社が作ったF/W(JDBCラッパーレベル)、 残りはMyBatis2, DOMA1, S2JDBC1。 客視点で見た時にもSQLはわかりやすいんだろうなぁと思う。
99 名前:デフォルトの名無しさん mailto:sage [2012/12/05(水) 22:33:15.22 ] Hibernateなんかが想定しているオブジェクトモデルと、 Javaが多く利用されているであろう業務システムのデータ設計、クエリパターンは異なるので、 採用が少ないというのもまあ当然なんだろう。
100 名前:80 mailto:sage [2012/12/05(水) 23:03:29.36 ] >>97 Hibernateは使ったことがある。まあ悪くない。 JPAは・・・ごめんよくわからない。 仕事は今のところS2JDBCか、 そうでなかったら直にSQL書いてせいぜいCommonDBUtilかます程度。
101 名前:デフォルトの名無しさん mailto:sage [2012/12/05(水) 23:43:06.07 ] 仕事で今までSpringもSeasarも使ったことがないんだけど、 最近はSpringが多いのでしょうか
102 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 06:20:39.96 ] 何が使われるのか?なんてのは F/W 選定できる権限持ってる担当者の コダワリとか、会社の文化やらでだいぶ変わるんじゃないかな? ゴールを取れる事が本質だとは思うけど。周りが使っているのは気になるね。 ということで、私の環境も晒しておくよ。自分たちで選定できる案件なら、ここ数年は Tapestry5系と MyBatis3 が中心。あとは分散時に Spring の Remote を使うかな? 他では類を見ない変態的構成かもしれんw
103 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 07:07:48.52 ] Struts1.3だけ使ってるけど時代遅れ?
104 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 09:24:23.71 ] 国内に限定するとStruts1.3もまだまだ現役だと思う。それしか使わないのは珍しいと思うけど。 特に銀行、証券みたいなお堅いところの独自F/Wのベースになってるのも多いね。 日本企業は自社の過去実績にかなりうるさいし、 選定する側も新しいものをなかなか勧めようとしないから仕方ないんじゃないかなー 例えば今のうちの顧客の場合、顧客内の採用事例がないF/Wを選定する際は 通常の見積り資料に加えて顧客指定フォーマットの新技術検討資料なるものが必要で、 検討資料を作ると小規模案件1個分くらいのコストがかかる。 しかもそれでダメと言われたらその案件は失注確定(見積りのやり直しが許されてない)ってリスクがあるからまずやらないわな。
105 名前:デフォルトの名無しさん [2012/12/06(木) 10:59:02.32 ] Hibernate バリバリ使ってるけどなー。複雑な業務ドメインでドメイン指向なら普通じゃない? SQL 直接書くとか有る程度の規模のプロジェクトだと無いわーって思う。 それはそうと、今 Java で Web アプリって何が良く使われてるのか確かに不思議ですね・・・。 Rails みたいに決め手になるようなものが無いし、わざわざ Java で作らなくても・・・って思う(とはいえ会社では Java を使わざるを得ないところはあるんだけど)。 Project Avatar はいつリリースなんですかね?
106 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 11:13:53.50 ] 複雑な業務ドメインの場合、パーシステントの実装とモデルはむしろ分離しているからなぁ。 リポジトリを境界にして、その内部はSQL書くでもかまわない感じで。 大規模というか大量になったときにSQLを書きたくないのはそうだけど、 基本的な処理の自動生成なんかはどのFWにもあるし。 業務系といっても、レポートが大半、DB設計もそれを想定みたいな所が多いから、結局SQLというケースになるんじゃないかな。
107 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 11:24:07.78 ] 個人的にはJSP&Servletが最強
108 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 13:34:47.17 ] 5年前ならともかく, いま皆さんが Web アプリ作るのにわざわざ Java を使う理由って何ですか?Ruby とか Python で十分な気がするんだけど・・・。
109 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 14:42:34.80 ] 業務系アプリ作るならやっぱり静的言語のほうが安全なもんで
110 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 15:28:34.02 ] >>108 運用側が(彼等にとって)新しいのを入れたがらないから常にJava前提
111 名前:デフォルトの名無しさん mailto:sage [2012/12/06(木) 23:21:33.64 ] >>108 RubyとかPHPならありかもしれんけど、 日本でWebにpythonはないと思うよ。 何故と聞かれたら情報がない。 Java、Ruby、PHPはいろいろ探せばwebアプリ作成のための情報ソースが その辺にいくらでも転がってるからね。 ちなみにあえてJavaである理由って言えば既存の資産が既にJavaだからだね。 今のの保守と新規の開発を両立するのならぶっちゃけ言語変える必要がないので。 別の環境作んないといけないじゃん。 別にEclipseとか使って開発する分にはそんなPHPとかに比べて開発しにくいとも思わないし。 困った時にはライブラリ探せば結構どうにかなるくらい既存の資産が大量にある。 もちろん慣れてるってのも大きいけど。 それにもいろいろ変えるにはお金がかかるし、なんで今動いてるやり方じゃダメなのって意識が 顧客にあるので意外にOKしてくれないのよ。 >>104 さんみたいな事例はいっぱいあるからねえ・・・。
112 名前:デフォルトの名無しさん mailto:sage [2012/12/07(金) 00:55:35.11 ] 新規開発は一瞬で終わりだけど、その後の長く続くメンテは お客さんのシステム部門(子会社が多い)が既存システムと 掛け持ちでやるから、既存システムと同じ技術ベースが 求められるケースが多いな 部分最適(案件毎に最適な技術を選択)の総和が全体最適に なるとは限らないってやつだわ
113 名前:デフォルトの名無しさん mailto:sage [2012/12/07(金) 10:38:55.48 ] Javaは、いい意味でも悪い意味でも、これからのCOBOL、VB6 になっていくと思う。 先鋭的な技術系の会社、ベンチャーと違い、SIerやヘボいソフトウェア開発会社は、Javaしかできないやつが多すぎるから。 逆に言うとJava要員は集めやすい。 バージョンの下位互換もかなり取られているし。
114 名前:108 mailto:sage [2012/12/07(金) 11:26:07.76 ] なるほどやっぱり運用考えるとそうなっちゃうんですねぇ・・・。 今までずっとリッチクライアント作ってたんですが、今度 Web アプリ作ることになったんですがどうやって作ろうか悩み中です・・・。 スクリプト言語使えるなら Ruby で十分かなーって思ってたんですが、色々しがらみがあるんでしょうね。 Web アプリって結局文字列処理になっちゃうので、静的型付け言語であるメリットがかなり薄れちゃうなーという印象があるんですよね・・・。 Play! framework みたいにタイプセーフに HTML テンプレートを書ける仕組みを持つフレームワークとかあれば良いんですが。 このスレを見ていると今 Java で作るなら何が良いんだろうって悩んじゃいますね・・・やっぱり Spring MVC なのかな・・・。
115 名前:デフォルトの名無しさん [2012/12/08(土) 02:17:18.08 ] Javaは良いWebのフレームワークとORMがないのは事実 ASP.net MVCとC#でやるのが開発生産性が最強だよ 言語の開発生産性 C# > Java フレームワークの生産性 ASP.net MVC > Java系フレームワーク(定番といえるものがない) ORMの開発生産性 Entity Framework > Java系ORM 情報量 ASP.net MVC、Entity Frameworkの圧勝 >>114 リッチクライアントは何の言語でやってたの? Rubyは言語仕様がころころ変わってすぐ動かなくなるクソ言語だよ 動的言語だし、保守考えたら、開発生産性は最低レベル あとWebアプリでも、Type Safeは重要だと思う
116 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 08:51:32.87 ] MS狂と議論してもしょうがない
117 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 10:03:33.47 ] >>113 Javaでビジネスロジック程度のプログラムを書くことしかできない技術者は多い。 フレームワークを自力で設計・構築できる程度のスキルを持つ技術者とか アプリケーションサーバやJavaVMの内部を熟知している技術者はほとんどいないね。
118 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 10:17:57.48 ] アンチMSもちょっとなぁ。 どっちの信者でもなければ>>115 の言ってることは正しいもん。
119 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 10:54:04.22 ] >>118 俺もJavaよりC#の方が…とは思うが、このスレでそれを言っても荒れるだけだと思うので控えておく。
120 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 11:07:03.44 ] >>118 こんにちはMS信者
121 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 11:25:00.20 ] うちも今はSpringMVC使ってる。 O/RマッパーはMyBATIS。mybatis-springっていうlibがあって 親和性も悪くない。 SpringMVCで通常は、ControllerクラスのメソッドはModelAndViewクラスを 返すと思うんだけど、画面とサーバー側は疎結合にしたかったんで StringでJSONのみをやりとりするような構造にしてる。 画面側はよくある一覧詳細型なもんで、jQueryベースのjqGridで構築。 この構造だと、画面側もサーバ側も、互いの進捗にはほとんど影響され ないから分業体制が作りやすい。 SpringMVC+MyBATISの構成で基盤部分作っちゃうと、あとは ビジネスロジックとSQLと、その間をつなぐService,Mapperあたりを 作ることに専念できてなおかつ他のプロジェクトにも使い回ししやすいんで ASP.netでC#とかにも手を出したいと思いつつ、なかなか踏ん切りがつかない。
122 名前:113 mailto:sage [2012/12/08(土) 13:20:30.50 ] >>114 サーバサイドがJavaで、リッチクライアントとしてクライアント側が ・VB.NETネイティブ(会計システム。データはXMLでやりとり) ・BizBrowser(会計システム。データはXMLでやりとり) ・CURL(物流系システム。データはCSVでやりとり) という組み合わせをやったことがある。 サーバサイドはSpring。別にリッチクライアントだったらSpringというわけでは ないけど、そのプロジェクトで選定をしている時点で 「JavaだったらSpringでいいんじゃない(あと、経験者が結構いた)」 という感じで決めた。 アーキテクチャとしては >>121 みたいな感じで、SpringMVCにしておけば、 View層がHTMLだろうとリッチクライアントだろうと、 ModelAndViewのところでXMLなりCSVなりJSONを返すように変えればいいだけだし、 コントローラ層より先は、普通の案件と何ら変わりはない。 それに、そもそもこの考え方であれば SpringMVC が必須であるというわけでもない。 10年ぐらい前、似たようなことをStrutsのみでやったことがある。 (jspにforwardする代わりにXMLを返すようなところを自作した)
123 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 13:50:25.31 ] BizBrowser とか懐かしいな。8年ほど前にそれ用のリクエスト処理と JSON 返す Java 製のシンプルな枠組みとクライアント側のライブラリを セットで書いたことがあるわ。それ以来使ったこと無いけど。 リッチクライアントとかと連携するサーバシステムって、結局 HTML の代わりに クライアントが欲しいデータとのやり取りができればいいだけだから、 HTTP ベースなりの API を整備すれば大概事足りるよね。
124 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 21:32:47.36 ] RIA用途だとJAX-RSとかが使われるようになっていくのかねぇ? 今のところ、拡張ポイントやヴァリデーションとかを考えた場合に、SpringMVCを使った方が良い気がするけど。
125 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 21:37:10.77 ] 普通にStrutsとJSPで今もシステム作ってるが、 最近Ajax的なの当たり前に要求されるようになったから JSONか下手すれば直にHTML書いて送って Jqueryでぼんみたいなことばかりやってるから正直既存機能とのかい離が激しい。 出来るものなら全部作り変えたいがもちろんそんな余力はない。
126 名前:デフォルトの名無しさん mailto:sage [2012/12/08(土) 23:37:41.63 ] バリデーションはむしろ、JavaScript側でやっちゃいたい。 JAX-RSってRESTFulなことやるんだっけ。実装は別? SpringMVCのコントローラでもアノテーションでRESTFulなこと できるけど、どっちが軽量なんだろ?
127 名前:108 mailto:sage [2012/12/09(日) 00:34:34.19 ] 大分亀レスですが・・・ リッチクライアントは Swing でゴリゴリ。RMI でつなぐことが多かったですねー。 非同期分散処理・サーバーからの push によるクライアントのリアルタイム更新とかもあったのでサーバーとクライアントは割と密結合でした。 今度から担当する Web の方はそれほどリッチな機能を求められていないようなので、もっと疎結合にした方が良いんでしょうね。 Rails + Backbone.js みたいに RESTful サーバで JSON 返してクライアント側で MVC って感じでしょうか。 それぐらいなら JAX-RS 使えば良いのかなーと何となく想像しました・・・(といっても Java で Web 開発って何が普通なのかサッパリ知らないのですが) しかしそれなりの人数で JavaScript 書くとかあんまり考えたくないなー。チーム開発なら皆さん JS でも IDE とか使ってるんですかね?
128 名前:108 mailto:sage [2012/12/09(日) 00:36:21.77 ] あ、レスが別になっちゃった・・・。 >>115 C# で Web 開発ってあんまり聞いたことないですけど(当然だけど)普通にあるんですね。会社的には C# より Java が基本なので採用はちょっと難しいですが・・・。 >>113 なんか色々やってますね・・・。今度のプロジェクトはクライアントが HTML だったり Excel だったりするみたいです。 Excel を使った EUC クライアントみたいな感じの機能を沢山作る必要があるとか。Excel と上手くつなぐ方法があんまり無さそうなんですが・・・。
129 名前:デフォルトの名無しさん mailto:sage [2012/12/09(日) 09:46:56.19 ] Visual StudioでExcelブックなアプリケーション作成ってあんま情報無いよな。 Excelも2013だとWEBSERVICEなんてものもあるけどなw
130 名前:デフォルトの名無しさん mailto:sage [2012/12/09(日) 09:48:29.53 ] JAX-RSって、実務経験の足りない優等生、っていうイメージがあるんだよなー。
131 名前:113 mailto:sage [2012/12/09(日) 15:09:36.86 ] JAX-RSを使う場合(自分は使ったこともなく、webで斜め読みした程度の知識しかないですが), どのプロダクトを使うのがいいのかな? やっぱり Tomcat + Jersey が一番ポピュラーなんだろうか。 あとは Glassfish は標準で JAX-RS に対応しているみたい。 というかJavaEE6 に準拠しているコンテナは標準で対応しているのか。 さっき見つけたページ JAX-RS(Jersey)を使ってみる - azuki note d.hatena.ne.jp/w650/20110119/1295411262 あと、最近このスレが活気づいていてうれしい。 自分はRailsも好きだしPlay!も気になるけど、なんだかんだでJava歴が一番長いので。
132 名前:デフォルトの名無しさん mailto:sage [2012/12/09(日) 18:11:32.73 ] デファクトはJerseyじゃないの Glassfishが組み込んでるのもJerseyじゃなかったけ? JAX-RS、前に採用しようとして評価したんだけどさ。 そのときの感想として思ったのは、結局、実装固有の機能とかを使わないと、 JAX-RSで定義されている仕様だけだとちょっと(´・ω・`)だな〜という点。 それはJAX-RS 2.0の仕様を見る限りも微妙な感じで。 まあ、将来には期待しているけどね。
133 名前:108 mailto:sage [2012/12/10(月) 10:58:04.97 ] Dropwizard というものを発見しましたがどうでしょう。 これは JAX-RS を使ってるみたいですね。 dropwizard.codahale.com/ Jetty を内包していてスタンドアローンで動くようです。
134 名前:デフォルトの名無しさん mailto:sage [2012/12/10(月) 15:20:26.80 ] xsltを使用したフレームワークってないのかな
135 名前:113 mailto:sage [2012/12/10(月) 15:52:41.00 ] >>134 大昔から cocoon や Xalan があるではないか Xala は XML 出連携されてきた内容を HTML に変換して表示、とかやったな。
136 名前:デフォルトの名無しさん mailto:sage [2012/12/14(金) 00:38:24.74 ] xsltとかタグライブラリとか、マークアップ言語大嫌い
137 名前:デフォルトの名無しさん mailto:sage [2012/12/15(土) 09:23:47.44 ] JavaScriptでゴリゴリDOM操作して CSSでスタイル当てる方が好きだな
138 名前:デフォルトの名無しさん mailto:sage [2012/12/15(土) 22:25:08.69 ] ちょっとでかい会計系のWebアプリ立ち上げる計画があるそうだが、 フレームワーク何にするかなー。 今ならSpringMVCですかねー。個人的にはSeasar2にしたいけど、 これからの大規模プロジェクトで採用するのはつらいかもなあ。 小規模なら遠慮なくSeasar2にするんだけど。 でも上司の思うが儘にやらせてたらStrutsとかになってしまいかねんし 早いうちから口酸っぱく違うフレームワークにしよう運動しとかないと。 JSFとかは・・・うーんよく知らないので判断がつきませんわ。
139 名前:113 mailto:sage [2012/12/16(日) 01:30:49.93 ] JSFは、細かいところで身動きが取れないので止めた方がいい。 Strutsは、悪く言えばごりごり書けば、汚くなるけどいくらでも逃げ道はある。 会計系というか業務系だと、顧客のいうことを聞いて実現しようとすると、 かならずフレームワークの流儀に合わない画面制御のところとかが出てくる。 多少汚くなってもいいから、逃げ道があるフレームワークを選んだ方がよい。
140 名前:デフォルトの名無しさん mailto:sage [2012/12/16(日) 03:06:02.73 ] Struts使うなら、v2よりv1だな Seasar2もいいけど、Tomcat7あたりは大規模でも十分使えるよ
141 名前:デフォルトの名無しさん mailto:sage [2012/12/16(日) 08:58:23.46 ] 自分はSeasar2が良いと思っていて、プロジェクトをコントロールできる自信があるならSeasar2で良いんじゃ無いの? 今後の発展に期待が出来ないだけで、悪いものな訳じゃないし。 多少の生産性より柔軟性の方が重要なのは139の言うとおりで、JSFはまず無いし、Springはありで。
142 名前:デフォルトの名無しさん mailto:sage [2012/12/16(日) 09:29:56.11 ] 「アーキは予測できないことを予測しろ」って誰かエロい人が言ってたけど、 想定外の状況が生まれた時に一番対処できる自信のあるのを選ぶのがいいかなー。 こと仕事においてはあまり冒険をしないで堅実にやれるのがいいと思う
143 名前:デフォルトの名無しさん mailto:sage [2012/12/16(日) 09:35:44.44 ] だよな。やっぱりStruts1が最高
144 名前:138です。 mailto:sage [2012/12/16(日) 11:39:49.96 ] いろいろ意見もらえてうれしいです。 >>139 JSF・・・叩かれてること自体は知ってますが、そんな使いにくいんだ。選択肢から外します。 >>142 の意見は確かにその通りだなーと思います。 Struts(もちろん1)もそう考えるとうち開発者Strutsが多いんで考え方的にはありなのかなあ。 Struts2は一回検討してなんじゃこりゃとなったのでもう選択肢にはないですね。 とすると・・・ Seasar2(使いやすい) Struts1(経験者多し) Spring(使ったことはあるけど上二つほど自信ないっす、 慣れるといろいろ便利なプロダクトがあるけども・・・) この3択(今のところ上二つのどっちかにってことになるのかな)。 うちの会社で堅実な選択肢となるとやっぱり上二つのどっちかになりますね。 まだもうちょっと先の話なんでいろいろ相談しながら決めていきます。
145 名前:デフォルトの名無しさん mailto:sage [2012/12/17(月) 17:26:53.84 ] RESThub ってのを見つけた。 resthub.org/index.html
146 名前:新しいSpringでたぞ [2012/12/20(木) 10:07:25.62 ] SpringSource Spruce Up Spring MVC as Spring Framework 3.2 Goes GA www.infoq.com/news/2012/12/spring-32 VMware's SpringSource team has released the GA version of Spring Framework 3.2
147 名前:デフォルトの名無しさん mailto:sage [2012/12/24(月) 09:08:10.96 ] Play! は選択支にはいらないですか。
148 名前:デフォルトの名無しさん mailto:sage [2012/12/24(月) 10:27:40.04 ] >>147 昔Play検討したときにDB周りに問題ありそうだったので選択肢から外したことあるけど今どうなんだろうな。 ・・・でも今の日本でPlayとかここでの評判劇悪のJavaEE6より敷居が高そうだ。 あえてPlayにする理由がないと思う。
149 名前:デフォルトの名無しさん mailto:sage [2012/12/24(月) 12:28:21.18 ] 自分の感覚だと、Play は seaser 使うなら Play(2系) の方がコード量が少なく作れるなあ、という感じ。 DB は RoR な設計を出来るシステムだと ejb とか jpa で綺麗に作れる。 複雑なSQLが必要なシステムだと、Play にする旨味はない。 と思ってます。
150 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 00:01:00.50 ] 業務系のWeb層ならApache Wicket最強だな!と思うんですが、なかなか賛同されないんですよねぇ。 最近はちょっとした社内向けWebアプリを作るのにGrailsにハマってます。
151 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 11:14:06.31 ] >>150 使ったことないんだけど、Wicketがどの辺がいいの? 何々のフレームワークと比べてXXだからいい、と具体的な理由が聞いてみたい。
152 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 13:31:31.50 ] 他のフレームワークはコード量を減らすおまじないに終始したり、 ホットデプロイとか小さいアプリ向けに特化している。 Wicketは大きなアプリになっても長所を失わない。 Wicketで小さなアプリから大きなアプリまで堅実に作れる。 あと地味にテスト環境が秀逸。
153 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 13:38:36.55 ] Wicketの欠点はIDEにスケルトンを自動生成してもらわないと疲れるぐらい スケルトンコードにあたる定型コードが多いことだな。 HTMLから生成するツールなりプラグインなりあればいいんだが なぜ誰も作らんのやら。
154 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 13:40:44.05 ] Wicket見てるとどことなくASP.NETを思い出す
155 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 15:03:36.62 ] ASP.NETはJSFとWicketの中間っぽいような。