'.NET프로그래밍'에 해당되는 글 690건

  1. 2009.10.21 WebDeployment (배포)
  2. 2009.10.21 WebConfiguration
  3. 2009.10.20 WebOutputCache
  4. 2009.10.20 FrmQueryString
  5. 2009.10.20 FrmCookies
  6. 2009.10.20 FrmViewState
  7. 2009.10.20 FrmCache
  8. 2009.10.20 FrmSession
  9. 2009.10.20 FrmApplication
  10. 2009.10.20 상태관리(State Management)

배포하는 첫 번째 방법


* 여기서는 예제파일로 Default.aspx라는 웹 사이트(프로젝트)를 하나 만들어서 완성시킨다.




[Default.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        웹 사이트 배포 연습<br />

        <br />

        <asp:Calendar ID="Calendar1" runat="server"

            onselectionchanged="Calendar1_SelectionChanged"></asp:Calendar>

        <br />

   

    </div>

    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>

    </form>

</body>

</html>

 









-------------------------------------------------------------------------------------




[Default.aspx.cs] 소스코드




using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

    protected void Calendar1_SelectionChanged(object sender, EventArgs e)

    {

        this.Label1.Text =

            Calendar1.SelectedDate.ToShortDateString();

    }

}

 







--> "Default.aspx"파일작성 완료 후 실행하였을때 웹 페이지에서의 화면 





-------------------------------------------------------------------------------------



- 배포하기 과정


"솔루션 탐색기"에서 "웹 사이트 복사"버튼 마우스로 클릭한다.




--> 아래그림에서와 같이 "웹 복사"창에서 "연결"버튼 마우스로 클릭한다.





위의 과정을 통해 바로 로컬에서 원격으로 파일(WebDeployment)을 올린 후(=소스를 올려놓고) 원격에서 실행해보면 에러가 난다. 이를 해결하기 위해서는 (ASP.NET 2.0버전으로)웹 공유를 (가상디렉터리로)걸어줘야 에러가 나지 않는다. 그리고 참고사항으로 "네트워크 서비스(NETWORK SERVICE)"에서 쓰기 권한을 줘야 한다.





배포하는 2번째 방법

"Default.aspx"창에서 아래와 같이 실행한다.






--> 아래그림에서 체크박스 중 위에 있는 2개만 체크해도 되고, 모두 체크해제해도 상관없다.






[두번째 배포방법 실행결과]

--> 아래그림의 WebDeployment 폴더에는 C#코드가 들어가 있는 것을 확인 할 수 있다.




--> 아래그림에서 WebDeploymentUp 폴더에는 C#코드가 없는 것을 확인 할 수 있다.




--> 아래그림의 WebDeploymentUp 폴더에는 C#코드가 없고 [WebDeploymentUp - bin폴더]에 "dll파일"이 들어있는 것을 볼 수 있다. 





* WebDeployment 폴더에는 C#코드가 들어가 있지만, WebDeploymentUp 폴더에는 C#코드는 없고 bin폴더에 dll파일만 있다.(개발자가 개발한 C# 소스를 보호하기 위해서 dll파일만 배포하는 것이다.)





Posted by holland14
:


[web.config] 소스코드


</configSections> 

 

 

 

    <!-- 웹 사이트 전체에서 사용되는 상수 값 보관 -->

    <appSettings>

      <add key="SITE_NAME" value="닷넷코리아" />

      <add key="SITE_WIDTH" value="770" />

      <add key="SITE_MANAGER" value="구하라" />

    </appSettings>

 

 

 

    <!-- 데이터베이스 연결 문자열 -->

    <connectionStrings>

        <add

            name="ConnectionString"

            connectionString="server=.database=temp;uid=sa;pwd=Pa$$w0rd;"

            providerName="System.Data.SqlClient" />

    </connectionStrings>

 

 

    <system.web>





-------------------------------------------------------------------------------------



[Default.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>   

        사이트명 :

        <asp:Label ID="lblSITE_NAME" runat="server"></asp:Label>

        <br />

        Width :

        <asp:Label ID="lblSITE_WIDTH" runat="server"></asp:Label>

        <br />

        관리자 :

        <asp:Label ID="lblSITE_MANAGER" runat="server"></asp:Label>

        <br />

        <br />

        DB연결문자열 :

        <asp:Label ID="lblConnectionString" runat="server"></asp:Label>

        <br />

    </div>

    </form>

</body>

</html>

 










-------------------------------------------------------------------------------------




[Default.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Configuration;

using System.Web.Configuration;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // <appSettings /> 섹션을 읽어 오고 싶다...

        lblSITE_NAME.Text =

            System.Configuration.ConfigurationManager.AppSettings[0]; // ConfigurationManager는 윈도우 애플리케이션/웹 애플리케이션 둘 다 가능하다.

        lblSITE_WIDTH.Text =

            ConfigurationManager.AppSettings["SITE_WIDTH"].ToString();

        lblSITE_MANAGER.Text =

            System.Web.Configuration.WebConfigurationManager.AppSettings[2];  // WebConfigurationManager는 웹 애플리케이션 전용이다.

 

 

        // <connectionStrings /> 섹션

        lblConnectionString.Text =

            WebConfigurationManager.ConnectionStrings[

                "ConnectionString"].ConnectionString + "&nbsp;" +

                    WebConfigurationManager.ConnectionStrings[0].ProviderName;

    }

}

 

 

 

// global.asax 파일은 적용하려면 빌드를 해야 하지만, web.config 파일은 빌드하지 않고 동적으로 적용하기 때문에 더 빠르다.

// ConfigurationManager, WebConfigurationManager 둘 다 동일한 역할을 하지만 네임스페이스가 다르다.

 

 

 


-------------------------------------------------------------------------------------





[실행결과]






'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

SqlHelper 클래스와 Enterprise Library(4.1)  (0) 2009.10.21
WebDeployment (배포)  (0) 2009.10.21
WebOutputCache  (0) 2009.10.20
FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
Posted by holland14
:



Output Cache :
 웹 폼 / 웹 사용자 정의 컨트롤의 상태값을 매번 요청하지 않고,
 메모리에 저장 후 동일한 요청이 들어오면 바로 처리
 

페이지 단위 적용 --> "OutputCache 지시문" 사용
<%@ OutputCache Duration="초단위" VaryByParam="None: %>

코드 기반으로 적용
        // 코드 기반으로 캐싱 기능 적용하기
        Response.Write(DateTime.Now); // 현재 날짜 출력

        // 캐싱 설정
        Response.Cache.SetCacheability(HttpCacheability.Public);

        // 캐싱 유효기간 설정
        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

        // 매개변수 방식 지정
        Response.Cache.VaryByParams["*"] = true;   
        
       


-------------------------------------------------------------------------------------




[FrmOutputCaching.aspx] 소스코드 및 디자인

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmOutputCaching.aspx.cs" Inherits="FrmOutputCaching" %>

 

<%@ OutputCache Duration="60" VaryByParam="None" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

        <asp:Label ID="lblTime" runat="server" Text=""></asp:Label>

    </div>

    </form>

</body>

</html>

 








-------------------------------------------------------------------------------------




[FrmOutputCaching.aspx.cs] 소스코드


using System;

 

public partial class FrmOutputCaching : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 로드할 때마다 시간 출력 :

        //      DB연결해서 데이터를 1000건 가져온다고 가정하자.

        this.lblTime.Text = DateTime.Now.ToLongTimeString();

    }

}




-------------------------------------------------------------------------------------




[실행결과]

--> 60초(1분) 동안은 '새로고침'해도 웹 페이지의 화면이 바뀌지 않는다.
[FrmOutputCaching.aspx] 소스코드에서 "OutputCache 지시문" 사용했기 때문에...
<%@ OutputCache Duration="초단위" VaryByParam="None: %>





-------------------------------------------------------------------------------------



코드 기반으로 동일하게 캐싱 기능 적용하기 위해서 "FrmOutputCachingByCode.aspx"라는 이름으로 "웹 폼(Web Form)"을 하나 추가한 후 아래와 같이 "FrmOutputCachingByCode.aspx.cs"에서 코드를 작성한다.




[FrmOutputCachingByCode.aspx.cs] 소스코드

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmOutputCachingByCode : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 코드 기반으로 캐싱 기능 적용하기

        Response.Write(DateTime.Now); // 현재 날짜 출력

 

        // 캐싱 설정

        Response.Cache.SetCacheability(HttpCacheability.Public);

 

        // 캐싱 유효기간 설정

        Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));

 

        // 매개변수 방식 지정

        Response.Cache.VaryByParams["*"] = true;               

    }

}

 




-------------------------------------------------------------------------------------




[실행결과]


* Internet Explorer 브라우저에서 실행해야 됨.(FireFox 브라우저에서는 실행 안됨.)

--> [FrmOutputCachingByCode.aspx.cs] 소스코드에서 "코드 기반으로 캐싱 기능을 적용"하여, 60초(1분) 동안은 '새로고침'해도 웹 페이지의 화면이 바뀌지 않는다.








'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebDeployment (배포)  (0) 2009.10.21
WebConfiguration  (0) 2009.10.21
FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
Posted by holland14
:


[FrmQueryString.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmQueryString.aspx.cs" Inherits="FrmQueryString" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    <a href="FrmQueryStringTest.aspx?Num=5&Name=RedPlus">

    링크로 쿼리스트링 전달

    </a>

   

    </div>

    </form>

</body>

</html>

 









-------------------------------------------------------------------------------------




"링크로 쿼리스트링 전달"을 한 후 그 값을 출력해보기위해 "FrmQueryStringTest.aspx"라는 이름으로 "웹폼(Web Form)"을 하나 생성하고, "FrmQueryStringTest.aspx"의 "코드비하인드페이지"인 "FrmQueryStringTest.aspx.cs"에 아래와 같이 코드를 작성한다.



[FrmQueryStringTest.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmQueryStringTest : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 앞 페이지에서 넘겨온 쿼리스트링 출력

        if (!String.IsNullOrEmpty(Request.QueryString["Num"]))

        {

            Response.Write(Request.QueryString["Num"] + "<br />"); // 5

            Response.Write(Request["Name"]); // RedPlus

        }

 

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]


*  "FrmQueryString.aspx"파일에서 "브라우저에서 보기"로 실행해야 함.


--> 첫 실행화면. 아래그림의 웹페이지에서 링크가 걸려있는 "링크로 쿼리스트링 전달"텍스트를 마우스로 클릭하면...





--> [FrmQueryString.aspx] 소스코드에서 [FrmQueryStringTest.aspx.cs] 소스코드로 넘겨준 "쿼리스트링"을 전달받아 아래그림과 같이 웹 페이지에 출력한다.




















'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebConfiguration  (0) 2009.10.21
WebOutputCache  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmCache  (0) 2009.10.20
Posted by holland14
:

[FrmCookies.aspx] 소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmCookies.aspx.cs" Inherits="FrmCookies" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:Button ID="btnAddCookies" runat="server" Text="쿠키에 현재시간 저장"

            onclick="btnAddCookies_Click" />

   

    </div>

    </form>

</body>

</html>

 










-------------------------------------------------------------------------------------




[FrmCookies.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmCookies : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

 

    }

 

    protected void btnAddCookies_Click(object sender, EventArgs e)

    {

        // 쿠키 저장

        Response.Cookies["NOW"].Value = DateTime.Now.ToShortTimeString();

        Response.Cookies["NOW"].Expires = DateTime.Now.AddDays(30); // 30일간 저장

       

        // 쿠키 읽어오기

        if (Request.Cookies["NOW"] != null)

        {

            string now = Request.Cookies["NOW"].Value;

            Response.Write("방금 구운 쿠키 값 : " + now);

        }

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]

--> 첫 실행 화면. 아래그림의 웹 페이지에서  "쿠키에 현재시간 저장"버튼을 누르면...




--> "쿠키에 현재시간 저장"버튼을 누른 후 화면.




-------------------------------------------------------------------------------------




"방금 구운 쿠기 값"을 다른 웹페이지에서도 확인해보기위해 "FrmCookiesShow.aspx"라는 "웹폼(Web Form)"을 하나 생성하고, "FrmCookiesShow.aspx"의 "코드비하인드페이지"인 "FrmCookiesShow.aspx.cs"에 아래와 같이 코드를 작성한다.




[FrmCookiesShow.aspx.cs] 소스코드



using System;

using System.Web;

 

 

public partial class FrmCookiesShow : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 쿠키 읽어오기

        if (Request.Cookies["NOW"] != null)

        {

            string now = Request.Cookies["NOW"].Value;

            Response.Write(

                "FrmCookies 페이지에서 구운 쿠키 값 : " + now);

        }

 

        // 코드레벨에서 HttpCookie 클래스 사용해서 쿠키 생성

        HttpCookie myName = new HttpCookie("MyName");

        myName.Values.Add("Name", "용준");

        myName.Values.Add("Nick", "RedPlus");

        Response.Cookies.Add(myName);

 

        // Name Nick을 따로 출력

        HttpCookie saved = Request.Cookies["MyName"];

        Response.Write(myName.Values["Name"] + "<br >");

        Response.Write(myName.Values["Nick"] + "<br >");

    }

}

 




-------------------------------------------------------------------------------------



[실행결과]

--> [FrmCookiesShow.aspx.cs]에서 작성한 코드를 통해 "FrmCookies" 페이지에서 구운 쿠키값을 아래그림과 같이 웹 페이지에 출력하였다.







'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

WebOutputCache  (0) 2009.10.20
FrmQueryString  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmCache  (0) 2009.10.20
FrmSession  (0) 2009.10.20
Posted by holland14
:


[FrmViewState.aspx]소스코드 및 디자인



<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FrmViewState.aspx.cs" Inherits="FrmViewState" %>

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

        <asp:Button ID="btnClick" runat="server" Text="처음 로드 시간"

            onclick="btnClick_Click" />

        <br />

        <asp:Label ID="lblDisplay" runat="server" Text=""></asp:Label>

   

    </div>

    </form>

</body>

</html>

 






------------------------------------------------------------------------------------------------------



[FrmViewState.aspx.cs] 소스코드



using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

public partial class FrmViewState : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        // 처음 로드시

        if (!Page.IsPostBack)

        {

            // 뷰 상태 개체에 데이터를 보관

            ViewState["LOAD_TIME"] = DateTime.Now;

        }

    }

 

    protected void btnClick_Click(object sender, EventArgs e)

    {

        // ViewState에 저장된 값 출력

        if (ViewState["LOAD_TIME"] != null)

        {

            this.lblDisplay.Text = "로드시간 : "

                + Convert.ToDateTime(ViewState["LOAD_TIME"]).ToShortTimeString();

        }

    }

}

 



------------------------------------------------------------------------------------------------------



[실행결과]

--> 첫 실행화면. 아래그림의 웹 페이지에서 "처음 로드 시간"버튼을 누르면...




--> "처음 로드 시간"버튼 아래에 있는 "레이블"에 "ViewState"에 저장된 값이 출력된다.




'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmQueryString  (0) 2009.10.20
FrmCookies  (0) 2009.10.20
FrmCache  (0) 2009.10.20
FrmSession  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
Posted by holland14
:


[FrmCache.aspx.cs] 소스코드



using System;

 

public partial class FrmCache : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //[3] 캐시 개체

        Cache["NAME"] = "구하라";

 

        if (Cache["NAME"] != null)

        {

            Response.Write(Cache["NAME"].ToString());

        }

    }

}

 



-------------------------------------------------------------------------------------



[실행결과]

--> 웹 페이지에 아래그림과 같이 출력된다. (위에 있는 [FrmCache.aspx.cs] 소스코드에서 분홍색 형광펜으로 칠해진 코드부분과 비교해볼 것!)







'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmCookies  (0) 2009.10.20
FrmViewState  (0) 2009.10.20
FrmSession  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
상태관리(State Management)  (0) 2009.10.20
Posted by holland14
:


[FrmSession.aspx.cs] 소스코드



using System;

 

public partial class FrmSession : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //[2] 세션 변수 출력

        if (Session["AccessTime"] != null)

        {

            Response.Write(String.Format("접속시간 : {0}"

                , Convert.ToDateTime(Session["AccessTime"]).ToShortTimeString()));

        }

    }

}

 




-------------------------------------------------------------------------------------




[Global.asax] 소스코드



<%@ Application Language="C#" %>

 

<script runat="server">

 

    void Application_Start(object sender, EventArgs e)

    {

        // 응용 프로그램이 시작될 때 실행되는 코드입니다.

        Application.Lock();

        Application["SITE_NAME"] = "닷넷코리아";

        Application.UnLock();

    }

   

    void Application_End(object sender, EventArgs e)

    {

        //  응용 프로그램이 종료될 때 실행되는 코드입니다.

 

    }

       

    void Application_Error(object sender, EventArgs e)

    {

        // 처리되지 않은 오류가 발생할 때 실행되는 코드입니다.

 

    }

 

    void Session_Start(object sender, EventArgs e)

    {

        // 새 세션이 시작할 때 실행되는 코드입니다.

        Session["AccessTime"] = DateTime.Now;

 

    }

 

    void Session_End(object sender, EventArgs e)

    {

        // 세션이 끝날 때 실행되는 코드입니다.

        // 참고: Session_End 이벤트는 Web.config 파일에서 sessionstate 모드가

        // InProc로 설정되어 있는 경우에만 발생합니다. 세션 모드가 StateServer 또는 SQLServer

        // 설정되어 있는 경우에는 이 이벤트가 발생하지 않습니다.

 

    }

      

</script>

 




-------------------------------------------------------------------------------------




[실행결과]










* 참고  - 세션 유지 시간을 변경하고자 할 때 "web.config"파일에서 아래와 같이(하늘색 형광펜 칠해진 부분) 코드를 작성하면 된다.


<connectionStrings/>

    <system.web>

     

        <!-- 세션 유지 시간 변경() : 기본값 : 20-->

        <sessionState timeout="60"></sessionState>

     

        <!--

            컴파일된 페이지에 디버깅 기호를 삽입하려면

            compilation debug="true"로 설정하십시오. 이렇게

            하면 성능에 영향을 주므로 개발하는 동안에만

            이 값을 true로 설정하십시오.

        -->

        <compilation debug="false">









'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmViewState  (0) 2009.10.20
FrmCache  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
상태관리(State Management)  (0) 2009.10.20
Remote Debbugging (원격 디버깅)  (0) 2009.10.20
Posted by holland14
:

--> [FrmApplication.aspx.cs] 소스코드를 작성하기 전에 아래그림과 같은 과정을 하여 "Global.asax"라는 이름의 파일을 하나 만들고 그 안에 아래와 같이 코드를 작성한다. 




--> "전역 응용 프로그램 클래스"파일형식으로 선택하고 이름은 기본값인 "Global.asax"로 정한다.





--> "Global.asax" 소스코드에 아래와 같이(분홍색 형광펜으로 칠한 부분) 코드를 작성한다.



[Global.asax] 소스코드



<%@ Application Language="C#" %>

 

<script runat="server">

 

    void Application_Start(object sender, EventArgs e)

    {

        // 응용 프로그램이 시작될 때 실행되는 코드입니다.

        Application.Lock();

        Application["SITE_NAME"] = "닷넷코리아";

        Application.UnLock();

    }

   

    void Application_End(object sender, EventArgs e)

    {

        //  응용 프로그램이 종료될 때 실행되는 코드입니다.

 

    }

       

    void Application_Error(object sender, EventArgs e)

    {

        // 처리되지 않은 오류가 발생할 때 실행되는 코드입니다.

 

    }

 

    void Session_Start(object sender, EventArgs e)

    {

        // 새 세션이 시작할 때 실행되는 코드입니다.

        Session["AccessTime"] = DateTime.Now;

 

    }

 

    void Session_End(object sender, EventArgs e)

    {

        // 세션이 끝날 때 실행되는 코드입니다.

        // 참고: Session_End 이벤트는 Web.config 파일에서 sessionstate 모드가

        // InProc로 설정되어 있는 경우에만 발생합니다. 세션 모드가 StateServer 또는 SQLServer

        // 설정되어 있는 경우에는 이 이벤트가 발생하지 않습니다.

 

    }

      

</script>

 




------------------------------------------------------------------------------------------------------




[FrmApplication.aspx.cs] 소스코드



using System;

 

public partial class FrmApplication : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        //[1] Application 전역변수 출력

        // Global.asax에서 초기화 후 모든 웹 페이지에서 사용가능

        if (Application["SITE_NAME"] != null)

        {

            Response.Write(Application["SITE_NAME"].ToString());

        }

        // if문으로 예외처리 필수

        if (Application["NO_NAME"] != null)

        {

            Response.Write(Application["NO_NAME"].ToString());

        }

    }

}

 

 

 


------------------------------------------------------------------------------------------------------




[실행결과]

--> "Global.asax" 소스코드에서 "Application 전역변수를 초기화"(분홍색 형광펜으로 칠한 부분)한 후, "FrmApplication.aspx"에서 "브라우저에서 보기"로 실행하여 "초기화 된 전역변수를" 웹 페이지에 출력한 결과이다.









'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmCache  (0) 2009.10.20
FrmSession  (0) 2009.10.20
상태관리(State Management)  (0) 2009.10.20
Remote Debbugging (원격 디버깅)  (0) 2009.10.20
HttpContext 클래스  (0) 2009.10.20
Posted by holland14
:


 

* 상태 관리(State Management) : 어떤 데이터 임시/영구 보관하는 방법

 

[1] (상태정보를) 서버측에 보관

- Application

Application 전역변수 : Public, 모든 사용자가 접근

  • 사이트에 1개만 생성

 

- Session

Session 전역변수 : Private, 해당 사용자만 접근,

  • 사용자 수만큼 생성 가능

Session.Timeout = 20

Timeout 변경 : web.config

<system.web>

     

        <!-- 세션 유지 시간 변경(분) : 기본값 : 20분 -->

        <sessionState timeout="60"></sessionState>

</system.web>

 

 

- Cache

Cache 전역변수 : 빠른 속도가 필요한 처리를 보관(제일 빠르다.)

 

[2] (상태정보를) 클라이언트측에 보관

- ViewState

페이지의 소소(히든필드) 임시 보관

  • 해당 페이지를 벗어나면 소멸

- Cookies

브라우저에 임시보관 또는 텍스트파일형태로 영구보관

- QueryString

브라우저의 URL 임시로 데이터 실어서 다른페이지 이동



'.NET프로그래밍 > ASP.NET 3.5 SP1' 카테고리의 다른 글

FrmSession  (0) 2009.10.20
FrmApplication  (0) 2009.10.20
Remote Debbugging (원격 디버깅)  (0) 2009.10.20
HttpContext 클래스  (0) 2009.10.20
Trace(추적)개체  (0) 2009.10.20
Posted by holland14
: