문자열은 참조유형이다 이를 증명하기 위해 테스트를 해보자

 

타임아웃을 사용하여 문자열과 숫자타입 같은문자열, 문자열 연결, StringBuilder 의 예제이다

 

아래 결과를 확인해보면 완료되는 시간을 확인 할 수 있는데 

참조유형과 값유형의 시간이 많이 차이가 난다.

 

그리고 같은 문자열을 입력한경우 같은 메모리를 공유하는것을 알 수 있다.

다른문자열을 입력 할 경우  기존에 메모리에 올려놨던 내용은  garbage collection으로 이동하게된다.

 

stringbuilder를 사용하면 문자열을 조합할때마다 새로운 변수를 생성하지 않고 결합할 수 있다.

내부에 함수가 존재해서 값들을 조합하거나 삭제할때에도 새로운 인스턴스가 생성되지 않는다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
using System;
using System.Diagnostics;
using System.Text;
 
namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            //string type
            StringsImmutable();
            Console.WriteLine();
            Console.WriteLine();
            //integer Type
            IntegerType();
            Console.WriteLine();
            Console.WriteLine();
            SameString();
            Console.WriteLine();
            Console.WriteLine();
            StringConcat();
            Console.WriteLine();
            Console.WriteLine();
            StringBuilder();
 
            Console.ReadKey();
        }
 
 
        public static void StringsImmutable()
        {
            Console.WriteLine("StringsImmutable");
            string str = "";
            Console.WriteLine("Loop Start");
 
            var stopwatch = new Stopwatch();
 
            stopwatch.Start();
 
            for (int i = 0; i < 3000000; i++)
            {
                //유니크한 아이디 생성
                str = Guid.NewGuid().ToString();
 
            }
            stopwatch.Stop();
 
            Console.WriteLine("Loop End");
            Console.WriteLine($"Loop Excution Time In MS {stopwatch.ElapsedMilliseconds}");
          
        }
 
        public static void IntegerType()
        {
            Console.WriteLine("IntegerType");
            int ctr = 0;
            Console.WriteLine("Loop Start");
 
            var stopwatch = new Stopwatch();
 
            stopwatch.Start();
 
            for (int i = 0; i < 3000000; i++)
            {
                ctr = ctr + 1;
 
 
            }
            stopwatch.Stop();
 
            Console.WriteLine("Loop End");
            Console.WriteLine($"Loop Excution Time In MS {stopwatch.ElapsedMilliseconds}");
 
        }
 
        public static void SameString()
        {
            Console.WriteLine("SameString");
            string str = "";
            Console.WriteLine("Loop Start");
 
            var stopwatch = new Stopwatch();
 
            stopwatch.Start();
 
            for (int i = 0; i < 3000000; i++)
            {
                str = "같은문자";
 
 
            }
            stopwatch.Stop();
            //메모리에 이미 있는지 확인 후 있다면 같다면 동일한 메모리 
            Console.WriteLine("Loop End");
            Console.WriteLine($"Loop Excution Time In MS {stopwatch.ElapsedMilliseconds}");
        }
 
        public static void StringConcat()
        {
            Console.WriteLine("StringConcat");
            string ctr = "";
            Console.WriteLine("Loop Start");
 
            var stopwatch = new Stopwatch();
 
            stopwatch.Start();
 
            for (int i = 0; i < 30000; i++)
            {
                ctr = "같은문자" + ctr ;
 
 
            }
            stopwatch.Stop();
            // 메모리생성 > 새로운 메모리 생성 > 첫번째 메모리는 garbage collection으로 이동
            Console.WriteLine("Loop End");
            Console.WriteLine($"Loop Excution Time In MS {stopwatch.ElapsedMilliseconds}");
        }
 
        public static void StringBuilder()
        {
            StringBuilder stringBuilder = new StringBuilder();
            Console.WriteLine("stringBuilder");
            Console.WriteLine("Loop Start");
 
            var stopwatch = new Stopwatch();
 
            stopwatch.Start();
 
            for (int i = 0; i < 30000; i++)
            {
                stringBuilder.Append("stringBuilder");
 
            }
 
            stopwatch.Stop();
            // 메모리생성 > 새로운 메모리 생성 > 첫번째 메모리는 garbage collection으로 이동
            Console.WriteLine("Loop End");
            Console.WriteLine($"Loop Excution Time In MS {stopwatch.ElapsedMilliseconds}");
 
        }
 
 
    }
}
 
cs
 

 

'ASP.NET' 카테고리의 다른 글

3. .NET Framework CLR  (0) 2020.04.20
2. .NET Framework 란?  (0) 2020.04.20
7. 닷넷 기초 (이미지 컨트롤)  (0) 2018.02.25
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25

CLR

 

 

서울우유 1급A우유

COUPANG

www.coupang.com

해당 글은 광고를 포함하고 있습니다.이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받을 수 있습니다.

 

 

 

 

 

 

 

 

 

.NET 응용 프로그램이 어떻게 컴파일 되는지 알아야 개발하는데 도움이 되지 않을까? 

 

 

우선 각각 C# , VB 각각의 언어로 프로그램을 작성하면 해당 컴파일은 언어에 맞게 컴파일 하여 exe를 생성한다.

 

여기서 Intermediate Language 중급언어 IL 코드는 반 컴파일 또는 부분 컴파일 또는 CPU 독립적 인 부분 컴파일 코드입니다.

 

CLR 의 핵심 기능은 다음과 같다 

  1. Security Manager
  2. JIT Compiler
  3. Memory Manager
  4. Garbage Collector
  5. Exception Manager
  6. Common Language Specification (CLS)
  7. Common Type System (CTS)

Security Manager 

보안관리자는 크게 두가지로 나뉩니다.

  1. CAS (코드 액세스 보안)
  2. CV (코드 검증)

이 두 구성 요소는 기본적으로 사용자가 어셈블리에 액세스 할 수 있는지 현재 사용자의 권한을 확인하는 데 사용됩니다. CLR은 또한이 코드에 어떤 종류의 권한 또는 어떤 종류의 권한이 있는지, 운영 체제에서 안전하게 실행할 수 있는지 여부도 확인합니다. 따라서 기본적으로 이러한 유형의 검사는 보안 관리자가 유지 관리합니다.

 

JIT Compiler

JIT 컴파일러는 MSIL 코드를 시스템에서 실행되는 기본 코드로 변환합니다. 네이티브 코드는 시스템 하드웨어에서 직접 이해할 수 있습니다. JIT는 실행 직전에 코드를 컴파일 한 다음이 변환을 메모리에 저장합니다.

 

Memory Manager

메모리 관리자 구성 요소는 응용 프로그램에서 사용할 변수 및 오브젝트에 필요한 메모리를 할당합니다.

 

Garbage Collector

닷넷 응용 프로그램이 실행되면 많은 개체가 만들어집니다. 특정 시점에서 이러한 객체가 필요하지 않을 수 있습니다. 따라서 가비지 콜렉터는 작은 루틴 일 뿐이며 백그라운드 프로세스 스레드라고 말하고 애플리케이션에서 현재 사용하지 않는 오브젝트를 식별하고 해당 오브젝트의 메모리를 할당 해제하는 백그라운드 프로세스 스레드라고 말할 수 있습니다.

 

Exception Manager

이 구성 요소는 프로세서를 리디렉션하여 catch를 실행하거나 런타임에 예외가 발생할 때마다 차단합니다.

 

 

Common Type System (CTS)

.NET Framework는 C #, VB.NET, J # 등과 같은 많은 프로그래밍 언어를 지원합니다. 모든 프로그래밍 언어에는 고유 한 데이터 형식이 있습니다. 한 프로그래밍 언어는 다른 프로그래밍 언어 데이터 형식을 이해할 수 없습니다. 그러나 한 언어로 코딩하여 다른 언어로 호출하려는 상황이있을 수 있습니다. 이러한 언어 간의 원활한 통신을 보장하기 위해 가장 중요한 것은 두 가지 언어로 정의 된 유형이 공통 데이터 유형으로 컴파일되도록하는 공통 유형 시스템 (CTS)이 있어야한다는 것입니다.

CLR은 모든 프로그래밍 언어의 데이터 유형을 실행합니다. 이것은 CLR이 모든 프로그래밍 언어에 공통 인 자체 데이터 유형을 포함하기 때문에 가능합니다.

컴파일시 모든 언어 별 데이터 유형이 CLR의 데이터 유형으로 변환됩니다. .NET의 모든 프로그래밍 언어에 공통적 인이 CLR 데이터 형식 시스템을 CTS (Common Type System)라고합니다.

 

CLS (Common Language Specification)

CLS는 CLR의 일부입니다. .NET은 많은 프로그래밍 언어를 지원하며 모든 프로그래밍 언어에는 언어 사양으로 알려진 코드 작성을위한 고유 한 구문 규칙이 있습니다. 즉, 모든 프로그래밍 언어에는 자체 언어 사양이 있습니다.

'ASP.NET' 카테고리의 다른 글

c# 문자열 의 깊이  (0) 2020.06.26
2. .NET Framework 란?  (0) 2020.04.20
7. 닷넷 기초 (이미지 컨트롤)  (0) 2018.02.25
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25

.NET Framework

 

닷넷 프레임워크가을 하기전에 COM 이라는 것이 있다.  COM 은 마이크로소프트사의 기술로 

윈도우 응용프로그램을 만들거나 웹 응용프로그램을 만드는 기술입니다. 

하지만 여기엔 큰 단점이 있었는데 ... 

 

OOP 즉 객체지향의 모든 기능을 지원하지 못했고, 

윈도우 OS만 실행이 가능하다는 단점이 있습니다. 

!! 이로인해  .NET Framework가 등장 하게 된 것입니다.

 

 

우선 의미부터 파악해본다면

 

.NET 에서  . <- (닷) 이 의미하는 것은 객체지향을 ,  NET은 인터넷를 의미합니다. 

고로 .NET은 객체지향을 통해  인터넷 기반 응용 프로그램을 구현 할 수 있다로 정리 할 수 있겠습니다.

 

그럼 여기서 Framework는 무엇일까?

프레임 워크는 소프트웨어입니다. 또는 프레임 워크는 어디서나 실행될 수있는 응용 프로그램을 개발하기 위해 함께 통합 된 많은 소규모 기술의 모음이라고 말할 수 있습니다.

 

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

.NET 프레임 워크는 크게 2가지를 지원하는합니다.

 

1. BCL (Base Class Libraries

2. CLR (Common Language Runtime)

 

 

BCL 은 마이크로 소프트에서 만들었으며,  BCL이 없으면 .NET 코드를 작성 할 수 없습니다.

BCL 은 .NET Framework 를 설치할 때 설치가 되며, 정의된 클래스가 포함되어 있어 응용 프로그램을 개발 할 때 클래스를 사용해서 개발을 합니다.

 

 CLR은 Common Language Runtime의 약자이며 .NET 프레임 워크에서 MSIL (Microsoft Intermediate Language) 코드를 원시 코드로 변환 한 다음 실행 하는 핵심 구성 요소 입니다.

 

정리를 하자면 .

.NET은 많은 프로그래밍 언어와 많은 기술을 지원하는 프레임 워크 도구입니다.

60개 이상의 언어를 지원하지만 대표적으로 

  1. VB.NET
  2. C # .NET
  3. VC ++. NET
  4. J # .NET
  5. F # .NET
  6. Jscript.NET

NET 프레임 워크에서 지원하는 기술은 다음과 같습니다.

 

  1. ASP.NET (Active Server Pages.NET)
  2. ADO.NET (Active Data Object.NET)
  3. WCF (Windows Communication Foundation)
  4. WPF (Windows Presentation Foundation)
  5. WWF (Windows Workflow Foundation)
  6. AJAX (비동기 JavaScript 및 XML)
  7. LINQ (언어 통합 쿼리)

 

 

'ASP.NET' 카테고리의 다른 글

c# 문자열 의 깊이  (0) 2020.06.26
3. .NET Framework CLR  (0) 2020.04.20
7. 닷넷 기초 (이미지 컨트롤)  (0) 2018.02.25
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25

이미지 컨트롤을 활용하여 이미지 표시하기입니다.


우선 이미지 폴더를 만들어서 로컬에 있는 이미지를 복사해서 넣습니다.


솔루션 탐색기- 추가 - 새폴더 



test12.aspx


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test12.aspx.cs" Inherits="FrmText.test12" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Image ID="imgChange" runat="server" ImageUrl="~/images/5.png"
             AlternateText="대체텍스트" Width="300px" Height="300px" />
        <hr />
        <asp:TextBox ID="text1" runat="server"></asp:TextBox>
 
        <asp:Button Text="이미지 순환" ID="btnChange" OnClick="btnChange_ck" runat="server" />
    </div>
    </form>
</body>
</html>
 
cs



test12.aspx.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test12 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
        protected void btnChange_ck(object sender, EventArgs e)
        {
            if (text1.Text == "1")
            {
                imgChange.ImageUrl = "~/images/3.jpg";
            }
            else if (text1.Text == "2")
            {
                imgChange.ImageUrl = "~/images/4.png";
            }
            else
            {
                string str = @"
                        <script>
                            alert('1 또는 2를 입력하세요');
                        </script>
                        ";
                Response.Write(str);
            }
        }
    }
}
cs


실행 화면



1 입력시 


2 입력시



1 ,2가아닌 다른 입력을 했을 때 




'ASP.NET' 카테고리의 다른 글

3. .NET Framework CLR  (0) 2020.04.20
2. .NET Framework 란?  (0) 2020.04.20
6. 닷넷 기초 (현재시간 출력하기)  (0) 2018.02.25
5. 닷넷 기초 (표준 컨트롤러)  (0) 2018.02.25
3. 닷넷 기초 (IP 주소 가져오기)  (0) 2018.02.25

Label 컨트롤을 활용하여 현재 시간을 출력해봅니다.~


레이블이란 : 웹 폼에 편집이 불가능한 문자열을 출력하고자 할때 사용한다고 하네요 ㅎㅎ


test8.aspx


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test8.aspx.cs" Inherits="FrmText.test8" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        현재시간:
        <asp:Label ID="lalDateTime" runat="server" ></asp:Label>
    </div>
    </form>
</body>
</html>
 
cs



test8.aspx.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test8 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //현재 날짜와 시간을 출력
            this.lalDateTime.Text = DateTime.Now.ToString();
        }
    }
}
cs


화면



ASP.NET 으로 웹페이지 제작할 때 페이지 화면에 만들어지는 모든 UI를 ASP.NET 서버 컨트롤이라 하고 

일반적으로 많이 쓰이는 컨트롤러 그룹을 묶어 표준 컨트롤이라고 한다.


표준 컨트롤러에 대하여 알아보자 


우선 화면에 출력하는 방법 3가지를 알아보자

물론 화면에는 동일하게 출력 될 것입니다.~


test9.aspx


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test9.aspx.cs" Inherits="FrmText.test9" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <h1>표준 컨트롤러</h1>
        
        <h2>방법 [1] 순수 HTML 사용해서 버튼 만들기</h2>
        <input type="button" name="name" value="버튼1" />
 
        <h2>방법 [2] runat 속성을 추가해서 서버 컨트롤 버튼 만들기</h2>
        <input type="button" id="btnHtml" runat="server" value="버튼2" />
 
        <h2>방법 [3] ASP.NET 표준 컨트롤러를 사용해서 버튼 만들기</h2>
        <asp:Button Text="버튼3" runat="server" ID="btnServer"/>
 
    </div>
    </form>
</body>
</html>
 
cs



test9.aspx.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test9 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            btnHtml.Value = "Html ServerControll Button";
            btnServer.Text = "표준 컨트롤 버튼";
        }
    }
}
cs


출력화면




IP 주소는 출력에는



localhost / 127.0.0.1  / ::1  이렇게 3가지 방법이 있다 다 같은 것 



TEST4.aspx

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test4.aspx.cs" Inherits="FrmText.test4" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        IP 주소 얻기 <br / />
        <asp:Label ID="Lable1" runat="server"></asp:Label> <br />
        <asp:Label ID="Label2" runat="server"></asp:Label> <br />
        <asp:Label ID="Label3" runat="server"></asp:Label> <br />
    </div>
    </form>
</body>
</html>
 
cs



TEST4.aspx.cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test4 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Lable1.Text = Request.UserHostAddress;
 
            this.Label2.Text = Request.ServerVariables["REMOTE_HOST"];
 
            this.Label3.Text = Request.ServerVariables["REMOTE_ADDR"];
        }
    }
}
cs





test3.aspx


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test3.aspx.cs" Inherits="FrmText.test3" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        아이디:
        <asp:TextBox ID="UserID" runat="server"></asp:TextBox><br />
        암호:
        <asp:TextBox ID="Password" runat="server"></asp:TextBox><br />
        이름:
        <asp:TextBox ID="Name" runat="server"></asp:TextBox><br />
        나이:
        <asp:TextBox ID="Age" runat="server"></asp:TextBox><br />
        <asp:Button ID="btnSubmit1" runat="server" Text="전송" OnClick="btnSubmit" />
    </div>
    </form>
</body>
</html>
 
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test3 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string userid = "";
            string password = String.Empty;
            string name = "";
            string age = String.Empty;
 
            // Request 객체의 QueryString
            userid = Request.QueryString["UserID"];
            // Request 객체의 Params
            password = Request.Params["Passwod"];
            // Request 객체의 Form
            name = Request.Form["Name"];
            // Request 객체로 받기
            age = Request["Age"];
 
            string msg = String.Format(
                    "입력하신 아이디는 {0}이고 <br />"
                    + "암호는 {1} 입니다. <br />"
                    + "이름은 {2} 입니다. <br />"
                    + "나이는 {3} 입니다. <br />",
                    userid , password , name , age
                );
            Response.Write(msg);
        }
        protected void btnSubmit(object sender, EventArgs e)
        {
            string name = Name.Text;
            int age = Convert.ToInt16(Age.Text);
        }
    }
}
cs



입력해보면 아이디는 get이라고 출력이 안됩니다.  이유는 get방식이라 주소에 querystring 으로 날려줘야 합니다~




Response.Write()

- 페이지의 문자열을 출력하거나 , 자바스크립트도 실행 할 수 있습니다.


Response.Redirect()

- 지정된 페이지로 이동합니다. 


test2.aspx



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test2.aspx.cs" Inherits="FrmText.test2" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
        </div>
        <p>
            <asp:Button ID="Button1" runat="server" Text="버튼1" OnClick="btn1" />
            <%="버튼1을 클릭하세요<br />" %>
        </p>
        <p>
            <asp:Button ID="Button2" runat="server" Text="버튼2" OnClick="btn2" />
            <%="버튼2을 입력하세요<br />" %>
        </p>
        <p>
            <asp:Button ID="Button3" runat="server" Text="버튼3" OnClick="btn3" />
            <%="링크로 이동하겠습니다.<br />" %>
        </p>
    </form>
</body>
</html>
 
cs



test2.aspx.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write("<h1>안녕하세요 내장객체 예제 입니다.<h1/>");
        }
        protected void btn1(object sender,EventArgs e)
        {
            Response.Write("<p style='color:skyblue;'>버튼 1이 클릭되었습니다.</p><br />");
        }
        protected void btn2(object sender,EventArgs e)
        {
            string str = @"
            <script>
                alert('alert 이벤트');
            </script>
        ";
            Response.Write(str);
        }
        protected void btn3(object sender,EventArgs e)
        {
            string Url = "http://kingchobocoding.tistory.com/";
            Response.Redirect(Url);
        }
 
    }
}
cs


화면


버튼 1을 눌렀을 때 CSS를 적용하여 텍스트가 출력 되었습니다.



버튼 2을 눌렀을 때 스크립트가 실행합니다 (alert 이벤트)

3번 버튼을 클릭하시면 네이버로 이동하는걸 볼 수 있습니다. 



웹 프로젝트 만들기


파일 - 새로만들기 - 프로젝트



새 프로젝트 만들기


웹  -  ASP.NET 응용 프로그램 하단에 자신의 프로젝트 이름을 설정한 후  확인을 누르세요



자신의 프로젝트에 마우스 오른쪽을 누르고 추가 - 새 항목 



웨 - 웹폼 - 이름을 설정 후 추가를 누르세요 



저는 test1 이라는 웹폼을 만들었습니다. 그럼 test1.aspx 파일이 만들어지고 작성을 해보겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="test1.aspx.cs" Inherits="FrmText.test1" %>
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID ="text1" runat="server" Text="버튼을 클릭해주세요"></asp:TextBox>
        <asp:Button ID="btn1" runat="server" Text="버튼1" OnClick="btn_1" />
    </div>
    </form>
</body>
</html>
 
cs


text1 이라는 텍스트 박스와 , btn1이라는 버튼을 반들었습니다.


test1.aspx.cs 를 작성해봅니다. onclick 이벤트가 발생했을 때 텍스트박스에 출력을 하겠습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
namespace FrmText
{
    public partial class test1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
 
        }
        protected void btn_1(object sender, EventArgs e)
        {
            text1.Text = "버튼 1이 클릭 되었습니다.";
        }
    }
}
cs



저장 후 브라우져에서 마우스 오른쪽 누르고 브라우져에서 실행 또는 Ctrl+ F5 를 눌러서 확인해보겠습니다.



+ Recent posts