.NET 開発基盤部会 Wiki

目次

概要

OpenSaaS1ExecEngineの開発で検討したこと。

Tablet系

専用端末化

Android

Android 5.0から追加された「画面の固定」機能を使えばアクティブなアプリを限定できる。

iOS

iOS6から追加された「Single App Mode」が使える。

HTML系

オフライン

という方式が良いと考えた。

チェック

window.navigator.onLineでチェック可能。

ストレージ

ポピュラーな、Key-ValueのWebStorageが良さそう。

定期的な情報送信

バック・グラウンド処理

setTimeoutやsetIntervalなどを用いることで実現できる。
最新の「Web Workers」については、別に使用しなくていもイイかな。という感想。

JSON処理

成功と失敗

エフェクト

効果音

アニメーション

二重クリックの防止

スキーマ

に使用する。

マスタ・データ

企業テーブル

店舗テーブル

端末テーブル

ユーザ・テーブル

画面初期化情報テーブル

以下、画面初期化情報の項目情報。

画面テーブル

画像テーブル

トランザクション・データ

結果テーブル

画面

コンテンツ画面

HTML/CSS/JavaScript技術を中心に使用して開発する。

カスタマイズ画面

エンプラ寄りのWeb Forms技術を中心に使用して開発する。

非構造化データ(JSONデータ)の入力・編集処理

条件検索と集計・グラフ表示機能

エンプラ寄りのWeb Forms技術を中心に使用して開発する。

ボタンIDの集計

期間の中での変化

上記を踏まえた技術選定

Open棟梁はコミュニティ連携のため前提で(笑)。

OS

Windows

DBMS

PostgreSQL

WAS

IIS+ASP.NET

.NET開発基盤部会だけに。

フレームワーク

画面毎

ASP.NET Web Forms

ASP.NET Web Formsを選択した。

Ajax - REST ( JSON ) - WebAPI

Web Formsだが、オフライン実装を考慮しPostBack?無しのWebAPIで実装。

ADO.NET

ADO.NETでイイと考えた。

,etc.

本開発

画面

メンテナンス画面

システム画面

コンテンツ画面

集計画面

テーブル

マスタ

トランザクション

SQL

PostgreSQL

--------------------
-- TABLE:
--------------------
CREATE TABLE Enterprises(
    ID       integer        NOT NULL,
    Name     VARCHAR(40)    NOT NULL,
    Phone    VARCHAR(24),
    CONSTRAINT PK_Enterprises PRIMARY KEY (ID)
);

CREATE TABLE Stores(
    ID               integer        NOT NULL,
    EnterprisesID    integer        NOT NULL,
    Name             VARCHAR(40)    NOT NULL,
    Description      VARCHAR(40),
    Phone            VARCHAR(24),
    CONSTRAINT PK_Stores PRIMARY KEY (ID)
);

CREATE TABLE Devices(
    ID               integer        NOT NULL,
    EnterprisesID    integer        NOT NULL,
    StoresID         integer        NOT NULL,
    Name             VARCHAR(40)    NOT NULL,
    Description      VARCHAR(40),
    CONSTRAINT PK_Devices PRIMARY KEY (ID)
);

--------------------
-- Index:
--------------------
CREATE INDEX Split_key_Stores ON Stores (EnterprisesID);
CREATE INDEX Split_key_Devices ON Devices (EnterprisesID);

CLUSTER Stores USING Split_key_Stores;
CLUSTER Devices USING Split_key_Devices;

--------------------
-- Sequence:
--------------------
CREATE SEQUENCE TS_EnterpriseID;
CREATE SEQUENCE TS_StoreID;
CREATE SEQUENCE TS_DeviceID;

--------------------
-- INSERT
--------------------
INSERT INTO Enterprises (ID, Name, Phone) VALUES(nextval('TS_EnterpriseID'), 'AAAA', '1111');
INSERT INTO Stores (ID, EnterprisesID, Name, Description, Phone) VALUES(nextval('TS_StoreID'), currval('TS_EnterpriseID'), 'aaaa', '・・・・・', '1112');
INSERT INTO Devices (ID, EnterprisesID, StoresID, Name, Description) VALUES(nextval('TS_DeviceID'), currval('TS_EnterpriseID'), currval('TS_StoreID'), '001', '・・・・・');

--------------------
-- SELECT
--------------------
SELECT * FROM Enterprises;
SELECT * FROM Stores;
SELECT * FROM Devices;

プロト開発

Ph1

3 画面

コンテンツ画面

種々の情報は固定

集計画面

Ph2

6 画面追加

3 テーブル * CRUD画面は 2 画面(検索・詳細) = 6 画面

メンテナンス画面の追加

コンテンツ画面

種々の情報を可変に。

Ph3

8 画面追加

4 テーブル * CRUD画面は 2 画面(検索・詳細) = 8 画面

メンテナンス画面の追加

コンテンツ画面

サインアップ、ログイン、ログオフに対応


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS