AspNet 철호야!!!

Download Report

Transcript AspNet 철호야!!!

이벤트 순서!
페이지 처음 열릴 때 이벤트 순서
private void InitializeComponent()
override protected void OnInit(EventArgs e)
PageOpenprivate void Page_Load(object sender, System.EventArgs e)
protected override void OnPreRender(EventArgs e)
protected override void Render(EventArgs e)
Page_UnLoad 이벤트가 마지막임.– 출력안됨.
페이지 다시게시가 일어날 때
private void InitializeComponent()
override protected void OnInit(EventArgs e)
PostBackprivate void Page_Load(object sender, System.EventArgs e)
private void Button1_Click(object sender, System.EventArgs e)
protected override void OnPreRender(EventArgs e)
protected override void Render(HtmlTextWriter writer)
Page_UnLoad 이벤트가 마지막임 – 출력안됨.
Web
1. 어디서나 접근할 수 있음.(장점)
2. 구현은 하기 나름(노가다 필수)
3. 요청에 대한 응답을 할뿐임.( 단순한 동작이지만 내부는 복잡하다.)
요청에 대한 응답 : 곧 서버와 클라이언트동작 방식을 아는 것이 필요.
Asp.Net 의 프로그램
구현에 있어 서버와 클라이어트를
서로 구분 지어서 개념을 잡고 있는 것이 중요함.
프로젝트 기획
제일 짜증 나는 사항.
해줘야 하는데… 기획에서
뽑아내지 못한 추가요구로
프로젝트 기간 단축이 됨!
곧 야근으로 몰고 감!
고객 검토/ 승인
고객 검토 /
추가요구사항
기획안에 대한 계획
구현
테스트/ 검증
배포
동작~!
요청
oninit
Load
서버
ControlEvent XXX.cs
클라이언트
PreRender
응답
XXX.aspx
Render
unload
B
S
L
D
S
L
DB
사용언어!
C#
HTML/CSS
자바스크립트
DataBase Language
C# : 서버단 에서 데이터 처리 및 DataBase 와 연계 처리.
HTML/CSS : 클라이언트단에서 데이터를 꾸며서 보여줌.
자바스크립트 : 클라이언트에서 HTML의 컨트롤에 대한 데이터 처리를 맡음.
서버단과 클라이언트단 구별이 중요함.
Cs는 서버단.
Aspx는 클라이언트로 전송될 껍데기( Render이벤트에서 채워져 전송)
요청에대한 응답을 받아서 통해 보여진 html or aspx는 실제 클라이언트단.
언어별 할일…
CRUD : Create, Read, Update, Delete
XML : 추후 알아두면 좋음. 써먹을일이 많음( WebService )
나의 기준 : 프로그램 환경설정값 보관
aspx
cs
DataBase
자바스크립트
C#
유효성체크,
Html컨트롤 이벤트처리
Html 동적처리
Aspx에 서버컨트롤제어
DB에서 데이터 CRUD
유효성체크
Data를
채워넣음
HTML / CSS
문서 구조,
문서 꾸미기
MS-SQL
데이터 보관 처리
OOP 개념!!
메모리내에서 독립적인 존재를 만드는 개념!!!
어느 정도 개념은 잡고 있을리라…
객체
객체
무언가 하고 싶은 일이
있을 때 그 일을 할 수
있는 놈에게 시킴
객체
객체
객체
객체
객체
일을 맡아서
할 수 있는 놈
객체
객체
객체
당장 사용하는데 무리가 있고 차근 차근 공부해!!
객체를 만들자!!
:: 객체는 항상 기준, 범위를 염두한다
1. 객체에 접근하기!
프로그래밍을 할 때 {주} 가 되는 일은 곧 데이터를 처리 하는 일인데
데이터 처리를 객체가 하게끔 프로그래밍을 함. (이럼 이해되려낭)
2. 항상 주변 사물을 관찰하고 객체개념을 접목시켜본다.
말은 그럴 듯 해도 항상 어려운 작업. 가끔 멍해짐.
ex) 내(객체0)가 속한 팀( 객체 1)은 일을 하기 위해 모였다.
나는 일을 하고 돈(객체2)을 받는다
여기서 객체0은 팀에서 어떤 일(기능)을 하고,
팀원(객체3)이 일이 있어 빈 경우 누군가에게 일을 위임 한다!
팀내에는 사수(객체4), 부사수(객체5)는 일에 있어서 상속관계를 유지한다.
상속 : IS A, Has A
위임 : 대신 하도록 부탁!
상속 & 위임
HAS A
IS A
고장
자동차
라디오
MP3
바퀴
바퀴
바퀴
바퀴
위임
소나타
아반떼
라디오청취
이벤트
객체에 대한 특정 조건에서 이를 알리는 역할을 함
객체에 데이터가 1이었는데 2로 상태 변화가 발생시 이를 알려줄 수 있도록
이벤트로 알림.
delegate void intState();
class EventObject
{
int
eventTarget = 0;
public int EventTarget
{
get { return this.eventTarget;}
set {
int i = this.eventTarget;
this.eventTarget = value;
if( i != this.eventTarget && intState_EventHandle != null)
intState_EventHandle();
// 이벤트 발생!!!
}
}
public
event
intState
intState_EventHandle;
}
// 정의 Form 객체 안에서...
EventObject evtObj = new EventObject();
// 이벤트 핸들러 지정 (위임)
evtObj.intState_EventHandle +=new intState(evtObj_intState_EventHandle);
// 이벤트를 처리해줄 놈.
private void evtObj_intState_EventHandle()
{
MessageBox.Show("값을 바꿨네!");
}
// 이벤트 발생시킴
evtObj.EventTarget = 10;
Event가 발생시 자기 자신이
처리할 수도 있지만
해당 처리를 호출자에게 대신처리
하도록 부탁(위임) 하기도 함.
현재코드는 이벤트를 위임한 코드
해당 객체는 값이 바뀔때 이벤트가 발생함!
예제 소스 첨부!!! Vs2003버젼이므로 변환해서 볼것
class
{
EventObject
int
eventTarget = 0;
public EventObject()
{
this.intState_EventHandle +=new intState(StateChange);
}
public int EventTarget
{
get
{ return this.eventTarget;}
set {
int i = this.eventTarget;
this.eventTarget = value;
if( i != this.eventTarget && intState_EventHandle != null)
intState_EventHandle();
}
}
public
event
intState
intState_EventHandle;
public void StateChange()
{
MessageBox.Show("누가 바꾸래!");
}
}
새로 추가된 코드로 이벤트를 자체 처리함.
이렇게 했을시 이벤트는 자체 이벤트 발생 -> 호출자가 처리한 이벤트
순서로 처리됨.
ㅡ.ㅡ 움 ….
크게 다른건 없고.
주로 HTML컨트롤 이용하고 자바스크립트로 이벤트를 제어 하며 유효성 체크도
같이 함.
단 서버단과 데이터를 주고 받아야 하는 상황 시 필요한 서버컨트롤을 이용.
페이지 오픈
페이지 다시 게시
조회
자바스크립트
Server
Control
클라이언트
HTML Control
페이지 다시 게시
조회
페이지 다시 게시
조회
서버
응답
데이터 베이스
데이터 베이스는 데이터를 효과적으로 저장하기 위해 필요한 기술
중요 ! :
트랜젝션  데이터의 신뢰성을 유지
원자성
 데이터가 중복이 일어나지 않아야 함.
- 기억나는게 두가지넹
데이터 베이스 설계 시작!!!
- 무엇을 만들것인가?
이것이 가장 기준이 되고 이것에 엮이는 것들에 대한 관계 설정이 필요함.
- 누가 쓸 것인가?
만든것을 누가 쓸것인지가 결정이 되면 데이터 윤곽과 범위를 정할수 있음.
위를 토대로 정보수집을 할 것!
MS-SQL은 RDBMS 로써 객체간의 관계설정으로 데이터간에 상호 값을 보호.
데이터에는 내가 본 기준에는 세가지 기준으로 구분
첫째, 주 데이터 말 그대로 만들고자 하는 데이터의 주가 되는 데이타그룹
둘째, 보조 주 데이터가 너무 길거나 따로 관리되어야 하는 데이타들이
존재시 나뉘어지는 그룹
셋째, 코드성 데이타
테이블간에 관계 정의 시  Primary Key, ForiegnKey 로 주종 관계 정의
코드성 데이타들은
끼워맞춰지는 것이라서 상황에 따라 조정가능
단, 코드성이라도 함부로 변경시 보존되어야 할 데이터가 다른게 나올수 있음.
난 데이터 베이스를 싫어하기 땜시롱 자세한건 책보고 할 것!
주소록
기본!
사람
기본정보
누가 쓸 것인가?
회사에서 사용
병원
자회사
사람
기본정보
관련업체
사람
기본정보
자회사
직원
사람
기본정보
환자
사람
기본정보
구분 코드
관련업체
사람
기본정보
자바스크립트
내장객체 계층구조
참고 사이트 : http://blog.naver.com/doryungjs/110023700592
자바스크립트 Array 사용법
<script type="text/javascript" src="debuger/trace.js" ></script>
<script type="text/javascript" >
// 첫번째 사용법.
var ar = Array();
ar[0] = '1';
ar[1] = '2';
ar[2] = '3';
ar[3] = '4';
ar[4] = '5';
function load()
{
traceArr( ar);
trace("ar[1] : "+ar[1]);
}
</script>
trace사용법
<script type="text/javascript" src="debuger/trace.js" >
</script> 추가해주고.
trace( )함수로 변수 1개를 볼 수 있고
Ex) trace(“변수명 :”+ varName );
Array같은 타입은
traceArr() 을 이용해서 배열내에 값을 확인가능
<script type="text/javascript" src="debuger/trace.js" ></script>
<script type="text/javascript" >
// 첫번째 사용법.
var ar = new Array();
ar[0] = '1';
ar[1] = '2';
ar[2] = '3';
ar[3] = '4';
ar[4] = '5';
// 두번째 사용법
var ar2 = Array();
ar2 = {aaa:51,bbb:52,ccc:53};
// 복합 사용법
var ar3 = new Array();
// [0]
[0
],[1
]
ar3[0] = [{aa:1, bb:2, cc:3},{aa:4, bb:5, cc:6}]
function load()
{
traceArr( ar);
trace("ar[1] : "+ar[1]);
trace("ar2.aaa :" + ar2.aaa);
trace("ar3[0][0].aa :" + ar3[0][0].aa);
trace("ar3[0][0].cc :" + ar3[0][1].cc);
}
</script>
일단 여기까지가 기본사항…
Html, 자바스크립트는 필수, css는 옵션.
C#에서 사용하는 객체들에 대해 잘 알면
자바스크립트에서 사용하는 객체 또한 크게 다른게 없음.
기본문법사용에 충실하고 응용방안은 머리가 닳도록 생각에 또 생각해야 됨.
앞으로도 계속 쭈욱 공부를 해야됨.
Asp.net을 기반으로 Ajax -> Silverlight 까지도 수월하게 하려면
Asp.Net에 대한 기본 동작은 꿰차고 있어야 함.