.NET一覧

ASPでサーバ処理とクライアント処理を同時に実行

ASPでサーバ処理とクライアント処理を同時に実行するには下記の手順で実装します。
【仕組み】
1.サーバ処理でcookieを作成

2.サーバからクライアントへ戻ってきたときにcookieを監視する。cookieがある場合はサーバ処理へ戻る

3.サーバ処理を行う。

【実装手順】
1.サーバ(asp)でcookieを作成

Response.Cookies.Add(new HttpCookie("cookie", "true"));

2.クライアント(aspx)でcookieを監視

//1秒ごとにCookieを確認
setInterval(function () {
  if (getCookie("<%=COOKIE_DOWNLOAD %>")) {
    //Cookie削除
    var date = new Date();
    date.setTime( date.getTime() - 1 );
    document.cookie = 'data=; expires=' + date.toUTCString();

    //PostBack
    <%=Page.ClientScript.GetPostBackEventReference(this, 指定値) %>
  }
}, 1000);

ASPでクライアントからサーバ処理を実行

【前提条件】
・ASPでWebサイト構築
・サーバ処理からクライアント処理後に再度サーバ処理を行いたい場合
例)サーバ処理でJavaScriptのダイアログを表示し、ダイアログのOKボタン押下後にサーバ処理を行いたい場合

【手順】
1.aspのPageクラスにIPostBackEventHandlerを継承する。

2.aspにRaisePostBackEvent関数を実装する。
  ※引数のeventArgsは画面からの指定値

3.aspxにJavaScriptでPostbak関数を実装  

<%=Page.ClientScript.GetPostBackEventReference(this, 指定値) %>

Visual StudioでAndroidアプリ開発

Androidアプリの開発は今ではVisual Studioでもできるようになりました。

.NET開発経験がある方は馴染みやすいと思います。

開発環境の構築はVisual Studioのインストール時にXamarin for Visual Studioをインストール指定するのみ。

ポイントはAndroidアプリを配布するための署名付きビルドです。

構成をDebugからReleaseに変更して、ツール -> Android -> Publish Android Appを選択します。


ASPでクエリストリングのエンコード

下記のように実装すると、追加したクエリパラメータを自動で繋げて、その上URLエンコードもされる。

NameValueCollection nc = HttpUtility.ParseQueryString(string.Empty, Encoding.UTF8);
// エンコード指定しない場合
// NameValueCollection nc = HttpUtility.ParseQueryString(string.Empty);

nc.Add("Param1", "あああ");
nc.Add("Param2", "aaa");

Response.Redirect("test.aspx?" + nc.ToString());

ASPでカスタムWebControlの配置

Webサイトの場合とプロジェクトの場合で以下のパターンがあります。

【Webサイトの場合】
1.WebControlを継承したクラスをApp_Codeに作成

namespace WebSite2
{
	public class Test : GridView
	{
	}
}

2.使用するaspに配置

<%@ Register TagPrefix="custom" namespace="WebSite2" %>
<custom:Test runat="server"></custom:Test>

【C#プロジェクトの場合】
1.AssemblyInfo.csにタグとnamespaceの割付情報を追記

//WebSite2というnamespaceをcustomタグに割付
[assembly: TagPrefix("WebSite2", "custom")]

2.WebControlを継承したクラスを上記で指定したnamespaceに作成

namespace WebSite2
{
	public class Test : GridView
	{
	}
}

3.使用するaspに配置

<%@ Register Assembly="WebSite2" TagPrefix="custom" Namespace="WebSite2"%>
<custom:Test ID="Test1" runat="server" />