2일차

 

The SqlServer Data Provider

 

ADO 프로그래밍을 해 보신 분이라면 SqlClient에 대해서 잘 아실껍니다.

이와 유사한 SqlServer라는 Data Provider가 있습니다.

SqlServersqlaccess.dll를 참조하여 사용하실 수 있습니다.

 

 

SQL Server programming models

-         SQL Server 2005 includes two data providers

n         System.Data.SqlServer

n         System.Data.SqlClient

 

SqlServer.Net로 만든 procedural code에서 사용할 수 있습니다. 이 전 게시물에도 이미 나온 내용이지만

-         UDF (User Define Function)

-         SP (Stored Procedure)

-         Trigger

등에서 사용할 수 있습니다.

 

일반적인 사용법은 SqlClient와 유사합니다.

차이점은 SqlClientSqlConnection을 사용하고,

SqlServerSqlContext를 사용한다는 점입니다.

또한, SqlServer를 사용하여 만든 procedural codeSQL Server내에서 실행되므로, 별도의 connection을 맺거나, 데이터가 네트웍을 통해 이동하거나 하지 않습니다.

 

SqlContext

-         SqlContext는 현재 실행중인 context를 나타냅니다.

n         GetConnection() : 현재 connection을 얻을 때

n         GetCommand() : 새로운 command를 얻을 때

n         GetTransaction() : 현재 transaction을 얻을 때

n         GetPipe() : output TDS streampipe를 얻을 때

u       Pipe는 메시지나 결과를 보낼 수 있다.

 

 

SqlDefinition/SqlExecutionContext

-         SqlCommand는 제목과 같이 두 가지로 쪼개질 수 있다.

n         SqlDefinition은 요청에 대한 정의를 나타낸다.

n         SqlExecutionContext는 명령을 실행한다.

 

아주 많이 쓰는 쿼리가 있을 경우, SqlDefinitionSqlExecutionContext 두 부분으로 나누어 SqlDefinition을 한 번만 정의한 후 실행 시 SqlExecutionContext만 실행하므로써, 보다 나은 성능을 기대할 수 있다.

물론 자세한 성능 비교는 SQL Server 2005 beta 3에서 할 수 있다고 한다.

 

자세한 코드는 생략

 

Command results

-         ADO 프로그래밍을 해 본 사람이라면 모두 쉽게 알 만한 내용들이다.

n         Scalar result

n         Single row result

n         Multi-row result

 

SqlTransaction

-         SqlContext.GetTransaction()으로부터 SqlTransactoin을 얻어와서 현재 트랜잭션이 있는지 유/무 등을 판별할 수는 있지만, 만약 진행 중인 Transaction이 있는 경우, 내부에서 그 트랜잭션을 commit, rollback 및 새 중첩 transaction을 시작할 수는 없다. 지원하지 않는다.

 

SqlTraggerContext

-         SqlContext.GetTriggerContext()를 통해 얻어온 SqlTriggerContext를 이용하여 Trigger를 만들 수 있다.

n         Tc.TriggerAction : 1(update), 2(insert), 4(delete)

 

 

오전에 배운 내용 정리 끝~

 

 

.Net Procedural Code

 

여기서 다룰 내용들

- Procedural code or Transact-SQL

- Writing .Net procedural code

- .Net data types and System.Data.SqlTypes

- Arrtibutes

 

 

어떤 .net language로든 SQL Server 2005 다음과 같은 것들을 만들 수 있다.

- stored procedure

- user defined functions

- triggers

 

 

.Net Code VS Transact-SQL

- Transact-SQL code는 data-access centric code에 보다 낫다

   * .net runtime을 로드할 필요가 없다.

   * 데이터 레이어에 직접 접근할 수 있다

   * 절차적 프로그래밍이다.

 

- .Net code는 non-data access code에 보다 낫다

   * 수학적인 연산

   * SQL Server 외부의 시스템 리소스에 접근이 필요한 경우

   * 객체지향 프로그래밍이다.

 

Limitions on functions (.net code로 function을 만들 때의 제약 사항)

- class는 반드시 public 이어야 한다.

- public static인 method 이어야 한다.

- nested class는 지원하지 않는다.

- method overloading도 지원하지 않는다.

- ref, out을 지원하지 않는다.

- datatype은 가급적 SqlTypes을 사용하는 것이 좋다.

 

몇 가지 내용이지만.. 간략히 정리하기엔 어려움이 좀 ^^''

그래서 여기까지만

 

 

SQL Server .Net Integration

 

처음 소개 되는 내용은 SQL Server 2000에서 xp_...로 시작하는 외부 DLL을 사용하는 sp를 만들어 보셨거나, 알고 계실 겁니다.

거기에 해당되는 내용입니다. .Net을 이용해 DLL을 만든 후 SQL Server 2005에서 사용하는 방법에 대해 배웁니다.

 

간략하게 사용 하기 위한 절차를 보면,

-         Dll 파일(assembly라고 부릅니다.), assembly SQL Server 2005 cataloging(등록하는 거라고 생각하시면 됩니다.)합니다.

-         등록된 assembly를 이용하여 UDF(User Define Function)을 만듭니다.

 

Assembly는 세가지 레벨의 permission을 가집니다.

-         Safe (Default)

-         External access : network이나 file system을 접근하는 경우

-         Unsafe : WIN32 DLL이나 COM Object call하는 경우

 

Assembly dependencies

-         등록하는 Assembly가 참조하는 다른 dll이 있다면 그 DLL 역시 SQL Server에 자동으로 cataloging이 됩니다. 단 자동으로 등록된 assembly default visible 값이 0이므로, object explorer에서는 보이지 않고, sys_assemblies 테이블을 직접 select 해야 보입니다.

-         Visible 속성값을 1로 바꿔 보이게 하여 사용할 수도 있습니다.

 

 

그럼 간략하게 만드는 방법을 보면

일단 예제 코드를 보면

namespace Math

{

             public class Inverter

{

             public static int Invert(int x)

{

return -x

}

            

}

}

 

이렇게 만들어 컴파일 한 후,

 

SQL Server 2005에서 위에 설명한 절차대로 등록을 합니다.

 

CREATE ASSEMBLY MetricConverter

FROM 'c:\test\Math.dll'

 

 

CREATE FUNCTION dbo.FahrenheitToCentigrade(@i float)

RETURNS float

EXTERNAL NAME Math.[Math .Inverter].Invert

 

이렇게 한 후

SELECT Invert(10)

하면 -10이 리턴되는 걸 볼 수 있습니다.

 

간단하죠?

 

일단 간략한 소개는 여기까지~~

 

Asynchronous Programming in .NET

written by Bipin Joshi
translated by Asptomorrow
소 개

  .NET 프레임워크 에서 비동기 프로그래밍의 지원은 잘 구현되어 있다. 비동기 프로그래밍 모델은 전체 성능을 향상시킬 뿐만아니라 응용프로그램들을 더욱더 응답적이게(responsive) 해준다. 이 강좌에서 비동기 프로그램을 이용하는 컴퍼넌트를 개발하는 완성된 예제를 보여 줄 것이다.

예제에 대해서

  우리는 비동기 프로그래밍에 대한 지원을 하는 컴퍼넌트를 작성하는 방법을 보여주는 예제를 만들 것이다. 또한 여러분은 컴퍼넌트를 동기적으로 호출하는 방법을 일반적으로 사용하고 있다는 것을 명심하고, 우리는 직원의 월급을 계산하도록 해주는 간단한 프로그램을 개발할 것이다. 먼저 동기적으로 작동하는 프로그램을 만들어서 잘 작동되는지 알아보고, 조금씩 비동기 프로그래밍 기능을 하도록 추가할 것이다.

컴퍼넌트 생성하기

  여러분이 만일 VS.NET 을 사용한다면, C#으로 프로젝트의 새로운 컴퍼넌트 라이브러리 타입을 만들면서 시작할 수 있다. VS.NET을 사용하지 않는다면, Text 에디터에서 .cs 파일을 만들고, 라이브러리(DLL)로 컴파일할 수 있다. 다음 코드는 SalaryCalc 컴퍼넌트를 보여준다.

namespace AsyncProgDemo{public class SalaryCalc{	public SalaryCalc()	{	}	public string Calculate()	{	Console.WriteLine("Inside Calculate()...");	Console.WriteLine("Caclulating salaries...");	Console.WriteLine("Done...");	return "ok";	}}}


  여러분이 위에서 보는 소스는 실제 로직이 들어있지 않은 매우 간단한 코드이다. Salarycalc 라는 클래스를 포함하는 AsyncProgDemo라는 네임스페이스를 만든다. 이 클래스는 한 집단의 모든 직원의 월급을 계산하는 Calculate라는 한개의 메서드를 가지고 있다. 다 마쳐지면 메서드는 "OK" 라는 문자열을 리턴한다.

SalaryCalc 컴퍼넌트를 사용하는 클라이언트 프로그램 만들기

  이 컴퍼넌트를 사용하는 콘솔 프로그램을 만들어보자.

using System;namespace AsyncProgDemo{	class Client	{		static void Main(string[] args)		{			SalaryCalc sc=new SalaryCalc();			sc.Calculate();		}	}}


  이 프로그램은 매우 직관적이어서 설명이 필요없을 것이다.

비동기프로그램 컴퍼넌트에 대한 코딩 가이드라인

  실제 코딩에 들어가기 전에, 비동기 컴퍼넌트 설계시 추천할만한 가이드라인이 무엇이 있는지 알아보자.

    ■ 비동기 뿐만 아니라 동기적으로도 메서드를 호출할수 있는 기능 제공

    ■ 필요에 따라 클라이언트(caller 응용프로그램)이 호출되는 메서드의 버전을 결정할수 있도록 하는 기능

    ■ 동기적으로 호출한 메서드를 만들기 위해 클라이언트 응용프로그램을 수정하지 않는다. 클라이언트 는 컴퍼넌트에의해 어떻게 호출되는지 모르도록 진행되어야 한다.

비동기프로그램 메서드에 대한 코딩 가이드라인

  여러분의 비동기 컴퍼넌트는 메서드를 위해서 다음과 같은 가이드라인을 준수해야한다.

    ■ 다음과 같은 시그너쳐를 매칭시키는 컴퍼넌트를 작성한다.

        □ public XXXX()

        □ public IAsyncResult BeginXXXX(AsyncCallback ac, Object state)

        □ public EndXXXX(IAsyncResult result)

  위의 메서드 중에서 XXXX는 메서드 이름을 나타낸다. 예를들어, 앞에서 본 소스의 경우 Calculate, BeginCalculate, EndCalculate 메서드로 쓸 수 있다. EndXXXX 의 리턴 타입은 여러분의 메서드에서 원했던 리턴타입과 같다. (이 경우 string 일것이다)

  BeginXXXX 메서드의 경우 다음과 같은 사항을 기억하자.

    ■ 모든 IN 파라미터를 포함한다.

    ■ 모든 OUT 파라니터를 포함한다.

    ■ 모든 IN/OUT 파라미터를 포함한다.

    ■ 마지막 두개의 파라미터로 AsyncCallback과 object를 받아들인다.

    ■ ISyncResult를 리턴한다.

  EndXXXX 메서드의 경우 다음과 같은 사항을 기억하자.

    ■ 모든 IN/OUT 파라미터를 포함한다.

    ■ 모든 OUT 파라니터를 포함한다.

    ■ IAsyncResult를 마지막 파라미터로 받아들인다.

    ■ 여러분이 원하는 데이터 타입으로 값들을 반환한다.

  우리가 만든 메서드는 다른 파라미터를 포함하지 않았지만 여러분은 다른 메서드들과 마찬가지 방법을 사용할 수 있다.

네임스페이스 포함시키기

  위의 예제가 잘 작동하려면 여러분은 다음과 같은 네임스페이스를 컴퍼넌트에 추가시켜야 한다.

  ■ System

  ■ System.Runtime.Remoting.Messaging

SalaryCalc 변형하기

using System;using System.Runtime.Remoting.Messaging;namespace AsyncProgDemo{public class SalaryCalc{public delegate string CalcDelegate();public SalaryCalc(){}public string Calculate(){	Console.WriteLine("Inside Calculate()...");	Console.WriteLine("Caclulating salaries...");	Console.WriteLine("Done...");	return "ok";}public IAsyncResult BeginCalculate(AsyncCallback ac,Object state){	CalcDelegate cd=	new CalcDelegate(this.Calculate);			IAsyncResult result=	cd.BeginInvoke(ac,state);	return result;}public string EndCalculate(IAsyncResult result){	CalcDelegate cd=(CalcDelegate)	((AsyncResult)result).AsyncDelegate;		object o=cd.EndInvoke(result);	return (string)o;}}}


  여기서, 원래 클래스에서 몇가지 부분을 추가시켰다.

  ■ 위에서 언급한 시그너쳐를 매칭시키는 BeginCalculate 메서드를 추가한다.

  ■ 위에서 언급한 시그너쳐를 매칭시키는 EndCalculate 메서드를 추가한다.

  ■ BeginCalculate 메서드 내부에서 delegate를 끝냈다. 이 메서드는 컴퍼넌트에서부터 callback 을 받은 후에 클라이언트에 의해 호출될 것이다. callback은 Calculate() 메서드가 종료될때 자동으로 호출된다.

클라이언트의 변형된 버전

  이 컴퍼넌트의 비동기적인 특징을 사용하기 위해 우리는 클라이언트를 다음과 같이 바꿀 필요가 있다.

using System;using System.Threading;using System.Runtime.Remoting.Messaging;namespace AsyncProgDemo{class Client{static void Main(string[] args){	SalaryCalc sc=new SalaryCalc();	AsyncCallback ac=new AsyncCallback(MyCallback);	IAsyncResult result=sc.BeginCalculate(ac,sc);	Thread.Sleep(5000);}public static void MyCallback(IAsyncResult result){SalaryCalc sc=(SalaryCalc)result.AsyncState;object o=sc.EndCalculate(result);Console.WriteLine("Inside Callback...");Console.WriteLine("Result of salary Calculation:" + o);}}}


  여기서 Calculate() 메서드를 직접 호출하는 대신에, 우리는 callback 메서드를 호출하는(MyVallback) BeginInvoke 메서드를 호출했고, 결과를 얻었다. 우리는 Calculate 메서드를 직접 호출했을때 같은 결과가 나왔다는 것을 알아두자.

결 론

  .NET은 밑바닥에서부터 비동기 프로그래밍을 지원한다. 여러분은 쉽게 함수를 비동기적으로 기능하게 하는 컴퍼넌트를 개발하게 해준다. 앞에서 우리는 그런 컴퍼넌트를 만드는 방법에 대한 예제를 보았고, 또한 그런 컴퍼넌트 개발을 위한 가이드 라인을 알아보았다.

'programming > c#' 카테고리의 다른 글

.NET Enterprise Services 성능  (0) 2004.12.23
VS .Net에서 Macro를 이용하여 #Region 쉽게 추가하기  (0) 2004.12.14
[펌] COM+ 관련 게시물  (0) 2004.11.12

아래 매크로가 #Region을 쉽게 넣어주는 매크로입니다.

매크로 등록은

VS 실행 후 프로젝트를 하나 여신 후 Tools - Macros - Macro IDE 를 실행한 후

MyMacro 폴더 안에 하나 만드시고... 아래 소스를 붙이시면 끝입니다.

 

단축키 없이 사용하기 불편하니

Tools - option - 환경 - 키보드 에서

다음 문자열을 포함하는 명령 표시에 매크로 이름을 넣으면 검색이 될껍니다.

선택한 후 바로 가기 키 누르기에 등록되지 않은 단축키를 하나 지정하시면 준비 끝!!

 

그 다음.. 소스에서 Region으로 지정하고 싶은 부분을 블럭 지정하시고

등록한 단축키를 누르면 대화창이 하나 뜹니다. Region 이름 넣는 부분

이름을 넣으시면 자동으로 Region으로 감싸 줍니다.

편하죠??

 

귀찮아서 그림은 뺐습니다. ^^''

 

출처 : http://blogs.msdn.com/powertoys/archive/2004/04/27/120775.aspx


..more


'programming > c#' 카테고리의 다른 글

[펌] Asynchronous Programming in .NET  (0) 2004.12.15
[펌] COM+ 관련 게시물  (0) 2004.11.12
C#으로 만든 COM+ Componet의 배포 프로젝트...  (0) 2004.11.09

MSN Encarta  - 젤 잘해놨습니다!

http://encarta.msn.com/encnet/features/dictionary/dictionaryhome.aspx 

 

철영어사전 - 어원분석 잘되있네요

http://dic.search.chol.com/english/

 

 

메리엄웹마스터 영영 - 역시 어원 분석 짱.. 라틴까지!

 
 
 
네이버 영어사전 - 단어장 저장하기 최고입니다! 블로그 퍼가기 기능 추천!
 
 
 

영어 실력은 펌질한만큼 늡니다!!!!!!!

 

블로그로 퍼가세요! 오른쪽 하단 클릭~

'etc' 카테고리의 다른 글

변액 연금&종신보험 현재 수익률 보는 곳  (0) 2004.12.27
인터넷상의 영어 약어들~~  (0) 2004.12.06
[펌] 19×19  (2) 2004.11.22

인터넷(Internet)과 휴대폰(cellphone) 사용의 폭발적 증가는 우리의 라이프스타일뿐 아니라 언어에도 혁명적인 변화를 가져왔다. 이메일과 채팅, 휴대폰을 이용한 문자메시지(text message)가 일상생활에서는 물론, 비지니스맨들 사이에서도 신속한 커뮤니케이션방식으로 뿌리를 내리고 있다.

모바일 서비스나 인터넷상에서 간편하게 쓸 수 있는 언어들은 대부분 약어(abbreviations)나 두문자어(acronyms)로 만들어진 것들인데, 짧은 시간 안에 빠르게 의사를 전달할 수 있기 때문에 문자 전달에도 속도감을 즐기는 젊은이들에게 인기가 많다. 이메일이나 문자메시지에 쓰이는 이런 신조어들을 가리켜 영어로는 emailese(이메일 용어)라고 한다. 이메일 용어들은 지금도 계속 만들어지고 있으며, 그 중 일부는 이미 표준영어(standard English) 대열에 합류했다. 이메일 용어의 형식은 알고 보면 매우 간단한데, 크게 다음 몇 가지로 나눠볼 수 있다.

첫째, 긴단어를 발음이 동일한 글자나 숫자로 표시한다. 이를테면, see는 C로, you는 U, to는 2, for는 4로 대체하는 것이다. 그래서 "See you later."는 "CUL8R"로 간단히 쓸 수 있다.

둘째, 일부 글자, 특히 모음(vowels)을 생략해 쓴다. 예를 들어 message는 MSG, please는 PLS, speak는 SPK로 표시한다.

셋째, 이미 일상생활에서 널리 쓰이고 있는 약어와 두문자어를 활용한다. 약어는 advertising을 ad, information을 info 등으로 생략해서 쓰는 것을 말한다. 두문자어는 MYOB(Mind your own business), FYI(for your information), FAQ(frequently asked questions)처럼 단어의 첫글자를 따서 쓰는 방식이다.

출치 : http://kin.naver.com/knowhow/entry.php?docid=42902


..more


'etc' 카테고리의 다른 글

[펌] 쥔장 추천 - 영어사전  (2) 2004.12.06
[펌] 19×19  (2) 2004.11.22
[펌] keyboard 상의 특수기호 읽는 법  (0) 2004.11.12
업그레이드 시나리오

Windows Media 서버는 일반적으로 다음 세 가지 시나리오 중 하나에서 배포됩니다.
  • 단일 서버
  • 여러 대의 중앙 집중형 서버
  • 분산된 여러 서버

업그레이드의 일반 프로세스가 시나리오에 상관 없이 동일하지만 각 경우에 고려해야 할 세부 사항이 존재합니다. 예를 들어 분산된 여러 서버가 있는 경우에는 업그레이드를 원격으로 또는 현장에서 수행해야 합니다. 주 데이터 센터나 본사에서 서버를 구성한 다음, 현지 사무실에 제공해야 합니까? 단일 서버 시나리오인 경우, 나중에 복원해야 할 경우를 대비하여 데이터와 구성을 그대로 유지하는 방법은 무엇입歐? 이 섹션에서는 이러한 질문에 대한 답변과 함께 자연스러운 업그레이드를 위한 몇 가지 권장 사항을 제공합니다.


 

출처 : http://www.microsoft.com/korea/windows/windowsmedia/howto/articles/UpgradeWMS9S.asp

 


..more


'Media Service' 카테고리의 다른 글

Registering a .NET Plug-in  (0) 2004.12.27
Using C# to Create a Plug-in  (0) 2004.12.27

.NET의 정규식

충돌 과정

Steven A. Smith

2004년 3월

적용 대상:
   Microsoft .NET Framework
   Microsoft ASP.NET
   정규식 API

요약: 정규식은 텍스트로 작업할 때 매우 유용한 도구입니다. 사용자 입력의 유효성을 검사해야 하거나, 문자열 내의 패턴을 검색해야 하거나, 효과적으로 텍스트 서식을 다시 지정해야 할 경우 정규식을 사용하면 좋습니다(14페이지/인쇄 페이지 기준).

이 기사의 소스 코드를 다운로드하십시오.

목차

소개
정규식 개요
단순식
한정사
메타 문자
문자 클래스
미리 정의된 메타 문자 집합
샘플 식
ASP.NET의 유효성 검사
정규식 API
무료 도구
고급 항목
결론
리소스
저자 소개

소개

 


..more


음...

 

가끔 MSN으로 채팅을 하다가 한글 입력이 안되서 심지어 메모장에 입력하고 복사해서 붙여넣기를 하면서 채팅을 한 적이 있었다.

설마 버그... 라고 생각을 했었는데...

 

버그가 맞았다 --''

 

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

 

버그 해결 방법

 

 


..more


'IT' 카테고리의 다른 글

[펌] 드림위즈, RSS 전용 사이트 오픈  (0) 2005.01.13
[펌] MIME (Multipurpose Internet Mail Extensions)  (0) 2004.11.05
[펌] 소니의 PSP 리뷰  (3) 2004.11.02
모룸비 쇼핑몰 안에 있는 Caleto라는 치킨 요리점에 저녁을 먹으러 갔다...
브라질에서 유명한 체인점이라던데...
 
 
불행하게도 메뉴는 영문 메뉴가 없는 듯 했다. 그래도 포르투칼어가 영어랑 비스무래 해서 대충은 알아 볼 수 있다. 가격 부분에 보면 한 메뉴에 가격이 두개 있는게 있다.
비싼건 뼈 없는거, 싼건 뼈가 있는거다...
 
그건만 알고 시키면 될 듯 ^^''
 
아래 보이는 메뉴는 치킨과 리조또이다.
정말 맛있었다. 양도 너무 많아 남길 수 밖에 없었따..
아래 메뉴 가격이 27레알 정도니까.. 약 만원이 약간 넘는 가격...
사용자 삽입 이미지


조리장의 모습~~

사용자 삽입 이미지


메뉴... 작아서 안 보이겠지만 --;;

사용자 삽입 이미지

식당 간판~~
사용자 삽입 이미지


'travel > brazil' 카테고리의 다른 글

브라질에서 최고로 맛있게 먹었던 레스토랑 FOGO DE CHAO  (4) 2006.06.29
브라질의 건물들...  (0) 2004.11.24
브라질 날씨~~  (0) 2004.11.24
브라질에는 특이한 형태의 건물들이 많았다. 다른 나라에서 보지 못한 독특한 형태의 건물들...
뭐 내가 건축학과가 아니라 잘은 모르겠지만... 꽤 괜찮아 보였다
 
아래 건물은 묶고 있는 호텔에서 보이는 건물.. 특이하게 생겨서 찍어봤다.

아래 건물은 병원... 되게 오래된 유명한 병원인거 같았다.(완전 추측)

사용자 삽입 이미지


아래 건물은 뭘까???

영국 대사관~!!... 대사관 건물이 너무 특이한거 같아서 찍어봤다~

사용자 삽입 이미지
 

'travel > brazil' 카테고리의 다른 글

Galeto라는 치킨요리 전문 체인  (6) 2004.11.24
브라질 날씨~~  (0) 2004.11.24
리베르다데 오픈 마켓의 모습  (4) 2004.11.22

브라질 출장 가기 전에 브라질 날씨를 알아 보았다.

27도 ~ 30도... 꽤 덥겠다... 라고 생각 했다.
그러나 --'' 와보니 전혀 그렇지 않았다.

게다가 비까지 내리면 정말 추웠다. 웅... 한국에서 공항까지만 입고 가려고 했던 점퍼를 계속 입고 다녔다. 물론 대낮에 구름 한점 없는 곳이면 좀 더웠다. 그러나 생각처럼 덥지는 않았다.

그늘과 그늘이 아닌 곳의 차이는 컸다.

회사 직원 중에 가죽 점퍼를 입고 오는 직원도 있다 --''
감기걸린 직원도 있고... 쩝..

무지 더운 곳으로 알고 있었는데... 11월은 아직 여름이 아니라 그런가보다.


'travel > brazil' 카테고리의 다른 글

브라질의 건물들...  (0) 2004.11.24
리베르다데 오픈 마켓의 모습  (4) 2004.11.22
브라질 지하철의 모습...  (5) 2004.11.22

19단이라고 해서 11단부터 외우면 되겠거니 했는데 --;;

2단부터 새로 외워야 하네요..

 

  2단
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20
2 x 11 = 22
2 x 12 = 24
2 x 13 = 26
2 x 14 = 28
2 x 15 = 30
2 x 16 = 32
2 x 17 = 34
2 x 18 = 36
2 x 19 = 38


..more


 
리베르다데 지하철에서 내리면 바로 오픈마켓과 연결된다.
일요일에 열리는 거라던데... 생각보다 그리 볼게 많진 않았다.



사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지


'travel > brazil' 카테고리의 다른 글

브라질 날씨~~  (0) 2004.11.24
브라질 지하철의 모습...  (5) 2004.11.22
상파울로 외곽 별장에서의 생일 파티~~  (0) 2004.11.22

브라질은 택시비가 워낙 비싸다...
내가 있는 숙소는 지도상 왼쪽 아래 Berrini 거리에 있는 호텔...
가려는 곳은 오른쪽 위 리베리다데라는 동양인의 거리가 있는 곳이다.
택시를 타고 가면 약 60헤알... 한국돈으로 2만 4천원 --;;

그래서 이번엔 지하철을 타고 가려고 했다. 호텔 리셉션에서 물어보니 지갑만 들고 다니지 않으면 괜찮다고 ㅋㅋ

택시를타고 가까운 지하철 역으로 갔다.
여기의 지하철 요금이... 한번 타는 데 1.8인가 1.9인가... 약 800원정도??
특이한 점은 들어갈때는 표를 집어 넣는데, 나올때는 넣지 않고 그냥 나오면 된다..
즉... 무임승차가 쉽다 ㅋㅋ 물론 하진 않았지만..

우... 미국의 할램가에 가보진 않았지만 왠지 미국 할램가의 분위기가... 정말 스산했다. 그 모습을 사진으로 남기고 싶었지만...

주위에 어슬렁거리는 사람들을 보니 사진기를 꺼내 찍을 수 없었다.
지하철을 타고 시내 중심부로 오니 좀 상황이 나았다. 좀 오버하면... 그래서 목숨걸고 찍었다 !!

플랫폼의 모습...
정말 썰렁하다... 천장을 보면 건축물이 다 들어나 있어 분위기 정말 스산하다...
반대 플랫폼엔 어떤 할머니가 쓰레기통을 뒤져 남은 음료수를 마시는 모습도 목격을 하고 --;;


 Flash를 터트릴 수가 없었다. 그래서 좀 흔들린 사진... 이건 지하철 내부의 모습... 지하철 내부는 플랫폼에 비해 훨씬 나았다.

사용자 삽입 이미지

지하철내부

사용자 삽입 이미지

지하철출구

나가는 길에 또 한장~~
 



'travel > brazil' 카테고리의 다른 글

리베르다데 오픈 마켓의 모습  (4) 2004.11.22
상파울로 외곽 별장에서의 생일 파티~~  (0) 2004.11.22
브라질 생활 물가...  (3) 2004.11.19
 
바베큐장 전경~~
사용자 삽입 이미지

 
바베큐를 굽는 모습~~
 
매우 다양한 바베큐~~ 아.. 또 먹고 싶다.
앞에 보이는 요리사는 전문적으로 바베큐 요리를 하는 요리사라고 한다.
별장 주인이 이틀을 고용하려고 했지만 스케쥴이 바빠 하루밖에 안된다고 했다고...

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지

모여서 노래도 부르고... 몇몇은 배구를 즐기고... 멀리 테니스장도 보이고... 캬...

이런데서 일 하면 일도 잘 될듯 ^^


신기하게 생겨서 또 한 컷~
사용자 삽입 이미지

'travel > brazil' 카테고리의 다른 글

브라질 지하철의 모습...  (5) 2004.11.22
브라질 생활 물가...  (3) 2004.11.19
브라질 제1회 게임쇼 EGS  (0) 2004.11.19

브라질에 오기 전에 생활 물가가 얼마인지 상당히 궁금했다. 인터넷으로 아무리 찾아봐도 맘에 드는 내용도 없고...

혹시 브라질에 오실 분 계시면 참고하라고 올려드립니다.

 

전반적인 물가는 한국보다 저렴합니다. 택시 빼고!!

 

비교적 큰 쇼핑몰안의 푸드코트에 가면 한.. 8레알 정도면 저렴한 식사가 가능하고, 스테이크와 샐러드 바 정도의 음식이 한 16레알정도 했습니다.

 

1레알이 약 350원이니까... 3000원 ~ 5600원.

우리니라 쇼핑몰들은 최소 5000원정도에서 시작하니까 좀 싼편이죠..

 

식료품은 더 저렴합니다. 1리터 가스 안들어간 물이 0.78레알 약 300원.

맥주 브라질 산 저렴한게 한캔에 0.89레알 약 300원이 좀 넘네요...

 

나중에 까르프 같은데 갔다오면 더 많이 정보를 올리죠...

'travel > brazil' 카테고리의 다른 글

상파울로 외곽 별장에서의 생일 파티~~  (0) 2004.11.22
브라질 제1회 게임쇼 EGS  (0) 2004.11.19
브라질 술  (0) 2004.11.19
입장 ID...

ATI에서 마련한 부스...

사용자 삽입 이미지

닌텐도 부스.... 가장 화려했고, 도우미도 가장 많고... 이뻤다 ^^'' 그래서 그런지 여긴 항상 사람들로 북적였다.

사용자 삽입 이미지
마이크로 소프트 부스... 생각보다 초라했다. 닌텐도에 밀리는 느낌..
사용자 삽입 이미지

ATI 도우미들..  다른 부스에 비해 눈에 띄었다. 옷 색깔, 가발... 다른 곳보다 통일된 느낌..

사용자 삽입 이미지

내가 일하러 온.. 브라질 LevelUp Ragnarok 부스... 돈을 전혀 안쓴 모습이 --''

도우미도 다 직원들 ^^'' 큰 장식도 없었고...

사용자 삽입 이미지

남미에서는 멕시코에서 게임쇼가 두 번 열렸었는데, 꽤 반응이 괜찮았다고 한다. 그래서 이번에 브라질에서도 처음으로 개최하게 된거라고 하던데...

한국의 게임쇼를 보다가 봐서 그런지 너무나 초라해 보였다. 특히나 비지니스데이에 간 탓에 준비도 덜 되어 있었다.

'travel > brazil' 카테고리의 다른 글

브라질 생활 물가...  (3) 2004.11.19
브라질 술  (0) 2004.11.19
브라질 상파울로 중앙에 있는 큰 공원~  (3) 2004.11.19
브라질 사람의 추천으로 마신 술... 전통술이라고 하는데.. 왜이리 독한지.. 워낙 술을 좋아하진 않지만... 그래도 소주 1병은 먹는데.. 이 술 한잔도 다 못마셨다 --;;
중간에 얼음을 더 넣는 바람에...
사용자 삽입 이미지

브라질 맥준데... 꽤나 부드러웠다. 마실만한 맥주... 강추

사용자 삽입 이미지
 

'travel > brazil' 카테고리의 다른 글

브라질 제1회 게임쇼 EGS  (0) 2004.11.19
브라질 상파울로 중앙에 있는 큰 공원~  (3) 2004.11.19
브라질에서의 첫 식사  (0) 2004.11.17
 
공원 입구에 보이는 조형물~
사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지

사용자 삽입 이미지
정말 많은 사람들이 운동하러 나왔다...
사용자 삽입 이미지
마치 나무에 털이 난것과 같은 모습~~
사용자 삽입 이미지
 

'travel > brazil' 카테고리의 다른 글

브라질 술  (0) 2004.11.19
브라질에서의 첫 식사  (0) 2004.11.17
드디어 도착!!!  (6) 2004.11.15
숙소 근처에 있는 mall에서 첫 점심 식사를 했다.
내가 점심을 산 가게의 모습~
사용자 삽입 이미지
 
이 몰안에는 어린이들을 위한 조그만 놀이 동산이 있다...
사용자 삽입 이미지
 
먹기 전에 찍었어야 했는데.. 늦게 생각나서 --;;

사용자 삽입 이미지
 

'travel > brazil' 카테고리의 다른 글

브라질 상파울로 중앙에 있는 큰 공원~  (3) 2004.11.19
드디어 도착!!!  (6) 2004.11.15
브라질(상파울루) 생활안내  (3) 2004.11.05

에러 메세지

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

Active Server Pages 오류 'ASP 0131'

허용되지 않는 부모 경로

/ppcardManager/ppCardList/list.asp, 줄 22

'../submenu_Product.asp' Include 파일은 부모 디렉터리를 표시하기 위해 '..'를 사용할 수 없습니다.

 

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

 

어디서 들은적은 있었는데... 오늘 에러 메세지를 확인하고 찾아봤습니다.

windows 2003에서는 기본적으로 보안을 강화하기 위해 상위 폴더의 파일 참조를 불허한다고 합니다.

영문 MSDN 원본 입니다.

 

IIS 6.0 and later:  To increase security, parent paths are disabled by default. This can potentially break upgraded Web sites that use the ..\ notation or include files from parent directories.

 

그러므로 상위 폴더 파일 첨부를 허용하게 하기 위해선 IIS 세팅을 변경해 주시면 됩니다.

 

사이트 등록정보를 누르면 아래와 같은 화면이 뜨는데 거기서 '홈 디렉터리'를 선택

 

'옵션' 탭에 보면 '부모 경로 사용' 이 부분을 check하면 문제 해결~

기나긴 비행 여정을 마치고 드디어 브라질에 도착했다.


UA를 타고 왔는데... 처음에 알고 있는 일정과는 달리 한 번 더 경유를 했다.


인천 - > 샌프란시스코    : 약 9시간

샌프란시스코 -> 시카고  : 약 4시간 10분

시카고 -> 상파울로        : 약 10시간


비행시간만 총 23시간 --;;

샌프란시스코에서는 한 4~5시간 대기까지 했으니...

휴...


브라질의 첫인상 너무 좋았다. 입국 심사하는데, 미국인만을 위한 창구가 따로 있어서 좀 기분 나쁘게 생각했었는데 오해였다.

미국에서 지문 찍고 사진 찍는 것에 반발해서 미국인만 지문 찍고 사진 찍기 위한 창구였다 ^^’’

게다가 미국인이 별로 없어 창구는 비어있었지만, 미국인이 그쪽으로 바로 갈 수도 없게 했다. 다른 외국인들과 똑같이 줄 서서 자기 차례가 와야 그 창구로 갈 수 있었다.

브라질이 다르게 보였다 ^^.


제대로 찍은 사진이 없지만... 사진이 하나도 없음 좀 그러니 한 장만..


'travel > brazil' 카테고리의 다른 글

브라질 상파울로 중앙에 있는 큰 공원~  (3) 2004.11.19
브라질에서의 첫 식사  (0) 2004.11.17
브라질(상파울루) 생활안내  (3) 2004.11.05

http://www.devpia.com/Forum/BoardView.aspx?no=20029&page=10&Tpage=18&forumname=csharp_qa&stype=&ctType=&answer=&KeyR=title&KeyC=

 

 

1. 일단은 클래스 라이브러리 프로젝트를 선택하시구요...

    COM+를 작성할 것들을 코딩하시구요...

 

2. 일단 COM+를 만들려면 System.EnterpriseService를 참조 추가하시구요...

   그리구 네임스페이스를 적어주시구요...

   그런 다음 만드시는 클래스는 반드시 ServicedComponent를 상속 받아야합니다...

 

3. 아래는 COM+의 주요 서비스들인데요...

   이 서비스들을 이용하시려면 적절한 어트리뷰트를 추가하셔야 하구요...

항목설명
자동 트랜잭션 처리선언적 트랜잭션 처리 기능을 적용합니다.
BYOT(Bring Your Own Transaction)트랜잭션 상속 형식을 허용합니다.
COMTI자동화 개체에서 CICS 및 IMS 응용 프로그램을 캡슐화합니다.
CRM트랜잭션이 없는 리소스에 원자성 및 영속성 속성을 적용합니다.
Just-In-Time 활성화메서드가 호출될 때 개체를 활성화하고 호출이 반환될 때 활성화를 취소합니다.
느슨하게 결합된 이벤트개체 기반 이벤트를 관리합니다.
개체 생성클래스의 인스턴스를 생성할 때 영구 문자열 값을 인스턴스에 전달합니다.
개체 풀링이미 만들어진 개체들이 포함된 풀을 제공합니다.
전용 구성 요소out-of-process 호출로부터 구성 요소를 보호합니다.
대기열 사용 구성 요소비동기 메시지 대기열을 제공합니다.
역할 기반 보안 역할에 따라 보안 권한을 적용합니다.
SOAP 서비스구성 요소를 XML Web services로 게시합니다.
동기화동시성을 관리합니다.
XA 상호 운용성X/Open 트랜잭션 처리 모델을 지원합니다.

 

4. 해당 기능들을 다 정의 했다고 한다면...

    강력한 이름의 어셈블리를 추가해야 합니다...

    그럴려면 프로젝트 파일 중에서 AssemblyInfo.cs 파일을 여시구요...

    [assembly: AssemblyKeyFile("")] 이 부분에 KeyFile의 경로를 설정하셔야 합니다...

    키 생성은 sn.exe를 이용하면 됩니다...

    sn -k XXXX.snk

 

5. 이제 모든 것이 완료되었습니다...

   이 프로젝트를 빌드하시면 DLL 파일이 생깁니다...

   이 DLL 파일을 이용해서 이제 COM+에 등록을 해야 합니다...

 

6. 전역 어셈블리에 추가하시려면 gacutil.exe를 이용하셔서 전역 어셈블리에 등록을 하셔야 합니다...

 

ex) gacutil /i c:\mydll.dll

 

7. 이제 COM+ 응용 프로그램에 등록하실 차례인데요...

   regsvcs.exe를 이용하셔서 COM+ 응용 프로그램에 등록하시면 됩니다...

regsvcs /appname:myTargetApp c:\myTest.dll

 

 

8. 이렇게 되면 이제 모든 것이 완료 되었습니다...

    확인하시려면 구성요소 서비스에서 등록한 COM+ 응용 프로그램이 있는지 확인하시면 됩니다...

 

* 참고 자료 : MSDN에서 COM+라고 치시면 많은 관련 문서들이 있습니다...

그럼!~~~

! Exclamation Point (익스클레메이션 포인트)

" Quotation Mark (쿼테이션 마 크)

# Crosshatch (크로스해치)

$ Dollar Sign (달러사인)

% Percent Sign (퍼 센트사인)

@ At Sign (엣 사인, 혹은 엣)

& Ampersand (앰퍼 센드)

' Aposterophe (어퍼스트로피)

* Asterisk (아스테리스크)

- Hyphen (하이픈)

. Period (피리어드)

/ Slash (슬래시)

\ Back Slash (백슬래시)

: Colon (콜론)

; Semicolon (세미콜론)

^ Circumflex (서 큠플렉스)

` Grave (그레이브)

{ Left Brace (레프트 브레이스)

} Right Brace (라이트 브레이스)

[ Left Braket (레프트 브라켓)

] Right Braket (라이트 브라켓)

| Vertical Bar (버 티컬 바)

~ Tilde (틸드)
 

'etc' 카테고리의 다른 글

[펌] 19×19  (2) 2004.11.22
[펌] [아는게 돈] “잘 고른 타이어, 운전보험 10개 안부럽죠”  (0) 2004.10.26
[펌]한글우수성에 대해서...  (4) 2004.10.11

C#으로 Component만들어 돌려보고...

배포 쪽 확인 작업 중...

 

SETUP Project를 통해 GAC에 등록하는 것까지는 했는데... 구성요소서비스에 등록하는 방법(Batch 파일을 통한 방법 말고)을 찾던 중... 매우 쉽게 하는 방법을 찾았다 --;;

 

시작-관리도구-구성요소서비스 에서...

등록된 컴포넌트를 선택하고 오른쪽 마우스 버튼을 누르면 '내보내기'라고 나온다..

 

이것 선택하면 설치 파일이 자동 생성된다 MSI파일과 CAB파일...

 

이것만 가지고 실제 작업 서버에서 실행하면 GAC등록은 물론 구성요소서비스에도 자동 등록된다....

 

쩝... 허무했다 너무 간단해서...

 

혹시 SET Project에서 구성요소서비스에 등록하는 법을 알고 계신분 답글 부탁드립니다.

'programming > c#' 카테고리의 다른 글

[펌] COM+ 관련 게시물  (0) 2004.11.12
[펌] COM + 의 Server 방식과 Library 방식의 차이  (0) 2004.11.09
Registering Assemblies  (0) 2004.11.09

개체가 생성되는 프로세서가 다릅니다.

 

Library 방식은 호출자의 프로세서 내에 생기지만 Server 방식은 다른 프로세스(Dllhost.exe)에서 생성되어 서비스됩니다.

 

Server 방식일 경우

참조하고 있는 개체가 혹시나 죽어버려도 호출자 프로세스에 영향을 안미쳐서 안전성에 좋지만,

다른 프로세스에 있는 개체를 원격 호출하기 때문에 느린 단점이 있습니다.

 

Library 방식일 경우

참조하고 있는 개체가 죽어버리면 속해 있는 프로세스도 같이 죽을 수도 있지만,

같은 프로세스 내에서 생성되기 때문에 속도가 빠릅니다.

 

하지만, .NET 런타임은 안전한 환경(AppDomain을 통한 격리 환경, 예외 처리)을 제공하기 때문에 .NET을 기반으로 하는 MS 제품을 살펴보면 전에 Server 방식으로 제작되었던 부분도 Library방식으로 제작되는 것을 볼 수 있습니다.

GAC에 공유 어셈블리를 등록하는 방법은 크게 세 가지가 있다는건 알았는데...

구체적으로 어떻게 하는지 궁금했었는데.. 여기 세 가지 방법이 나오네요.

쿠쿠..

 

 

To add the serviced components in your assembly to a COM+ application, you need to register that assembly with COM+. You can perform that registration in three ways:

  • Manually, using a command line utility called RegSvcs.exe.

  • Dynamically, by having the client program register your assembly automatically.

  • Programmatically, by writing code that does the registration for you using a utility class provided by .NET.

 


..more


  • commmand line에서 RegSvcs.exe utility를 사용하여서 수동적으로 등록 하는 방법
    • 수동적으로 component를 등록하기 위해서는 command line에서 RegSvcs.exe utility를 사용합니다 ( 이후에는 아마 Visual Studio .NET에서 RegSvcs를 호출할 수 있도록 합니다. 만약 하나의 DLL assembly MyAssembly.dll을 MyApp라는 COM+ application에 assembly를 추가 하고 싶을때는 RegSvcs.exe /appname:MyApp MyAssembly.dll 입니다.
    • 기본적으로 RegSvcs COM+ application에 구성된 것을 override하지 않습니다. 만약 assembly 버전이 이미 등록된 COM+ application이 있다면 RegSvcs는 아무 일도 하지 않을 것입니다. 만약 버전이 아직 등록되어 있지 않다면, 새로운 버전을 추가 하고 새로운 CLSID를 할당 할 것입니다.
  • client program에서 COM+ application을 사용하여서 자동적으로 등록 하는 방법
  • .NET에서 제공하는 등록 utility 클래스를 사용하여 프로그램에서 등록하는 방법

..more


+ Recent posts