LittleSoft J-Programming

製品概要

軽量AJAX+Javaフレームワーク LittleSoft J-Programming

LittleSoft J-Programming(略してLSJ)は、JavaによるWebアプリケーション開発を革新的に スピードアップさせるソリューション製品です。

LSJが提案する新世代Javaの利用方法

LSJは無駄を省き、シンプルで洗練されたアーキテクチャを採用。

クロスプラットフォーム性、堅牢なVM、デバッグ・トレースの容易性など、 Webアプリケーション開発プラットフォームとしてのJavaの素養の良さを120%活かしながら、 PHPやRuby on Railsを凌駕するWebシステム開発パフォーマンスを実現します。

  • 軽量でシンプルなWebフロントフレームワーク
  • リッチな操作性を実現するJavaScript UIライブラリ
  • コンパクトでユニークなSQL API
  • LittleSoft J-Programming オープン使用許諾契約に基づき無償で利用可能

ライセンスの詳細:http://www.littlesoft.jp/lsj/license.html

LSJ AJAX UI コンポーネント - ブラウザアプリの常識を超越するユーザービリティ

Webアプリケーションのユーザービリティを向上させる技術:AJAXをサポート。

インターネットサービスからエンタープライズな基幹システムまで、あらゆるシーンのWebアプリケーションに 優れたユーザーインターフェースと堅牢な動作を、極めてシンプルな開発プロセスで実現します。

LSJ AJAX UI コンポーネントは100%HTML+CSS+JavaScriptで作成されている為、特別なプラグインやソフトウェアインストールの必要はありません。

LSJ SQL API – ユニークなデータベースAPI

LSJ SQLパッケージのコンポーネントを利用すると、データベース構造に縛られないアジャイルな開発スタイルを実現することが可能です。

  • プレーンなJavaクラスからDB物理スキーマを自動生成
  • Javaコードで主キー、外部キー、インデックスの定義が可能
  • アノテーションによるカラム属性(長さ、NULL、フォーマット、見出しetc...)の定義が可能
  • Javaクラスに対する変更はSchemaUpdatorでDB物理スキーマと自動的に同期します
  @TableDef(name="T_EMP", schema="PUBLIC")
              static public class Employee implements ITableDef {
                @ColumnDef(name="EMP_ID", caption="社員ID")
                public Long id;
                @ColumnDef(name="DEPT_CODE", caption="所属")
                public Integer deptCode;
                @ColumnDef(name="NAME", caption="氏名")
                public String name;
                @ColumnDef(name="ENTER_DATE", caption="入社日", formatPattern="yyyy/MM/dd")
                public Date enterDate;
                @ColumnDef(name="SEX", caption="性別", defaultValue="1")
                public Short sex;
                @ColumnDef(name="SALARY", caption="給与", formatPattern="#,##0.00;-#,##0.00")
                public BigDecimal salary;
                @ColumnDef(name="MEMO", caption="メモ", defaultValue="中途/新卒")
                public String memo;
                @ColumnDef(name="CREATE_DATETIME", caption="登録日時")
                public Timestamp createDatetime;
                @ColumnDef(name="UPDATE_DATETIME", caption="更新日時", 
                  formatPattern=DataUtil.XWareki.FORMAT_DATETIME_SHORT)
                public Timestamp updateDatetime;
                
                public MetaData<?> createMetaData() {
                  return new MetaData<Employee>() {{
                    addPrimaryKey($$.id);
                    addForeginKey($$.deptCode)
                      .references(DB.Department.class)
                      .onDelete(FKOption.CASCADE)
                      .usingIndex(true);
                  }};
                }
              }
            

また、LSJ SQL APIはデータモデルの変更に対して柔軟な対応を可能にする「SQL文字列編集をしないSQLコーディング」を実現します。

  • LSJ SQL APIはSQLによるデータベース操作から文字列編集を排除します
  • これによりデータモデルが変更された場合も速やかな改修が可能となり「データ中心アジャイル開発」のスピードがアップします。
  • また、SQLインジェクションのリスクを排除するど同時に、特定DBMSへの依存性を排除し、アプリケーションプログラムの移植性・可搬性を向上させます。
  • SQLを理解しているプログラマであれば使い方も簡単。安全で間違いのないSQLデータベース操作をEclipseのコード補完を利用しながらスピーディに実装することができます。
  /**
               * WebSQLTableオブジェクト(社員情報テーブル)
               * SELECT EMP_ID, NAME, DEPT_NAME
               *   FROM T_EMP E INNER JOIN M_DEPT D
               *     ON E.DEPT_CODE = D.DEPT_CODE WHERE E.EMP_ID = :EMP_ID");
               */
              static public class EmployeeView  implements Serializable {
                public Long id;
                public String name;
                public String deptName;
              }
            
              public WebSQLTable<EmployeeView> tableWorkEmp = new WebSQLTable<EmployeeView>(){{
                DB.Employee   e = $useDummy(DB.Employee.class);
                DB.Department d = $useDummy(DB.Department.class);
                select(
                  $(e.id).into($$.id),
                  $(e.name).into($$.name),
                  $(d.name).into($$.deptName)
                )
                .from(e).innerJoin(d).on(e.deptCode).is(d.code).end
                .where(e.id).is(":EMP_ID").end
                .prepare();
              }};
            

サンプルアプリケーション・デモ

LSJで開発したサンプルアプリケーションを動かしてみましょう。

LSJ Sample Application

社員一覧編集や勤務表入力を行うデモです。

ダウンロードに付属するサンプルアプリケーションと基本的に同じものですが、web.xmlのサーブレット初期化パラメータの設定とJDBCコネクションの取得方法を変更し、GAE環境に対応させています。

※ご注意ください! デモプログラムはInternet Explorer 6、7、8では正常に動作しません。 Google Chrome 4.0, Fire Fox 3.5, 3.6, Safari 4.0 をご利用下さい。

ドキュメント

ダウンロード

LSJのダウンロードはこちらから。