2014년 3월 29일 토요일

ASP.NET의 Caching에 관하여,[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

ASP.NET의 Caching에 관하여,[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]
캐싱은 메모리에서 빈번히 액세스 되는 데이터의 경우 그 효율을 증가 시키기 위해 HTTP 요청을 통해 페이지와 데이터를 유지하는데 사용되며 재생 비용 없이도 재사용 가능 하다. ASP.NET에서는 3종류의 캐싱이 사용 된다.

출력캐싱(Putput Caching) : 요청(Request)에 의해 생성된 동적인 응답(Response)을 모두 캐싱 한다.

부분 캐싱(Fragment Caching) : 요청(Request)에 의해 생성된 응답(Response)의 일부를 캐싱 한다.

데이터 캐싱(Data Caching) : 프로그램적으로 임의의 객체를 캐싱 한다. 이를 지원하기  위해 ASP.NET은 요청을 통한 데이터를 쉽게 유지 하도록 프로그래머를 위한 캐시 엔진을 제공 한다.

촐력 캐싱은 전체 페이지의 내용을 캐싱 할 때 유용 하다. 엑세스가 심한 사이트에서는 캐싱이 1분정도의 단위로 자주 일어 난다. 출력 캐싱에 위한 페이지 캐싱을 사용 하면 그 페이지에 대한 후속 요청은 그것을 수행하는 코드의 수행 없이 출력 페이지에 제공 된다.

---------------------
출력 캐싱
---------------------

SQL Server 2000의 pubs 데이터베이스의 Author 테이블에 SQLDataAdapter로 질의 하고 데이터 셋을 통해 페이지에 캐싱한 후 60초 마다 MyData Control에 다시 표시하면서 시간을 기록하게 하는 예제를 작성 해 보도록 하자.

1. 프로젝트 이름을 OutputCaching 이라고 하여 C#, ASP.NET 웹 응용 프로젝트를 하나 생성 하자.

2 .웹폼의 이름을 Webform1.aspx에서 OutputCaching.aspx 라고 이름을 변경 하자.

3. 다음 소스코드를 HTML 영역에 붙여 넣기를 하자.


<%@ OutputCache Duration="60" VaryByParam="gbn1" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<HTML>
        <script language="C#" runat="server">

    void Page_Load(Object Src, EventArgs E ) {

        String selectCmd;
        String gbn1 = Request["gbn1"];

                //수가구분에 따라 병원 수가 테이블에서 데이터 추출
        if( gbn1 == null ) {
            selectCmd = "select sname1, sbun, sjum, skum from HSuga";
        }
        else {
            selectCmd = "select sname1, sbun, sjum, skum from HSuga where gbn1 = " + gbn1 ;
        }

        SqlConnection myConnection = new SqlConnection(
              "data source=localhost; initial catalog=DentalDB;" +
              "persist security info=True;user id=sa;password=osstem");
        SqlDataAdapter myCommand = new SqlDataAdapter(selectCmd, myConnection);

        DataSet ds = new DataSet();
        myCommand.Fill(ds, "HSuga");

        MyDataGrid.DataSource=new DataView(ds.Tables[0]);
        MyDataGrid.DataBind();

       
        TimeMsg.Text = DateTime.Now.ToString("G");
    }

        </script>
        <body>
                <h3>
                        <font face="Verdana">출력캐싱 사용하기:</font>
                </h3>
                <b>수가구분별로 수가 보기:<%=Request["gbn1"]%></b>
                <table cellspacing="0" cellpadding="3" rules="all" style="BORDER-LEFT-COLOR:black;BORDER-BOTTOM-COLOR:black;WIDTH:700px;BORDER-TOP-COLOR:black;BORDER-COLLAPSE:collapse;BACKGROUND-COLOR:#aaaadd;BORDER-RIGHT-COLOR:black">
                        <tr>
                                <td>
                                        <a href="OutputCaching.aspx?gbn1=1">진찰료</a>
                                </td>
                                <td>
                                        <a href="OutputCaching.aspx?gbn1=5">처치 수술료</a>
                                </td>
                                <td>
                                        <a href="OutputCaching.aspx?gbn1=8">검사료</a>
                                </td>
                        </tr>
                </table>
                <p>
                        <ASP:DataGrid id="MyDataGrid" runat="server" Width="700px" BackColor="#CCCCFF" BorderColor="Black"
                                CellPadding="3" Font-Name="Verdana" Font-Size="8pt" HeaderStyle-BackColor="#aaaadd" Height="153px"
                                Font-Names="Verdana" PageSize="5">
                                <HeaderStyle BackColor="#AAAADD"></HeaderStyle>
                        </ASP:DataGrid>
                <p><i>마지막 생성 일시:</i>
                        <asp:label id="TimeMsg" runat="server" /></p>
        </body>
</HTML>

[실행결과]
60초 동안에는 한번 가지고 온 데이터를 캐싱 한다. 화면 하단의 마지막 생성 일시를 확인 하면 된다. 


오라클자바커뮤니티에서 운영, 개발자 전문교육, 개인80%환급 오엔제이프로그래밍실무교육센터(www.onjprogramming.co.kr)

평일주간(9:30~18:30) 개강
(3/31)[기업100%환급]PL/SQL,ORACLE HINT,TUNING
(4/07)[기업100%환급]SQL기초에서 Schema Object까지
(4/07)[기업100%환급]자바기초에서 JDBC, Servlet/JSP까지
(4/14)C#4.0,ADO.NET,Network 프로그래밍
(4/14)[기업100%환급]Spring ,MyBatis,Hibernate실무과정

평일야간(19:00~22:00) 개강
(4/01)안드로이드개발자과정
(4/04)웹퍼블리싱 마스터
(4/04)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(4/04)C#,ASP.NET마스터
(4/07)SQL초보에서실전전문가까지
(4/08)Spring3.X, MyBatis, Hibernate실무과정

주말(10:00~18:00) 개강
(3/29)자바기초에서JSP,Ajax,jQuery,Spring3.2,MyBatis까지
(4/05)웹퍼블리싱 마스터
(4/05)닷넷실무자를위한WPF개발자과정
(4/05)Spring3.X, MyBatis, Hibernate실무과정
(4/05)SQL초보에서실전전문가까지
(4/12)C#,ASP.NET마스터
(4/12)안드로이드개발자과정

댓글 없음:

댓글 쓰기