2019/04/13(土)既存のプロジェクトをGitHubにあげる

一度やったはずなのにまた躓く…。
既にGitHub側もVisual Studio側も環境は整っている場合の手順のおさらい。

下準備

  • Visual Studioでプロジェクトを作成
  • ソース管理(ローカルリポジトリ)に追加しておく
  • GitHubでプロジェクト名と同じ名前のリポジトリを作成(ReadMeは追加しない)

GitHubで作成したリポジトリのアドレスをコピー

20190412002.png

Visual Studioのリポジトリの設定でリモートを追加

20190412001.png

20190412003.png

20190412004.png

20190412005.png


保存すれば後はいつもの作業…のはずが今回はおまけが…。
同期してプッシュしたらセキュリティの警告が表示されました。
20190412006.png


WebFormの新規プロジェクトで作成したばかりでほとんど修正していないのに何故?と思い確認したら、bootstrapのバージョンが脆弱性含んだものになっていたようです。
20190412007.png

Nugetで何も考えずに更新かけたら3.4.1に上げたつもりが4.3.1にあがってしまい、デザインの微調整が必要になりました。

2018/12/16(日)GitHub Extension for Visual Studioを入れました…

githubで作成したリtestポジトリをVisual Studioでローカルにクローンするのは簡単にできましたがローカルにあるソリューションをプッシュする方法が分からず苦戦。
検索するとGitHub Extension for Visual Studioを使う方法が上がって来ますが、Visual StudioだけでGit使えた記憶があるので、Extension入れずに色々試すも見つけられず。

ソース管理プラグインがGitになっていることを確認。
github010.png


リポジトリを作成した後に表示される ...or push an exsisting repository from the command lineを試す。
github020.png

1行目はVisual Studio側で設定済み(自信ないですが、下記と同じつもり)なので2行目をcmdで実行するも証明書系?のエラー。
github025.png


Visual Studioのソリューションからコミット。
github030.png


コメントを入れてローカルに反映。
github040.png


同期を実行してもプッシュがグレーアウトのままでGitHub繋がらずオフラインのまま。
github050.png


しばらく格闘したものの、年末の忙しい時期で根気が続かず。
ここは潔くGitHub Extension for Visual Studioを入れることに。
Visual Studioの「ツール」→「拡張機能と更新プログラム」でgithubで検索すると一番上に出てきました。
github060.png


見慣れたマークが現れました。必要なくなったら消せるんでしょうか…。
github070.png


Connect…をクリックすると待望のログイン画面が。
github080.png


ログインするとアイコンが増えました。
github090.png


プッシュがアクティブになっています。
github100.png


無事プッシュ終了。
github110.png


GitHubに行って確認。
READMEを追加しろ、というメッセージが出たのでソリューションに追加するつもりで画面だけキャプったらそこに「Add a README」ボタンがあることに気づく。
IEで編集しようと思ったら保存できず。今までIEでGitHubを見てもデザインの崩れ等感じませんでしたが初めて実感。クロームで編集。
github120.png


Visual Studioからプルしてみましたが、ソリューションからは見えない。
フォルダを開いて確認するとちゃんと保存されていました。
github130.png

ASP.NET

2018/07/07 VS2017
個人的にはASP.NET MVC一択かなと思っていたのですが、Web系テンプレート選択で悩むことが増えてきたので…。

VS2017のWeb関連テンプレート

ASP.NET or ASP.NET Core

入口で大きく2つに分かれていますがターゲットフレームワークの違いで選択してしまいそうですが、ここでの選択はターゲットフレームワークの違いではなくASP.NETのバージョンによる違いです。
asp20180707001.png

ASP.NET Coreは元はASP.NET5と呼ばれてました。
asp20180707005.png

なんとなくの推測ですが、.NET Coreに対応するにあたり他の言語から移行しやすいようにフォルダの構成等を世間の流行りに合わせたら、ASP.NET4からの自動アップグレードができなくなった。しょうがないのでリセットして1から始めた感じ。
ASP.NETをASP.NET Coreに移植するべき?
ASP.NETは簡単には無くならない。WebFormやWCFやWFはASP.NETのまま残る(.NET Core対応予定なし)。
MVCも完全な互換があるわけではない。依存ライブラリによっては.NET Core未対応のものもある。
→移植の規模が大きい場合は手間をかけてまで書き換える必要は無い。
.NET Coreが.NET Frameworkより優れている点
  • クロスプラットフォーム(macOS、Linux、Windowsで実行できる)
  • パフォーマンスが向上した
  • side-by-sideで.NET Frameworkより細かいバージョン違いまで管理が可能(マイナーバージョン違いを同時に動かすことができる)
  • 新しいAPIが使える
  • オープンソースである
新しいプロジェクトを作成する場合は.NET Coreの採用を真剣に検討すべき、だそうです。
正直今まであまり必要と思ってませんでしたが、機械学習やらRazor Pagesを試そうとすると.NET Coreを入れろ、から始まっているので仕方なくと言う感じです。

ASP.NET Core Web アプリケーション

旧称:ASP.NET5
対象フレームワークは.NET Coreあるいは.NET Framework
作成時に選択(後から切り替えは無理っぽい→プロジェクトファイル直接編集すれば可)どちらのフレームワークを選ぶかの判断基準はこちら
asp20180707004.png

テンプレート名プロジェクトタイプ備考
ASP.NET Core詳細
APIRESTful HTTPサービス詳細
WebアプリケーションASP.NET Core Razorページ詳細
Webアプリケーション(モデル ビュー コントローラ)ASP.NET Core MVC詳細
AngularSPA(with Angular)詳細
React.jsSPA(with React.js)同上
React.jsとReduxSPA(with React.js,Redux)同上

ASP.NET Web アプリケーション(.NET Framework)

通称:ASP.NET4
対象フレームワークは.NET Frameworkのみ
フレームワークの切替機能はなく、アイコンにさりげなく(?)ASP.NET4の4が付いています。
asp20180707003.png

テンプレート名プロジェクトタイプ備考
ASP.NET4詳細
WebフォームWebForm詳細
MVCASP.NET MVC5詳細
Web APIRESTful HTTPサービス(ヘルプページ付)詳細
Single Page ApplicationSPA(with Knockout.js)詳細
Azure APIアプリRESTful HTTPサービス(with Swagger)詳細

2018/07/04(水)ASP.NET Core MVC は非推奨

VS2017の起動直後の画面に表示されているリンク「最新のテクノロジーを活用して、美しく、低コストで信頼できるWebサイトを配置する」をクリックしてみてびっくり。
「Razor ページ」のページへ飛ばされ、あれMVCはと思ってMVCのページをクリックしたら下記のような文言が。
pg20180704001.png

意訳すると「新しく便利なRazorページを作ったのでそっちを使ってね、どうしてもMVCを使うというのならその理由を報告してね」

あえてMVCを選択する理由を覗いて見るとWebFormを思い出す、後退だろうという意見やコロコロ変えすぎ付いて行けないわという意見が。

気持ちは分かりますが、ドキュメント読んでいる感じではMVCの一部だし、ページ単位でコードがまとまるのは管理が楽になりそうで悪くは無いと思います。
最初からこの形にしておけばWebFormからの移行も楽だったんじゃないかと思いますが。
今までは自分でViewModelを作成していましたが、それがPageModelに変わると書き方が統一されそうですし。

Coreの動くサーバーがまだ無いので実際に使うのは随分先になりそうですが…。
プロジェクトを作成する際に.NET Framework選択すればよさげです。
rp20180707002.png


後から切り替えは無理っぽい。
rp20180707003.png

OK キャンセル 確認 その他