SlideShare a Scribd company logo
1 of 15
Download to read offline
講師.NETラボ岡田将
アジェンダ  AJAXとは 知ってるとは思いますがちおう簡単に  ASP.NETの基礎知識 知ってると思いますが知らない人に  AJAXとASP.NET機能の相性 仕事ではまった人なら知ってますが、はまってない人に  実装するための裏ワザ 今までの経験から使えそうな技を伝授?  まとめ
AJAXとは  簡単にはよく動く「JavaScript」のこと (VBScriptでも可 ※一部実装コードが違う)  JavaScriptのライブリ集を指すこともある。  Prototype、JQuery  MicrosoftAjaxライブリ  Yahoo!UIライブリ  GoogleWebToolkitなど  「XMLHttpRequest」(HTTP通信での非同期通信技術)をIE が搭載したことにより最近になって発展した技術のこと これによりリロード(画面がチカ)しないでサーバの情報 を持ってくることができ。
ASP.NETの基礎知識  ASP.NETの本番はVisualStudio2003から (初代2002では2005への互換なし、も今回VS2005、2008の機能をおもに)  サーバイドスクリプト 静的なHTMLを動的に作ることよって、単純な描画しかできいブラウ ザでも要求された結果を、データベスと連携しりて表示がきる。  コンパイル可能(ソースドの隠ぺい、速度向上) 従来のASPやPHPではソースコドそのまを置いておくしかなった。
ASP.NETの基礎知識 独特な機能  MasterPage 共通のヘッダ、フタを利用するため機能  Session 固有の接続情報により通信相手を特定する。 隠ぺい性の高情報をあつかえるが、切断されたてなわら時るため、情報のゴミが残時あ。(まり大きなデータ格納には向かい)  ViewState 自分の利用しているページ内にこっそりデタを隠格納す。 サーバに格納しないため、セッション切れどの心配はがエンコードや暗号化して格納するため、大きなデタは通信量が増え。  PostBack 同じページからを表示させる。ほんとはリロドしていが、動的にた 気になる。
ASP.NETの基礎知識 独特な機能  Web.config 設定ファイル、iniファイルのように設定情報などにも使えるが、設定を間違えるとん でもないことにる。  Server.Transfer 次の画面に移動するときに本来の動きではPostBackしてわざ戻ってから ページを表示するため、余計な動きがある、Server.Transferでは PostBack中に次のページを早く表示できる。 そのため戻りのURLが前のまで、混乱する。  ログイン機能やWebParts パーツを配置するだけで、ログイン機能や好きにデザインでるページが作れる。 だけど、SQLサーバが必須で、勝手にテーブルを大量に作られるので、カスタマイ ズには向かない。 まだいろありすが、このぐらいで。
AJAXとASP.NET機能の相性 いちおう所感ですが、  Ajaxでリッチクライアントといってもあくま一部分の更新。 やりすぎるとUpdatePanelが大量発生するし制御が大変。  Historyのポイントが設定できないため、戻るを押されると戻りすぎる。  やっぱりサポートにとどめ、肝心な部分はPostBackや画面遷移で対 応する。(1画面に入れすぎない)  やっぱり慣れたJavaScriptに頼るところは頼る。 まずはこれを念頭に入れておきましょう。
AJAXとASP.NET機能の相性 使える機能  MasterPageでのボタン制御(ブみたいにできる)  DropDownListやDataList  確認ボタン  MultiViewとの連携
AJAXとASP.NET機能の相性 使いづら機能  ボタンのあるユーザコトロル 大きなユーザコントロルをタブっぽく作たところ Server.Transferがダイレクトに使えない。  Validationコントロール 1つづの入力チェックならいが、一括表示使え。 ある意味これはAjax機能でやるべき?
実装するための裏ワザ  Web.configをすっきり分離 別ファイルにすることで、テスト環境の切り分け簡単 注意:UTF-8に設定すること <?xml version="1.0"?> <configuration> <appSettingsfile ="Login.config"></appSettings> <connectionStringsconfigSource="connection.config"></connectionStrings> ・ </configuration> ファイル「Login.config」 <?xml version="1.0" encoding="utf-8"?> <appSettings> <!--URL --> <add key="LoginURL" value="http://localhost/test/"/> <!--<add key="LoginURL" value="http://localhost/honban/"/>--> </appSettings>
実装するための裏ワザ  FormViewでかんた検索 Using fvUserAs New FormViewfvUser.DataSource= SqlDataSource1SqlDataSource1.SelectParameters.Item("USER_ID").DefaultValue= txtUser.Text.ToUpperSqlDataSource1.SelectParameters.Item("AUTH_KEY").DefaultValue= txtPass.TextfvUser.DataBind() ' 検索の結果、該当するレコードが存在した場合認証 If fvUser.DataItemCount> 0 ThenElsemsg_Dialog(strIdPass_errMsg, , True) 'CONSTExit SubEnd IfSession("USER_ID") = fvUser.DataItem("USER_ID") Session(“USER_NAME”) = fvUser.DataItem(“USER_NAME“) End Using
実装するための裏ワザ  MasterPageにViewStateで値保存 Public Property USER_ID() As StringGetReturn CType(ViewState("USER_ID"), String) End GetSet(ByValValue As String) ViewState("USER_ID") = ValueEnd SetEnd PropertyPublic Property USER_NAME() As StringGetReturn CType(ViewState("USER_NAME"), String) End GetSet(ByValValue As String) ViewState("USER_NAME") = ValueEnd SetEnd Property ユーザコントロルの場合のViewState追加 'ViewStateをカスタマイズしてユーザコントロル値を追加 Protected Overrides Sub LoadViewState(ByValsavedStateAs Object) If Not (savedStateIs Nothing) ThenDim myStateAs Object() = CType(savedState, Object()) If Not (myState(0) Is Nothing) ThenMyBase.LoadViewState(myState(0)) End If'こから追加 If Not (myState(1) Is Nothing) Then USER_ID = myState(1) If Not (myState(2) Is Nothing) Then USER_NAME = myState(2) End IfEnd SubProtected Overrides Function SaveViewState() As ObjectDim baseStateAs Object = MyBase.SaveViewState() Dim allStates(64) As ObjectallStates(0) = baseState'こから追加 allStates(1) = USER_IDallStates(2) = USER_NAMEReturn allStatesEnd Function
実装するための裏ワザ  Ajaxでも途中でHTMLソースをみれる デバッグの文字をダブルクリッするとAjaxで動作した後の ソースが見れます。(デバッグに役に立つはず?) <a ID=“codeView” style=“text-decoration:none;” runat=“Server“ Visible="false" tabindex="-1“ ondblclick=“javascript:void(window.open(‘’, ‘’, ‘scrollbars=yes,dependent=yes’).document.write(‘<plaintext>’+ document.body.innerHTML))”> デバッグ</a>
実装するための裏ワザ  MasterPageのボタンイベトをContentページで取得する ‘マスターペジに記述 Public ReadOnlyProperty MasterBack() As LinkButtonGetReturn hlnkBackEnd GetEnd Property‘コンテツページに記述 Dim objLbtnAs LinkButtonobjLbtn= Master.MasterBackAddHandlerobjLbtn.Click, AddressOfExit_est
まとめ 先に所見でも言っちゃたけど、簡単に。  Ajaxは結局JavaScript  補助ならいけどメインにするは難しい。  ハマったらいつのまにかJavaScript使いになってる。  なるべく単純な使い方をしまょう。 ご清聴ありがとうございました。

More Related Content

What's hot

Vue.js でタイマーを作る
Vue.js でタイマーを作るVue.js でタイマーを作る
Vue.js でタイマーを作るmizdra
 
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Yutaro Miyazaki
 
公式page改ざんで学ぶjQuery入門 (jscafe7)
公式page改ざんで学ぶjQuery入門 (jscafe7)公式page改ざんで学ぶjQuery入門 (jscafe7)
公式page改ざんで学ぶjQuery入門 (jscafe7)Ryuma Tsukano
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるYutaro Miyazaki
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西Masayuki Abe
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料cryks
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)Koichiro Matsuoka
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック良太 増子
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所Koji Nakamura
 

What's hot (15)

Vue.js でタイマーを作る
Vue.js でタイマーを作るVue.js でタイマーを作る
Vue.js でタイマーを作る
 
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
 
公式page改ざんで学ぶjQuery入門 (jscafe7)
公式page改ざんで学ぶjQuery入門 (jscafe7)公式page改ざんで学ぶjQuery入門 (jscafe7)
公式page改ざんで学ぶjQuery入門 (jscafe7)
 
Try Webworkers
Try WebworkersTry Webworkers
Try Webworkers
 
React で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考えるReact で CSS カプセル化の可能性を考える
React で CSS カプセル化の可能性を考える
 
覚醒!JavaScript
覚醒!JavaScript覚醒!JavaScript
覚醒!JavaScript
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
Docker やってみた
Docker やってみたDocker やってみた
Docker やってみた
 
最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西最低限知っておきたい Webセキュリティーについて@MT関西
最低限知っておきたい Webセキュリティーについて@MT関西
 
Miyazaki.js vol.2
Miyazaki.js vol.2Miyazaki.js vol.2
Miyazaki.js vol.2
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
PostgreSQLの行レベルセキュリティと SpringAOPでマルチテナントの ユーザー間情報漏洩を防止する (JJUG CCC 2021 Spring)
 
20110714 j queryベーシック
20110714 j queryベーシック20110714 j queryベーシック
20110714 j queryベーシック
 
JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所JS開発におけるTDDと自動テストツール利用の勘所
JS開発におけるTDDと自動テストツール利用の勘所
 
Javascriptのデザインパターン【勉強会資料】
Javascriptのデザインパターン【勉強会資料】 Javascriptのデザインパターン【勉強会資料】
Javascriptのデザインパターン【勉強会資料】
 

Similar to ASP.NETを利用したAJAX開発の応用

何が変わった JavaFX 2.0
何が変わった JavaFX 2.0何が変わった JavaFX 2.0
何が変わった JavaFX 2.0Yuichi Sakuraba
 
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Damper Matsu
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライMasanobu Sato
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみたYuki Takei
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用Yatabe Terumasa
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術Koichi Fujikawa
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤Yuichi Sakuraba
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)崇之 清水
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXShinya Mochida
 
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発  - Game Development Starting with Next2DNext2Dで始めるゲーム開発  - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2DToshiyuki Ienaga
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...Shotaro Suzuki
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for JavaTakuya Tsuchida
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 

Similar to ASP.NETを利用したAJAX開発の応用 (20)

Ajax 応用
Ajax 応用Ajax 応用
Ajax 応用
 
何が変わった JavaFX 2.0
何が変わった JavaFX 2.0何が変わった JavaFX 2.0
何が変わった JavaFX 2.0
 
Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
 
Azure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライAzure で Serverless 初心者向けタッチ&トライ
Azure で Serverless 初心者向けタッチ&トライ
 
HTML5 on ASP.NET
HTML5 on ASP.NETHTML5 on ASP.NET
HTML5 on ASP.NET
 
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
自作node.jsフレームワークとnginxを使ってラジオサイトを作ってみた
 
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
 
クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術クラウド時代の並列分散処理技術
クラウド時代の並列分散処理技術
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Java EE8 Report
Java EE8 ReportJava EE8 Report
Java EE8 Report
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤JavaFX 2.0 - リッチクライアントのためのUI基盤
JavaFX 2.0 - リッチクライアントのためのUI基盤
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
 
Unit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFXUnit testing JavaScript with JUnit/JavaFX
Unit testing JavaScript with JUnit/JavaFX
 
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
Next2Dで始めるゲーム開発  - Game Development Starting with Next2DNext2Dで始めるゲーム開発  - Game Development Starting with Next2D
Next2Dで始めるゲーム開発 - Game Development Starting with Next2D
 
Wicket勉強会2
Wicket勉強会2Wicket勉強会2
Wicket勉強会2
 
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...Let's build a simple app with  .net 6 asp.net core web api, react, and elasti...
Let's build a simple app with .net 6 asp.net core web api, react, and elasti...
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
Google App Engine for Java
Google App Engine for JavaGoogle App Engine for Java
Google App Engine for Java
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 

More from Sho Okada

AppleシリコンのMacで Windows11を動かす
AppleシリコンのMacで Windows11を動かすAppleシリコンのMacで Windows11を動かす
AppleシリコンのMacで Windows11を動かすSho Okada
 
ChatAIの未来予想図
ChatAIの未来予想図ChatAIの未来予想図
ChatAIの未来予想図Sho Okada
 
勉強会参加のすゝめ
勉強会参加のすゝめ勉強会参加のすゝめ
勉強会参加のすゝめSho Okada
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さSho Okada
 
WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術Sho Okada
 
いままで聴いてきたLTのおはなし
いままで聴いてきたLTのおはなしいままで聴いてきたLTのおはなし
いままで聴いてきたLTのおはなしSho Okada
 
Excel取込みで失敗した先生
Excel取込みで失敗した先生Excel取込みで失敗した先生
Excel取込みで失敗した先生Sho Okada
 
今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史Sho Okada
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集Sho Okada
 
オープンソースでExcelレポートプログラミング
オープンソースでExcelレポートプログラミングオープンソースでExcelレポートプログラミング
オープンソースでExcelレポートプログラミングSho Okada
 
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話Sho Okada
 
メガネ型デバイスの未来について考える
メガネ型デバイスの未来について考えるメガネ型デバイスの未来について考える
メガネ型デバイスの未来について考えるSho Okada
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠Sho Okada
 
止めないためのWEBインフラ入門
止めないためのWEBインフラ入門止めないためのWEBインフラ入門
止めないためのWEBインフラ入門Sho Okada
 
WebMatrixに対応した、新しいけど新しくないRazor
WebMatrixに対応した、新しいけど新しくないRazorWebMatrixに対応した、新しいけど新しくないRazor
WebMatrixに対応した、新しいけど新しくないRazorSho Okada
 
初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本Sho Okada
 

More from Sho Okada (16)

AppleシリコンのMacで Windows11を動かす
AppleシリコンのMacで Windows11を動かすAppleシリコンのMacで Windows11を動かす
AppleシリコンのMacで Windows11を動かす
 
ChatAIの未来予想図
ChatAIの未来予想図ChatAIの未来予想図
ChatAIの未来予想図
 
勉強会参加のすゝめ
勉強会参加のすゝめ勉強会参加のすゝめ
勉強会参加のすゝめ
 
ASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さASP.NETの進化とASP.NET Core Blazorの凄さ
ASP.NETの進化とASP.NET Core Blazorの凄さ
 
WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術WebブラウザでC#実行 WebAssemblyの技術
WebブラウザでC#実行 WebAssemblyの技術
 
いままで聴いてきたLTのおはなし
いままで聴いてきたLTのおはなしいままで聴いてきたLTのおはなし
いままで聴いてきたLTのおはなし
 
Excel取込みで失敗した先生
Excel取込みで失敗した先生Excel取込みで失敗した先生
Excel取込みで失敗した先生
 
今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史今のWeb開発者に伝えたいWebブラウザの病みの歴史
今のWeb開発者に伝えたいWebブラウザの病みの歴史
 
SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集SQL Server中級者のための実践で使えるかもしれないTips集
SQL Server中級者のための実践で使えるかもしれないTips集
 
オープンソースでExcelレポートプログラミング
オープンソースでExcelレポートプログラミングオープンソースでExcelレポートプログラミング
オープンソースでExcelレポートプログラミング
 
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
.Netのwebプログラマーに贈るサーバーインフラの比較的かんたんなお話
 
メガネ型デバイスの未来について考える
メガネ型デバイスの未来について考えるメガネ型デバイスの未来について考える
メガネ型デバイスの未来について考える
 
WPF開発での陥りやすい罠
WPF開発での陥りやすい罠WPF開発での陥りやすい罠
WPF開発での陥りやすい罠
 
止めないためのWEBインフラ入門
止めないためのWEBインフラ入門止めないためのWEBインフラ入門
止めないためのWEBインフラ入門
 
WebMatrixに対応した、新しいけど新しくないRazor
WebMatrixに対応した、新しいけど新しくないRazorWebMatrixに対応した、新しいけど新しくないRazor
WebMatrixに対応した、新しいけど新しくないRazor
 
初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本初心者でもわかるActive directoryの基本
初心者でもわかるActive directoryの基本
 

Recently uploaded

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 

Recently uploaded (11)

Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

ASP.NETを利用したAJAX開発の応用

  • 2. アジェンダ  AJAXとは 知ってるとは思いますがちおう簡単に  ASP.NETの基礎知識 知ってると思いますが知らない人に  AJAXとASP.NET機能の相性 仕事ではまった人なら知ってますが、はまってない人に  実装するための裏ワザ 今までの経験から使えそうな技を伝授?  まとめ
  • 3. AJAXとは  簡単にはよく動く「JavaScript」のこと (VBScriptでも可 ※一部実装コードが違う)  JavaScriptのライブリ集を指すこともある。  Prototype、JQuery  MicrosoftAjaxライブリ  Yahoo!UIライブリ  GoogleWebToolkitなど  「XMLHttpRequest」(HTTP通信での非同期通信技術)をIE が搭載したことにより最近になって発展した技術のこと これによりリロード(画面がチカ)しないでサーバの情報 を持ってくることができ。
  • 4. ASP.NETの基礎知識  ASP.NETの本番はVisualStudio2003から (初代2002では2005への互換なし、も今回VS2005、2008の機能をおもに)  サーバイドスクリプト 静的なHTMLを動的に作ることよって、単純な描画しかできいブラウ ザでも要求された結果を、データベスと連携しりて表示がきる。  コンパイル可能(ソースドの隠ぺい、速度向上) 従来のASPやPHPではソースコドそのまを置いておくしかなった。
  • 5. ASP.NETの基礎知識 独特な機能  MasterPage 共通のヘッダ、フタを利用するため機能  Session 固有の接続情報により通信相手を特定する。 隠ぺい性の高情報をあつかえるが、切断されたてなわら時るため、情報のゴミが残時あ。(まり大きなデータ格納には向かい)  ViewState 自分の利用しているページ内にこっそりデタを隠格納す。 サーバに格納しないため、セッション切れどの心配はがエンコードや暗号化して格納するため、大きなデタは通信量が増え。  PostBack 同じページからを表示させる。ほんとはリロドしていが、動的にた 気になる。
  • 6. ASP.NETの基礎知識 独特な機能  Web.config 設定ファイル、iniファイルのように設定情報などにも使えるが、設定を間違えるとん でもないことにる。  Server.Transfer 次の画面に移動するときに本来の動きではPostBackしてわざ戻ってから ページを表示するため、余計な動きがある、Server.Transferでは PostBack中に次のページを早く表示できる。 そのため戻りのURLが前のまで、混乱する。  ログイン機能やWebParts パーツを配置するだけで、ログイン機能や好きにデザインでるページが作れる。 だけど、SQLサーバが必須で、勝手にテーブルを大量に作られるので、カスタマイ ズには向かない。 まだいろありすが、このぐらいで。
  • 7. AJAXとASP.NET機能の相性 いちおう所感ですが、  Ajaxでリッチクライアントといってもあくま一部分の更新。 やりすぎるとUpdatePanelが大量発生するし制御が大変。  Historyのポイントが設定できないため、戻るを押されると戻りすぎる。  やっぱりサポートにとどめ、肝心な部分はPostBackや画面遷移で対 応する。(1画面に入れすぎない)  やっぱり慣れたJavaScriptに頼るところは頼る。 まずはこれを念頭に入れておきましょう。
  • 8. AJAXとASP.NET機能の相性 使える機能  MasterPageでのボタン制御(ブみたいにできる)  DropDownListやDataList  確認ボタン  MultiViewとの連携
  • 9. AJAXとASP.NET機能の相性 使いづら機能  ボタンのあるユーザコトロル 大きなユーザコントロルをタブっぽく作たところ Server.Transferがダイレクトに使えない。  Validationコントロール 1つづの入力チェックならいが、一括表示使え。 ある意味これはAjax機能でやるべき?
  • 10. 実装するための裏ワザ  Web.configをすっきり分離 別ファイルにすることで、テスト環境の切り分け簡単 注意:UTF-8に設定すること <?xml version="1.0"?> <configuration> <appSettingsfile ="Login.config"></appSettings> <connectionStringsconfigSource="connection.config"></connectionStrings> ・ </configuration> ファイル「Login.config」 <?xml version="1.0" encoding="utf-8"?> <appSettings> <!--URL --> <add key="LoginURL" value="http://localhost/test/"/> <!--<add key="LoginURL" value="http://localhost/honban/"/>--> </appSettings>
  • 11. 実装するための裏ワザ  FormViewでかんた検索 Using fvUserAs New FormViewfvUser.DataSource= SqlDataSource1SqlDataSource1.SelectParameters.Item("USER_ID").DefaultValue= txtUser.Text.ToUpperSqlDataSource1.SelectParameters.Item("AUTH_KEY").DefaultValue= txtPass.TextfvUser.DataBind() ' 検索の結果、該当するレコードが存在した場合認証 If fvUser.DataItemCount> 0 ThenElsemsg_Dialog(strIdPass_errMsg, , True) 'CONSTExit SubEnd IfSession("USER_ID") = fvUser.DataItem("USER_ID") Session(“USER_NAME”) = fvUser.DataItem(“USER_NAME“) End Using
  • 12. 実装するための裏ワザ  MasterPageにViewStateで値保存 Public Property USER_ID() As StringGetReturn CType(ViewState("USER_ID"), String) End GetSet(ByValValue As String) ViewState("USER_ID") = ValueEnd SetEnd PropertyPublic Property USER_NAME() As StringGetReturn CType(ViewState("USER_NAME"), String) End GetSet(ByValValue As String) ViewState("USER_NAME") = ValueEnd SetEnd Property ユーザコントロルの場合のViewState追加 'ViewStateをカスタマイズしてユーザコントロル値を追加 Protected Overrides Sub LoadViewState(ByValsavedStateAs Object) If Not (savedStateIs Nothing) ThenDim myStateAs Object() = CType(savedState, Object()) If Not (myState(0) Is Nothing) ThenMyBase.LoadViewState(myState(0)) End If'こから追加 If Not (myState(1) Is Nothing) Then USER_ID = myState(1) If Not (myState(2) Is Nothing) Then USER_NAME = myState(2) End IfEnd SubProtected Overrides Function SaveViewState() As ObjectDim baseStateAs Object = MyBase.SaveViewState() Dim allStates(64) As ObjectallStates(0) = baseState'こから追加 allStates(1) = USER_IDallStates(2) = USER_NAMEReturn allStatesEnd Function
  • 13. 実装するための裏ワザ  Ajaxでも途中でHTMLソースをみれる デバッグの文字をダブルクリッするとAjaxで動作した後の ソースが見れます。(デバッグに役に立つはず?) <a ID=“codeView” style=“text-decoration:none;” runat=“Server“ Visible="false" tabindex="-1“ ondblclick=“javascript:void(window.open(‘’, ‘’, ‘scrollbars=yes,dependent=yes’).document.write(‘<plaintext>’+ document.body.innerHTML))”> デバッグ</a>
  • 14. 実装するための裏ワザ  MasterPageのボタンイベトをContentページで取得する ‘マスターペジに記述 Public ReadOnlyProperty MasterBack() As LinkButtonGetReturn hlnkBackEnd GetEnd Property‘コンテツページに記述 Dim objLbtnAs LinkButtonobjLbtn= Master.MasterBackAddHandlerobjLbtn.Click, AddressOfExit_est
  • 15. まとめ 先に所見でも言っちゃたけど、簡単に。  Ajaxは結局JavaScript  補助ならいけどメインにするは難しい。  ハマったらいつのまにかJavaScript使いになってる。  なるべく単純な使い方をしまょう。 ご清聴ありがとうございました。