rksoftware

Visual Studio とか C# とかが好きです

Mac 版も忘れずに、Visual Studio 2019 for Mac もリリースされています

世間は Visual Studio 2019 のロンチでお祭り騒ぎです。
私も早速更新しました。 イベントも開催されます。

■ ところで Mac は?

お祭り騒ぎの裏で何人かから聞かれました。Mac は 2019 でないの? と。
結論から言うと出てます。
参考:Visual Studio 2019 for Mac リリースノート

for Mac に 2019 という表現があるのは実は今回初めて知りました。
※アプリのバージョン情報には 2019 の文字はありません。謎の文字はありますが。。。

Windows の RC 版と同じように普通に更新でバージョンが上がります。
Mac の方も 2019 ロンチのお祭りに是非ご参加を。こちらでポチっとするだけで参加登録できます。

Visual Studio 2019 がリリースされました

Visual Studio 2019 がリリースされました。
私も早速インストールしてみましたが、新機能はまだ私も試せていません。
※ RC や Preview で試していた機能はありますが、製品版ではまだ何も動かしていません。

■ 更新方法

Visual Studio 2019 の RC 版をインストールしていた方は、Visual Studio のメニューの ツール > ツールと機能を取得 で開くインストーラーから更新を行うと製品版になります。
私はこの手順で行いました。RC 版を入れていない場合はまた後日確認します。

■ 試してみる会

新機能の数も多く実際に試してみようにもなかなか手が付かない、そういうことあると思います。私もそうです。
そんな皆様にそして私にお勧めのイベントがあります。
RC 版から触っている方も参加してくださっています。私も良く使う分野の機能は当日までにもうチョット触っておこうと思っています。
きっと面白いと思うのでぜひ参加をご検討ください。

Microsoft Learn でクライアントアプリや Web アプリを学べそうなもの

(2019/03/30 時点です) コンテンツは日々増えているようなので、これを読んでいるときには状況も変化しているかもしれません。

■ Microsoft Learn

オンラインでマイクロソフトのプロダクトを無料で学べます。

2019/03/30 時点で 360 の学習内容があります。かなり多いので何を学べな良いか迷ってしまいます。
私は、アプリ開発系(Windows デスクトップ/Xamarin/ASP.NET)なので、それらしいものを探して見ます。

■ 製品で絞込

それらしい製品で絞り込んでみます。

.NET

  • ASP.NET Core を使用して Web API を構築する

Visual Studio

  • Mojifier - 人の顔を感情にマッチした絵文字に置き換える Slack ボットを作成する
  • Azure Bot Service を使用してチャット ボットを構築する
  • Azure 開発用の開発環境を準備する
  • Azure Functions と Twilio を使用して自分の位置をテキスト メッセージとして共有する
  • Azure Cosmos DB の NoSQL データを扱う
  • Visual Studio Code で Azure Cosmos DB 向けの .NET Core アプリを構築する

Windows

  • Windows 10 アプリケーションにデータ バインディングを実装する
  • Windows 10 アプリのユーザー インターフェイス (UI) を作成する
  • Windows 10 アプリのユーザー インターフェイスを拡張する
  • アダプティブ カードの作成
  • Windows Subsystem for Linux の使用を開始する
  • アダプティブ カードを Windows 10 のタイムラインに統合する
  • Windows 10 開発の概要
  • Windows 10 アプリケーションの開発
  • 最初の Windows 10 アプリケーションを作成する
  • インターネットに接続する Windows アプリを作成する
  • Windows デバイスでオフラインで実行できるように機械学習モデルを - UWP アプリに追加する
  • Visual Studio で Windows 10 アプリの開発を始める

頑張れば全部できそうな数ですね。

■ フィルター

キーワードをフリー入力でフィルターすることもできます。
製品の絞り込みでは頑張れば全部できそうな数だったので、こちらでもそれらしいキーワードを入力してみました。

Xamarin

  • Azure Functions と Twilio を使用して自分の位置をテキスト メッセージとして共有する

モバイル

  • ご自分のサービスにゆるく接続するために Azure でメッセージング モデルを選ぶ
  • Dynamics 365 for Retail
  • Azure Functions と Twilio を使用して自分の位置をテキスト メッセージとして共有する

UWP

  • Windows デバイスでオフラインで実行できるように機械学習モデルを UWP アプリに追加する
  • Windows 10 アプリのユーザー インターフェイス (UI) を作成する
  • 最初の Windows 10 アプリケーションを作成する
  • Windows 10 アプリのユーザー インターフェイスを拡張する
  • アダプティブ カードを Windows 10 のタイムラインに統合する

WPF

  • Windows 10 アプリのユーザー インターフェイス (UI) を作成する
  • 最初の Windows 10 アプリケーションを作成する
  • Windows 10 アプリのユーザー インターフェイスを拡張する

Windowsフォーム

  • 最初の Windows 10 アプリケーションを作成する

ASP.NET

  • ASP.NET Core を使用して Web API を構築する
  • Visual Studio で Azure に Web アプリを発行する
  • サーバー側の Web アプリケーション コードに Application Insights を追加する

F#

C#

  • Azure Service Bus を使用してメッセージ ベースの通信ワークフローを実装する
  • ASP.NET Core を使用して Web API を構築する
  • アプリケーションと Azure Queue Storage の間で通信する
  • Windows 10 アプリケーションにデータ バインディングを実装する
  • Windows デバイスでオフラインで実行できるように機械学習モデルを UWP アプリに追加する

すこし増えた気がします。

■ 表にしてみました

.NET Visual Studio Windows Xamarin モバイル UWP WPF Windowsフォーム ASP.NET C#
ASP.NET Core を使用して Web API を構築する
Azure Bot Service を使用してチャット ボットを構築する
Azure Cosmos DB の NoSQL データを扱う
Azure Functions と Twilio を使用して自分の位置をテキスト メッセージとして共有する
Azure Service Bus を使用してメッセージ ベースの通信ワークフローを実装する
Azure 開発用の開発環境を準備する
Dynamics 365 for Retail
Mojifier - 人の顔を感情にマッチした絵文字に置き換える Slack ボットを作成する
Visual Studio Code で Azure Cosmos DB 向けの .NET Core アプリを構築する
Visual Studio で Azure に Web アプリを発行する
Visual Studio で Windows 10 アプリの開発を始める
Windows 10 アプリケーションにデータ バインディングを実装する
Windows 10 アプリケーションの開発
Windows 10 アプリのユーザー インターフェイス (UI) を作成する
Windows 10 アプリのユーザー インターフェイスを拡張する
Windows 10 開発の概要
Windows Subsystem for Linux の使用を開始する
Windows デバイスでオフラインで実行できるように機械学習モデルを UWP アプリに追加する
アダプティブ カードの作成
アダプティブ カードを Windows 10 のタイムラインに統合する
アプリケーションと Azure Queue Storage の間で通信する
インターネットに接続する Windows アプリを作成する
ご自分のサービスにゆるく接続するために Azure でメッセージング モデルを選ぶ
サーバー側の Web アプリケーション コードに Application Insights を追加する
最初の Windows 10 アプリケーションを作成する

こんな感じです。順に進めていこうと思います。

Windows フォームアプリは滅びんよ

秋葉原 C# もくもく会 #78 勉強会を開催しました

■ C# もくもく会

C# もくもく会 #78 を開催しました。

C# もくもく会 は東京の秋葉原で毎週木曜日に開催している .NET 系の勉強会です。
もくもく自習を基本とし、分からないことを教えあったり情報共有したりしている会です。 定期開催していますので、お時間のある時に遊びに来ていただければと思います。
ちょっと詰まった時、ネット上で聞くのははずかしいなぁ、という課題のできた時などにも思い出していただけると嬉しいです。
f:id:rksoftware:20190329224900j:plain

■ 今週の成果発表

今週は、

  • High Sierra → Mojave にアップデートしました(コワーキングスペースの回線で)
  • pptx スライドを 4 ページ書きました
  • ASP.NET MVC のチュートリアルを始めました
  • Linq を理解しました

と多彩です。少し Unity の話もありました。 スラスラ読める Unity C#ふりがなプログラミング (書籍) はいいらしいです。
ちなみにこの勉強会ですが、実は公序良俗に反しなければどのような技術を扱っても大丈夫です。そもそも C# エンジニアが C# だけしか使わないというわけではありませんし。

■初心者歓迎

このもくもく会には、入門者の方も多くご参加いただいています。 突然 C# やらなければならなくなって途方に暮れている方、何となく C# をやってきたけど改めて見直してみたい方なども大歓迎です。
入門セミナー代わりでのご参加も歓迎です。プログラミング入門者の方も是非遊びに来てください。

特に C# で課題をお持ちでなくても是非遊びに来てください。

■ 目指す勉強会スタイル

世界一敷居の低い勉強会を目指しています。

何か聞きたいことがある場合は、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

何か共有したい情報を見つけた場合も、聞く相手を決めずに独り言のようにつぶやくと誰かが拾ってくれる

そんなスタイルでやっています。

■ 次回予定

次回は 2019/04/04 に開催予定です。

C# に関心のある方、是非遊びに来てください。

Visual Studio の 15.9.10 がリリースされました

Visual Studio のアップデート 15.9.10 がリリースされました。
今回は既に日本語が公開されています。素晴らしい。

■ 更新内容

今回は既に日本語が公開されていますが、それに気が付く前に記事を書き始めていたので少し表現が異なります。

  • Web プロキシが構成された Docker を使用したデバッグがエラーとなって実行できない問題を対策
  • Docker を使用したデバッグで、ドライブ共有の構成関連のエラー(例:有効期限切れの資格情報)でのエラーハンドリングを改善

どちらも Docker 関連です。恥ずかしながら Docker を使っていないのですが、とりあえず更新します。

■ 更新方法

Visual Studio の更新はメニューの ツール > ツールと機能を取得 で開くインストーラーから行えます。

.NET Core 3 の WPF でもデザイナをあきらめない(目次)

プレビューですが、.NET Core で動作する WPF アプリが作れるようになっています。
しかし、画面デザイナがありません。
※日頃の行いの良い方の Visual Studio 2019 RC にはデザイナがあるのかもしれませんが少なくとも私の Visual Studio 2019 RC にはありません。 そこで、.NET Core の WPF でもデザイナの力を借りる方法を考えてみました。

いくつかの記事に分かれているのでその目次です。

□ .NET Core 3 の WPF でもデザイナをあきらめない(基本)

□ .NET Core 3 の WPF でもデザイナをあきらめない(ViewModel/.NET Standard)

□ .NET Core 3 の WPF でもデザイナをあきらめない(ViewModel/SharedProject)

□ .NET Core 3 の WPF でもデザイナをあきらめない(ViewModel/DependencyInjection)

.NET Core 3 の WPF でもデザイナをあきらめない(ViewModel/DependencyInjection)

以前に .NET Core 3 の WPF でデザイナを使うために、XAML ファイルを .NetFramework プロジェクトで開くという力強い記事を書きました。 ViewModel は .NET Standard クラスライブラリを作るとスマートというスマートな記事も書きました。

ViewModel は SharedProject に作るという少し懐かしさを感じる記事も書きました。 その続編です。

■ スマートに ViewModel を設定したい

これまでの .NET Standard や SharedProject でも問題なく ViewModel を扱えましたが、どちらも僅かな制約や注意を要する点がある方法でした。今度は、制約や注意点のないシンプルな方法を考えてみます。

■ ViewModel のインタフェースを作る

これまで ViewModel は直接実装を扱っていましたが、インタフェースを定義して、View はこのインタフェースに依存するようにします。このインタフェースだけをリンクで共有すれば、シンプルな依存になって制約や注意点がなくなるはずです。


※今回は DI コンテナとして Unity コンテナを使っています。

ViewModel のインタフェース IMainWindowViewModel

ViewModel のインタフェースです。

using System.ComponentModel;

namespace WpfAppNetCore
{
    interface IMainWindowViewModel : INotifyPropertyChanged
    {
    }
}

ViewModel の実装クラス MainWindowViewModel

namespace WpfAppNetCore
{
    class MainWindowViewModel : BindingBase, IMainWindowViewModel
    {
    }
}

■ DI で ViewModel をセット

DI というか、このコードでは ServiceLocator になっていますが。

using System.Windows;
using Unity;

namespace WpfAppNetCore
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = DIContainerHolder.Conatiner.Resolve<IMainWindowViewModel>();
        }
    }
}

コードビハインドで、ViewModel をセットすることに賛否あると思いますが、ここから更に進むことができる道もあると思いますし、アイデアのネタの一つとして受け止めてもらえるとありがたいです。

■ 動作

非常にシンプルで、扱いやすいプロジェクトになりました。やっぱり DI ですね。
f:id:rksoftware:20190324153117j:plain

□ .NET Core 3 の WPF でもデザイナをあきらめない記事シリーズの目次