.Net Framework/.NET2010. 11. 29. 11:16
웹파트 ?? 라는 녀석을 해보려고 굴러다니는 예제를 주워서 조합해보니.....
뭔가 에러가 뚜둥 -

[ dbo.aspnet_CheckSchemaVersion ] 이런 인스턴스가 있다나 없다나 -_ㅠ

아직 배우는 단계라 웹파트도 버벅이지만 웹파트 - SQL 서버 등록 도구로 생성된 테이블 이 두녀석들이 연관 관계가 있나 보다.

툴을 상세 옵션은 아래를 참조 -
http://msdn.microsoft.com/ko-kr/library/ms229862(VS.80).aspx

- ASP.NET SQL Server 등록 도구???
ASP.NET의 SQL Server 공급자에서 사용할 Microsoft SQL Server 데이터베이스를 만들거나 기존 데이터베이스의 옵션을 추가 또는 제거하는 데 사용됩니다.

일단 웹파트를 사용하기 위한 관련 테이블을 생성하기 위해서 자~ 하나씩 차근차근 순서대로 해보도록 하자.

1. 생성된 [SUMA] 라는 데이터베이스를 자세히 보면 테이블에 [시스템테이블] 항목만 있다.


2. 시작->프로그램->Microsoft visual Studio 2008 --> Visual Studio Tools -> Visual Studio 2008 명령 프롬프트 선택



3. 명령프롬프트가 실행되면 aspnet_regsql 을 입력 후 enter


4. 아래와 같이 ASP.NET SQL Server 설치 마법사가 실행되면 다음 클릭


5. 새로운 것을 추가 할 것이므로 [응용 프로그램 서비스에 대해 SQL Server 구성] 선택 후 다음 클릭


6. 설치할 서버와 데이터베이스를 확인하고 서버 인증 방법을 선택 후 다음
서버 : TIWAZ
인증방법 : 윈도우 인증
데이터베이스 : SUMA


7. 설정한 정보가 맞는지 확인 후 다음 클릭


8. 설치가 완료 되면 아래와 같이 완료 창을 확인후 마침 클릭.


9. 다시 SQL Server 로 돌아와서 테이블을 확인해보면 aspnet_ 로 시작하는 테이블이 생성 된 것을 확인할 수 있다.


여기까지 끝 -

웹파트는 다시 정리후....-_-

'.Net Framework > .NET' 카테고리의 다른 글

▒ 개발자가 빠지기 쉬운 “나쁜 습관 6가지” ▒  (4) 2010.02.03
.NET Framework란?  (0) 2010.01.28
JQuery를 이용한 메뉴바  (0) 2009.12.14
ILDASM.EXE 사용법  (0) 2009.11.16
IBatis + SQL server 2005 설정  (0) 2009.10.27
Posted by Tiwaz
.Net Framework/.NET2010. 2. 3. 12:09

 개발자가 빠지기 쉬운 나쁜 습관 6가지

Tony Patton (TechRepublic) : 원문보기

 

Tony Patton 기고한 글을 ZDNET 에서 번역한 자료이다. 우리는 기사에 대한 내용을 우리의 시각에서 정리해 보았다. 글은 자유로이 읽고, 배포할 있다. 그러나 출처에 대한 공개를 해주는 좋은 습관이 필요하다.

 

아는 것은 싸움의 절반에 해당한다. 내가 하는 실수를 제대로 알고 있다면, 고치는 것은 시간 문제다. 초보와 베테랑 개발자 모두 전체 프로젝트의 진척에 방해가 있는 업무의 측면에 대해서 알고 있는 경우들이 많다. 범하기 쉬운 실수들을 미리 살펴 보아야 하는지 알아본다.

 

초보, 중급 개발자들과 함께 일해 왔는데, 베테랑 개발자를 포함해 모든 개발자들이 주의하지 않는다면 쉽게 빠질 있는 오해의 함정들을 가지 발견하게 되었다. 여기에는 적절한 도구의 선택부터 서비스의 적절한 사용법에 이르기까지 다양한 아이디어가 포함된다.

 

개발자들이 갖기 쉬운 6가지 오해에 대해서 설명한다.

 

1. .NET Application 개발을 위해서는 Visual Studio .NET 필수다. ?

 

이런 생각을 했다면, 버려라. MS .NET 개발을 처음 접해 사람들은 .NET Framework 이용한 Application 개발을 위해서 Visual Studio .NET 필요하다는 오해를 하기 쉽다. 이는 사실이 아니다. 단지 MS Web Site에서 .NET Framework 무료로 다운로드 받기만 하면 된다.

 

.NET Framework 설치한 좋아하는 텍스트 편집기와 커맨드-라인 .NET Tool 사용하면 된다. 또한 이미 나와 있는 SharpDevelop 같은 3rd Party 개발 도구를 사용해도 된다. (현재 시점에 많은 제품들이 상용/오픈으로 나와 있다)

 

Visual Studio .NET 대안에 관한 보다 자세한 논의를 담은 이전 기사를 참고하면 좋다. 개발도구의 선택은 개인적인 취향에 달려있지만 많은 개발 팀은 협업을 단순화하기 위해서 도구를 표준화 한다.

 

<의견>

좋은 의견이다. 충분히 검토할 가치가 있으며 이러한 논지는 개발이 벤더에 종속되지 않는 의미를 가지기도 한다. 그러나 점점 Visual Studio .NET 벗어나서는 지원되지 않는 장점이 많아지는 것이 문제일 것이다. 이러한 것도 역시 개발에 필요한 부분이 아닐 있기 때문에 판단은 역시 당사자들이 하여야 문제일 것이다. 이제 11 22일에 Visual Studio .NET 2005 발표된다. 역시 많은 기능과 개발과 디자인을 연결하는 기능이 시도되고 있다. 이런 것들을 어떻게 적응할 것인가가 중요한 부분이 아닐까 한다.

 


2.
내가 습득한 정보, 꼭꼭 숨기기

개발자들이 갖는 독특한 특징의 하나는 정보를 모으는 것이다. 타인이 모르는 것에 대해 있는 능력은 종종 중요성에 대한 잘못된 인식을 키우게 된다. 반대로 이런 정보를 공유하게 되면 그룹 전체의 지식이 확대되므로 팀에 도움이 된다. 또한 공유된 개념은 다른 멤버의 의견에 따라 발전할 수도 있다. 것은 오픈소스 운동의 핵심 측면이기도 하다. 마지막으로 다른 개발자나 개발자들에게 어떤 개념이나 아이디어를 설명하게 되면 많은 경우 당신의 지식도 커진다.

팀워크는 애질 소프트웨어 개발(Agile Software Development) 같은 운동에 있어서 추진력이 된다. 또한 많은 그룹이 동료가 작성한 코드를 리뷰하고 조언을 주고 있다. 이런 행위는 양측이 서로 배우고 이해를 넓히는 역할을 한다
.

3.
코드에서 코멘트 빠뜨리기


코드에 코멘트를 하는 것은 쉬우면서도 단순한 절차이다. 그렇다면 코멘트가 자주 간과되고 무시되는가? 일부 개발자들은 어떤 형태로든 문서화를 하지 않는다면 일자리를 유지하는데 도움이 된다고 생각한다. 이는 바로 전에 다룬 정보 공유에 관한 오류와 밀접한 관계가 있다.

군데 배치된 코멘트는 코드의 판독성과 관리성을 향상시킨다. 그런데 코멘트가 남용될 수도 있다. 기본적으로 코드의 목적, 변수, 메쏘드 등을 짧게 설명하는 코멘트가 있으면 된다. 많은 그룹들은 코드에 변화가 생기면 코멘트를 삽입하기를 원한다. 이는 문제가 생겼을 변화의 내용을 파악하기 쉽게 한다
.

4.
버전 컨트롤 시스템의 가치를 간과하는


많은 개발자들이 다음과 같은 시나리오를 너무나 알고 있다. 중요한 애플리케이션의 버전을 내놓았다. 그런데 사이트의 문제점을 항의하는 전화가 다음날 아침부터 줄지어 날아든다.

개발자가 한두 가지 실수를 범했다는 것을 수용할 용의가 있다면, 버전 컨트롤 시스템은 이런 상황에서 최고의 친구가 있다. CVS, IBM 래쇼날 클리어케이스, MS 비주얼 소스세이프와 같은 버전 컨트롤 시스템을 사용함으로써 기존 버전의 애플리케이션으로 쉽게 돌아가서 이를 기반으로 제품을 생산할 있다. 이는 제품 사이트가 가동되는 것과 병행해 개발 환경 내에서 문제를 찾는데 필요한 시간을 있도록 해준다. 이는 문제를 찾기 위해 제품 코드를 미친 듯이 찾는 것을 방지한다
.

또한 소스 컨트롤 시스템은 병행 개발을 가능하게 하므로 멤버들이 동일한 코드를 작성할 있다. 개발자들이 시스템에 변경된 사항을 입력하면 이들 변경사항이 한꺼번에 통합된다
.

일부 개발자들이 버전 컨트롤 시스템을 싫어하는 가지 이유는 개발 절차에 있어서 하나의 계층을 추가하기 때문이다. 소스 컨트롤 시스템에 코드를 제출하고 추출하는 것이 시간을 잡아먹을 있다. 이런 시간이 일부 개발자들의 인내심을 시험할 있다
.

5.
서비스가 모든 프로젝트에서 필요하다는 생각


서비스에 대한 모든 감언이설 때문인지 많은 개발자들은 프로젝트를 시작하면서 어떤 형태로든 서비스를 사용해야겠다고 생각한다. 서비스가 필요하거나 적절한 방법일 수는 있지만 무조건 써야 되는 것은 아니다. 상황을 분석해 서비스의 구현이 적절한지 검토할 필요가 있다. 예를 들어 원격화와 같은 기술이 보다 적절할 수도 있다.

6.
데이터 확인의 중요성을 자주 잊는


데이터는 애플리케이션에서 다양한 방식으로 처리되고 조작된다. 이런 이유 때문에 개발자들은 데이터의 무결성과 유효성을 개발과정에서 확인해야 된다. 데이터는 문자를 리턴할 있는 백엔드 데이터베이스로부터 읽혀질 수도 있다. 문자는 대부분의 경우 예외상황 (exception) 발생시키므로 실행을 계속하기 전에 데이터는 검사돼야 한다.

당신이 초보 개발자이거나 베테랑 개발자이거나에 상관없이 개발자들이 여섯까지 오해에 빠지기 쉽다는 것을 알아야 한다. 심지어 이런 나쁜 습관에 당신이 빠지지 않는다고 해도 다른 팀원들이 이들 함정에 빠질 있다. 잠재적 실수에 대해 경각심을 가진다면 프로젝트를 방해할 있는 실수들을 방지하는데 도움이 것이다.

'.Net Framework > .NET' 카테고리의 다른 글

ASP.NET SQL Server 등록 도구(aspnet_regsql.exe)  (0) 2010.11.29
.NET Framework란?  (0) 2010.01.28
JQuery를 이용한 메뉴바  (0) 2009.12.14
ILDASM.EXE 사용법  (0) 2009.11.16
IBatis + SQL server 2005 설정  (0) 2009.10.27
Posted by Tiwaz
.Net Framework/.NET2010. 1. 28. 09:04

.NET을 이해하기 전에~
-예전의 DOS는 File I/O와 Console I/O를 처리
-그때의 프로그래밍을 하였을 경우 *.LIB(모듈 단위,각각의 모듈에서 중복 되는 기능이 생겼음)
-*.c와 *.lib를 Compile & link(현재의 Build) 하여 *.EXE파일을 만듬 이것이 *.dll로 변경됨

ActiveX : 특정 웹 사이트에 들어 갈 경우 ActiveX를 설치하라고 하는데, 그것을 클릭하였을 경우
그시점에 .DLL 또는 .ocx를 시스템에 다운로드 및 설치를 한다. 그때 시스템 레지스터에 등록되어 지며 *.DLL이 동적으로 실행 된다. ActiveX--->Activate됨.
이때 .DLL이나 .ocx가 각각의 프로그래밍 언어 마다 다르게 만들어 졌는데 각각의 파일이 운영체제, 각 나라 등
인터페이스가 다른 것을 Framework에서 통합하여 처리를 한다. Framework 안에는 서로 다른 window API들로 구성되어 있음 Framework는 [Compact Framework 또는 일반 Framework][Framework(서로 다른 Window API 통합)]으로 구성

 


.NET은?
-Microsoft XML 웹 서비스 플랫폼.
-XML 웹 서비스 : 운영체제, 장치, 프로그래밍 언어에 관계 없이 인터넷을 통해 응용프로그램에서 데이터를 통신 또는 공유할 수 있게 해줌.

.Net 플랫폼?
-개발자에게 XML 웹 서비스를 만들고 이들을 서로 통합하는데 필요한 기술 제공.
-일반 사용자아게는 완벽하고 안전한 환경을 제공.

.Net 장점
-언제 어디서나 장치에 관계 없이 통신, 데이터 작업을 할 수 있음.
-분산 컴퓨팅 모델을 사용.
-XML과 같은 개방형 표준에 구축되어 PC 및 다른 스마트 장치를 연결

.NET의 특징
-Java 진영에 대한 전략적 대응책
-Ubiquitous 환경에 대응하기 위한 Any Div. Platform
-Win32, ActiveX기반의 Application 구동 방식의 개선
-개발 환경 및 실행 환경의 복잡성 해결책 요구

 

개발자 입장에서 바라본 .Net Framework
-JVM(Java Virtual machine)과 같은 안정된 구동 환경 제공.
-언어간 상속, Data교환이 자유로운 .Net언어들을 지원
-모든 시스템 자원(OS, DB)과 interface를 CLR(Common Language Runtime, CTS, CLS)에서 모두 제공
-시스템 레지스트에 등록(CLSID 등)하는 ActiveX가 존재하지 않음(DLL지옥에서 벗어남).
-Web환경, Web Service환경 구축이 .NET 개발 환경에 모두 통합.

*.NET Compact Framework : 스마트 디바이스(PDA 등)에 탑재 되어 동작하는 .NET Framework의 일반 Framework과 사용법은 동일하나 상당 부분의 기능이 제한


.Net CLR(Common Language Runtime)
-기본 Class Lib : 방대한 Lib. 형태 이므로 체계적인 System Namespace로 잘 분류되어 있음
(데이터 접근, GUI, 보안, XML/SOAP, Thread, File IO, Debugging, COM+ 등)
-CLR : CTS(Comm Type System), CLS(Common Language Specification) 두 가지로 구성되어 있음, JAVA의 VM과 같은 역할 수행, 두가지 요소는 .NET언어 들이 교차언어 상속 및 교차 언어 예외 처리를 지원하게 되는 근간을 이룸.
예) [C++]------(->)-------[VB] 두가지 다른 언어를 알아 볼 수 있도록 교차점(인터페이스 관계 설정)을 IDL이라고 한다. 그 역활을 CLR이 함!!

 

.Net Assembly
[C# Source]------->C# 컴파일러-----┐
[VB.NET Source]--->VB.NET컴파일러--->.NET Assembly(Intermediate Language(IL), Meta Data로 구성)----o
[M.C++ Source]---->C++컴파일러-----┘

o--->클래스 로더--->JIT(Just In Time)컴파일러--->플랫폼이 고려된 명령 바이너리(Xp, 98, 2000등에 맞춰서 설정)--->실행

-.NET기본 Class Lib.(mscorlib.dll) : System.Data, System.IO로 구성
-.NET실행 엔진(mscoree.dll) : 클래스 로더, JIT컴파일러, 플렛폼이 고려된 명령 바이너리로 구성

.NET Assembly의 특징
-Intermediate Language(MSIL) : 중간 바이너리 형태의 실행 코드 집합
-Meta Data : 바이너리 실행에 필요한 리소스, 버전, 기타 자기 설명적 요소
-전용 Assembly, 공용 Assembly : Xcopy를 통해 지역 디렉토리에 복사하여 사용하는 것을 기본
-Version 정책 : Version이 다르면 다른 Assembly로 인식

*GAC(Global Assembly Cache)
-*.DLL을 공유하여 사용하기 위해서 사용되는 공간
-System의 Local영역과 달리 동일한 이름으로 등록 가능, Key를 DLL마다 다르게 생성해주기 때문에 가능
-이름이 같고 버젼이 다르거나 Culture Code(KR, JP, US 등등)에 따라 동일한 이름으로 등록 가능

*Xcopy
-C# Source, VB.NET Source 등---> 컴파일 ---> *.DLL, *.EXE ---> 응용프로그램 실행
이때 응용프로그램 실행 시점에서 필요한 *.DLL 또는 *.EXE를 즉시 복사하여 사용하는 것을 말함.
-*.DLL에 Key등록(GAC)을 하였을 경우 프로그램 실행 시간이 지연됨(Key가 등록되면 실행 시 GAC영역을 검색하여 DLL을 찾고 없을 경우 다시 LOCAL을 검색 후 실행 시키기 때문)

*ildasm : *.dll, *.exe를 재 컴파일 해주는 프로그램, 그래서 .NET으로 보안프로그램은 만들지 않는다.

 

.NET OOP(Object Oriented Programming)
-캡슐화(Encapsulation) : 한정자(private, public 등)를 이용하여 필요한 것만 보여주도록 하는 것
-상속(Inheritance) : 상위 클래스에서 하위 클래스로 물려 주는 것. 매소드 상속 등
-다형성(Polymorphism) : 하나의 특성을 다른 형태로 변형하여 다른 기능을 수행 하도록 하는 것

-.NET언어들은 JAVA수준의 객체 지향 언어의 조건을 모두 갖추고 있음.
-.NET언어는 파생 Class를 구현 할 때 별도의 정보 파일을 필요로 하지 않음.
-.NET언어는 각 .NET언어 간의 교차 언어 상속이나 Custom Type 사용이 자유 로움.
-교차 언어간 사용을 위해 IDL과 같은 인터페이스 정의 명세가 필요 없음.(CLR을 사용)

 

.NET의 리소스 관리, Garbage(미아 상태 자원) collection
-리소스 : OS, DB상의 모든 자원들(파일, 메모리, 스크린 영역, Network자원, DB연결 세션 등)
-Garbage : 응용프로그램이 할당하여 사용한 리소스가 사용 후 반환하지도 사용하지도 않고 있는 미아 상태의 자원
-기존 언어들의 리소스 관리 방식 : 명시적인 할당 객체 해제 방식(C++ : Delete, VB : Nothing)

[00OO    Managed heep]
0 - Dispose() --> 명시적 자원 정리 대상(File Handle(close), DB Connection(close), Network Socket(disconnect), Bitmap, Icon(delete object))
O - Root가 끊어진 Resource(Garbage)


유용한 .NET Tools
-C:/>sn : 강력한 이름 유틸리티(공용 어셈블리를 만들기 위해서 Key 생성시 사용)
-C:/>regasm : .net Assembly를 타입라이브러리를 내보내어 레지스트리에 등록(.NET 어셈블리를 ActiveX로 변환)
-C:/>ildasm : .net Assembly를 디 어셈블 해주는 Tools(메니페스트 정보와 il Code를 볼 수 있음)
-C:/>gacutil : 공유(전역) 어셈블리 케쉬(Global Assembly Cache)에 어셈블리 등록하는 Tool

Posted by Tiwaz
.Net Framework/.NET2009. 12. 14. 23:28

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Menu._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>
<style type="text/css" runat="server">
    ul#topnav
    {
        margin: 0;
        padding: 0;
        float: left;
        width: 970px;
        list-style: none;
        position: relative; /*--Set relative positioning on the unordered list itself - not on the list item--*/
        font-size: 1.2em;
        background: url(topnav_stretch.gif) repeat-x;
    }
    ul#topnav li
    {
        float: left;
        margin: 0;
        padding: 0;
        border-right: 1px solid #555; /*--Divider for each parent level links--*/
    }
    ul#topnav li a
    {
        padding: 2px 2px;
        display: block;
        color: #f0f0f0;
        text-decoration: none;
    }
    ul#topnav li:hover
    {
        background: #1376c9 url(topnav_active.gif) repeat-x;
    }
    /*--Notice the hover color is on the list item itself, not on the link. This is so it can stay highlighted even when hovering over the subnav--*/
    ul#topnav li span
    {
        float: left;
        padding: 2px 0;
        position: absolute;
        left: 0;
        top: 30px;
        display: none; /*--Hide by default--*/
        width: 970px;
        background: #1376c9;
        color: #fff; /*--Bottom right rounded corner--*/
        -moz-border-radius-bottomright: 1px;
        -khtml-border-radius-bottomright: 1px;
        -webkit-border-bottom-right-radius: 1px; /*--Bottom left rounded corner--*/
        -moz-border-radius-bottomleft: 1px;
        -khtml-border-radius-bottomleft: 1px;
        -webkit-border-bottom-left-radius: 1px;
    }
    ul#topnav li:hover span
    {
        display: block;
    }
    /*--Show subnav on hover--*/
    ul#topnav li span a
    {
        display: inline;
    }
    /*--Since we declared a link style on the parent list link, we will correct it back to its original state--*/
    ul#topnav li span a:hover
    {
        text-decoration: underline;
    }
</style>
<body>
    <form id="form1" runat="server">
    <div style="background-color: Black; width: 960px; height: 110px;">
        <ul id="topnav">
            <li><a href="#">My Home</a></li>
            <li>
                <a href="#">Projects</a>
                <span><a href="#">Subnav Link</a>
                    <a href="#">SubnavLink</a>
                    <a href="#">Subnav Link</a>
                </span>
            </li>
            <li><a href="#">Backlogs</a>
                <span><a href="#">Subnav Link</a>
                    <a href="#">SubnavLink</a>
                    <a href="#">Subnav Link</a>
                </span>
            </li>
            <li><a href="#">Defects</a>
                <span><a href="#">Subnav Link</a>
                    <a href="#">SubnavLink</a>
                    <a href="#">Subnav Link</a>
                </span>
            </li>
            <li><a href="#">Reports</a>
                <span><a href="#">Subnav Link</a>
                    <a href="#">SubnavLink</a>
                    <a href="#">Subnav Link</a>
                </span>
            </li>
        </ul>
    </div>
    </form>

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

    <script type="text/javascript">
        $(document).ready(function() {

            $("ul#topnav li").hover(function() { //Hover over event on list item
                $(this).css({ 'background': '#1376c9 url(topnav_active.gif) repeat-x' }); //Add background color and image on hovered list item
                $(this).find("span").show(); //Show the subnav
            }, function() { //on hover out...
                $(this).css({ 'background': 'none' }); //Ditch the background
                $(this).find("span").hide(); //Hide the subnav
            });

        });
    </script>

</body>
</html>

'.Net Framework > .NET' 카테고리의 다른 글

▒ 개발자가 빠지기 쉬운 “나쁜 습관 6가지” ▒  (4) 2010.02.03
.NET Framework란?  (0) 2010.01.28
ILDASM.EXE 사용법  (0) 2009.11.16
IBatis + SQL server 2005 설정  (0) 2009.10.27
.NET -iBATIS + Log4Net Log 설정  (1) 2009.10.27
Posted by Tiwaz
.Net Framework/.NET2009. 11. 16. 09:42
 
  1. 시작->프로그램->VS2005-> VS Tools -> 명령 프롬프트 실행
  2. 역어셈블리 툴인 ildasm.exe 실행
  3. 아래와 같이 프로그램 실행
  4. 파일 -> 열기 클릭
  5. 역어셈블 하고자 하는 *.dll 선택 열기
  6. 아래와 같이 *.dll 파일이 열림.
  7. 파일->덤프 메뉴 클릭
  8. 아래와 같은 덤프 옵션창에서 원하는 형식으로 설정 확인
  9. 확인 버튼을 눌리면 *.dll 파일이 위치한 경로에 *.txt / *.res 파일 생성
  10. *.txt 파일의 경우 원래의 코드 형태는 아니지만 클래스, 메소드, 프라퍼티 정보가 아래와 같이 생성.
  11. *.res 파일의 경우 열기 하였을 경우 아래와 같은 결과를 보여줌
  12. 파일->트리 덤프 클릭 *.dll 파일을 열면
  13. 아래와 같이 *.txt 파일 생성
  14. 파일을 열어 보면 아래와 같이 트리형태로 클래스, 메소드, 프라퍼티 등을 볼수 있음.
  15. ILDASM.exe 실행시 심볼 형태로, 덤프한 결과일 경우 축약형으로 참고하여 보면 도움이 될듯..
  16. ( 인포북 C# .NET플랫폼 참고)

    ILDASM.EXE 심볼

    축약형

    설명

    .(DOT)

    아이콘은 주어진 타입에서 많은 세부 정보를 찾아 있음을 의미한다.

    더블클릭할 경우에는 아이템은 트리에서 관련된 노드로 점프하게 된다.

    [NSP]

    네임스페이스를 의미한다.

    [CLS]

    클래스를 의미한다. 중첩된 클래스의 경우에는 <outer 클래스>

    $<inner 클래스> 방식으로 표현한다.

    [VCL]

    구조체를 의미한다.

    [INT]

    인터페이스 타입을 의미한다.

    [FLD]

    주어진 타입에서 정의된 필드를 의미한다.(public 데이터).

    [STF]

    주어진 타입에서 정의된 정적(static) 필드를 의미한다.(클래스 차원에서).

    [MET]

    주어진 타입의 메소드를 의미한다.

    [STM]

    주어진 타입의 정적메소드를 의미한다.

    [PTY]

    주어진 타입의 프로퍼티를 의미한다.

    []

     


Posted by Tiwaz
.Net Framework/.NET2009. 10. 27. 19:30

 
  • iBatis + SQL 설정
    1. 아래와 같이
    • IBatisNet.Common.dll : 자세한 내용은 http://ibatis.apache.org/ 참조
    • IBatisNet.Common.Logging.Log4Net.dll : 로그를 찍기위한 파일.
    • IBatisNet.DataMapper.dll : 데이터 mapping 하기위한 파일.

위의 3개의 DLL 참조 추가 한다.

  1. 그리고 두개의 파일이 설정 파일이 있어야 사용 가능 하다.
  • provider.config
  • SqlMap.config

 

  1. Provider.config 파일은 아래와 같이 SQL, Oracle 각종 DB 대한 공급자 설정이 되어 있다.

사용시 enabled 속성이 기본 false 이므로 true 바꿔서 사용 한다.

  1. SqlMap.config 파일은 DB 접속 정보와 DB 정보를 mapping 있는 xml 파일을 설정 한다.

  1. provider.config 파일의 provider 엘리먼트의 name 속성의 값이 sqlServer2.0으로 되어 있는데 SqlMap.config provider 엘리먼트의 name 속성과 동일해야 DB 접속 가능하다. resource 속성의 경우 공급자 설정이 되어있는 provider.config 또는 *.config 파일과 동일하게 작성 한다.

 

-이렇게 하면 기본 사용할 준비는 완료!! 사용을 하기 위해서 mapping Entity class 별도로 생성하고 아래와 같이

(List<SaNoticeET>)Mapper.Instance().QueryForList<SaNoticeET>("SELECT_SA_NOTICE", param);

한줄이면 원하는 데이터를 조회 있다.

 

위에서 설정된 Admin.xml 보면

<?xml version="1.0" encoding="utf-8" ?>

 

<sqlMap namespace="ubis.pms.Entity.Admin" xmlns="http://ibatis.apache.org/mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- 사용할 Entity Class 별칭을 만든다. -->

<alias>

<typeAlias alias="SaNoticeET" type="ubis.pms.Entity.Admin.SaNoticeET, ubis.pms.Entity.Admin" />

</alias>

<resultMaps>

<!-- Notice List Map -->

<!-- DB 컬럼 명과 Entity Class 변수와 일치하는 property 속성을 설정 한다. -->

<resultMap id="RTMAP_SA_NOTICE" class="SaNoticeET">

<result column="notice_seq" property="NoticeSeq"/>

<result column="title" property="Title"/>

<result column="contents" property="Contents"/>

<result column="fst_regist_id" property="FstRegistId"/>

<result column="fst_regist_date" property="FstRegistDate"/>

<result column="lst_regist_id" property="LstRegistId"/>

<result column="lst_regist_date" property="LstRegistDate"/>

</resultMap>

</resultMaps>

 

<statements>

<!-- 반환될 resultMap 설정 위에서 사용한 QueryForList 첫번째 인자인 statementName id값으로 준다. -->

<select id="SELECT_SA_NOTICE" resultMap="RTMAP_SA_NOTICE"         parameterClass="SaNoticeET">

select notice_seq, title, contents, fst_regist_id, fst_regist_date, lst_regist_id, lst_regist_date

from t_bs_notice

</select>

</statements>

</sqlMap>

'.Net Framework > .NET' 카테고리의 다른 글

▒ 개발자가 빠지기 쉬운 “나쁜 습관 6가지” ▒  (4) 2010.02.03
.NET Framework란?  (0) 2010.01.28
JQuery를 이용한 메뉴바  (0) 2009.12.14
ILDASM.EXE 사용법  (0) 2009.11.16
.NET -iBATIS + Log4Net Log 설정  (1) 2009.10.27
Posted by Tiwaz
.Net Framework/.NET2009. 10. 27. 15:01

 
  1. iBatis.NET 내부적으로 Log 남김.
  2. 출력용 로그는 개발자가 따로 설정 해야하며 log4net 사용하여 출력한다.
  3.  

    ** 설정 하기

    1. "IBatisNet.Common.Logging.Log4Net.dll" 참조 추가 한다

     

2. "Web.Config" <configSections> 아래와 같이 설정

  1.  

    1. <sectionGroup> name "iBATIS" Tag 추가

     

    1. Log4net 이용하여 출력되는 파일 크기/옵션 세부 설정.

     <level> : OFF, FATAL, ERROR, WARN, INFO, DEBUG, ALL

     

    1. 설정이 완료되면 아래와 같이 log.txt 파일이 생성되고 상세 옵션에 따라 100KB 초가 되었을 경우 Log 파일을 자동으로 추가 생성 한다.

     

     

    ** 링크

    http://logging.apache.org/log4net/release/config-examples.html - Log파일 기록 설정 방법

    http://logging.apache.org/log4net/index.html - 자세한 사항은 Log4net 페이지 참조~!!

'.Net Framework > .NET' 카테고리의 다른 글

▒ 개발자가 빠지기 쉬운 “나쁜 습관 6가지” ▒  (4) 2010.02.03
.NET Framework란?  (0) 2010.01.28
JQuery를 이용한 메뉴바  (0) 2009.12.14
ILDASM.EXE 사용법  (0) 2009.11.16
IBatis + SQL server 2005 설정  (0) 2009.10.27
Posted by Tiwaz