.NETラボ6月勉強会に参加しました

.NETラボ6月勉強会で「マイクロソフトのオープンソース戦略を考える」というテーマでスピーカーを担当させていただきました。

http://www.dotnetlab.net/dnn/Events/NET%E3%83%A9%E3%83%9C%E5%8B%89%E5%BC%B7%E4%BC%9A2012%E5%B9%B406%E6%9C%88/tabid/116/Default.aspx

1週間前にプレゼンテーションをほぼ完成させたのですが、その際に事実だけを淡々と載せて自分の考察を書いていなかったので、当日の資料にもあまり自分なりの考察がない状態になってしまいました。当日使用したプレゼンテーションはSlideShareにアップしてあります。

何でマイクロソフトがこんなに「オープン」「オープン」と声を大きくして言っているのか、と考えてみると、結局は自社のテクノロジーであったりサービスを使って欲しいってことが根底にあるんだと思います。こんなことを言ってしまうと元も子もありませんがw ASP.NET WebFormはこれまでのVB/VBAを使っていたエンジニアを移行させやすくするために、イベント駆動/ViewState/PostBackを採用しました。今までVBをやっていたエンジニアを囲い込むことにはある程度成功しました。そして当時2001~2002年の最大のライバルであったJavaを倒すこと(Javaエンジニアを取り込むこと)が至上命題だったのだと思いますが、ViewState/PostBackに代表されるWeb,HTTPを隠蔽した超独自仕様のおかげで、他のテクノロジーのエンジニアを取り込むどころか「Java派vs.NET派」に近い相容れない構図が生まれてしまったように感じます。Sun Microsystemsの凋落とともにJavaが衰退し始め、Java/Strutsに替わるものとして勢いが出てきたのが、ASP.NETではなく、PHP/Ruby on Railsでした。ASP.NETはある一定のエンジニア(昔からVBを使っていた人たちを中心に)を囲い込むことはできましたが、Java/PHP/Ruby on Railsからの乗り換え対象とはなりませんでした。

じゃ、どうするか?ASP.NET WebFormを他のテクノロジーのアドバンテージを取り込んで進化させられるかといえば、超独自仕様がウリになっているためそれは不可能です。ということで、Struts/Rails(特にRailsを意識した)に似せたASP.NET上のMVCフレームワークを作って、他のテクノロジーからの乗り換え対象としたいと考えました。それがASP.NET MVCです。他のテクノロジーがオープンソースになっているためASP.NET MVCもオープンソース化し、パブリックなリポジトリを使用して開発を行うようになりました。独自のJavaScriptライブラリを使用せず、デファクトスタンダードとなっているjQueryを採用しました。すべて、今までASP.NETを使ったことのないエンジニアにASP.NET MVC+C#を使って欲しいからです。WebアプリケーションフレームワークとしてはASP.NETは弱者な訳ですから、他のテクノロジーが採用している技術、思想、開発方法などはどんどん取り入れました。結果「オープン」になりました、なのかもしれません。

Windows Azureもほぼ同様です、クラウドではAmazonというビッグプレーヤーがいます。AmazonはOSやアプリケーションフレームワークに対するしがらみがないので、WindowsもLinuxも動きます、JavaもPHPもRailsも.NETも動きます。MongoDBも動きますが、MySQLだって、SQL Serverだって動きます。こんなビッグプレーヤーに対抗するためには、「AzureはWindows+.NETしか対応しません キリッツ」とは言えないわけです。いろんなテクノロジー、いろんなソフトウェアが動作する必要があります、自社テクノロジーを使ってくれるのが一番うれしいのはそりゃそうでしょうが、そんなことは言ってられないのでしょう。インメモリキャッシュやHPC(BigData)では後発の自社開発テクノロジーではなく、デファクトスタンダードに近いソフトウェアを動作させることを優先させています。結果「オープン」になりました。

OSやデスクトップアプリケーション開発ではマイクロソフトは強者です(たぶん、OSはApple/Googleがいるので今後どうなるかは分かりませんが)しかし、Webアプリケーション開発フレームワーク、クラウドプラットフォームでは、それほど強者ではありません。では強者とどう戦うかというと、まずは現状の強者ができることは少なくともできるようになっていなければなりません。スキルを移行しやすくするために自社開発にこだわらず、スタンダードな技術は積極的に採用していく必要があります。結果「オープン」になり、「オープンであること」アピールしているのかもしれません。「オープンであること」それ自体は目的や果たすべきものではなく、ビジネスである以上、自社のテクノロジー・サービスを多くの人に使ってもらい、お金を落としてもらうことが最大の目的です。そのためにやってきたことが、結果として「オープンになってしまった」のかもしれません。

当日、自分のセッションを終えて休憩時間になってふとそんなことを思いました。もっと早く真剣に考えれば、自分なりのいろんな考察ができたのかと思うと、悔いが残りました。

尾上さんのMVVM/MVCの話を聞いていて、ASP.NET MVCアプリケーションを作っているとMの部分がどんどん大きくなる(クラスが増えていく)ことに不安を感じていましたが。そうあるべき(UI、Web/HTTP以外ごと、つまりビジネスロジックはMに集まる)と理解することができ、非常に勉強になりました。ちょっと大きめのソース(Project Silk/EFMVCとか)を読んで勉強しようと思います。

.NETラボ4月勉強会に参加しました

.NETラボ4月勉強会でVisual Studio11 Express Editionsについてお話させていただきました。

製品版Visual Studioが進化しているのと同様に、Express EditionのVisual Studioも大きく進化しています。 個人的には「TFS Express」と「for Web」の超進化に注目しています。今まで提供されなかったTFS Expressが提供され 、しかも一通りの機能がそろった状態です。TFSを使い始める人にとって不足の機能はないと思います。小規模な開発チームであればTFSExpressでいいのではないかと思わせてしまいます。

MetroStyleAppでHTML+JavaScriptが開発言語として採用されたこともあってか、Visual Studio Express for Web (以前のVisual Web Developer)が大きく進化しています。言語が違うので単純な比較はできませんが、C#やVBと同じ感覚でインテリセンスが効き、非常に気持ちよくプログラムを書くことができます。この部分は言葉では表現しにくい部分なので、VWD2010を使用していて、HTML,JavaScriptが書きにくいと感じる人はぜひ使って欲しいと思います。

TFSExpressが提供されたこともあり、クライアントのExpress EditionからTFSExpressにアクセスし、チェックイン・作業項目管理・自動ビルドの設定を行うことができます。恐らく、製品版のTFSにも接続することができると思います。Windoew PhoneやMetroアプリケーションを作成するチームは、他のパッケージアプリケーションに比べて小規模となることが多いと思います。また、個人のホビープログラマーが開発することもあり、マーケット公開前にマイクロソフトによる審査が行われるため、Express Editionが「プログラミング・ビルド・配布するツール」から「小規模チーム/個人でも審査を通るアプリケーションを作成できるツール」 に変わった気がします。TFS、単体テスト機能がExpress Editionに提供されたことは、象徴的なことだと思います。

これまでもGit,Subversion/NUnit,XUnit などで代用することができましたが、IDEからこれらの機能が利用可能になったことが非常に大きな変化だと思います。今後、アプリケーションはWebなどを通じて個人の任意のタイミングで公開することができなくなり、マイクロソフトの審査を通すことで開発者の中での完成とマーケットでの公開にタイムラグが発生します。審査中でも新機能を追加するための開発を継続することもあるでしょうし、審査でNGが出て修正を行わなければならないケースが発生します。そのため、これまで以上にソースのバージョン管理と、どのバージョンにどんな変更を加えなければならないのか(作業項目管理)が重要になってきます。また、審査を通るためには開発者でもきちんとしたテストを事前に行っておく必要があると思います。Express Editionで作成したアプリケーションでも審査を通ることができるようにツールを進化させたのだと思います。

推測ですが、マイクロソフトのメッセージとしては

「Express Editionを大幅に進化してやったから、ちゃんと審査に通るアプリを作れよ」ということでしょうか。

ということでしょうか。

.NETラボ3月勉強会に参加しました

.NETラボ3月勉強会に参加しました、八巻さんがイケメン過ぎて辛かったですw

ま、冗談は置いておいて、Windows8とSQL Server 2012 formerly known as でなりたん の話を聞くことができて非常に興味深かったです。個人的にWindows8に対してネガティブな印象を持っていましたが、グレープシティの八巻さんの話を聞いてそういう解釈もあるんだな、と感じました。

自分たち「自称ITの専門家」たちがネガティブな印象を持とうが、disってもユーザーインターフェースは変わっていくんだろうし、現行の圧倒的なシェアを使用して新しいデバイス、OSが一気に世の中へ広まっていくのでしょう。否定して使わないのが自由でしょうが、そんなことを言っていると2012年3月時点でWindowsXPをクラシックテーマで使用するような人間になってしまうのかもしれません。

ノートPCやディスプレイにKinectが内蔵されるようになると、ディスプレイにタッチするのではなく、指を近づけてジェスチャーを行うことでPCを操作できるようになるのかもしれないな、と思いました。

自分もライトニングトークでASP.NETについてしゃべらせていただきました。オランダで開催されたTechDays2012のScott Geuthrieの80分のセッションを、約4分20秒でダッシュで紹介させていただきました。全編英語ですがASP.NET / ASP.NET MVCの現在と未来について語っており、セッションの半分はデモなので、英語が苦手な人でもデモの部分は何となく分かるかもしれません。ただ、強烈に眠くなるかもしれませんが。ASP.NETを追いかけている人は絶対に見るべき内容です。

ライトニングトークで使用したプレゼンテーションをSlideShareにアップしておきます。

4月はWindows Developer Dayに参加する予定です。Windows開発責任者のSteven Sinofskyの話が聞けるとか楽しみすぎますね。

.NETラボ2月勉強会に参加しました

今回はスピーカーとして、参加させていただきました。「ASP.NET MVC4 Beta新機能の紹介」というテーマで以下の内容についてお話をさせていただきました。

  • これまでのASP.NET, ASP.NET MVC
  • ASP.NET MVC4 新プロジェクトテンプレート
  • Display Modes, Browser Overriding
  • 今後のASP.NET

ASP.NET MVC4 Betaが2/14にリリースされて、勉強会まで10日しかなかったのですが薄く広く可もなく不可もなく紹介できたかな、と思います。勉強会で60分もしゃべったのは初めてなんですが、思っていたほどはグダグダにならなかったと思います。ただ、あれもこれも伝えたいと思ってプレゼンテーションの量が多くなってしまい、最後の10枚は5分くらいで片付けたような感じになってしまいました。

画面に時計をだして残り時間を常に把握できる状況なんですが...時間配分って難しいですね。

SPA(Single Page Application)の目的や使い所がほとんど消化できていなかったので、自分が理解できていたことの半分も伝えられませんでした。自分のあとの井上章さんのセッションを聞きながらProject SilkはSPAにつながったのかな、と思っていました。HTMLで全画面を更新せずに、必要な部分だけを更新するようにしてレスポンス(操作感/通信量)をあげる、キャッシュを利用してレスポンスをあげる、JSONを利用してデータ量を少なくする、ってSPAそのものですよね。Project Silkのデモアプリの説明がSPAの説明のように聞こえました。

SPAの詳細については、井上章さんのブログで紹介されていますので、こちらを参照ください。

Single Page Application (SPA) を使ってみよう: MVC 4 新機能シリーズ

自分のセッション資料はSkyDriveSlideShareで公開しています。

https://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&p2=1&p3=SD5549D6C74FFBB345!2883&p4=&ak=!AGfapD6L1FtV55s&kip=1&authkey=!AGfapD6L1FtV55s

実は当日いろいろと大量にトラブルがあって、デモが全くできないかと思いました。

当日午前中までデモプログラムを作っていました。家ではデスクトップを使っているので、LiveMeshを利用してノートPCとデータを同期させたのですが、会場でノートPCを見るとディレクトリしか同期されていないんですよね(笑) たぶん、1月末にデスクトップPCのディスクが壊れてOSから入れ直して同期させたからかもしれません。いったんLiveMesh上のデータをクリアしたいのですが、どうやったら消せるのかわかりません。

次に、Wifiルーター(Emobile Pocket Wifi)が同一LANのHTTP通信を遮るんですよ。デモプログラムをローカルのIIS上にデプロイして、スマートフォン(Android)からアクセスするデモをしようと思っていたのですが同一LANのスマホ-ノートPCのHTTP通信を遮断しやがるんですよ。設定で変更可能のようですが、管理者用パスワードは家に帰らないとわからないし...結局.NETラボのWimaxルーターに接続して事無きを得ましたが、本当に嫌な汗を書きました。家のルータはもちろんHTTP通信可能です、すげぇトラップだよ。

最後にAndroidの画面をノートPCに出力するためにAndroid SDKをインストールしていたんですが、なぜかADBへパスが通らなくなってるんですよ。仕方ないので、Android SDKとAndroid SDk Platform-toolsを再インストールしました。これもギリギリで事無きを得ました。

現地で、デモを作成してWifiルーターと格闘しつつ、Android SDKを再インストールするという無茶なことをやっていました。他のセッションを全く聞かずにノートPCを必死に操作していたので、隣の人に「この人なにやってるんだろう」な感じで見られていた気がします。

でもプログラムが完成したのは自分のセッション開始2分前です、休憩時間にプロジェクターにノートPCを接続したあともデモを作成していました。助かったのはプレゼンテーションにAndroid,iOSも含む画面キャプチャーを貼っていたことでした。最悪でもはできなくても画面の説明はできるので...

ディスカッションタイムのあとでIE9 Tシャツをいただきました。本当は1,000ページのASP.NET4の本が欲しかったのですが...

erkmy

2/25(土) .NETラボ勉強会でスピーカーを担当させていただきます

サイトにて公開されていますが、,NETラボ勉強会でスピーカーを担当させていただきます。

.NETラボ勉強会2012年2月

テーマはASP.NET MVC4です。お話をいただいた時点ではDeveloper Previewだったのでその話をしようと思っていましたが、最近ベータが公開されたので、MVC4 Betaについてお話させていただこうと思います。

おそらく、世界最速のASP.NET MVC4の勉強会セッションになるのではないでしょうか(笑)

リリースから勉強会まで10日しかないので、発表された情報をすべて消化して整理してまとめることが非常に難しいですが、自分の知り得る情報をデモを交えつつ出来る限りお伝えしたいと思います。どんな新機能なのか理解できていなかったり、ちょっと間違ったことを話してしまうかもしれませんが、ご容赦ください。マイクロソフトエバンジェリストの井上章さんもスピーカーを担当されるので、わからない点はフォローしてもらおう。

作成中ですが、当日どんなお話をするのかわかりやすくするために資料を公開します。

https://r.office.microsoft.com/r/rlidPowerPointEmbed?p1=1&p2=1&p3=SD5549D6C74FFBB345!2799&p4=&ak=!AP1BfDB03V7jbis&kip=1&authkey=!AP1BfDB03V7jbis

概要としては以下のとおりです。

  • ASP.NETの歴史
  • ASP.NETとは
  • ASP.NETの役割
  • ASP.NET MVCの歴史
  • ASP.NET MVC4 Beta
  • ASP.NET MVC4のテーマ
  • ASP.NET MVC4の新機能
  • 新プロジェクトテンプレート
  • Internet Application
  • Intranet Application
  • Mobile
  • Web API
  • Single Page Application
  • まとめ(プロジェクトテンプレート)
  • Display Modes
  • Browser Overriding
  • View Seitcher
  • Recipe
  • 非同期コントローラー
  • Windows Azure 統合
  • 学習用コンテンツ
  • ASP.NET 4.5
  • WebFormは? / WCFは?
  • まとめ

.NETラボ9月勉強会でスピーカーを担当します

いつも参加させていただいている、.NETラボ勉強会でスピーカーを担当させていただいきます。

タイトルは「30分で作るWindows Azure+SQL Azure+ASP.NET MVC3+CodeFirst Webアプリケーション」という非常に挑戦的な内容です。MSDNのチュートリアルを日本語化したので、その内容をもとにライブコーディングを行おうと考えています。(日本語化した内容はこちら

現在進行形でこの技術の組み合わせでアプリケーションを作成するケースはまだないと思いますが、最新のテクノロジーを組み合わせるとどのようなアプリケーションの作成方法となるのかお伝えできればと思います。枯れた技術も非常に重要ですが、勉強会は新しい技術を学ぶことができる場だと考えているので。

セッションで使用するプレゼンテーションも事前に公開します。こちらからpptx形式とpdf形式でダウンロード可能です。

 

それでは、当日楽しみにしています。

.NETラボ7月勉強会にてセッションを担当させていただきます

.NETラボ7月勉強会にて「ASP.NET MVC3 + WindowsAzureのソリューションの紹介」というテーマでセッションをさせていただきます。5月ごろから約2ヶ月MVC3+Azureのアプリを作成しています。その過程で得た自分の知識を伝えることが出来ればと考えています。

資料はこちらで公開していますので、ダウンロードしてみてください。あれも伝えたい、これも伝えたいとスライドを作成していたら、70枚近い量になってしまいました。当日皆さんの聞きたい内容をアンケートをとってスライドのうち、話す内容を決めたいと思います。

.NETラボ5月勉強会のライトニングトークで発表します

勉強会中にこのエントリーを書いています。ライトニングトークで現在開発中のサービスについて紹介させていただく予定なので、事前に資料を公開しておきます。

PowerPoint版はこちら、PDF版はこちらからダウンロードすることができます。

ソースコードも公開しています。こちらからダウンロード可能です。

内容は勉強会やプレゼンテーション、ソースコードを参照していただきたいのですが、キーワードだけここに挙げておきます。

.NETラボ4月勉強会のライトニングトークで発表します

勉強会中にこのエントリーを書いています。ライトニングトークで現在開発中のサービスについて紹介させていただく予定なので、事前に資料を公開しておきます。

PowerPoint版はこちら、PDF版はこちらからダウンロードすることができます。

ソースコードも公開しています。こちらからダウンロード可能です。

内容は勉強会やプレゼンテーション、ソースコードを参照していただきたいのですが、キーワードだけここに挙げておきます。

  • ASP.NET WebForm
  • ChartControls
  • NUnit
  • REST形式のWCF
  • 自動ツイート
  • OData, JSON形式でのデータ公開

.NETラボ3月勉強会に参加したかった

.NETラボ3月勉強会は中止だったので、勝手に脳内勉強会しました。ちょうど前日に東電の節電効果計測サービスを作ったので、ライトニングトークがあればその内容を発表していたと思います。今もちまちまとバージョンアップしているので、このプレゼンテーションに書いてある内容とサービスの内容は異なりますが、せっかく作ったのでアップしておきます。

来月のライトニングトークではもっと進化したサービスを紹介出来ればと思います。