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
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の中間っぽいような。
156 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 15:09:40.52 ] struts3どうなったんだろう
157 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 17:11:39.00 ] ついでに Click との比較もあればコメントしてくれ。 何年か前に矢野さんの Wicket の本が出たとき、流行るかなと思ってたけど 日本のSierでは浸透しなかったな。 Struts とか SpringMVC の要員しか見つからず、Wicket 経験者がいないとか、そういうのが問題なんだろうか。 あと、同僚が >>153 みたいなこともネック、って言っていた。 >>154-155 今度、初めて ASP.NET (ASP.NET WebForm なのか、ASP.NET MVCなのかはわからない)の仕事に 入るかもしれないんだけど、このふたつは SpringMVC や Struts などとくらべて、どっちが洗練されているんだろう?
158 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 17:42:30.19 ] ASP.NETは前世代思想のSpringMVCやStrutsより勝ると思うが、 新世代系FWは学習コストが高いから、実際には苦労する。
159 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 17:45:50.00 ] ASP.NET MVCは使ったこと無いけど、ASP.NET WebFormは、 昔のVBライクにポトペタで作れたりするので結構楽ですよ。 作法に則ったアプリ作る分にはStrutsとかより全然楽かと。 Wicketも同様(?)に、html+javaでコードが散逸しないし可読性高いのが良い。 ボタン押下時のイベントは〜みたいな書き方で作れる。 欠点も裏返しで、ボタン押下時のイベントに1000行くらいの業務処理を書いたりするような プログラマに使わせたときに手に負えなくなったりする。
160 名前:157 mailto:sage [2013/01/23(水) 18:38:58.51 ] >>158-159 レスどうもありがとうございます。 いままでJavaがほとんどで(Railsは多少経験があるが)、 そもそも web開発 だろうがデスクトップアプリ開発だろうが、.NET による開発が初めてなんだけど、 がんばってみようと思います。 JavaとC#の両方に精通している同僚が、ASP.NET MVC + Entity Framework はおもしろいよって言ってた。 ひまなときに wicket やってみるか。
161 名前:デフォルトの名無しさん mailto:sage [2013/01/23(水) 21:47:36.20 ] >>160 C#erだけど、ASP.net MVCとWebFormは開発方法がかなり違う。 WebFormはポトペタで一見楽そうに見えるけれど、HTMLを 細かく制御したい場合には一気にハードルが高くなる。 「細かいデザインなどどうでもいい」、という用途以外では使いづらい。 例えばモバイルだとデバイスごとに出力html変えたりするけどそういうのも難しい。 あとは、WebFormは無駄な通信が発生しやすいアーキテクチャで パフォーマンス上もよろしくない。 大量のhiddenフィールドと無駄なラウンドトリップ、ポストバック処理が原因。 インターネットサービスなどには向かない。 一方、asp.net MVCはアウトプットHTML、CSSを完全に制御できる。 パフォーマンスも高速 ASP.net MVCのほうが圧倒的にものがいい ASP.net MVC覚えたらMVCだけを使う人のが多い感じ WebFormは古くなりつつある。 ASP.NET MVC + Entity Frameworkがいいっていう同僚の意見には同意する。 Javaで同等レベルのものを探してるが見当たらない。
162 名前:157 mailto:sage [2013/01/24(木) 08:00:23.06 ] >>161 レスどうもありがとうございます。とても参考になります。 今度行くかもしれないチームは、すでにWebForm ですでにつくっていて、 これから ASP.NET MVC に作り替えるって言ってました。 (自分がどこから作業するのかはわからない) >ASP.NET MVC + Entity Frameworkがいいっていう同僚の意見には同意する。 いまは喰らうどの人になってしまったが、以前、Seasarプロジェクトのshotタソも、勉強会で同じことも言っていた。
163 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 10:20:17.98 ] なぜかDBがOracleでEntityFrameworkが使えないというオチに100000ペリカ
164 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 10:29:03.20 ] >>163 Microsoftが作った、というだけでそういう誤解を受けるんだよな Entity FrameworkはMySQLでもPostgreSQLでも ORACLEでもSQLiteでも使える。 SQL Server限定のORMではない。 今はEFは、Linuxの.net(Mono)上でも動く。 しかもオープンソース entityframework.codeplex.com/ ASP.net (asp.net MVC含む)もオープンソースになっていて、Linux上で動く
165 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 10:37:28.47 ] ん?今は使えるようになったのか? 誤解というか普通にOracleが対応してなかったはずなんだがな。MSじゃなくOracleのODP.NETが対応してない。 ざっと調べたけど、まだEF5に対応したという記事はみかけなかったけど。
166 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 10:37:38.11 ] ASP.net のオープンソースのリポジトリって、 aspnetwebstack.codeplex.com/ かな。 codeplex って MS がやっているオープンソースのサイトだよね。
167 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 10:52:40.24 ] >>165 EF側ではなくORACLE側が対応してなかったって話? ぐぐったらすぐ出てきたけど www.infoq.com/news/2012/01/oracle-ef www.oracle.com/technetwork/jp/topics/dotnet/downloads/oracleefbeta-302521-ja.html MySQLは最新のConnector/netでEF4.3対応した、とリリースされていた。
168 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 11:03:06.80 ] >>167 > ざっと調べたけど、まだEF5に対応したという記事はみかけなかったけど。 > EF5 www.infoq.com/news/2012/01/oracle-ef > support for Entity Framework 4.1 and 4.2.
169 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 11:26:06.15 ] >>168 163ではEF5とはいってないじゃないかw ORACLEで使えるとレスあったとたんにEF version5限定にハードルあげるなよw 最新のEF5使えれば最高だろうけど、EF4.xでも他のORMよりましだと思う。 Java世界のORMはよく知らないけど、JavaのORMでEFみたいにTypeSafeなORMってあるの? HybernateとかはXMLマッピング地獄なんでしょう?
170 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 13:59:36.96 ] JPAとかS2JDBCとかあるし、今更XML地獄は古いよ。 だけどアノテーションやメソッドチェインも万能じゃない。 LINQがあるだけC#の方が短くかけるだろうけど、思想面では同じようなもん。
171 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 14:26:01.47 ] 用途は限られるがslim3ならメタクラス使ってTypeSafeなORM実現できるよ (GAEのDatastoreのみ)
172 名前:デフォルトの名無しさん mailto:sage [2013/01/24(木) 19:52:13.04 ] APTで作ったメタクラスを使うのと式木では、式木の方が表現力や柔軟性はある気がする。 あと、ちょっとしたものならEFで良いかもしれないけど、用途によってはMicro-ORMとかを使うし。 そういえばサイボウズの社内システムで、Oracleの商用プロバイダを使っているとかいう話もあったね。 ttp://developer.cybozu.co.jp/tech/?p=2071
173 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 17:24:41.22 ] JAX-RS 人気ないですねぇ。 Jersey がデファクトなのかなと思いつつ、ドキュメントのしょぼさを見るとつい RESTEasy の方が良いんじゃないかと思ってしまう・・・。
174 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 19:41:28.01 ] 人気ないか? 他のFWに比べれば評価は高い気がするけど。 ただ、本当の実用を考えるなら、現状の各種実装系固有の良いとこどりしたレベルのものが出ないと厳しい気がするけど。
175 名前:デフォルトの名無しさん mailto:sage [2013/01/26(土) 22:38:07.97 ] 評価は高いけど実用してる人が少ないなーという印象。 自社運用の Web サービスとかで使ってるところはあるみたいだけど、エンタープライズでは使ってるって聞いたことない。 正直表面的なところだけ見ると他の FW より断然良いなと思うんだけど、やっぱり機能面で何か不足があるんですかねぇ。 それとも経験値の問題で、わざわざ他から移るほどの価値を見出せていないだけなのかどっちなんだろう? エンタープライズ向けの Web アプリを JAX-RS + Backbone.js とかで作るのはやっぱり危険ですかね?
176 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 14:14:22.26 ] JAX-RSは2.0出てからかなぁという印象、いつになるか知らんが
177 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 15:24:47.38 ] JAX-RSってSpring MVCに比べてメリットってあるの? 煽るわけじゃないんだけど、アノテーション使った書き方はそう違わないし、 実用度の点からは細かいところにまで手が届いているSpring MVCで良い気がするんだけど。
178 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 18:00:33.00 ] Spring MVC って思いっきり Framework って感じで重すぎる印象があってあんまり好きじゃないなー。 まぁそれはともかく Spring MVC は REST 対応が後付け感じがあるんですがどうなんでしょう? RESTful なサービスを作りたい場合は JAX-RS の方に優位性があるのではと思ったりするんだけど。 例えばサブリソースの表現とかは Spring MVC だとベタに書かないといけない気がする(調べたわけではないけど)。
179 名前:169 mailto:sage [2013/01/27(日) 18:20:33.70 ] >>170-172 サンクス。 JavaのORM = Hibernate = XMLマッピング地獄だと思ってた。 GoogleやSeasaaは使ってないからS2JDBCとかはむりっぽ JPAとやらを少し調べたけど良さそうだな POJOを使うORMで、POCOを使うEntityFrameworkに少し似てる感じがする。 下ページでは、JPAの主要な実装は、TopLink Essentialsおよび Hibernate EntityManagerと書いてあった。2006年の記事だけど。 news.mynavi.jp/special/2006/jpa/index.html Javaで使用率高いORMは、JPAとTopLink Essentialsの組み合わせかな? 両方オラクル純正だし Web Framework(for Java)の海外トップシェアはSpring MVCみたいだ。 ソースは俺の検索結果(主に海外サイト)
180 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 18:21:36.77 ] つ ttp://www.infoq.com/articles/springmvc_jsx-rs
181 名前:デフォルトの名無しさん mailto:sage [2013/01/27(日) 21:55:42.86 ] >>180 読んでみたけど全体的に JAX-RS の方が美しく感じる。 ・レスポンス ・Conneg ・例外ハンドリング あたりは JAX-RS の方が良いと思った。けど実用性は多分 Spring MVC なんだろうな・・・。 各 JAX-RS 実装の拡張が色々あるから実際にアプリつくるときにあまり困ることはそんなに無いと思うんだけど、やってみないと分からないなー。 でもまぁ flush スコープとか validation とかあるからやっぱり Spring MVC なのかな・・・。
182 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 02:37:48.31 ] >>179 JPAについてコメントします。 JPAは規格の名前で、Toplink Essentialsは、JPAの実装の一種です。 いちおう、TopLinkが JPA のリファレンス実装となっています。 JPAの実装のオープンソースは、ほかに OpenJPA、Hibernate(Hibernate EntityManager) などがあります。 あと、 > Javaで使用率高いORMは、JPAとTopLink Essentialsの組み合わせかな? > 両方オラクル純正だし Javaの世界でオラクル純正は、あまりアテになりません。 Oracle(Sun)純正でクソなプロダクトは、これまでにもいくらでもありました。 おまけ: このプログラム板に以下のスレがあります。 Java⇔RDBのMapping-Frameworkを語るスレ Vol.5 toro.2ch.net/test/read.cgi/tech/1220671877/ その昔は、Javaの各ORマッパーについての議論が活発で、 とても勉強になるスレだったのですが、ここ数年は 全然関係ないアニメのコピペが貼られるだけになってしまいました。 残念です(まぁJavaのORマッパーの話題は、一通り行き着くところまで行ってしまったのかもしれないが)
183 名前:デフォルトの名無しさん mailto:sage [2013/01/28(月) 02:41:01.19 ] >>179 もう少しだけ補足。ご存じだったらすみません。 > JavaのORM = Hibernate = XMLマッピング地獄だと思ってた。 初期のHibernateは、そのとおりXMLマッピング地獄だったけど、 Hibernate Annotations というのができて、Enittyクラスにアノテーションでカラム名とか付けられるようになった (XMLに書かなくても良くなった) さらに Hibernate EntityManager というのができて、Hibernate が JPA をサポートするようになった。
184 名前:>>20 mailto:sage [2013/01/28(月) 21:39:34.15 ] かなり古いバージョンの記事が検索の上位にかかりやすいよね。 ちなみにJPAと同じ要領でXMLをマッピングするJAXBなんてのもあるぞ。
185 名前:デフォルトの名無しさん mailto:sage [2013/01/31(木) 14:25:30.71 ] www.infoq.com/news/2013/01/spring4 Plans for Spring Framework 4.0 Announced - Includes Support for Java SE 8 and Groovy 2
186 名前:デフォルトの名無しさん [2013/02/02(土) 17:40:16.89 ] もうダメだわw Twitterサイバーテロ事件の原因は話題のJavaの脆弱性wwwww 今すぐアンインストールしろwwwww engawa.2ch.net/test/read.cgi/poverty/1359787786/
187 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 22:30:37.53 ] 昔Jerseyを使ったときにJAXBでアノテーションつけたbeanをJSONにシリアライズして レスポンスとして返す場合に、プロパティに配列やコレクションがあるとその要素数に よってそのプロパティのシリアライズの結果がArrayになったり裸単騎の値になったりして 頭を抱えたのだけれども今は大丈夫なんだろうか。
188 名前:デフォルトの名無しさん mailto:sage [2013/02/02(土) 23:13:34.40 ] XML地獄の次はアノテーション地獄か 昔のJavaが一番作りやすかったな いまは新入社員が入ってくる余地がないな
189 名前:デフォルトの名無しさん mailto:sage [2013/02/03(日) 17:15:48.97 ] 裸単騎w