Archive for the ‘C#’ Category

DSC01838

という訳で件名通りなのですが、工学社から出版される「はじめてのVisual Studio 2017」という書籍を執筆いたしました。こちら

この原稿はVS2015の頃から執筆していたのですが、執筆途中で2017のベータが公開されたので、リライトに継ぐリライトにより、なかなかの難産でしたがなんとか出版までたどり着きました。

書籍のタイトルや帯は私が決めたのではないのですが、内容は本当に純粋なVisual Studio本です。

つまり、プログラミングに関する説明は一切なく、ひたすらIDEのコーディング機能を説明しています(^^;

「これだけ高機能なIDEなのに、みんな独学でキャッチアップして凄いなー」と思っていたら、知らずに苦労されている方も多いようなので、以前から「一度IDEについてもまとめておきたいなー」と思っていたので書かせていただきました。

書籍の内容については、編集されたものはお出しできないのですが、元原稿は少しずつ公開したいと思っています。

といっても、執筆内容はコーディングに関する機能に特化していることや、まだまだ書き残したこともあるので、徐々に更新したり書き足していければなーとも思っています。

ある程度まとまった形にできたらこちらでもご紹介したいと思います。

もし、Visual Studioのコーディング機能について、気になる方は是非お手にとって読んでみてください。

追伸:2017/6/21現在、Amazonでは在庫切れのようです。本日から都内の書店に置かれると聞いていたのですが、以下のサイトからは購入できるようです。よろしくお願いします。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

このポストはC# Advent Calendar 2016の12月17日分です。

毎年いろんなポストでC# Advent Calendarには参加していたのですが、今年ほど書くことに困ったことはありませんでした(^^;

既にカレンダーにある記事のバリエーションも多く、なかなか既に多くファンが多いC#関連で興味を引くようなポストは書けなさそうなので、ちょっとしたTipsなのですが、Visual Studioのツールボックスについて書いてみたいと思います。

まずは基本から…。

 

ツールボックスの基本

ツールボックスは、開発で利用する部品の格納庫のような役割を担うウインドウです。

Visual Studioのワークスペース上に表示されている内容に応じて、ドラッグアンドドロップ操作で部品を格納したり、格納されている部品を配置することができます。

 

たとえば、ワークスペース上にWindowsフォームアプリのUIデザイナーを開いた状態にすると、ツールボックスにはWindowsフォーム上に配置することができるコントロールの一覧が表示されます。

ツールボックスが非表示の場合、キーボードショートカットCtrl+Alt+Xでツールボックスを開くことができます。

image

ツールボックスのウインドウ内はタブで分類されていますので、ツールボックス内の部品をワークスペースに配置する場合は、必要な部品が格納されているタブから部品をドラッグアンドドロップしてデザイナーに配置します。

image

 

 

ツールボックスの表示切替

image

ツールボックスは既定ではリストビュー表示となっており、各タブを開くと図 2のようにアイコンと部品名称をリスト表示します。

ツールボックスのタブ内はリストビュー表示以外にも、アイコン表示にすることができます。 

ツールボックス内にあるタブを右クリックするとコンテキストメニューに「リストビュー」があり、チェックされていることが確認できます。

image

チェックを外すとシンプルなアイコン表示となりますので、格納されている部品が多数ある場合は一覧性が高くなります。

image

 

ユーザーコントロールはツールボックスに自動的に配置される

Windowsフォームアプリではソリューション内に自分が作成したユーザーコントロールがある場合、自動的にツールボックス内に配置されます。(このあたりの挙動はWPFやUWPなどでも同じですね。)

image

図 5はプロジェクトにユーザーコントロール「UserControl1.cs」を追加して、Form1.csのデザイナー表示を行った様子です。

プロジェクト内から利用できるコンポーネントは自動的にツールボックスにも追加されて、デザイナーから表示することができます。

ツールボックスに表示するアイコンは既定のアイコンが表示されますが、アイコンを変更する場合は、定義しているクラスに対してToolboxBitmap属性を付与することでアイコン画像を指定することができます。

image

 

ツールボックス内の検索や表示順の変更

ツールボックスの上部には検索ボックスがあり、キーワードを入力するとツールボックス内を検索することが可能です。

image

 

ツールボックスの表示順はドラッグアンドドロップで移動させることもできますし、コンテキストメニューから「アイテムを選択」することで表示するアイテムを選択できます。

image

 

ツールボックス内のタブは、コンテキストメニューから「タブを追加」・「タブを削除」・「タブを変更」によってタブをコントロールできるので、「アイテムの選択」と併せて利用することで、ツールボックス内を自由にカスタマイズすることができます。

 

コードエディタでツールボックスを利用

ツールボックスはコードエディタからも利用できます。

繰り返し利用するコードをコードエディタ上で範囲選択し、ツールボックスにドラッグアンドドロップします。

image

あとは、ツールボックスから任意のコード上にドラッグアンドドロップすればツールボックスに格納したコードを貼り付けすることができます。

ツールボックス上に格納されたテキストはコンテキストメニューから削除や並び替え、項目名の変更を行うことができます。

image

繰り返し追加しないといけないコードなどがある場合や、勉強会などでDemoを行う場合にはとても使える方法なのでよろしければご活用ください(^^)

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

ネタ元:The Visual Studio Blog

Microsoftが主催したイベントConnect();でVisual Studio 2017に関する発表がありましたのでご紹介しておきましょう。

 

Visual Studio 2017 Release Candidate

VIsual Studio 2017 RCが公開されました。ダウンロードはこちら

Visual Studio 2017 RCは言わずと知れたMicrosoft製の統合開発環境ですが、生産性の改善や多くの機能に関する機能向上などが行われています。

 

Visual Studio for Mac

Visual Studio for Mac Previewが開されました。ダウンロードはこちら

こちらは今回新たに公開されたその名のとおりMac上で動作するVisual Studio IDEです。主にはXamarin, ASP.NET Core, Azureなどを利用するフルスタックのクライアント・クラウドアプリの開発が行えるようです。

 

Visual Studio Mobile Center

Visual Studio Mobile Centerが公開されました。こちら

Visual Studio Mobile Centerはモバイルアプリケーションの構築・テスト・配布・監視そして反復して改善できるというモバイルアプリケーションのライフサイクルを支援するサービスとなるようです。

こちらはHockey AppやXamarin Test Cloudの次期バージョンという感じのようですが、モバイルセンターのサイトから引用すると、今回以下の環境がサポートされるようになったそうです。

 

Mobile platforms
Objective-C, Swift, Java, Xamarin, React Native

Lifecycle features
Build, Test, Crash, Beta Distribution, Analytics

Cloud features
Authentication, Easy tables, Offline sync

 

Team Foundation Server 2017 RTM and Visual Studio Team Services

Team Foundation Server 2017がRTMとなりMSDNサブスクリプションに公開となっています。

Team Foundation Server 2017(正しくはVisual Studio Team Foundation Server 2017)は主にチーム開発の開発ライフサイクルをサポートするサーバー製品ですね。

Visual Studio Team Servicesでもいくつかの機能についてGAとなっているようです。

簡単にピックアップするとApplication Insights、 Package Management service、 Code Search,、サードパーティによる商用のオンプレミス機能拡張などが利用できるようになっているようです。

こちらの詳細はこちらのポータルサイトで確認できるようです。(おそらく@kkamegawaさんあたりが説明してくれるのではないかとw)

 

早速VS2017 RCをインストールしてみましたが、見慣れない機能もいろいろありそうなので、順次ご紹介しますね。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

C# Advent Calendar 2015の12月20日の記事になります。遅刻してすみませんすみません。

 

みなさん、Code整形していますか?

VS2015となってCode Aware Libraryが利用できることになったことにより楽にいろんなコーディングを行うことができるようになりました。

ただ、Code Aware Libraryで作成されるコードはあくまで補助のため、ちょっと気を抜くとすぐに可読性の低いコードになってしまいます。

つまり、コードを保守性の高い状態を保つためには、開発者が意志をもってコーディングする必要があります。

とはいえ、複雑なプログラミングを迅速に行う必要がある昨今、開発者の力だけで可読性の高いコードを保つのもそれなりに骨が折れる作業です。

そんな場合にちょっとした補助をしてくれるのがCodeMaidです。

思っていたより知られていない機能拡張のようですので、簡単ですがマニュアルを翻訳・補足説明を掲載しておきます。

 

インストール

CodeMaidはVisual Studioの[ツール]→[拡張機能と更新プログラム]から「CodeMaid」で検索すると見つかりますので、そこからインストールできます。

 

image

CodeMaidがインストールされるとメインメニューに[CodeMaid]が追加されるほか、ソースコード上で右クリックしたり、ソリューションエクスプローラーでソースコードを右クリックしたりすることでコンテキストメニューを表示して利用します。

 

imageimage

 

どんな機能がある?

それでは具体的な機能についてみてみましょう。

Code Cleaning

Code Cleaningでは指定されたコード内をクリーニングしてくれます。具体的には

  1. 未使用のusingを削除
  2. usingの並びをソート
  3. 未定義のアクセス修飾子を追加
  4. 空のRegionを削除
  5. 空行を追加
  6. コードブロック内の不要な空行の削除
  7. VSの書式設定を実行
  8. 連続した空行の削除
  9. 行末の空行を削除
  10. endregionタグの更新(regionタグと同じ内容を追記してくれる)

整形前Cleaning before

整形後Cleaning after

 

Code Digging

C#やC++のコードの階層を可視化し、コード全体の見通しをよく確認することができます。

Digging

可視化された一覧はソートしたり、絞り込みを行ったり、マウスのドラッグ操作によって位置の入れ替えを行ったりできます。

 

Comment Formatting

XMLコメントのタグ位置を整形します。

整形前Formatting before

整形後Formatting after

 

Joining

複数行にわたるコードを1行にまとめます。

整形前Joining before

整形後Joining after

 

Sorting

コードを選択してハイライトされた行をソートします。

整形前Sorting Before

整形後Sorting After

 

Finding

編集中のファイルをソリューションエクスプローラーの中から検索します。

コードを開いた状態でメニューを選択Finding before

ファイルが見つかるFinding after

 

Collapsing

ソリューションエクスプローラ内のプロジェクトやフォルダーなどのノードをまとめて閉じてくれます。

ソリューションエクスプローラの閉じたい場所でCtrl+Mに続けて-を押下すると…。

Collapsing before

 

閉じます。Collapsing after

 

 

Progressing

ビルド進捗状況の表示をおこないます。

Progressing

Progressing Taskbar

 

 

Toggling

ソースコードのタブを右クリックし、コンテキストメニューから[Read-Only Toggle]をクリックするとソースコードをReadOnlyにします。

Toggling before

Read-Onlyのタブだけまとめて閉じることもできます。

Close All Read-Only before

 

 

Remove Regions

選択中のRegionや現在のカーソル行にあるRegion、全Regionを削除します。

Remove Selected Regions

Remove Current Region

Remove All Regions

 

 

Configuring

もちろん、これらの整形機能はCodeMaidの設定ダイアログで有効化・無効化できます。

Configuration General

 

慣れるととても便利なので、是非活用してみてください!

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

Bridge

Microsoft MVPをVisual C#のカテゴリで再受賞することができました。

お陰様でMVPとして受賞したのはこれで8回目、Visual C#のカテゴリでは5回目の受賞となりました。

これも普段、記事を書かせていただいたり、セッションでお話させていただいたり、そして、いろいろとご指導していただいているみなさまやこちらのブログをご覧いただいたりしているみなさまのお蔭と感謝しております。

多くの方に支えられて、今年もなんとかReawardすることができました。
本当にありがとうございます。

今後も変わらず、可能な限りいろんな場所でお手伝いさせていただきたいと思っておりますので、お気軽にお声がけ下さい!

今後ともよろしくお願いいたします。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

DSCN7163

技術ひろば.netの勉強会でお話させていただきます。

開催要項は以下の通りです。

日時:2014/07/19 (土) 13:00~18:00(受付は12:30からだそうです)

場所:日本マイクロソフト 品川本社

(当日は2Fの入り口で受付となるようです。)

お申し込みはこちら

今回は開発初心者向けのテーマを中心とした勉強会ということで、
「Visual Studio 活用方法」
「はじめてのIoT」
「はじめてのクラウド」
などIT業界で話題となっているテーマを初心者の方向けに解説されるそうです。

私は「はじめてのクラウド」というテーマで初心者向けの内容としてWeb技術やクラウド技術についてお話させていただく予定です。

久々のクラウド系(Web系)での登壇でなのでちょっと緊張しますが、頑張ってお話さえていただこうかと思いますので、興味のある方は是非どうぞ!

私もVisual Studioのプロである椎野さんの解説や、IoT(Internet of Things)などおもしろそうなテーマが解説なので今から楽しみです。

それでは会場でお会いできることを楽しみにしております!

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

Visual Studio “14” CTPが公開されています。

こちら

Visual Stduio “14”はマイクロソフトが現在開発中の開発統合環境ですね。

CTPの利用には制限があるようで、リンク先の「CTP limitations」を簡単に翻訳しておきますね。

CTPはテストとフィードバックを目的にした場合のみ利用できます。

CTPのサポートはありません。

英語のみの公開となります。

これらは最終検証まで行われていないので、本番機や製品コードの開発などには利用しないで下さい。

CTPリリースのインストールによりコンピューターがどのような状態となってもサポートできません。我々は仮想マシンまたは再フォーマットしてもよいPCへのインストールをお勧めします。

現在、Visual Studio “14” CTPは以前のバージョンのVisual Studioと互換性に関する既知の問題がありますので、同一マシンへのside-by-sideによるインストールは行わないで下さい。(つまり、複数バージョンのVSを同時にインストールしないで下さいということかな。)

 

まだCTPなので将来バージョンで機能変更となる場合があるので要注意ですね!

というワケで、バグレポートはMicrosoft Connectへ、アイデアはUserVoiceへ、またはVisual Studioのタイトルバーの右側に吹き出しアイコン(speech-bubble icon)からSend a SimeやSend a Frownを使って簡単なフィードバックが行えるようです。

VS2013のUpdate2の公開が終わって、そしてde:codeが終わったと思ったら、早速VS”14”とは、めまぐるしいですがRoslynやASP.NET vNEXT、C++11/14など注目の新機能をネイティブに取り入れているVSなので要チェックですねー。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

image

2014年4月26日(土)に開催されました.NET勉強会でお話しました「クライアント技術から見たBuild2014 Wrap-up」のセッション資料を公開しました。

まぁ、まとめなのでそれほど深く切り込んだ話はないのですが、さらっと読むには参考になればと公開しました。

いつものごとく、内容の保証はできませんが…(^^;;;

よろしければどうぞ。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

image

2014年4月26日(土)に開催される.NETラボ勉強会に登壇します。こちら

開催概要を引用すると以下のような感じです。

■日時:2014年4月26日(土曜日) 13:30-18:00 (開場:13:00、退出:18:00)

■会場:日本マイクロソフト 品川本社 (SGT)31F VIP Board Room
http://www.microsoft.com/ja-jp/mscorp/branch/sgt.aspx

■会費:500円(学生無料、懇親会は別途、ゲストスピーカーは懇親会無料)
※会費は運営費とゲスト懇親会費に充てさせてもらいます。

という訳で、.NETラボさんにお呼ばれしましたので、何についてお話するか悩みましたが、ここは季節ものということでBuild 2014のふりかえりをさらっとと、せっかくですのでユニバーサルWindowsアプリについて、お話させていただこうかと思います。

いつにも増して興味深い技術が目白押しだったBuild 2014では興味深い新技術がいくつも発表されたので、それらの技術をあらためて振り返りつつ、いろいろとお話できればと思います。

私の他にもVisioやXamarinのセッションもあり、今回の.NETラボも盛りだくさんのようですので是非ご参加下さい!

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]

Microsoft .NET Native Developer Previewが公開されています。こちら

Microsoft .NET Nativeとは従来.NETで利用されていたプログラミング言語C#を用いてC++のような高パフォーマンスのNativeコードのアプリケーションが開発できるというプリコンパイル技術ですね。

折角ですので、MSDNに掲載されている説明を簡単に翻訳しておきますね。

適当翻訳(一部意訳なども含む)なのでいつものように内容は保証できません。気になるようであれば原典であるリンク先を確認して下さいね。

従来、.NETのプログラムでは一度Intermadiate language(通称IL)にプリコンパイルされたあと、Just-in-time(通称JIT) compilerによってアプリケーションの初回実行時にNative codeに変換されていました。

対してWindows Storeアプリではこの変換をILを介さず、直接行っています。

これによって、開発者視点では

  • アプリがNative Codeにより優れたパフォーマンスで実行される
  • 開発は従来利用していたC#で行える
  • .NET Frameworkで利用していたクラスライブラリなどの開発リソースをと用いて開発を続けることができる。これらには自動メモリ管理、ガベージコレクション、例外ハンドリングなどが含まれます。

また、あなたが開発したアプリケーションのユーザーにとっての利点として

  • 高速な実行時間
  • 一貫した起動時間向上
  • アプリケーションメモリの最適化

が挙げられます。

しかし、.NET Nativeは単にNativeコードにコンパイルするだけではありません。.NET Frameworkアプリのビルドと実行方法が変化します。たとえば

  • プリコンパイルの際に、.NET Frameowkrの必要な箇所をあなたのアプリに静的なリンクします。つまり、アプリケーションのローカルにあるライブラリでアプリを実行することが可能になります。 それによってコンパイラーはローカルで総合的な解析がおこなえるようになり、最終的には.NET Frameworkの更新後でも一貫して高速に実行することが可能です。
  • .NET Native Runtimeは静的プリコンパイルするために最適化されて最終的にはパフォーマンスの向上を可能しています。開発者にとって非常に生産的なコアリフクレクション機能であることがわかるでしょう。
  • .NET NativeはC++コンパイラー同じバックエンドが利用されています。これらは静的プリコンパイリシナオリに最適化されています。

.NET Nativeはマネージコード開発者にC++の持つパフォーマンス利点を与えます。それはC++内部で利用されているツールに同じ、または近いものが利用されているからです。

その一部が以下になります。

  .NET Native C++
Libraries .NET Framework + Windows Runtime Win32+Windows Runtime
Compiler UTC最適化コンパイラ UTC最適化コンパイラ
Deployed Ready-to-run binaries Ready-to-run binaries(ASM)
Runtime MRT.dll(Managed Runtime) CRT.dll(C Runtime)

(For Windows Storeアプリ for Windows 8.1, Windowsストアに.NET Native Codeによってコンパイルされたアプリケーションパッケージをアップロードした場合)

ということで、またおもしろそうな技術が出てきましたね。また、時間があるときにでも少し勉強会とかでお話させてもらおうかな。ということでメモ。

ツイートツイート
Facebook にシェア
このエントリーをはてなブックマークに追加
[`evernote` not found]