몇 년 전부터 써야지 써야지 하면서도 까먹고 사골국물처럼 묵혀 두었던 이야기입니다. (까먹고 있다가 얼마전에 다른 블로거분과 이야기하다 생각나서 간단하게 적어 둡니다.) 닷넷 프로그램은 다른 운영체제에서 사용할 수 없다고 알려져 있습니다. 그 이유는 닷넷 프로그램은 닷넷 프레임워크(.Net framework)위에서 돌아가는 프로그램인데 MS가 다른 운영체제용 닷넷프레임워크를 만들지 않았기 때문입니다. 하지만 꽤 오래전부터 다른 운영체제에서 사용할수 있는 닷넷 프레임워크를 만드는 프로젝트인 '모노 프로젝트'라는 것이 있습니다. 모노 프로젝트 모노 프로젝트는 윈도우가 아닌 운영체제에서 닷넷을 사용하기 위한 프로젝트입니다. (참고 : 위키백과 - 모노 (소프트웨어),모노 프로젝트 홈페이지) 지원 범위 2013..
비스타때부터 권한 관련 내용이 강화되면서 '관리자 권한으로 실행'이라는 항목이 생겼습니다. 문제는 이 선택이 사용자의 선택이기 때문에 관리자 권한이 없으면 안 되는 프로그램들은 난감한 상황에 빠졌죠. 그래서 프로그램을 관리자 권한으로만 실행할 수 있도록 해야 합니다. 오른쪽 프로그램은 실행하면 바로 안내 메시지가 출력됩니다. (관리자 권한으로 실행된다는 표시인 방패 모양이 오른쪽 아래에 붙어 있음) 이런걸 UAC(사용자 계정 컨트롤)라고 합니다. 1. 테스트 프로젝트 테스트용 프로젝트를 생성하고 빌드해봅시다. 관리자 권한으로 실행되는 방패 모양이 표시가 없습니다. 2. 권한 파일 생성 프로그램이 관리자 권한으로 실행되게 하기 위해서는 'app.manifest'파일이 필요합니다. 2-1. 직접 생성하는 방..
SMTP 기능이 이전 버전들에서는 iis설치할 때 옵션으로 설치하는 것이어서 별생각 없이 iis 설치 쪽을 확인해보니 없네요 ㅡ,.ㅡ;;; 뭔가 이상해서 기능 쪽을 보니 기능 쪽에 있습니다.ㅎㅎㅎㅎ SMTP 서버를 설치하고 설정하여 이메일을 전송해 봅시다. 1. SMTP 서버 설치 SMTP서버를 설치해야 이메일을 받거나 보낼 수 있습니다. 1-1. IIS7에 SMTP 서버 추가기능 선택에서 'SMTP 서버'를 추가합니다. SMTP 서버를 설치하기 위해서는 몇 가지 구성요소가 있는데 'SMTP 서버'를 클릭하는 순간 같이 추가되니 걱정하실 것 없이 설치하시면 됩니다. SMTP설치가 완료되었네요. 1-2. IIS6 설정하기 여기서 잘 보시면 자동으로 iis6을 설치합니다. smtp서비스의 자잘한 내용은 여기..
* .Net 4.0 기준입니다 * 닷넷에서 이메일을 보내는 것은 쉽습니다. 그냥 System.Net.Mail만 유징 해주면 되죠. 1. 디자인 이메일을 보내기 위한 간단한 인터페이스를 만들어 봅시다. 기본적인 이메일 UI죠? ㅎㅎ 2. 코드 작성 일단 'System.Net.Mail'와 'System.Text'를 유징해줍니다. using System.Net.Mail; using System.Text; 이제 'button1'의 클릭 이벤트를 다음과 같이 작성합니다. private void button1_Click(object sender, EventArgs e) { MailMessage mail = new MailMessage(); mail.From = new MailAddress(txtFrom.Text);..
계속 윈도우에 상주해있어야 하는 프로그램을 일반적인 응용프로그램으로 만들면 몇 가지 문제가 발생합니다. 일단 매번 켜주어야 하는데 이것은 메크로라던가 시작 프로그램에 등록함으로써 어느 정도 해결됩니다만..... 계정 로그 오프 문제나 예기치 않은 재부팅 문제가 있다면 휴가 갔다가 원격 접속해서 프로그램 올리는 불상사가 생기죠 ㅎㅎㅎ;; 이런 경우 프로그램을 윈도우 서비스로 등록하면 계정의 로그온 상태와 상관없이 윈도우가 시작되면 동작하기 때문에 편리합니다. 여기서 한가지 주의해야 할 점은 서비스 프로그램은 일반적인 방법으로는 디버깅을 할 수 없습니다-_-;; 서비스에 등록해야만 동작을 하기 때문이죠. 그렇기 때문에 중단점 같은 일반적인 디버깅작업을 할 수 없습니다. 미리 윈폼 응용프로그램을 만들어 테스트..
* .Net 4.0 기준 * 닷넷에서 다국어구현은 편하게 되어 있습니다. 리소스파일만 연결해놓으면 필요할 때 언어를 지정하여 표시가 가능하기 때문입니다. 연관글 영역 1. App_GlobalResources 폴더 만들기 닷넷에서 몇 가지 예약 이름 폴더가 있는지 그중 하나가 리소스 폴더 들입니다. 이런 폴더들은 그냥 폴더 추가만 해서 같은 이름으로 만들면 같은 역할을 합니다. 하지만 그렇게 만들면 찜찜하죠잉? ㅎㅎ 해당 프로젝트에서 오른쪽 클릭 > 추가 > ASP>NET 폴더 추가 > App_GlobalResources 클릭 이렇게 하면 자동으로 App_GlobalResources 폴더가 생성됩니다. 2. 리소스 파일 추가 이제 멀티랭귀지용으로 사용할 리소스를 만들겠습니다. App_GlobalResour..
닷넷이 설치되어 있는데 실행하려고 하면 특정 컴퓨터에서 CLR error: 80004005. The program will now terminate. 이런 오류가 납니다. 연관글 영역 1. 오류 원인 이 오류는 닷넷프레임웍이 제대로 설치되지 않아 나오는 오류입니다. 닷넷이 제대로 설치되지 않는 경우는 일반적으로 - 윈도우 업데이트 실패 혹은 강제 종료 등으로 인해 롤백이 제대로 되지 않는 경우 - 제대로 되지 않은 설치파일을 사용하는 경우 -악성코드나 바이러스등으로 설치가 비정상적으로 되거나 관련 파일들이 손상된 경우 등이 있습니다. 이유야 어떻든 보통은 닷넷프레임웍만 다시 설치하면 해결이 됩니다. '제어판'으로 가서 '프로그램 추가/제거'에서 'Microsoft .NET Framework' 관련된 항목..
상황에 따라서 지금 실행중인 프로세스들의 정보를 가저와야 할때가 있습니다. 그런경우 C#에서는 'System.Diagnostics.Process'를 사용합면 됩니다. //나의 프로세스 정보를 가져옵니다. System.Diagnostics.Process MyProcess = System.Diagnostics.Process.GetCurrentProcess(); //모든 프로세스의 정보를 가져 옵니다. System.Diagnostics.Process[] AllProcess = System.Diagnostics.Process.GetProcesses(); //특정 이름의 프로세스를 가져옵니다. System.Diagnostics.Process[] Process_Name = System.Diagnostics.Proc..
접근 한정자라는 것은 일반적으로 함수나 변수의 범위를 정할때 쓰는 명령어(?)입니다. 우리가 흔이 쓰는 것이 public private protected 가 있습니다. 1. 인터널(internal)이란 무엇인가? 여기에 .NET에는 독특한 한정자가 있는데 인터널(internal)이 있습니다. 같은 어셈블리에서 동작한다고 설명이 되있죠. (참고 : internal(C# 참조) ) 한마디로 참조하는 쪽에서는 인터널로 선언된 구현을 볼수 없다는 것입니다. 자신의 프로젝트 안에서는 퍼블릭(public)와 동일하게 동작합니다. 2. 테스트 해보기 같은 프로젝트일때 이건 다른 프로젝트일때입니다. 같은 프로젝트에서는 퍼블릭(public)처럼 동작하며 참조등을 사용용하여 다른 프로젝트에 사용할때는 프라이빗(privat..
예전에 숨겨진 필드를 이용하여 비하인드로 값을 넘긴 적이 있습니다. (참고 : [ASP.NET] 자바스크립트에서 비하인드로 값 넘기기 ) 이 방법은 구현이 쉽고 클라이언트의 자원을 이용하기 때문에 서버에 부담이 적습니다. 하지만 보안에서는 완전 취약하죠 ㅎㅎㅎㅎ 그리고 문자열만 저장되기 때문에 구조화된 데이터라면 구분자를 이용하여 값을 저장해야 합니다. 하이든 필드는 쿠키보다야 용량이 크겠지만 브라우저나 보안정책에 따라서 크기가 오락가락합니다-_-; 그러니 큰 데이터는 피하는 게 좋습니다. 1. 구현하기 이건 구현이랄 것도 없이 하이든 컨트롤을 디자인에서 추가합니다. 2. 읽고 쓰기 컨트롤이 추가 됬다면 그 다음부터는 일반적인 'ASP.NET Winform'컨트롤처럼 사용하면 됩니다. HiddenFiel..