投稿

ラベル(WPF)が付いた投稿を表示しています

Translate

MVVM覚える位なら、Unityやった方がイイ!

MVVMデザインパターンとは何か?  簡単に言うと、WPFやXamarinの為にあると言える。  WPF:絶えるとと思ったが、意外と耐えた。      XAMLなる、XMLみたいなデザインで画面をデザイン出来る為、WindowsForms     であったような、コントロールで実現できないデザインはオーバーライドで     ゴリゴリしなくて良くほぼ自由自在にデザイン出来る。   WPFが流行るに流行れないのは、やはり、いつの間にか、MVVMデザインパターンでプログラミングするスタイルが定着した事だと思う。   MVVMは、物凄く大規模で、継続性があるシステムだと一定の効率効果は得られるが、小規模、モックアップ、事業として成立が難しい案件かも知れない場合、これに見合う開発工数では無くなる点だ。   行ってみたら、普通にコーディングしたら、一行で済むようなコードを、わざわざ、モデル、ビューモデル、ビュー(XAML)の三本柱を連携するようにコーディングして行かなくてはならない。   Label.Text = "test"; Windows.Formsだとフォームにラベルコントロールを一つ置いて、文字を出す場合、これだけで済むのだが、WPFの場合は、XAMLで設定したコントロールに、どのモデルの変数と割り当てるかを細かく振る舞いを書いて、モデルで変数を用意して、ビューモデルでモデルの変数とビューの橋渡しを行えるようにコードを書く。 Xamarinとは何か?  昨今流行っているクロスプラットフォームである。 何が出来るかと言うと、C#一本で、Androidアプリ、iPhoneアプリ、Windowsアプリの全てが開発出来てしまう。 欠点: 各方面でC#で開発と言われてはいるものの、実は、Android.Java     やiPhone.Objective-Cのクラス等を、そのままC#にしただけ。     つまり、Android,iPhoneの開発をそれぞれの言語でやった人では無いと、     これの意味は分かりにくいが、そういう事なのだ。     だから、Windows.Formsみたいな、LoadやInitialで始まるなんてあり得ない。     iPhoneのViewDidLoa

MVVMパターンのメリットがさっぱりわからない・・

イメージ
MVVMパターンのメリットがさっぱりわからない・・ 最近は、WindowsFormsでは無く、WPFで開発をするみたいだけれども・・・ MVVMパターンで開発が主流になってきているみたい。 MVCみたいなやつの、アプリ版みたいな感じなんだけれども・・・ ・・・が、ここまでするメリットがさっぱり分からない。 XAML側のDataBindingの指定で、直接コードの値がバインドされるのは面白いけれど・・ だからなに?って感じ。 コントロールの間にデータ中継される要素が増えて、ただ複雑になって、コード量が増えるだけなんでは? そして、日本の現場で、実際に、デザイナーと、コーダーが分かれて作業されるなんて日が実際に来るのだろうか・・・ MVCですら、実際には、デザイナーと、コーダーが分かれて作業しているなんてみ見たことが無く、実際には、デザインとコーダーが合体している。 デザイナーから、謎な巨大なイラストレーターのAIファイルを渡されるだけで・・ 実際の画像加工もコーダーの人がやっているケースが殆どでは・・!? が、これが、今の主流なのか・・・ 自分は、現場が喜ぶ結果が出来たら、あまり過程にはこだわらない。 今までと同じ表現で良いのに、複雑なプロセスを踏まなきゃいけないなんて・・・ これは、技術の進歩何だろうか?? 何となく、JAVAが人気な理由が分かってきた。 JAVAは、コーディングスタイル自体は大きく変わっておらず、コード量は多い物の、古いエンジニアも現役で戦っていけるくらい、成熟している。 ・・・が、Microsoft系の言語は、.NET Frameworkになってから、コロコロコーディングスタイルが変わって、もはや、どれが標準なのか、さっぱりぱりぱりだ。 結局のところ・・・ すっごく揉めて、こだわって作っても、1年先にはまた新しい手法が登場して、 その時それに拘っているのは、ただのエンジニアの自己満足だと思うのだけれども。。。 技術の進歩は、段々成熟して殆ど変わらないから、自分は、実際に現場の業務効率化で役に立つものだけを作っていたい。。。 言語・・・Python(パイソン)に乗り換えようかな・・・ Winアプリも、Webア

WPF+EntityFrameworkで簡単にログを残すソースの公開 -

WPF+EntityFrameworkで簡単にログを残すソースの公開  How to use to PutActionLog on  WPF + EntityFramework EntityFrameworkなら、ソースからデータベースの作成、テーブルの作成が自動で行えるので、下記のソースさえコピペして貰えれば、データベースが、Postgresだろうが、SqlServerだろうが、Oracleだろうが自動的に全部使えるようになると思います。 DataAccess.PutActionLogにて、IPアドレス、コンピュータ名等モロモロと、引数で渡した情報を+アルファを記録しています。 ActionLog.cs  モデル(Model)     using System;     using System.Collections.Generic;          public partial class ActionLog     {         public int ActionLogID { get; set; }         public string SystemName { get; set; }         public string SystemVersion { get; set; }         public string IpAddress { get; set; }         public string TerminalID { get; set; }         public string UserID { get; set; }         public string FunctionName { get; set; }         public string Condition { get; set; }         public string ErrorText { get; set; }         public Nullable<System.DateTime> CreateDate { get; set; }         public Nullable<System.DateTime> UpdateDate { ge

WPF Doeventの実装方法

WPF Doeventの実装方法 WPFはWindows.formsのように、Doeventsが用意されていない為、自分で実装する必要がある。 基本的にマイクロソフトのヘルプにサンプルがあるので、それをコピペで使用するだけなのだけれども、毎回探すのも不便なので、自分のブログに準備してみた。         #region "DoEvents"         private void DoEvents()         {             DispatcherFrame frame = new DispatcherFrame();             var callback = new DispatcherOperationCallback(ExitFrames);             Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, callback, frame);             Dispatcher.PushFrame(frame);         }         private object ExitFrames(object obj)         {             ((DispatcherFrame)obj).Continue = false;             return null;         }         #endregion  コピペするだけで使えます。 どうぞどうぞ。

WPF(XAML)での開発が主流になっているので、Formsは完全に捨ててみた

イメージ
WPF(XAML)での開発が主流になっているので、Formsは完全に捨ててみた Photoshopみたいに、デザインが出来る。 どちらかというと、Android(アンドロイド)の開発ににたスタイルだけれども。 Windows Universal アプリケーション方式の開発が増えていっているので、XAMLからは逃れられないので、Windows.Formsスタイルは捨ててみた。 Android開発をやった事がある人ならとっつきやすいかも。 言語もC#を選べば、あまりJavaと変わらないし。 ただ、Windows.Formsでやっている人には悲報が。 プログラミングのスタイルが全く今までと違うから。 同じコントロールでもコーディング方法も違って・・・  自分はこっちが好き。 見た目はとても重要だから。