분류 전체보기 (328)
.NET (111)
OOP (10)
Event (0)
웹서비스 (1)
ASP.NET (40)
C# (37)
JavaScript (10)
ADO.net (1)
XML.net (1)
Exchang server 2010 (3)
WPF (0)
HTML/CSS (6)
S/W tip (35)
etc (63)
DB (34)
HOT item~! (48)
Disign pettens (4)
UX (6)
나의 S/W (2)
개발관련 이슈 (16)
Diary (1)
웹플러스 (1)
calendar
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
tags
archive
link
ColorSwitch 00 01 02
▣  .NET/ASP.NET - 해당되는 글 40건

▣  ASP.NET Classic 과 MVC - .NET/ASP.NET - 2015. 5. 7. 09:58

ASP.NET


상태가 유지되는 객체 지향적인 윈폼 개발과 상태가 유지되지 않는 HTML 기반 웹 개발 간의 격차 해소를 추구하며, 서버 측 계층 구도로 사용자 인터페이스를 모델링함으로써 HTTP와 HTML을 모두 뒤편으로 감추고자 시도 하였으며, 각각의 컨트롤들은 요청들 사이에서 자신의 상태를 추적하며, HTML코드로 랜더링되며, 클라이언트 이벤트와 그에 대응하는 서버 측 이벤트 처리기 코드를 연결한다.

전통적인 이벤트 기반 GUI를 웹으로 끌어올리는데 초점을 맞춘 거대한 추상 계층이다.

ASP.NET의 문제점

ViewState : 요청 전반에 걸쳐 상태가 유지되는 이 기능의 메커니즘은 사실 클라이언트와 서버 사이를 빈번하게 오고 가는 거대한 데이터들로 인해서 얻어지는 결과로 모든 요청 시마다 매번 수신되고 다시 전송되므로, 응답 지연의 원인을 제공한다.

페이지 수명 주기 : 클라이언트 측 이벤트와 서버 측 이벤트 처리기 코드를 연결해 주는 메커니즘은 페이지 수명 주기의 한 부분이며, 경우에 따라서 이벤트 처리기의 실행이 실패하게 되거나 ViewState오류가 발생할 수 있다.

서버 컨트롤 : 서버 컨트롤이 자동으로 HTML로 랜더링되기는 하지만, 대체로 웹 표준을 만족하지 못하거나, CSS를 적용하기 어려운 구조일뿐만 아니라 서버 컨트롤이 생성한 ID값은 예측하기 어렵다

페이지단위 개발로 인하여 테스트에 어려움이 있다.

장점 : 컴파일 됨, 상태가 유지되는 UI 거대한 기반 구조, 객체 지향 프로그래밍 지향
단점 : 많은 대역폭 소모, 난잡한 HTML, 테스트의 어려움

ASP.NET MVC

 MVC아키텍쳐의 사용

MVC응용 프로그램의 사용자 인터페이스는 자연스럽게 특정 반복 패턴을 따르게 되는데, 이와 같은 패턴은 일련의 HTTP요청과 응답을 제공하는 웹 응용 프로그램에 매우 적합하다.

확장성

있는 그대로의 기능을 사용하거나 기본 구현을 상속받아 하위 클래스를 구현하거나, 인터페이스 및 추상 클래스를 새롭게 구현하여 구성 요소 전체를 바꿀 수 있다.

테스트

응용 프로그램과의 관계를 분리하여 각각 별개의 독립적인 소프트웨어 조각으로 분리할 수 있어, 테스트 하기에 용이하다.

엄격한 HTML 제어

그 어떠한 ViewState 데이터도 포함하지 않으므로, ASP.NET 웹폼에서 페이지를 생성할 때보다 크기가 수백 킬로바이트 이상 작아질 수 있다.

강력한 새로운 라우팅 시스템

깔끔한 URL을 기본적으로 제공하여, 그 어떤 패턴에도 제약 받지 않고 URL을 정의할 수 있다. 그로 인하여 검색 엔진의 성능 향상, 웹 사용자들의 URL에 의한 페이지 직접 접근이 쉬워지며, 응용 프로그램의 기술적인 세부사항이나 폴더 및 파일 구조를 공개적인 인터넷에 노출시키지 않는다.

ASP.NET 과 MVC

ASP.NET이 더 이상 MS에서 지원하지 않는 기술이 아니다. 웹폼은 널리 사용되어지고 있는 기술이며, 상황에 따라 MVC보다 더 나은 경우도 분명히 존재한다. 작은 규모의 인트라넷 유형의 응용프로그램의 경우에는 MVC보다 웹폼이 더 낫다고 볼 수 있다. 그렇기 때문에 두 플랫폼 중 무엇을 선택해야 하는지는 상황에따라 적절하게 선택해야 할 문제이다.

IIS 관리자에서 최상위 PC위치에서 ISAPI 및 CGI 제한 에서 설정을 허용됨으로 변경하여야 한다.

 

IIS 오류넘버 : 404.2

 


VIsual Studio에서 개발시에는 잘 동작하던 웹프로그램이

IIS에 올렸는데 Ajax의 URL의 경로를 찾지를 못한다.!

 

 

 

WebConfig에서 살펴 본 결과 

주석으로 되어 있는 앞부분의 URL을 핸들링 하는 부분이 Web.Config에 있어서 찾아보았다.

<httpHandlers>

<add path="ajax/*.ashx" verb="POST,GET" type="Ajax.PageHandlerFactory, Ajax" />

IIS 등록시

상위(서버)에서 처리기 매핑 클릭 후 관리되는 처리기 추가

 

 

그리고 응용프로그램 풀은

 

 

 


▣  SSL 설정하기 - .NET/ASP.NET - 2013. 12. 6. 14:10

 

1. 먼저 SSL을 변경 할 사이트를 IIS에서 찾아 사이트 바인딩을 한다.

 

 2. HTTPS://를 추가 시 인증서를 꼭 확인한다.

 

 

 3. 추가가 완료 되면 호스트명이 없으며,(멀티 바인딩의 경우 해당 사이트가 정지된다.)

 

4. 호스명 등록을 위하여 명려어를 실행한다.

경로 이동

cd c:\windows\system32\inetsrv

바인딩 할 사이트 명과 포트 정보 바인딩 할 사이트 주소를 적어 실행한다.

appcmd set site /site.name:"TEST" /bindings.[protocol='https',bindingInformation='*443:'].bindingInformation:*443:testdev.webplus.co.kr

5. 호스트 이름이 등록된다.

 

appcmd set

6. 완료가 되면 정지된 사이트를 시작하여 테스트!!

 

 

 

 


▣  WebRequest 이용하기 - .NET/ASP.NET - 2013. 2. 7. 18:35

string url = "www.naver.com";


HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);

HttpWebResponse res = (HttpWebResponse)req.GetResponse();


//인코딩

StreamReader str = new StreamReader(res.GetResponseStream(), Encoding.Default);

Console.WriteLine(str.ReadToEnd());

res.Close();

str.Close();



또 하나의 방법!


XMLHttpRequest 이거써요!!!

 

예제)

 

var nCount = fnXMLHTTP("../Mail/MailNameCheck.aspx?SearchName=" + searchName);

 

function fnXMLHTTP(url)

        {

            var xmlhttp = new XMLHttpRequest();

            xmlhttp.open("post", encodeURI(url), false);

            xmlhttp.send();

            var strResult = xmlhttp.responseText;

            return strResult;

        }




▣  ASP.NET 정대경로 및 상대경로 - .NET/ASP.NET - 2013. 1. 24. 14:00

웹 프로젝트를 만들고 나면 가상 경로를 설정할 수 있다.(웹 사이트의 속성에서 변경이 가능하다.)


가상 경로에서 지정된 값이 ROOT임

~ => server.mappath 사용시 경로를 리턴 받을때 가상 디렉터리의 경우 실제 물리적인 값을 가져온다.

/ => root 사용시 가상 디렉토리의 경우에는 실제 물리적인 값이 아닌 해당 서버의 루트 경로를 가져온다.(비추천)

./ => 현재 경로부터 찾는다.



top
:

▣  ScriptResource.axd 서버에서 받은 메시지를 구문 분석할 수 없습니다. - .NET/ASP.NET - 2012. 10. 19. 13:14


해당 페이지에  ValidateRequest="false" 처리하거나

서버와 클라이언트간 데이터 전송시에 특수한 값들이 전송이 되는 문제로 확인하기 쉽지 않다.

예상되는 결과로는 updatepanel과 jquery사용시에 벌어지는 문제로 보여진다.


#1

출처 : http://www.hoons.kr/Board/free/Content/47913

바로 어제 겪은 상황입니다...
특정 페이지가 테스트서버에서 돌릴때는 잘만 돌아가던것이
고객측 실제 서버에서 돌렸더니 기능이 동작하지 않으면서 스크립트 에러를 뱉어내더군요...
무슨 '서버에서 받은 메시지를 구문 분석할 수 없습니다.'라는 ScriptResource.axd 관련 오류를 띄우더군요...
이런 알수없는 현상을 해결해보려고 하루종일 구글링 해보고 인코딩이나 IIS문제인지 추측도 해보고 하였지만
해결하지 못하였었습니다...
 
근데... 
오늘 아침에 작정하고 그 페이지코드들을 조각조각 내어서 어느 부분 때문에 안되는지를 노가다식으로 
검사를 해보았더니...
프로그래밍상으로 전혀 이해할수 없는...
LinkButton의 ID값에서 문제가 있다는 것을 알게되었습니다...
중복 ID를 쓴 상황도 아니며 마스터페이지나 사용자컨트롤에서도 사용하지 않는 고유 ID값을 나름 사용중이었는데요...
황당하게도 기존 ID 뒤에 1 하나만 붙였을 뿐인데 기능이 정상 동작하는군요....
ID글자 때문에 생긴 에러라니...
에러를 해결해서 기분은 좋습니다만 찝찝합니다...ㅎㄷㄷ


#2

http://whiteblank.tistory.com/entry/ASPNET-WebResourceaxd-and-ScriptResourceaxd%EC%97%90-%EC%9D%98%ED%95%9C-viewstate-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

head안에 정의 되어 있는 <meta http-equiv="content-type" content="text/html; charset=utf-8" />

메타태그를 Page_Load함수로 옮겨놓아야 한다.

Response.ContentType = "text/html";

Response.Charset = "utf-8";


http://alterprocedure.net/articles/alterprocedure/aspnet-causing-corrupted-html-with-webresourceaxd-and-scriptresourceaxd.aspx

http://blog.soft-cor.com/?tag=/scriptresource.axd


top
:

▣  UPDATEPANEL 정리 - .NET/ASP.NET - 2012. 8. 28. 15:23

UPDATE PANEL은 해당 영역만 View State로 변경되기 때문에


바뀌어야 하는 이벤트나 서버 컨트롤 히든필드가 해당 영역안에 존재하여야만 한다.

top
:

▣  offset 좌표 설정 - .NET/ASP.NET - 2012. 8. 28. 14:20

      var obj = document.getElementById("<%=DwgList.ClientID %>");//생성시킬 객체

 

      var offsetLeft = 0;

      var offsetTop = 0;

 

      if (obj.offsetParent)

      {

            while (obj.offsetParent) //부모노드가 있을때까지 돈다.

            {

                  offsetTop += obj.offsetTop; //부모노드로부터 Y좌표값을 구한다.

                  offsetLeft += obj.offsetLeft;//부모노드로부터 X좌표값을 구한다.

                  obj = obj.offsetParent; //현재 노드값에 부모노드를 대입한다.

            }

      }

      else if (obj.x)

      {

            offsetLeft += obj.x;

            offsetTop += obj.y;    

      }

 

      var divShipNo = document.getElementById("divMultiList");

      if (offsetLeft != null && offsetLeft > 0)

      {

            divShipNo.style.left = offsetLeft + 20 + "px";

            divShipNo.style.top = offsetTop - 150 + "px";

      }

 

      document.getElementById("divMultiList").style.display = "inline";

top
:

▣  모달창에서의 opener - .NET/ASP.NET - 2012. 8. 20. 17:41

var opener = window.dialogArguments;

top
:


articles
recent replies
recent trackbacks
notice
Admin : New post