投稿

11月, 2018の投稿を表示しています

GeneXusServer Cloud

イメージ
GenexusServerはGeneXusのオブジェクトを資産管理、共有するためのToolです。 オブジェクトのコミット/更新を行いServerで管理することで、複数人での開発を円滑にする。 いわゆるSVNのような機能です。 別途有償のライセンスで250万位なので割と高価です。 ただ、便利なので一度使うと無しには戻りたくありません。無しの場合は手動での管理となり、 どうしてもデグレードの可能性が高くなってしまいますので。 そんなGeneXusServerですが、日本では殆ど公表されてませんが Cloudでのサービス展開 がされています。 直接GeneXus社との取引となることから日本では宣伝されていない模様です。 GeneXus Server Cloud http://gxserver.com/en/main ユーザー数などでプランを選べるので簡易に始めてみたい場合は良いと思います。 ただ、ユーザーコントロールやWorkwithPlusをインストールする場合は問い合わせフォームから依頼する必要があるらしいです。 英語かスペイン語での問い合わせ、ということでしょうかね。

Javaの有償化とGeneXus

2019年からJavaが有償化 されることになりました。 GeneXus15はJavaか.NETのジェネレータから選択しますので、 今後はどうなっていくのか気になる所です。 まず前提として、 GeneXusはプロパティの設定でコンパイラを選択できます。 そのコンパイラを有償のOracleJDKにするか、無償のOpenJDKにするかは ユーザーの設定次第となります。 ですので、GeneXus的には 「Javaのソースは生成するけど、どのJDKを使うか、 どのバージョンを使うかは自由だよ。」ということですね。 GeneXus社からは「OracleJdkもOpenJDKも両方サポートしていく」 と聞いています。 これはJavaジェネレータから生成されたシステムを 両方で動作確認しますよ。ということだと思います。 私は、GeneXusでのWEBシステムをOracleJDKでもOpenJDKでも運用していますが。 実際の所、全く変わりが無いな。 という印象です。 新機能を率先して使う場合は、差が出てくるのかもしれませんが、 GeneXusは基本的に他の言語でも同じように動作する形で生成しますので、 あまり新しい機能や、言語固有の機能は使っていないことも要素としてあるのかと思います。 ただ、脆弱性という意味ではOpenJDKの方は これから半年に一度のアップデートは必須になっていくのかと思います。 OracleJDKももう少し安ければよいのですが、結構高いですね。 正確ではないですが、WEBシステムとして使うのであれば1CPUで60万円なのかな。 ユーザー数カウントだと1ユーザー1万円位。 数年前までの私の実績ではJava5割、.NET5割だったのですが、 近年はクラウドサーバーを利用することが増えて、Javaが6・7割位になってました。 クラウドサーバーの場合はWindowsOSだと高いので、 LinuxでJavaでTomcatでPostgreSQLで、といった形で、 ユーザーにも開発者にも手軽にシステムが作れて運用できていたので、 それが難しくなってくるのは非常に残念です。 GeneXus16では.NET Coreジェネレータが搭載 されます。 .NET Coreがどれだけ普及するか

GeneXusのオプション設定、起動時オプション

イメージ
GeneXusをインストールした後に、私が 必ず行う設定 を紹介します。 GeneXusの[ツール][オプション] ①KBエクスプローラーにディスクリプションを表示 これが こうなる ②ダイアグラムにディスクリプションを表示 これが こうなる ③ビルドオプション ・インスタンスの同時生成 ・インスタンスの同時分析 これはビルド時にCPUを何コア使うかの設定です。 良いPCを使っている場合は、こちらの設定を確認した方が良いです。 GeneXusは基本1オブジェクトが1ソースとなります。 1ソースに割り当たるコアは一つだけです。 なので、1オブジェクトが大きい場合のビルド時間はCPUの個数ではなく速さに依存します。 ただ、複数オブジェクトをビルドする場合やリビルドする場合には 並列で処理が行われるので、かなりの差が出てきます。 ビルドは分析(Specify)と生成(Build)に分かれており、分析は割と早く終わります。 これに割り当てるのが「インスタンスの同時分析」です。 生成(Build)が実際のJavaソースや.NETのソースの生成です。 物理的にファイルを作るので時間が掛かります。 これに割り当てるのが「インスタンスの同時分析」で、時間が掛かる場合は大体こちらです。 全部のCPUコアをあててしまうとOSが止まるでしょうから、最適な数値を設定するのが良いでしょう。 複数の同時生成処理と分析処理のインスタンス http://wiki.genexus.jp/hwiki.aspx?%E8%A4%87%E6%95%B0%E3%81%AE%E5%90%8C%E6%99%82%E7%94%9F%E6%88%90%E5%87%A6%E7%90%86%E3%81%A8%E5%88%86%E6%9E%90%E5%87%A6%E7%90%86%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9, ・ナビゲーション詳細 こちらをTrueにすると、トランザクション画面をビルドした後のナビゲーションで Rulesに指定した内容の実行順序が出てきます。 トランザクション画面を利用

スマートデバイス用タイマー的なコントロール

GeneXusには クロノメーター(Chronometer)コントロール があります。 これはタイマー(Timer)のようなコントロールで、 最初に 設定しておくことで何秒後かにイベントを発生させる ことが出来るものです。 元々スマートデバイス用だったと思うのですが、Web用としても使えるようです。 Chronometer コントロール http://wiki.genexus.jp/hwiki.aspx?Chronometer+%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB, 以前にスマホアプリを開発した時に、数秒置きに処理を行いたかったのですが、 実現する方法がどうしても分からず、Wikiや英語サイトを漁っても分からず、 GeneXusJapan社を経由して、GeneXus社に確認したところ、 暫くしてこんなコントロールがあるよ。言われました。 「有ったんかい!」 と、思わず叫びましたけどね。 その時はWikiの見出しに載ってなかったのと、 クロノメーターと言われても、全くピンと来なかったので、辿り着けませんでした。 今はWikiの見出しにはありますけど、 名前がChronometerコントロールですからね。 このブログから辿り着ける人もいるかもしれませんので、掲載します。

IVS文字・サロゲートペア文字の注意

システムの中で文字数を取得する際には IVS文字・サロゲートペア文字 に注意が必要です。 IVD/IVSとは | 文字情報基盤整備事業 https://mojikiban.ipa.go.jp/1292.html サロゲートペア入門:CodeZine(コードジン) https://codezine.jp/article/detail/1592 例えば、エラーチェックで指定した「文字数」で固定する場合 最大「文字数」を超えているかチェックする場合 GeneXusでは&変数.Length()か、またはLen(&変数)で文字数を取得することが出来ます。 但し、上記のIVS文字・サロゲートペア文字の場合は、 見た目の1文字が1文字として算出されません。 試した環境:GeneXus15U10 通常文字 :辻 IVS文字:辻の点が1つの文字 このLengthを求めると、以下の結果となります。 通常文字 :1文字 IVS文字:3文字 --------- 通常文字     :叱 サロゲートペア文字:叱(環境依存) このLengthを求めると、以下の結果となります。 通常文字     :1文字 サロゲートペア文字:2文字 ※IVS文字とサロゲートペア文字を試したい場合は、Windowsの設定を変更する必要があります。  Microsoft IMEの場合   ・IMEのプロパティから[詳細設定]   ・[変換]タブの[詳細設定]   ・変換文字制限に      変換文字制限をしない      IVSを含む文字を制限する      サロゲートペアを含む文字を制限する    といった候補が出ますので、[変換文字制限をしない]をチェックしてください。    これで変換候補にIVS文字とサロゲートペア文字が出てきます。   ※※※     試した後は、戻しておいた方が良いです。     メールなどで送ってしまうと相手に迷惑ですので。 ちなみにBytecount()を使用してバイト数(文字コードはUTF-8)を取得すると 以下の結果となります。 通常文字 :辻 IVS文字:辻の点が1つの文字 ↓↓↓ 通常文字 :3バイト IVS文字:7バイト ---------

GeneXusの調査用サイト紹介

イメージ
■GeneXusの.NET、Javaソース https://app.assembla.com/spaces/genexus_standard_classes/subversion/source .NETやJavaの GeneXus標準モジュールのソース が公開されています。 GeneXus内部の記述がどのようになっているか調査したい場合は、 こちらを見ると、それぞれのバージョン毎にソースを見ることが出来ます。 Web版だけです。 AndroidやiOSのクライアント側アプリのソースも公開して欲しいんですが、 悪用される可能性があるからダメなのかな。 ■コラボDB https://www.gxsupport.jp/gxfaq/gamexamplelogin.aspx GeneXusJapan社が運用している 日本のGeneXusユーザー向けの事例集 GeneXusライセンスを保有するユーザーに対してアカウントが発行されます。 現在、約900件の情報がUPされている模様です。(2018年11月時点) ■GeneXusSAC日本語版 https://www.genexus.com/ja-JP/japan/community-and-support-jp/sac SACとはGeneXus社が取りまとめているGeneXusの要望/バグ/リリース情報の管理です。 その日本語翻訳版となります。 ■GeneXusSAC https://www.genexus.com/en/developers/websac?data=0;; GeneXusSACの本体です。 スペイン語とポルトガル語が一番情報が多く、次に英語になります。 スペイン語ONLYといったメッセージが割と出てきます。 事象の調査や事例が必要な場合は、 上記に記載した 順番(コラボDB→日本語SAC→本体SAC)で調査 していくのが良いです。 Wiki等のURLも以下に記載しておきます。 ■GeneXus15ヘルプ(日本語) http://wiki.genexus.jp/hwiki.aspx?カテゴリ%3aGeneXus+15+ヘルプ, ■WorkwithPlusヘルプ(日本語) http://wwp.genexus.jp

WorkwithPlus

イメージ
GeneXus Day 2018で最新情報を発表した Dvelop社のWorkwithPlus ですが、私はかなり気に入ってます。 4,5年位前から非常に良いバージョンアップを続けており、 毎回、実際のプロジェクトで使えそうな機能が次々に追加されてます。 私が特に評価したのは以下の機能です ・Gridのタイトル行クリックの全件並び替え ・CSV出力 ・ユーザーが自由に定義できる画面領域(ユーザーテーブル) ・データの変更履歴取得 ・帳票テンプレート ・Gridのページング制御 ・GAMの制御と連動したシステム基盤 ・GAMのロールと連動した機能利用制御、更にボタン押下制御 ただ、WorkwithPlusはGeneXusありきのツールなので、 GeneXusを知らない人に説明するのは非常に難しい所でもあります。 GeneXusの説明をした後に、WorkwithPlusの説明をすると、 「え?WorkwithPlusが無いとダメじゃん!」 と言われることが良くあります。 いえいえ、GeneXus自体も凄いんです。 でも、それにWorkwithPlusを加えると、もっと凄いんです。 と補足が必要になります。 現在のバージョンは WorkwithPlus11 です。 このバージョンは相当に驚きました。 GAMを適用した上で、WorkwithPlusを使用すると、 突然ウィザードが始まります。 これらのウィザードに従って設定を行い、 その上で、1つのトランザクションを作成してWorkwithPlusを適用してみると このような画面、、、、いえ! 「業務システム」が出来上がります。 WorkwithPlus11は私もまだ触り始めたばかりですが、 これから色々と試してみたいと思います。