제2의 비엔지니어 인생관을 꿈꾸며

Posted
Filed under jQuery

업무상(ajax 뿐만 아니라)  클라이언트쪽의 페이지 인코딩 과 서버측 인코딩이 달라서 한글이 깨지는 경우가 많이 발생한다.
물론 요즘 대부분 utf-8로 개발을 하기때문에 흔하지 않을수도있지만 환경에따라 ,어쩔수없이 euc-kr 와 utf-8을 동시에
이용해야 하는 경우가 있다.

나의 경우는,  클라이언트 페이지가 euc-kr(완성형 한글) 이지만 내부적으로 ajax 가 utf-8로 변환하여 
서버 페이지 (euc-kr)에 전송하면서,  클라이언트서버의 인코딩 환경이 맞지 않기(같지 않기때문) 때문에 생긴 문제였다

아래는 full code 는 아니지만 핵심만 요약해서 정리하였다(code가  중요하지는 않다)

(참고로 한글이 깨지지않게 하는 방법은 사실 URL 인코딩 말고, 다른방법도 있다. 하지만  URL 인코딩을 통해 데이터를 전송하면 ContentType 이나 Mime 설정 등.. 페이지 언어 설정이 필요없다.)

<script language="javascript">

       var txt;
       txt = encodeURI("가나다라마")  - // 1차  Url 인코딩(서버 함수일경우 서버 함수로)
       txt = encodeURI("가나다라마") -  // 2차  Url 인코딩(서버 함수일경우 서버 함수로)
         
        //  서브밋 처리

</script>

[변환후]

%EA%B0%80%EB%82%98%EB%8B%A4%EB%9D%BC%EB%A7%88  // 1차
%25EA%25B0%2580%25EB%2582%2598%25EB%258B%25A4%25EB%259D%25BC%25EB%25A7%2588 // 2차

(1차에서 변환한 문자열의, % 가 2차에서 %25 로만 변경된것을 볼 수 있다.)


그럼 왜 2번 해줄까? 

이유는 간단하다.  Url 인코딩된 문자열을 보존하기 위해서이다.
만약 1회만 할 경우,   서브밋시 서버에서 자동으로 디코딩을 1회 하면서 url 인코딩된 것이 
utf-8 데이터로 노출된다
그래서 한글로 변환하게되니 깨진다.  2회 하게되면,  서버측에서 자동 1회 인코딩하더라도, 1차로 Url인코딩된게 남아있기때문에 깨지지않는다.

{{ 2회 인코딩한 데이터 서버로 전송 }}
%25EA%25B0%2580%25EB%2582%2598%25EB%258B%25A4%25EB%259D%25BC%25EB%25A7%2588

{{ 서브밋 되면서 중간에 서버가 1번째 디코딩함 }}
%25EA%25B0%2580%25EB%2582%2598%25EB%258B%25A4%25EB%259D%25BC%25EB%25A7%2588

%EA%B0%80%EB%82%98%EB%8B%A4%EB%9D%BC%EB%A7%88

{{ 서버 페이지에서  2번째  디코딩함 }}
%EA%B0%80%EB%82%98%EB%8B%A4%EB%9D%BC%EB%A7%88 

 "가나다라마"  변환완료

 DB 저장함

2018/03/14 17:06 2018/03/14 17:06
Posted
Filed under C#

최대저장소 깃 허브와
최대 개발 커뮤니티 스택오버플로우에서 조사한  인기있는 프로그래밍 언어 랭킹 TOP

(2015년도 인기언어 래킹)



2018년에 수요 많은 프로그래밍 언어 7가지 

꾸준히 인기 있는 '자바' 

코딩 도조는 지난해 이맘때도 같은 조사를 했다. 당시와 비교하면 올해 조사에서 자바 개발자에 대한 구인 공고는 6천 건 쯤 줄었다. 하지만, 자바는 아주 잘 만들어진 언어로, 여전히 전세계 수 십억 개의 디바이스에서, 수 백만명의 개발자들이 사용하고 있는 만큼 1위 자리를 지켰다.

또, 코딩 도조는 안드로이드 앱 대부분이 자바 기반이고, 포춘 500대 기업 중 90%는 백엔드 개발을 위한 서버 단 언어로 자바를 채택하고 있다는 점을 강조했다.

확실히 뜨는 언어 '파이썬'

 

파이선 개발자 구직 게시글은 지난해보다 5천 여건 늘며, 인기가 상승했다.

파이썬은 과학 분야 연산, 데이터 마이닝, 머신러닝 등에 일반적으로 사용되고 있다. 코딩 도조는 머신러닝 기술에 대한 수요가 증가하면서 파이썬의 인기가 올라가고 있다고 설명했다.

웹 넘어 IoT까지 유망 언어 '자바스크립트'

 

자바스크립트 개발자에 대한 수요는 지난해와 비슷한 수준으로 나타났다.

코딩 도조 측은 전체 웹 사이트의 95%, 개발자의 80%가 자바스크립트를 사용하고 있기 때문에 이런 인기는 당연하다고 설명했다.

또 "리액트, 앵귤러JS 자바스크립트 기반 프론트엔드 프레임워크는 사물인터넷(IoT) 및 모바일 장치가 대중화되면서 거대한 잠재력을 가지게 됐다"면서 "자바스크립트의 인기가 빠르게 식진 않을 것 같다고"고 예상했다.

■ 레거시 시스템 터줏대감 C++

자바스크립트와 마찬가지로 C++에 대한 수요는 지난해와 비슷한 수준을 유지했다.

C++은 시스템/애플리케이션 소프트웨어, 게임 개발, 드라이버, 클라이언트 서버 애플리케이션, 임베디드 펌웨어 등에 보통 사용된다.

많은 프로그래머들이 C++은 배우고 사용하기 복잡하다고 생각하고, 파이썬이나 자바스크립트를 선호하지만, C++은 여전히 대기업 레거시 시스템에 많이 남아 있기 때문에 상위권을 유지하고 있다는 설명이다.

게임 개발에 많이 쓰이는 C#

C#에 대한 수요는 지난해와 비교해 약간 떨어진 것으로 나타났다. C#은 마이크로소프트가 만든 닷넷 플랫폼에서 작동하는 객체 지향 언어로, 비디오 게임 개발에 활발하게 사용되고 있다.

의외로 인기 상승 'PHP'

PHP는 지난해 9위에서 올해 6위로 인기 순위가 상승했다. 대부분 개발자들은 HTML로 처리할 수 없거나 마이SQL 데이터베이스와 상호작용하는 기능을 추가하기 위해 이 스크립팅 언어를 사용하고 있다.

접착제 언어로 명맥 유지 '펄'

펄은 지난해와 비교해 3천 건 정도 구인 수요가 줄어들었지만, 탑 7 리스트에 잔존하는데 성공했다.

펄은 계속해서 시스템, 네트워크 관리자들 사이에서 많이 사용되고 있다. 다른 언어나 라이브러리와 쉽게 연결할 수 있는 접착제 언어(glue language)라는 점에서 강점이 있다.

이밖에도 상위 7개 언어에 못들었지만, 최근 몇 년 간 인기를 얻으며 성장하고 있는 언어도 있다. 스위프트, R, 러스트 등이 해당한다. 프로그래밍 언어 이외의 기술은 SQL, 닷넷, 노드js 등이 꼽혔다.


출처 : ZD-Net
(http://www.zdnet.co.kr/news/news_view.asp?artice_id=20171211160110)

2018/03/05 15:11 2018/03/05 15:11
Posted
Filed under C#
가끔 개발하다보면 .net framework 버전 vs 비주얼 스튜디오와의 버전 vs 컴파일러버전 과의 궁금할때가있다. 물론 개발만 잘하면되는데, 그래도 궁금하다. .framework 1.0 (1.1?)은 공식적으로 버린지 오래고? ,  2.0(설치되어있어야함) ~ 비쥬얼 스튜디오 자신의 버전까지 지원한다. VisualStudio 2012는 3.0  ~ 4.5까지 설정에 따라 컴파일 이 된다. (단, framwork가 없으면 설치 해야함)


사용자 삽입 이미지



[가로버전]



이미지 출처:  http://sktype.tistory.com/112
이미지 편집 :  by sooli.com Pluginn 

2018/02/08 19:13 2018/02/08 19:13
Posted
Filed under C#
2년전 쯤 모바일 웹에서 이미지 업로드를 하는 페이지가 있었는데, 모바일로 사진을 찍고, 업로드를 하면, 세로로 촬영한 이미지가 가로로(옆으로) 등록되는 기이한 현상이 일어났다. 당시 잠깐 이유를 생각해보면, 스마트폰의 사진 해상도가 고해상도를 지원하면서, 촬영되는 사진이 아마 폭에따라  가로로 저장되는 이유가 아닐가 생각한다.  아래 코드는 classic ASP 에서 사용하기위해 .net 으로 작성된 lib(dll)
코드이다. 그 당시 버전 관리를 위해 SN(strong name) 생성 후 Regasm ,  gacutil 로 assembly 등록 후  classic ASP 에서 사용하였다

작동원리 : 방법은 간단하다 , 이미지의 rotaton 정보를 가지고 그만큼 반대로 또는 정방향으로 회전시켜 사진을 똑바로 세우는것이다.
아래 이미지는 이미지의 Rotation 정보를 얻어냈을때 리턴되는 값들이다 
 
1:정방향  2:정방향이긴한데, 뒤집어진경우 , 8: 90도 우측으로 기울어진경우 , 아래 이미지를 참고하여 로테이션 시키면된다.


사용자 삽입 이미지


using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using System.IO;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;

namespace MimiClass
{
    public class Utility
    {
        private string imgName;
        private int stdWidth;

        public string targeImage { set { this.imgName = value;}}
        public int targetWidth { set { this.stdWidth = value;}}
        public Utility()
        {
        }

        public void doReSize()
        {
            this.reSizeEXIF();
        }


        public void reSizeEXIF()       
       {

           //  당시 스토리지를 UNC  명을 익식하게게끔 하려했으나 보안 오류떠서, 네트워크 드라이브로 대체 했던기억이 난다.  
           // 물론 로컬로 저장되는 이미지인경우 아무 상관없다.
          

            string imageF = @"X:\파일명.jpg";
            string iPath = string.Empty;
            int EXIF = 0;
            int iW = 0, iH = 0, iTW = 0, iTH = 0;
            int iStW;
            iStW = this.stdWidth;
            PropertyItem[] PropertyItems;
            Image simg = new Bitmap(imageF);
            Image tImg = null;
            PropertyItems = simg.PropertyItems;
            iW = simg.Width;
            iH = simg.Height;
            foreach (PropertyItem p in PropertyItems)
            {
                if ((p.Id == 0x0112 || p.Id == 5029 || p.Id == 274))
                {
                    EXIF = (int)p.Value[0];
                    break;
                }
            }
            if (EXIF == 0)
            {
                setEXIFRoate("W", ref simg, out tImg, iStW, iW, iH, ref iTW, ref iTH);
            }
            else
            {
                if (EXIF == 6)
                {
                    setEXIFRoate("H", ref simg, out tImg, iStW, iW, iH, ref iTW, ref iTH);
                    tImg.RotateFlip(RotateFlipType.Rotate90FlipNone);
                }
                else if (EXIF == 8)
                {
                    setEXIFRoate("W", ref simg, out tImg, iStW, iW, iH, ref iTW, ref iTH);
                    tImg.RotateFlip(RotateFlipType.Rotate270FlipNone);
                }
                else if (EXIF == 3)
                {
                    setEXIFRoate("W", ref simg, out tImg, iStW, iW, iH, ref iTW, ref iTH);
                    tImg.RotateFlip(RotateFlipType.Rotate180FlipNone);
                }
            }
            imageSave(tImg, imageF);

            simg.Dispose();
            tImg.Dispose();

            simg = null;
            tImg = null;        
        }
        private void imageSave(Image t, string imageF)
        {
            string imageT = string.Empty;
            string iPath = string.Empty;
            imageT = imageF.Substring(imageF.LastIndexOf("\\"));
            iPath = imageF.Substring(0, imageF.LastIndexOf('\\'));
            iPath = string.Concat(iPath, "\\re\\");
            if (!Directory.Exists(iPath))
                Directory.CreateDirectory(iPath);

            iPath = string.Concat(iPath, imageT);

            t.Save(@iPath);
            t.Dispose();
            t = null;
        }
        private void setEXIFRoate(string stGb, ref Image s, out Image t, int iStW, int iW, int iH, ref int iTW, ref int iTH)
        {
            // 이미지가 width가 넓은 사진일경우
            if (stGb == "W")
            {
                // 가로가 길경우 가로와 세로를 바꾼
                iTW = iStW;
                iTH = Convert.ToInt32((iStW * 1.0) / ((iW * 1.0) / (iH * 1.0)));
            }
            else
            {
                // 세로가 길경우 세로와 가로를 바꿈 
                iTH = iStW;
                iTW = Convert.ToInt32((iStW * 1.0) / ((iH * 1.0) / (iW * 1.0)));
            }
            t = new Bitmap(iTW, iTH);
            Graphics g = Graphics.FromImage(t);

           // 화질유지를 위해 고화질 모드 설정
            g.InterpolationMode = InterpolationMode.High;
           
           // 딱 자르면 흰색 라인이 생겨서 +1 추가더 자르고 -1 로 뺏
            g.DrawImage(s, new Rectangle(-1, -1, iTW + 1, iTH + 1)); 음
            g.Dispose();
            g = null;
        }
    }
}
2018/02/08 16:17 2018/02/08 16:17
Posted
Filed under C#

다음 목록에서는 Visual Studio 2012 또는 Visual Studio 2010 SP1에서 만든 프로젝트에 대한 Visual Studio 2015 및 Visual Studio 2013의 지원에 대해 설명합니다. 이 목록을 참고하여 Visual Studio 2015, Visual Studio 2013, Visual Studio 2012 또는 Visual Studio 2010 SP1에서 프로젝트를 현재 상태 그대로 열 수 있는지 또는 호환성을 유지하도록 프로젝트를 수정해야 할지 결정할 수 있습니다.

프로젝트 형식 호환성
유니버설 Windows 플랫폼 앱 유니버설 Windows 앱 도구를 설치하려면 Visual Studio 설치 프로그램에서 사용자 지정 또는 수정을 선택한 다음 유니버설 Windows 앱 개발 도구를 선택합니다.

Windows 10용 UWP(유니버설 Windows 플랫폼) 앱 개발은 Windows 10 또는 Windows 8.1의 Visual Studio 2015에서만 지원됩니다.
Windows 스토어 앱 Windows 8.1 및 Windows Phone 8.1을 대상으로 하는 유니버설 앱을 포함한 Windows 스토어 앱 개발은 Windows 8.1 및 Windows 10에서 지원됩니다. 기존 Windows 8 프로젝트에 대한 서비스가 계속 제공되지만 새로운 Windows 8 프로젝트를 만들 수는 없습니다.Windows 8.1 프로젝트는 특정 참조 형식에 따라서만 결정됩니다. 자세한 내용은 프로젝트의 참조 관리을 참조하십시오. Note:  Visual Studio 2015 또는 Visual Studio 2013을 사용하여 만든 Windows 8.1 프로젝트를 Visual Studio 2012에서 열 수 없습니다.Visual Studio 2015 및 Visual Studio 2013을 사용하여 만든 Windows 8.1 프로젝트는 해당 버전을 대상으로 하고 Visual Studio 2012는 Windows 8을 대상으로 하는 Windows 8 프로젝트만 지원하기 때문입니다.
.NET Framework 4.5.1 적절한 멀티 타게팅 팩을 설치한 후 Visual Studio 2015 및 Visual Studio 2013에서 이러한 프로젝트를 만들어 사용할 수 있습니다. Visual Studio 2010 SP1에서는 이 프로젝트가 지원되지 않습니다.
.NET Framework 4.5 Visual Studio 2015, Visual Studio 2013 및 Visual Studio 2012에서는 이 프로젝트를 만들고 열 수 있지만 Visual Studio 2010 SP1에서는 그럴 수 없습니다. 자세한 내용은 마이그레이션 가이드을 참조하세요.
BizTalk BizTalk Server 프로젝트는 Visual Studio 2015 또는 Visual Studio 2013과 호환되지 않습니다.
C#/Visual Basic Silverlight 4 응용 프로그램 또는 클래스 라이브러리 Visual Studio에서 프로젝트를 자동으로 업데이트하도록 허용하면 Visual Studio 2013 또는 Visual Studio 2012에서 프로젝트를 열 수 있습니다.
C#/Visual Basic Webform 또는 Windows Form Visual Studio 2013 및 Visual Studio 2012에서 프로젝트를 열 수 있습니다.
Visual Basic 6 및 Visual C++ 6 Visual Studio 2012와 Visual Studio 2013에서는 Visual Basic 6 또는 Visual C++ 6으로 빌드된 응용 프로그램을 디버깅할 수 없습니다. 이 응용 프로그램을 디버깅하려면 이전 버전의 Visual Studio를 사용하세요.
코딩된 UI 테스트 Visual Studio에서 프로젝트를 자동으로 업데이트하도록 허용하면 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.
F# Visual Studio 2010 SP1에서 만든 프로젝트를 Visual Studio에서 업그레이드하도록 허용하면 Visual Studio 2013 및 Visual Studio 2012에서 프로젝트를 열 수 있습니다. 하지만 이전 버전의 Visual Studio에서 만든 Silverlight 프로젝트를 Visual Studio 2013으로 업그레이드할 수는 없습니다. 대신 Visual Studio 2013에서 Silverlight 프로젝트를 만들어 코드를 복사해야 합니다.Visual Studio 2013에서 만든 Silverlight 프로젝트는 Silverlight 5를 대상으로 합니다.
LightSwitch Visual Studio에서 프로젝트를 자동으로 업그레이드하도록 허용하면 Visual Studio 2013에서만 프로젝트를 열 수 있습니다.
로컬 데이터베이스 캐시 Visual Studio 2013에는 로컬 데이터베이스 캐시 템플릿과 데이터 동기화 구성 대화 상자가 포함되어 있지 않습니다. Microsoft Synchronization Services v1.0이 설치된 경우 Visual Studio 2013을 사용하여 Visual Studio 2010에서 만든 프로젝트를 열고 실행할 수 있지만 이 프로젝트를 Visual Studio 2013에서 업데이트하려면 코드에서 수동으로 변경해야 합니다. 또는 Visual Studio 2010을 계속 사용하여 이 프로젝트를 유지하고 업데이트할 수 있습니다. 새로운 개발의 경우 Microsoft Sync Framework에서 제공하는 새로운 동기화 모델을 대상으로 합니다. 자세한 내용은 Microsoft Sync Framework 개발자 센터를 참조하세요.
모델-뷰-컨트롤러 프레임워크 Visual Studio 2010 SP1은 MVC 2 및 MVC 3만 지원하고 Visual Studio 2012는 MVC 3 및 MVC 4만 지원하며 Visual Studio 2013은 MVC 4만 지원합니다. MVC 2에서 MCV 3로 자동 업그레이드하는 방법에 대한 자세한 내용은 ASP.NET MVC 3 응용 프로그램 업그레이더를 참조하세요. MVC 2에서 MVC 3로 수동 업그레이드하는 방법에 대한 자세한 내용은 ASP.NET MVC 3 도구 업데이트로 ASP.NET MVC 2 프로젝트 업그레이드를 참조하세요. MVC 3에서 MVC 4로 수동 업그레이드하는 방법에 대한 자세한 내용은 ASP.NET MVC 3 프로젝트를 ASP.NET MVC 4로 업그레이드를 참조하세요. 프로젝트 대상이 .NET Framework 3.5 SP1일 경우 대상을 변경하여 .NET Framework 4를 사용해야 합니다.
모델링 Visual Studio에서 프로젝트를 자동으로 업데이트하도록 허용하면 Visual Studio 2013, Visual Studio 2012 또는 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.

Team Foundation에서 모델링 프로젝트를 빌드할 때 프로젝트의 레이어 유효성 검사를 시도합니다.Visual Studio 2013에서 Team Foundation Build는 Visual Studio 2010 SP1에서 만든 모델링 프로젝트의 레이어 유효성을 검사할 수 없습니다. 하지만 Visual Studio 2010 SP1에서는 Team Foundation Build가 Visual Studio 2013에서 만든 모델링 프로젝트의 레이어 유효성을 검사할 수 있습니다.
MPI/클러스터 디버깅 Visual Studio 2013, Visual Studio 2012 또는 Visual Studio 2010 SP1을 실행하는 컴퓨터에 같은 버전의 런타임 또는 도구가 설치되어 있으면 세 버전 모두에서 이 프로젝트를 열 수 있습니다.
MSI 설치(.vdproj) 이 프로젝트는 해당 프로젝트 형식을 지원하지 않으므로 Visual Studio 2013에서 열 수 없습니다. 대부분의 Windows 플랫폼과 응용 프로그램 런타임을 직접 지원하는 무료 배포 솔루션인 ISLE(InstallShield Limited Edition for Visual Studio)를 사용하는 것이 좋습니다. ISLE를 사용하여 Visual Studio 설치 관리자 프로젝트에서 데이터 및 설정을 가져올 수도 있습니다. .
Office 2007 VSTO 프로젝트를 업그레이드하여 Office 2013 및 .NET Framework 4를 대상으로 지정할 경우 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 이 프로젝트를 열 수 있습니다.
Office 2010 VSTO 프로젝트 대상이 .NET Framework 4일 경우 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 이 프로젝트를 열 수 있습니다. 다른 모든 프로젝트에는 단방향 업그레이드가 필요합니다.
리치 인터넷 응용 프로그램 프로젝트를 업그레이드할 경우 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 이 프로젝트를 열 수 있습니다.
SharePoint 2007 Visual Studio 2013에서는 이 프로젝트를 열 수 없습니다. 그러나 프로젝트를 SharePoint 2010으로 수동 업그레이드할 경우 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다. SharePoint 2007을 업그레이드하는 방법은 SharePoint 2007에서 SharePoint 2010으로 마이그레이션(IT 전문가용)2007 워크플로를 Visual Studio 및 SharePoint 2010으로 마이그레이션 및 SharePoint Server 2010용 SharePoint Enterprise 검색 마이그레이션 도구를 참조하세요.
SharePoint 2010 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.
SketchFlow Visual Studio에서 WPF 4.5/Silverlight 5로 프로젝트를 업그레이드하도록 허용하면 Visual Studio 2012 및 Visual Studio 2013에서 프로젝트를 열 수 있습니다.
SQL Server 2008 Express 데이터베이스 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다. 이전 버전의 SQL Server에서 만든 데이터베이스 파일(.mdf)이 있을 경우 SQL Server Express LocalDB에서 이 데이터베이스 파일을 사용하려면 먼저 SQL Server 2012로 업그레이드해야 합니다. 하지만 데이터베이스가 더 이상 이전 버전의 SQL Server와 호환되지 않습니다. 업그레이드하지 않으면 같은 컴퓨터에 Visual Studio 2013를 설치 및 사용하여 SQL Server 2008 Express의 데이터베이스를 계속 사용할 수 있습니다. 자세한 내용은 방법: LocalDB로 업그레이드하거나 SQL Server Express 계속 사용을 참조하세요.
SQL Server 2008 R2 Express SQL Server 2008 R2, Visual Studio 2013 또는 Visual Studio 2010 SP1을 실행하는 컴퓨터에 Visual Studio 2012 Express가 설치되어 있으면 세 버전 모두에서 프로젝트를 열 수 있습니다.
SQL Server 보고서 프로젝트 Visual Studio 2013 및 Visual Studio 2012에서 프로젝트를 열 수 있습니다. 로컬 모드에서만(즉, SQL Server에 연결되어 있지 않은 경우) Visual Studio 2010의 뷰어와 연결된 컨트롤에 대해 디자인 타임 환경을 가져올 수 없습니다. 하지만 프로젝트는 런타임에 올바르게 작동합니다. Caution:  Visual Studio 2013 특정 기능을 추가할 경우 보고서 스키마가 자동으로 업그레이드되며 Visual Studio 2012에서 더 이상 프로젝트를 열 수 없습니다.
단위 테스트 Microsoft Test Manager, Visual Studio 2013 및 Visual Studio 2010 SP1에서 Visual Studio 2012를 사용하여 이러한 버전에서 만든 테스트를 열 수 있습니다.
Visual C++ Visual Studio 2013을 사용하여 Visual Studio 2012 또는 Visual Studio 2010 SP1에서 만든 C++ 프로젝트를 열 수 있습니다.Visual Studio 2013 빌드 환경을 사용하여 Visual Studio 2012에서 만든 프로젝트를 빌드하려면 같은 컴퓨터에 두 버전의 Visual Studio가 모두 설치되어 있어야 합니다. 자세한 내용은 방법: Visual C++ 프로젝트를 Visual Studio 2015로 업그레이드을 참조하세요.
Visual Studio 2010 웹 Visual Studio에서 프로젝트를 자동으로 업그레이드하도록 허용하면 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.
Visual Studio 2010 데이터베이스(.dbproj) 프로젝트를 SQL Server 데이터 도구 데이터베이스 프로젝트로 변환하면 Visual Studio 2013에서 열 수 있습니다. 그러나 Visual Studio 2013에서는 이러한 아티팩트를 지원하지 않습니다.

- 단위 테스트
- 데이터 생성 계획
- 데이터 비교 파일
- 정적 코드 분석을 위한 사용자 지정 규칙 확장
- server.sqlsettings
- .sqlcmd 파일
- 사용자 지정 배포 확장
- 부분 프로젝트(.files)

SQL Server 데이터 도구를 설치할 경우 변환 후에 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다. 자세한 내용은 Microsoft SQL Server Data Tools를 참조하세요.
Visual Studio 2010 Visual Database Tools Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 이 프로젝트를 열 수 있습니다.
Visual Studio Lab Management Microsoft Test Manager, Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1을 사용하여 이러한 버전에서 만든 환경을 열 수 있습니다. 그러나 환경을 만들기 전에 Microsoft Test Manager 버전이 Team Foundation Server 버전과 일치해야 합니다.
Visual Studio 매크로 이 프로젝트는 해당 프로젝트 형식을 지원하지 않으므로 Visual Studio 2013에서 열 수 없습니다.
Visual Studio SDK/VSIX Visual Studio SDK 프로젝트를 Visual Studio 2013으로 업그레이드 한 후에는 Visual Studio 2012에서 열 수 없습니다. 자세한 내용은 방법: Visual Studio 2015로 확장성 프로젝트 마이그레이션을 참조하십시오.
Visual Studio용 Microsoft Azure 도구 Visual Studio용 Microsoft Azure 도구 버전 2.1을 사용하는 경우 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다. 프로젝트 대상이 이전 버전일 경우 Visual Studio에서 프로젝트를 버전 2.1로 업그레이드하도록 허용하면 Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.
Windows Communication Foundation, Windows Presentation Foundation Visual Studio 2013, Visual Studio 2012 및 Visual Studio 2010 SP1에서 이 프로젝트를 열 수 있습니다.
Windows Mobile 이 프로젝트는 해당 프로젝트 형식을 지원하지 않으므로 Visual Studio 2013에서 열 수 없습니다.
Windows Phone 7.1 Visual Studio에서 Windows Phone 8.0으로 프로젝트를 업그레이드하도록 허용하면 Visual Studio 2012 및 Visual Studio 2013에서 프로젝트를 열 수 있습니다.
기타 Visual Studio 2012, Visual Studio 2013 및 Visual Studio 2010 SP1에서 대부분의 다른 프로젝트 형식을 열 수 있습니다.
FrontPage 웹 사이트 이 프로젝트는 해당 프로젝트 형식을 지원하지 않으므로 Visual Studio 2013에서 열 수 없습니다.
이식 가능한 클래스 라이브러리 Visual Studio에서 프로젝트를 자동으로 업데이트하도록 허용하면 Visual Studio 2013, Visual Studio 2012 또는 Visual Studio 2010 SP1에서 프로젝트를 열 수 있습니다.

- Silverlight 4를 대상으로 하는 프로젝트는 Silverlight 5를 대상으로 합니다.
- Windows Phone 7.0 또는 Windows Phone 7.5를 대상으로 하는 프로젝트는 Windows Phone 8을 대상으로 합니다.
- Xbox 360을 대상으로 하던 프로젝트가 더 이상 Xbox 360을 대상으로 하지 않습니다.
클라우드 서비스 프로젝트와 같은 Azure 프로젝트(확장명 .ccproj) 및 Azure 리소스 관리자 프로젝트(클라우드 배포 프로젝트)(확장명 .deployproj) 이러한 형식의 프로젝트를 열려면 먼저 Azure SDK for.NET을 설치한 다음 프로젝트를 엽니다.
출처 : https://msdn.microsoft.com/ko-kr/library/hh266747.aspx
2018/02/08 15:51 2018/02/08 15:51