ユーザーコントロール&カスタムコントロール----.Net再学


勉強を始めるNetは今まで2年が速くて、javaを学ぶことを始めて半年もあって、中間はプロジェクトをして、また始まります.Netの勉強.今度やるNetプロジェクトは、バックグラウンドコードがあまり叩かれていないので、UIに重点を置いています.これもこのブログで書く内容に関係しています.UIを作るにはコントロールの使用が欠かせません.今回UIを作るのは主に公共、抽象コントロールを抽出することです.
コードを叩くと、コントロールが欠かせません.それは初めてです.Netは学習した後,コントロールに対する認識が浅く,今回の学習によりUIコントロールに対する認識を補った.このブログでは、ユーザーコントロールとカスタムコントロールについて説明します.この2つのコントロールといえば、プログラミングの子供たちはよく知られていないに違いないが、使用といえば、彼らの違いといえば、仲間たちは知っているだろうか.
この2つのコントロールを比較してみましょう.
一、創造性と使いやすさ
それらの主な違いは、設計時の創造性と使いやすさにある.
1、作成性
ユーザーコントロールは簡単に作成でき、可視化設計ツールを使用するユーザーに限られたサポートを提供する.通常のページを編集するように可視化編集環境があり、通常のページと同じようにページ部分を含むことができる.aspxと.csコードファイル.
カスタムコントロールは可視化編集されず、コンパイルされたコードであり、使いやすいが作成しにくい.手書きコードのみ.1つしか含まれていません.csコードファイル.
2、使いやすさ
ユーザーコントロールの開発が便利で、カスタムコントロールの開発が煩雑で、ユーザーコントロールの使用、各アプリケーションにはコントロールの単独コピーが必要で、visual studioツールボックスに追加することはできません.静的レイアウトに適しています.これらは高度なスキームで使用するのは不便かもしれません.
カスタムコントロールはコンパイルできます.DLLファイルは、他のアイテムでも使用できます.コンパイル後はツールボックスにロードでき、TextBox、DataGridのようにデザイナでマウスでページにドラッグして使用できます.カスタムコントロールは再利用性が高く、パーソナライズされたコントロールをカスタマイズできます.よく使用され、既存のコントロールでは完了できないタスクを解決します.
3、使用範囲
ユーザーに完全なビジュアル化設計ツールサポートを提供するカスタムコントロール.グローバル・プログラム・セット・キャッシュに必要なコントロールの単一コピーのみを、ダイナミック・レイアウトに適したvisual studioのツール・ボックスに追加できます.コントロールに静的レイアウトが多数含まれている場合は、ユーザーコントロールが好ましい場合があります.
4、使用
ユーザーコントロール(UserControl):拡張子*.ascx,および*.aspxは構造的に類似しており、ページにロードする機能ブロックを指すが、ユーザーコントロールは単独でページとして実行することができず、*に埋め込まなければならない.aspxページまたは他のユーザーコントロールで使用する.aspが必要ですNetページをコンテナとして使用します.カスタムコントロールは、HtmlControlやWebControlと似ています.コンパイル後、ツールバーに参照を追加し、マウスでドラッグして使用することができます.
二、ユーザーコントロールとカスタムコントロール
1)、カスタムサーバーコントロール
また、2つに分けられます.1.一つは*を使うことです.aspxコードと*.csコードをコンパイルするDLLを生成し、ツールボックスに参照を追加して使用する.WebFormで一般的に使用する.                       2.もう1つは*のみです.cs実装、再コンパイル生成DLL、ツールボックスに追加して使用する.一般的にWinFormに用いる.生成手順:例:1.Buttonをデザイナからページにドラッグし、ボタンのサイズ、色、またはテキストに固定値を設定します.ファイル名はa.cs 2です. csc  /r:System.dll  /t:library/out:../../A.dll    a.cs                  3. ツールボックスの空白を右クリックし、メニューを右クリックして「削除項目を追加」を選択し、生成したDLLをツールボックスに追加することで、一般的なButtonのようにドラッグして使用することができます.
2)次に、ユーザーコントロールを見てみましょう.
ユーザーコントロール用ascxファイルは、「新しいアイテムを追加」で「webユーザーコントロール」をクリックすることを示す.コンパイルコードではなく、コンパイルはWebページに従って動的に行われます.
ユーザーコントロールはキャッシュをサポートし、カスタムコントロールはキャッシュをサポートしない.ユーザーコントロールは、1つのアプリケーションで再利用できますが、アプリケーション間で再利用することはできません.カスタム・ユーザーは、グローバル・プログラム・セット・キャッシュと呼ばれる中央ライブラリに配置され、そのサーバ上のすべてのアプリケーションが使用できるように、アプリケーション間で使用できます.
三、ユーザーコントロールの例
これは他の人のユーザーコントロールの例で、参考にしてください.  
public partial class Login : System.Web.UI.UserControl
{
    protected SqlConnection conn;
    protected SqlCommand cmd;
    protected SqlDataReader dr;
  
    /// <summary>
    /// Txtusername        ,   aspx           public  
    /// </summary>
    public  string Txtusername
    {
        get { return this.TextBox1.Text; }
        set { this.TextBox1.Text = value; }
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    
    protected void Button1_Click1(object sender, EventArgs e)
    {
        string strname = this.TextBox1.Text.Trim();
        string strpwd = this.TextBox2.Text.Trim();
        //                  MD5     
        //this.Response.Write(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strpwd, "MD5"));
        conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DBuserConnectionString"].ToString());
        conn.Open();
        cmd = new SqlCommand("select * from userdetails where username=@username and userpwd=@userpwd", conn);//System.Web.Configuration.FormsAuthPasswordFormat.MD5
        cmd.Parameters.Add(new SqlParameter("@username", strname));
        //                ,              MD5    
        cmd.Parameters.Add(new SqlParameter("@userpwd", System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strpwd, "MD5")));
        dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
        //       
        if (dr.Read())
        {
            //    , asp.net        cookie   
            //                 Cookie ,                      
            HttpCookie cookie = new HttpCookie("username", strname);
            if (this.CheckBox1.Checked)
            {
                //  cookie     
                cookie.Expires = DateTime.Now.AddMonths(1);
                //      cookies   
                this.Response.Cookies.Add(cookie);
            }
            // 3        ,   html mate  
            this.Response.AppendHeader("refresh", "3;url=DataListDemo1.aspx");
        }
        else
        {
            this.Response.Write("username or password are wrong!");
        }
        conn.Close();
    }
}

まとめ:最近行われたMVCプロジェクトでは、Htmlで共通のページを作成したり、半分のページを作成したりしていますが、このようにカスタムコントロールのように見えますが、実際には、ユーザーコントロールはずっと使用されていません.
だけじゃないNetは、Javaでも似たような概念があるはずですが、includeで他のページが含まれているので、具体的には分かりませんが、これからjavaをするとひっくり返すことができます.