サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
www.nuits.jp
先日のBuildで、Microsoftから突如「.NET Multi-platform App UI (MAUI)」がリリースされました。 ここではMAUIとは何か?Xamarin.Formsはどうなるの?ということを簡潔にまとめたいと思います。 さて2020年5月23日現在、MAUIに関する情報ソースとして最も信頼できそうなのは次の二つでしょう。たぶんね。 Introducing .NET Multi-platform App UI | .NET Blog GitHub - dotnet/maui: .NET MAUI is the .NET Multi-platform App UI, a framework for building native device applications spanning mobile, tablet, and desktop. MAUIとは何かと端的
本項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 本稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 github.com また動画を以下で配信しています。よろしければご覧ください。 世界一わかりやすいClean Architecture はじめに まず初めに、クリーンアーキテクチャの誤解されがちな二つのことについてお話させていただきます。 その上で、クリーンアーキテクチャの本質とは何か?押さえておくべき、本当に重要だと考えている三つの事について、お話しします。 注意事項 さて本題に入る前に、少し注意
こちらを参照ください。 github.com
「Visual Studio 2019 Launch Event in Tokyo.」で、Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 というタイトルで登壇してきました。 資料はこちら Visual Studio 2019で始める「WPF on .NET Core 3.0」開発 from Atsushi Nakamura www.slideshare.net 今回はコードの公開ができないので、部分的にですが資料とその解説をこちらにアップしておきます。もしよかったらご覧ください。 本セッションでは、主に次の二つについてお話ししました。 まず初めに、そもそもデスクトップアプリをなぜ.NET Coreで実装するのか?したいのか? そのモチベーションについて再確認したいと思います。 その後、実際に.NET Frameworkで作られたWPFのアプリケ
.NETには、例えばinternalなクラスやメソッドのUnitTestをUnitTestプロジェクトから呼び出す仕組みとして、「InternalsVisibleTo」という属性があります。 従来の.NET Frameworkプロジェクトでは、プロジェクト作成時にPropertiesの下にAssemblyInfo.csが作成されその中に定義する方法が一般的でした。 しかし、.NET StandardにはAssemblyInfo.csが存在しません。 ここでは.NET StandardプロジェクトでInternalsVisibleToを設定する方法を紹介します。 結論から言いますと、適当な「~.cs」ファイルを作成しその中に定義すれば解決できます。 順を追って説明しましょう。 プロダクト プロジェクトとしてNetStdLibが存在し、対応するUnitTestプロジェクトとしてNetStdLi
なんか20番煎じくらいな気がしますが、INotifyPropertyChangedを実装しようとするとフィールドやプロパティや変更通知やら、諸々実装が大変だ!というのがありますよね。これの簡単な解決策としては大きく二つはあると思っています。 ReactivePropertyを利用する PropertyChanged.Fodyを利用する 前者はReactiveプログラミングをしないのであればオーバースペックな気がします。そこでFodyを利用する方法が検討対象になってきます。この辺りの詳細は次の記事に良くまとまっているように思います(全部目を通しきれていませんが)。 qiita.com ただTeratailでVS4Macでうまくいかな〜いという声があったので、簡単な手順をまとめました。なお実際の実現方法は他にもパターンがありますが、細かいことは頑張って本家の英語を読みましょう。 動くコードはG
これはXamarin Advent Calendar 2018の22日目の記事…のつもりでしたが一日勘違いして一時間半程間に合いませんでした。埋めていただいた方、ありがとうございました。すいません。 さて内容はちょっとはみ出してWPFやUWPといったXAMLを利用するUIフレームワーク全般で共通な話です。 私は前々からXAMLアーキテクチャの場合、必ずしも(Topレベルの)ViewModelのクラスをViewのクラスから分離する必要はなく、XAMLのコードビハインドをViewModelとして実装しても良いのではないか?ViewModelは役割としては必要でも、クラスとしては必ずしも必要ではないのではないか?と考えていました。 もちろん常にViewModelクラスが不要だという訳ではありません。特定の制約を満たす必要がありますし、その制約を徹底できるだけの組織的な統制力が必要になります。*1
皆さん、Dapper使っていますか? 私は比較的最近まで、オレオレMicro ORMを使っていたので、あまり使っていませんでしたが、いろいろと反省してDapperに移行中です。 さてDapper非常に良いと思うのですが、単品だとさすがに実装効率があまりよろしくありません*1。そこで活躍するのがDapperの拡張ライブラリです。 しかし、多くの拡張ライブラリが存在しているため、何を使うか悩みます。というかまだ悩み中です。何かお勧めがあれば教えてもらいたいところです。 とはいえ、自分で調べないという訳にもいきませんので、Dapper拡張ライブラリをいくつか比較してみました。 前提条件 個人的な結論 比較一覧 考察 対応データベース 処理速度 使い勝手 さいごに 前提条件 私自身Dapperは「にわか」ユーザーです あくまで機能「メニュー」上での判断で、使い込むのはこれからです 基本的にエンター
昨日まで繋がってたのに!ってときに、次のようなエラーが出ていた場合の対処方法です。 docker: Error response from daemon: error while creating mount source path '/host_mnt/d/....': mkdir /host_mnt/d: file exists. Docker for Windowsの設定画面を開いて、「Share Drive」の「Reset credentials...」を選択して、再度認証し直しましょう。 以上です!
本エントリーは大本は.NET Conf 2018 Tokyo, Japanの発表内容を記事としてまとめたものになります。参考によかったらご覧ください。 なお本セッションのソースコードはこちらのGithubに https://github.com/nuitsjp/Continuous-Testable-Design スライドはこちらに別途公開しています。 継続的にテスト可能な設計を考える from Atsushi Nakamura www.slideshare.net 皆さん、日常的に自動テスト書いてますか?私は結構書いてます。 SIerのテストというと、Excel!スクショ!エビデンス!的なイメージがあるかも知れませんがたまたま巡り合わせが良くて、2000年からJUnitを触っていたと思います。 SIerって、プロダクトチームの維持が難しくて、半年ごとに8割のメンバーが入れ替わってるみたい
本エントリーは連載「ASP.NET Web APIを使おう」の第1回となります。連載の目次はこちら。 www.nuits.jp 今回はWeb APIのサーバーサイドの実装について説明します。 前提条件 ASP.NET Web APIプロジェクトを作成する Web API コントローラーを新規追加する Web API コントローラーのデフォルト実装の動作確認を行う コントローラーで複合クラスを扱うよう修正する 前提条件 Visual Studio 2017 Version 15.5.6 .NET Framework 4.7.1 ASP.NET Web APIプロジェクトを作成する Visual Studioを起動し[ファイル]→[新規作成]→[プロジェクト]を選択すし、開かれたダイアログで次のように選択・入力し、「OK」ボタンを 押下する。 左側の「Web」を選択 右側で「ASP.NET W
先日、つぎの記事を公開しました。 www.nuits.jp 多くの方に読んでいただき、書いた甲斐がありました。さて、多くの方に読んでいただけたのは良いのですが、言いたいことが正しく伝えられていない点が多数あったようです。そこで本稿では、はてなブックマークについていたコメントについて、補足できる範囲で捕捉したいと思います。 はてなブックマークはこちら ひとまず2018年9月14日現在のコメントには全て回答していると思います。またこれを受けて、近いうちに本文にフィードバックします。 回答する前に、大切な前提条件をいくつか記載しておきます。 もっとも言いたかったのは、請負契約による受託開発を減らし、内製を増やすべきだという事です その為の一つの施策として雇用の流動性を上げる必要があると考えています 解雇規制の緩和だけですべてが解決するとは思っていません 雇用の流動性が確保できて、エンジニアが使い
正確には 請負契約を減らして内製を増やすべきだ 内製を増やすための「一つの手段として」解雇規制の緩和が必要だ と言う事です。内製化が解雇規制を緩和だけで実現できるとは思っていません。 本稿は主に私の実体験の上に成り立っています。異論・反論あるでしょう。しかし、行き詰まって見えるSI業界界隈の問題認識・解決に向けられた、一人のアーキテクトの思いを伝えてみたくなり、本稿を綴って見ることにしました。 ============== 2018.09.15追記 ============== 大変大きな反響をいただき、たくさん「はてなブックマーク」もたくさんして頂きました。説明不足で正しく伝えられなかったと思うものが多かったため、こちらにブックマークへの書き込み全てへ回答を付けさせていただいています。 「SIerは減らす為に解雇規制の緩和が必要」の「はてブ」への回答 - nuits.jp blog ==
最近この画像がお気に入りです。ネタ元はこちら。 いやいや今回は冗談ではなく、本当になにもしてないんですが(と言い張る!)、購入から5日目にしてEssential Phoneが壊れました。 我が家の天使、娘ちゃんを寝かしつけて、さてスマホスマホと、取り上げたらですよ?なんか妙に明るいわけですよ。脇から光が漏れているというかなんというか…こんなふうに 液晶が完全にはがれてます。反対側もだいたい真ん中ほどまではがれており、外周の2/3くらいがぱっかりはがれています。/(^o^)\ナンテコッタイ 「アロンアルファでくっつけりゃなんとかなるんじゃね?」 というのが頭を過りましたが、購入は返品サービスの品質に提供のある米Amazonさん。どう考えても初期不良だし(今回は一度も落下していないし)手間だけど交換してもらうことにしました。 どうやら初期不良は無料交換&送料も米Amazonもちということで、手
選択したExcelのセルをMarkdown形式でコピーするExcelアドイン「CopyToMarkdown」に、逆にMarkdown形式の表からExcelにコピーする機能を追加する新バージョンをリリースしました。 これで再編集も大分楽になります。 日付の書式、金額、カンマフォーマットなども生かしたままコピーできます! 右寄せ・左寄は先頭行の設定に従います。 良かったら使ってあげてください。 動作確認済みのOffice&Windows Windows 7 64bit & Office 2010 Windows 10 64bit & Office 2016 必要環境 .NET Framework 4.5.2以上 Visual Studio 2010 Tools for Office Runtimeのインストールが求められるかもしれません (VSの入っていないWindows 7では求められました
Docker for Windowsは非常に便利なのですが、Hyper-V前提になっていることが多くの足かせを生んでいます。Hyper-VはCPUの仮想化支援機能を占有してしまうため、VMwareなどの他の仮想化ソフトウェアや、Intel HAXMを利用したAndroid Emulatorと同時に動かすことができません。 もちろん、切り替えれば(簡単に切り替える方法がありますが)良いのですが、PCの再起動が必要ですし、同時に動かしたい事もままあるはずです。 私も絶賛困っていたのですが、このツイートを見てDockerをHyper-Vなしで動かせることを知りました。 ワオ。Windows 10 Home Edition でも WSL から docker 動いちゃった。最高かよ。 pic.twitter.com/SmVqeHsgH0— mattn (@mattn_jp) 2018年7月8日 実際
Cドライブの要領が少ないPCの場合、やりたくなることありますよね?そんなときの対処方法です。 前提条件 「unattended answer」ファイルを作成する Sysprepを実行する 前提条件 新規インストール直後か、[設定] > [更新とセキュリティ] > [回復]から「このPCを初期状態に戻す」で初期化済みであること 最初はダミーアカウントで初期化すること(後で消します) ここではDドライブに移動する前提で記述します 「unattended answer」ファイルを作成する System Preparation Tool (Sysprep)を利用してUsersを移動します。その際に、移動先の情報を設定ファイルで渡す必要があります。 以下の内容のファイルを「D:\relocate.xml」に保存してください。 <?xml version="1.0" encoding="utf-8"?
CodeZineさんで「実践WPF業務アプリケーションのアーキテクチャ」という記事を書かせていただきました。 実践WPF業務アプリケーションのアーキテクチャ ~ マイクロソフト公式サンプルデータベースAdventureWorksを題材に 概要編 実装編 マイクロソフトさんの公式サンプルデータベースであるAdventureWorksを題材にして、仮定の業務の元、エンタープライズな業務システム全体のアーキテクチャを検討し、記述したものになります。決定結果だけではなく、なぜその決断をしたのか?という点まで記載しています。 アプリケーションの実現方法は、たった一つの正解はありませんし、仮定の業務自体曖昧な点が多く、私はベストプラクティスだと思って書きましたが、読む方にとってはそう感じないこともあるかもしれません。正直、マサカリが本当に恐ろしい記事でもあります。 しかし、個別技術であったり、汎用的な
Dapper.FastCRUDはDapperのExtensionライブラリです。DapperのExtensionライブラリは多数ありますが、以前に簡単に比較記事を書いていますので、良かったらご覧ください。 Dapperの拡張ライブラリは何がいいのか?ちょっとだけ調べてみた - nuits.jp blog Dapper.FastCRUDにはDapper.FastCrud.ModelGeneratorという、データベースのスキーマからModelクラスを自動生成してくれるT4テンプレートがNuGet上に公開されています。 本エントリーでは、Dapper.FastCrud.ModelGeneratorを利用してModelクラスを自動生成する方法を解説します。 あと良かったらこちらもどうぞ。 www.nuits.jp 1. 前提条件 2. コンソールプロジェクトを作成する 3. NuGet パッケー
本エントリーでは Visual Studio 上で ASP.NET などで実装した Web アプリケーションをリモートの IIS 上に公開する方法を記載します。 毎回忘れてしまうんですよね… オンプレミス環境でTFSなどから自動ビルド・自動配置するときにも、この設定が適用できます。 1. 前提条件 2. .NET Framework 4.7.1のインストール 3. IISをインストールする 4. Microsoft Web Deployのインストール 5. IIS マネージャー ユーザーの追加 6. 公開サイトの追加 7. Web 配置による発行の有効化 8. Web Deployポートの解放 9. ASP.NETアプリを作成し発行する 1. 前提条件 Windows Server 2016 Standard Version 1607 Visual Studio 2017 Version
ASP.NET Web APIは、ASP.NET上でRESTfulなサービスを提供するための仕組みです。 .NETの世界ではWCFを利用してRESTfulを実装することもできました。しかしWCFは元々SOAPベースのWebサービスが起点となっており、多数のプロトコルを提供可能なフレームワークとして構築された結果、非常に複雑な実装になっていました。 ASP.NET Web APIは、RESTfulなサービスに特化した形で再構築された(2018年2月時点で)最新のフレームワークです。 本エントリーは、連載「ASP.NET Web API を使おう」の目次です。Web APIを使う上でのTipsを不定期にまとめていきます。 第1回 Web APIを作成する 第2回 Swaggerを適用する 第3回 swagger-codegenでクライアントコードを生成する 第4回 Simple Injecto
Visual Studioで開発中にデバッグする際、デフォルトではIIS Expressが利用されます。 その際に匿名認証を無効にし、Windows統合認証を有効にする方法を記載します。 【前提条件】 Visual Studio 2017 【対応方法】 二つのステップで対応します。 アプリケーションでWindows認証を必須に設定する IIS Expressの設定を変更する アプリケーションでWindows認証を必須に設定する Web.configを開いてsystem.webエレメントの下に、つぎの記述を追加してください。 <system.web> ... <authentication mode="Windows" /> </system.web> これを記述することで、実行環境(つまりIISやIIS Express)でWindows統合認証が無効になっている場合に、アプリの実行を拒否す
本エントリーは、つぎの二つの機会に発表した内容をまとめ直したものです。 JXUGC #24 春の App Center 祭り de:code 2018 資料はこちらに公開しています。ただスライドは発表の補助資料な為、資料だけ見ても伝わり切りませんので、本エントリーもあわせてご覧ください。 https://www.slideshare.net/AtsushiNakamura4/app-center-analytics-97896393 目次 目次 はじめに App Center Analytics概要 App Center Analytics 利用手順 Event Trackingを利用する上での課題 Aspect Oriented Programing 概要 XamarinにおけるAOPの課題と解決策 静的コード生成によるAOPの問題点 参考資料 まとめ はじめに さて、本セッションの概略
Visual Studio 2017 Update 3がリリースされたことで、待望の.NET Standard 2.0が利用できるようになりました。 XamarinでもAndroidやiOSからは既に利用可能なようです。UWPは少々お待ちください?(少々っていつ?誰か教えて さて、使うにはまずは.NET Standard 2.0を利用できる環境にする必要があります。 こちらの記事を参照してください。 www.nuits.jp www.nuits.jp 手順としては簡単です。SS取り損ねたので文字だけでごめんなさい。 今回はXamarin.Formsを例にしていますが、Xamarin.Nativeから.NET Standardの共通ライブラリを利用する場合も大差ないはずです。 .NET Standard対応のPreview版のXamarin.Formsを使う PCLプロジェクトを削除する(A
ここしばらく作っては消しを繰り返していた、お手製画面遷移ライブラリ をリリースしました。コードとドキュメントはGithub上に公開しています。利用の際はNuGetからインストールして利用してください。 目指したのは Xamarin.Formsで可能なあらゆる画面遷移が実現可能で タブ切り替えを含むPageが切り替わるタイミングで、一貫性のある画面遷移イベントが通知され 型安全に画面遷移パラメーターを受け渡せて ちゃんとViewとViewModelが分離できる 画面遷移ライブラリです。ちょっと胡散臭いですね。 実際にコードを見ていただいた方が良いでしょう。DateTime型を引数に画面遷移するシナリオを考えます。まずはViewModelです。 public INavigationRequest<DateTime> RequestSecondPage { get; } = new Naviga
無料です。以上です。じゃ、怒られるので少しだけ紹介を。 marketplace.visualstudio.com 某有償ツールのCoverageが命令網羅(いわゆるC0)しかとってくれなくて不満だったので探したら見つけたのがAxoCoverというVS拡張です。 VS Enterpriseにも素晴らしいCoverageツールが含まれているのですが、プロジェクトメンバー全員にEnterprise配れるほど裕福ではないので探していて見つけたのがAxoCoverになります。 無償ツールながらGUI統合されていて、分岐網羅(C1)のカバレッジが取得できます。 使いかたは簡単です。 まずはVSを起動して「ツール」>「AxoCover」を選択すると新しいWindowが開かれます。 ソリューションエクスプローラーと同じPanelに開かれて、一瞬気が付きませんでしたが。 こんな感じの画面が開きます。 自動的
本エントリーでは次の点を整理したいと思います。 ServiceLocatorパターンとは何か? Dependency Injection(以降DI)パターンとは何か? DI Containerとは何か? これらを使うと何がうれしいのか? ServiceLocatorとDI何が違うのか? ServiceLocatorとDIどちらを使うべきか? はじめに 問題点 利用箇所の結合度をさげる 生成箇所の結合度をさげる ServiceLocatorパターン Dependency Injectionパターンを使う Dependency Injection Container ServiceLocatorとDependency Injection いずれを利用すべきか? 本来不要であるServiceLocatorへの依存が発生してしまう 依存関係が分かりにくくなる テストが困難になる はじめに さて現代
Xamarin.Forms用の汎用Behaviorライブラリをリリースました! www.nuget.org コード&詳細ドキュメント(まだ下記中ですが)はこちらにあります。 github.com たとえば、こんな感じでイベント発生時にEventのパスを指定してEventのプロパティを引数にCommandを実行したり <ListView ItemsSource="{Binding Fruits}"> <ListView.Behaviors> <behaviorsPack:EventToCommandBehavior EventName="ItemTapped" Command="{Binding SelectedFruitCommand}" EventArgsPropertyPath="Item"/> </ListView.Behaviors> public ICommand Selecte
【追記】 本エントリーは大幅に見直す予定です。現在検討中の内容は以下に公開しています。 Blue Monkey Architecture Overviewに対する訂正 - nuits.jp blog 【追記終了】 先日Infragisticsさんのイベント「Infragistics Day 2017 Spring」にて、現在進行形で進めているOSSプロジェクトBlue Monkeyの件でお話しさせていただいてきました。 jp.infragistics.com またその時のスライドも掲載させていただいていますが、何分スライドだけ見ても全く分からない為、しゃべった内容を大まかにまとめて記載しておこうと思います。 見ただけで分かって、なおかつ聞いているときも見やすい資料って難しいですね。。。 という訳でよかったら見ていってください。 Blue Monkeyプロジェクト Architecture
次のページ
このページを最初にブックマークしてみませんか?
『nuits.jp blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く