ASP.NET에서 Session이 저장되는 3가지 방식

.Net 2010. 12. 9. 09:08 posted by 무명시인
ASP.NET에서 Session이 저장되는 방식은 3가지가 있습니다.

1. In-Process 방식
ASP.NET 작업 프로세스에 세션이 저장되는 방식입니다.
속도는 가장 빠르지만 단일 웹서버에서만 사용가능하고
DLL이 업로드되는 경우 세션이 사라지게 됩니다.

2. Session State Server 방식
세션을 저장하는 별도의 서비스를 사용하는 방식을 말합니다.
In-Process 방식보다는 속도가 느리지만 여러 웹서버에서 공통으로 사용가능합니다.

세션이 작업 프로세스와 떨어진 별도의 서비스에 저장되므로
DLL을 올려도 세션이 그대로 있게 됩니다.
저도 개발시에는 Session State Server를 사용하곤 했습니다.
그래야 테스트하기 편하거든요..

3. SQL Server 방식
가장 안전하게 저장되는 방식이지만 성능은 가장 느립니다.
하드디스크에 저장되므로 전원이 나가도 세션유지가 가능합니다.
SQL Server 방식으로 세팅하는 방법은 아래 문서에서 읽어보세요.
'http://support.microsoft.com/kb/317604


그리고 위 세가지 방식에 대한 자세한 설명은 아래 문서에서 읽어보세요.
'http://support.microsoft.com/kb/307598/


그리고 여담으로 말씀드리자면 위의 3가지 방식외에 
Windows Server AppFabric를 사용한 4번째 세션 저장방법을 
MS가 만들고 있다고 들었습니다.



출처 : Taeyo.net

http://www.taeyo.net/Forum/Content.aspx?SEQ=31569&TBL=ASPNET&PGN=1



[개발환경] ASP.NET 개발할때

.Net 2010. 12. 7. 10:01 posted by 무명시인
TFS의 소스코드 관리는 Source Safe보다 개선됐다고 들었습니다.
TFS는 이런 소스코드 버전관리 개념을 포함한 ALM 시스템입니다.
자동빌드, 배포, 이슈관리 등도 포함되어 있죠..

.....

DLL을 업데이트할 경우에는 사용자의 Session이 끊어집니다.        
하지만 Session Server를 별도로 사용하거나 SQL Server를 사용하는 방식을 쓰면        
DLL 업데이트해도 Session이 살아있게 됩니다.

.....

ASP.NET이 2.0 들어오면서 웹프로젝트가 웹사이트 모델로 바뀌었습니다.
웹사이트 모델은 마치 ASP같은 감각으로 ASP.NET을 개발할 수 있게합니다.

ASP같다는 얘기는 ASP처럼 소스코드 그대로 웹서버에 올려도 된다는 얘기입니다.
그러면 IIS웹서버가 ASPX및 CS 파일을 컴파일하게 됩니다.
이를 동적 컴파일이라고도 합니다.

하지만 이 방식은 단점도 있습니다.
웹서버에서 소스코드를 수정할 수 있다는 얘기는 오타 등으로 인한 에러를 
실행전에는 알 수 없다는 얘기이기도 합니다.
사용자가 에러를 보게 될 수도 있다는 얘기입니다.

물론 웹사이트 모델도 사전 컴파일이 가능합니다.
하지만 컴파일 속도가 매우 느립니다.
그래서 ASP.NET 1.X 대와 같은 웹애플리케이션 모델이 다시 나오게 됩니다.

웹사이트 모델로 만들려면 Visual Studio에서 File > New > Web Site를 선택하고
ASP.NET WebSite를 선택하면 됩니다.
웹애플리션 모델로 만들려면 File > New > Project  선택하시고 
ASP.NET Web Application을 선택하시면 됩니다.

물론 둘다 VB나 C#을 사용할 거냐 Empty 프로젝트로 할 거냐
Dynamic Data 를 사용할 거냐 등의 선택도 같이 하셔야 합니다
        



http://www.taeyo.net/Forum/Content.aspx?SEQ=31568&TBL=ASPNET&PGN=1


UpdataPanel 하위 컨트롤 찾기

.Net 2010. 11. 3. 17:32 posted by 무명시인
* UpdataPanel 속의 컨트롤 찾기

UpdataPanel 을 사용해서 내부의 컨트롤 개체들을 제어 할때..
그냥 UpdataPanel.컨트롤 개체로 찾으면 될줄 알았는데 아니었더군요..
복잡한것은 아니지만 조금 삽질 했습니다.^^;


    
    foreach (Control c in this.UpdatePanel1.ContentTemplateContainer.Controls)
    {
        // to do..
    }
    
    

Web.config.. 누구냐 넌??

.Net 2009. 6. 4. 11:57 posted by 무명시인

[Linq] Linq To Sql - 시작하기

.Net 2009. 6. 2. 10:58 posted by 무명시인

Net Framework 3.X 부터 Linq 라는 기술이 등장했다.

머 설명은 각설하고..

시작하기를 주절대볼까 한다.

사용자 삽입 이미지

솔루션 탐색기 > 웹사이트 > 새항목 추가에서 Linq to SQL 클래스를 선택한다.

사용자 삽입 이미지

그러면 다음과 같은 경고가..

App_Code 폴더를 추가하겠다는 말이니 "예"를 선택한다.
사용자 삽입 이미지

그러면 하얀 화면이 보일것이다..

여기서 서버탐색기 > 새 연결추가 를 선택한다.

그러면 위와 같은 화면에서 Sql Server 를 선택한다..

우리는 Ms-Sql 을 사용할것이니..

사용자 삽입 이미지

위 화면은 익숙할것이다..

NorthWind 데이타 베이스를 사용할것이니..

선택후 연결테스트를 해본다.

사용자 삽입 이미지
서버탐색기에서 익숙한 화면이 보일것이다..

해당 테이블은 Drag & Drop 으로 하얀 화면에 떨어뜨린다.

사용자 삽입 이미지

그러면 위화면처럼 선택이 되고 저장을 하고 닫는다.

사용자 삽입 이미지

App_Code 폴더에 추가된 클래그와 디자인용파일들이 보인다..

참고로 Web.config 에 다음과 같은 연결문자열이 생긴다.

사용자 삽입 이미지

테스트 페이지에 GridView 를 떨어뜨리고..

다음과 같은 코드를 입력해보자..

 protected void Page_Load(object sender, EventArgs e)
    {
        NorthwindTestDataContext northwind = new NorthwindTestDataContext();

        var data = from qNorthwind in northwind.Employees
                   select new 
                   { 
                        EmployeeId = qNorthwind.EmployeeID,
                        LastName = qNorthwind.LastName,
                        Title = qNorthwind.Title
                   };

        this.GridView1.DataSource = data;
        this.GridView1.DataBind();
    } 


사용자 삽입 이미지


결과는 위화면 처럼..

참~ 쉽죠~~

코드에 대한 설명은 하지 않는다.

입력문자의 ascii 코드를 알아보자

.Net 2009. 5. 27. 16:05 posted by 무명시인

[asp.net] 웹서비스 설명 표현

.Net 2009. 5. 26. 16:23 posted by 무명시인
http://msdn.microsoft.com/ko-kr/library/68zt3df9(VS.80).aspx#Mtps_DropDownFilterText





	[System.Web.Services.WebMethod(Description = "Hello world 문자열을 반환한다.")] 
	public string HelloWorld()
	{
        	return "Hello World";
	}

HttpFileCollection 을 사용한 다중 파일 업로드

.Net 2009. 5. 21. 15:57 posted by 무명시인
사용자 삽입 이미지

이렇게 여러게의 파일컴포넌트가 있다면;;

머 각기 파일 존대 여부를 체크하여 파일을 업로드 하여도 상관은 없다..

하지만..

이왕이면 코드를 줄여보자..

이렇게

 HttpFileCollection file = Request.Files;

        for (int i = 0; i < file.Count; i++)
        {
            if (file[i].ContentLength > 0)
            {
                HttpPostedFile postedFile = file[i];
                string strPath = String.Format("{0}\\{1}", Server.MapPath("~/Files"), System.IO.Path.GetFileName(postedFile.FileName));                
                postedFile.SaveAs(strPath);
            }            
         
}
사용자 삽입 이미지


이런 코드를 사용하여 유저컨트롤이나 사용자 정의 컨트롤로 멀티 업로드 컴포넌트를 만들어 사용해도 무관하겠다.

Asp.Net Hashtable 의 이해

.Net 2009. 5. 20. 09:53 posted by 무명시인

//[1]Hashtable 개체 Hashtable ht1 = new Hashtable(); Hashtable ht2 = new Hashtable(); //[2]할당 ht1.Add("a", "aa"); ht1.Add("b", "bb"); ht1.Add("c", "cc"); ht1.Add("d", "dd"); ht1.Add("e", "ee"); ht2.Add(0, "0"); ht2.Add(1, "1"); ht2.Add(2, "2"); //[3]DictionaryEntry 를 사용 foreach (DictionaryEntry de in ht1) { Response.Write(String.Format("key : {0}, value : {1}
", de.Key, de.Value)); } Response.Write("
"); //[4]ICollection 를 사용 ; 값만 ICollection ic = ht1.Values; foreach (string str in ic) { Response.Write(String.Format("values : {0}
", str)); } Response.Write("
"); //[5]ICollection 를 사용 ; 키만 ICollection ic2 = ht1.Keys; foreach (string str2 in ic2) { Response.Write(String.Format("keys : {0}
", str2)); } Response.Write("
"); //[6]인덱스 for (int i = 0; i < ht2.Count; i++) { Response.Write(String.Format("index : {0}, value: {1}", i.ToString(), ht2[i])); Response.Write("
"); } Response.Write("
"); //[7]IEnumerator 사용 ; 값만 IEnumerator ie1 = ht1.Values.GetEnumerator(); while (ie1.MoveNext()) { Response.Write(String.Format("value : {0}
", ie1.Current.ToString())); } Response.Write("
"); //[8]IEnumerator 사용 ; 키만 IEnumerator ie2 = ht1.Keys.GetEnumerator(); while (ie2.MoveNext()) { Response.Write(String.Format("key : {0}
", ie2.Current.ToString())); }

asp.net webpart 개요

.Net 2009. 5. 18. 09:45 posted by 무명시인
사용자 삽입 이미지

역기 MSDN 에는 모든게 다 있다.

http://msdn.microsoft.com/ko-kr/library/e0s9t4ck.aspx