S#arp Architectureの作者であるBilly McCafferty氏が近頃、S#arp Liteを発表した。このフレームワークは、S#arp Architectureの中核部分のみを残した、より利用しやすいS#arp Architectureと言える。
S#arp ArchitectureはASP.NET MVCアプリケーションを構築するためのフレームワークでNHibernateを使っている。このフレーウワークはメンテナンスしやすさ、ドメイン駆動設計、スケーラビリティを追求している。氏によれば、S#arp Architectureのを使ってアプリケーションを開発する場合の欠点は、学習するのが大変だということだ。
多くの人にとってS#arp Architectureはフレームワークとしては大きすぎて、簡単に理解できません。私はS#arp Architectureを使おうとしている開発チームと議論する時はいつも、経験豊富で依存逆転や低レベルNHibernateやドメイン駆動設計というようなトピックに習熟している開発者の方がいいと助言していました。しかし、現実のビジネスでは、このようなトピックに習熟している開発者でチームを構築することは難しいです。
S#arp LiteはS#arp Architectureを中核部分まで切り詰めたものだ。S#arp Liteには、NHibernateを使ってデータベースに接続するためのプロジェクトテンプレートや、再利用可能なクラスライブラリ、ベースリポジトリクラス、そしてサンプルプロジェクトを含んでいる。ベースリポジトリクラスにはGetメソッド、GetAllメソッド(IQueryableオブジェクトを返す。このオブジェクトはLINQクエリで操作できる。)、SaveOrUpdateメソッド、Deleteメソッドを含んでいる。
氏はS#arp Liteの主要な目的のひとつは元のS#arp Architectureのアーキテクチャと同じアーキテクチャにすることだったと言う。しかし、S#arp Liteを最大限に小さくするためにはいくつかの点を変更しなければならなかった。
- コントローラは.Web.Controllersはプレゼンテーションレイヤの.Webへ移行した。
- .Webから初期化関連の依存性を除去するため.Initプロジェクトが追加された。
- .NHibernateレイヤは大幅に小さくなった(EntityFrameworkProviderに置き換えられる可能性もある)。
S#arp Liteについての詳細はS#arp Lite: 基本を参照された。このフレームワークはGitHubからダウンロードできる。