asp.netの今とこれから
TRANSCRIPT
自己紹介
吉野翼 @papemk2
信州大学工学部をこの前卒業 長野高専 電子情報工学科 OB
.NET, C#, Kinect, Azure
Xbox の音声入力で人間の尊厳を失いかけた
NUI と機械学習が専門
共通言語基盤 (CLI)
ECMA, ISO で標準化されている
.NET Framework は , MS による共通言語基盤の商用実装
Mono は , これのオープンソース実装
ソニーも独自カスタムの実装をやっていた ( 年内にサポート打ち切り )
共通言語基盤 (CLI)
これのおかげで同じようなコードがどの環境でも大体動く
それぞれの実装毎に中身が違う .NET は , 商用製品 , オープンな実装もシェアードソースでコピペ厳禁とかとか 実装毎にギャップがあったり実装が遅れていたり Windows から足りない dll を持って行ったりとかアホらしい
Mono が頑張って .NET の実装に追いつこうとしてくれている 結構すごい勢いでやってるっぽい 気が付いたら最新ビルドが 4.1 だった ( 全然 Jenkins 通る気配がないけど )
Mono と .NET
大体相互で動く 計算処理とかだったらあまり困ることはなさそう
Visual Studio で作ったバイナリが Mono でそのまま動かせる CLI がその場でネイティブ変換するから Mono が対応できていれば大概動く MonoDevelopment でビルドすると相互に互換性のないバイナリが吐き出された
5 以前の ASP.NET
Mono Development のテンプレートは , MVC 5.2 一応 MVC5.2 は , 動く部分は , 動く 動かない部分は , 普通に動かない or Mono 用にいじる必要がある やめた方がいい
5 以前の ASP.NET
普通に動くと思っちゃいけない
バイナリは , ある程度動く , MVC もある程度動くでもやめた方がいい Linux で動かすとか言われたら全力で Azure Web Apps に逃げた方がいい
どこが動く or 動かないの確認する作業とか最悪
System.Web が絡む時点でほぼ何もできないと思っていい
餅は , 餅屋 , ASP.NET は , IIS + Windows
最近の .NET の動向
.NET Core フルの .NET Framework を軽量化したサブセット オープンソース Windows 以外でも動く .NET のフォーク的な位置づけ アジャイルなリリースサイクル
CoreCLR フルの .NET の CLR を軽量化したサブセット 要は , .NET Core の実行エンジン NuGet のおかげで全体のモジュール化が進んで軽量になった
最近の .NET の動向
.NET Native
すごくイケてる 起動時間が短くなる ( 実行時コンパイルの必要がない )
最終的に実行マシンに .NET Framework が必要なくなるかも ストアアプリ以外にも対応してほしい (セキュリティが怖い )
最近の .NET の動向
ASP.NET 5
普通に Mono で動く Mac or Linux で動かないんでしょw は , もう言わせない Side by side が楽になった
設定が JSON
パッケージの依存関係も全部 JSON で管理するからわかりやすい 依存関係の設定ファイルも IntelliSense が使えるのとかすごくイケてる
最近の .NET の動向
OmniSharp とか開発環境も便利になった ( 結構前からあった )
Emacs, Atom, Sublime Text, Vim などで Intellisense が使えたりする Mono Development とかいうク○から解放された! Emacs で ASP.NET が快適に開発できる!最高! とりあえず Vim使おうとする人たちも殴れる
ASP.NET の動向
非Windowsユーザから見ても ASP.NET は , もう怖くない
Visual Studio がなくても大概どうにかなる Visual Studio を使うのが一番幸せだが…
クラウドに最適化された モジュール化で軽くなったとか?
大体 GitHub に集約されてる オープンソース教の方々も殴れる
Linux or Mac で ASP.NET 5 を動かすには Mono 3.4 以降 (4.1 だと動かなかった )
Node.js
Npm
Bower
Kpm
Kre
libuv
Ubuntu なら apt-get で入る (libuv 以外 )
注意点
名前とかコロコロ変わる
常に破壊的に変更されるので生暖かく見守りましょう
Windows版に Mono 用のランタイムを入れる方法がない ?
逆もまた然り
Kpm pack で , アプリケーションのポータブル化ができる Windows から mono 用ランタイム , Mono 環境から Windows 用を吐き出すことはま
だ無理そう そもそもランタイムの入れ方が分からない
現実
PHPer やってます
Yii2フレームワーク使ってます 旧共産圏 , 東欧で流行ってるフレームワークらしい 日本語の書籍 0 (Amazon.co.jp)
ググるとキリル文字とか出てくる ロシア語 , ウクライナ語 , ベラルーシ語 , セルビア語 , etc…
読めない以前に文法が分からないから何語かわからない
EC サイトがメインの会社でした 採用された後に知った