メインメニューを開く

差分

ServiceStack

2,112 バイト追加, 2015年8月31日 (月) 04:34
'''ServiceStack'''(読み:さーびすすたっく)とは、[[.NET Frameworkオープンソース]]向け(で開発が行われている[[ASP.NETFramework]]向け)の[[オープンソース]]で開発が行われているWebフレームワークである。向けの大規模なWebフレームワークである。
== 概要 ==
ServiceStackは[[stackoverflow.com]]で有名なStack Exchange社のDemis Bellot(通称:mythz)氏によって開発が始められたものであるが、現在では100名を超えるコントリビューターを抱えるに至っている。[[ドメイン駆動設計]](英語:[[Domain Driven Design]], 通称:[[DDD]])の思想に強く染まっているのが特徴である。[[ライセンス]]には[[BSDライセンス]]を採用しており商用利用も非常にしやすくなっている。Bellot(通称:mythz)氏によって開発が始められたものである。現在ではServiceStack LLCという別会社が設立され、そちらで開発が行われている。またこのオープンソースに関わるコントリビューターは100名を超えるに至っている。
一般的にこの手のWebフレームワークではウェブサーバー上で動くアプリケーションのみを考えて作られていることが多いが、ServiceStackでは実のところデータ加工などのバッチ処理まで想定されておりウェブに限ったものではなくなっている。ServiceStackは[[ドメイン駆動設計]](英語:[[Domain Driven Design]], 通称:[[DDD]])の思想に強く染まっているのが特徴である。ServiceStackはDDDが古くから流行している欧米ではDDD向けフレームワークの中心的存在として広く認知されており、たとえば英国公共放送BBCの公式サイトなどの大型採用事例も多数報告されている。一方で日本ではDDDの和訳・和書が2011年まで発刊されなかったこともあり、フレームワークはもとよりDDDという思想自体が知られていないという状況であった。
また、== ライセンス ==ServiceStackの[[ASP.NET MVCライセンス]]などと比べてには、3.0までは[[MonoBSDライセンス]]との相性が非常によく、作ったものは特に調整する必要もなく[[XSP]]を用いてサクッと動かせる。また、[[Xamarin Studio]]でもを、4.0以降は[[NuGet Addin for MonoDevelop and Xamarin StudioAGPL v3]]を用いることで簡単に開発環境を構築することができる。および商用ライセンスを採用している。
[[AGPL v3]]では[[GPL]]にある[[アプリケーションサービスプロバイダ]]の抜け穴を閉じるよう設計されている。具体的には[[ASP]]では[[ソフトウェア]]は単に利用されるだけで、頒布されるわけではなく、よって[[コピーレフト]]条項が発動しない、という抜け穴が完全に塞がれており、たとえ[[サーバー]]で第三者向けにサービスを提供(社内システムなど第二者向けはこの限りではない)するだけであっても、そのサービスの完全な[[ソースコード]]を提供可能にしておく必要がある。これを拒否する場合には商用ライセンスを結ぶ必要がある。
 
用途が[[業務システム]]に偏っていた同プロジェクトの利用者にとっては実質的に商用ライセンスのみに等しく、当然のようにこれに異論を唱えた人々も現れ、[[NServiceKit]]という派生も生まれている。
 
== 実行環境 ==
ServiceStackの実行環境は[[ASP.NET MVC]]などと比べて[[Mono]]との相性が非常によく、作ったものは特に調整する必要もなく[[XSP]]を用いて[[Linux]]や[[Mac OS X]]などのWindows以外の環境でもサクッと動かせる。また、セルフホスティングにも対応しており、[[IIS]]や[[XSP]]がなくても単体で動作させることができたりもする。
 
== 開発環境 ==
開発環境は[[NuGet]]を用いて非常に簡単に構築することができる。[[Visual Studio]]であればプロジェクト作成後にパッケージマネージャーから追加するだけである。同様に[[Linux]]や[[Mac OS X]]などでも[[Xamarin Studio]]に[[NuGet Addin for MonoDevelop and Xamarin Studio]]を追加することで簡単に構築することができる。
 
== 使い方 ==
* [[ServiceStack/はじめに/最初のWebサービスを作ってみる]]
* [[ServiceStack/はじめに/最初のWebサービスを読んでみる]]
 
==関連システム==
*[[ServiceStack.Text]]
*[[ServiceStack.Redis]]
*[[ServiceStack.OrmLite]]
== 関連項目 ==
匿名利用者