안녕하세요. 코난 김대우 입니다.
이번에는 제목에서 말씀 드린 것처럼, WebMatrix에서 어플리케이션을 직접 배포해 보려고 해요.
개인적으로 처음 코난이가 WebMatrix 배포 관련해 든 생각은, - 서버쪽에(IIS7) 뭔가 Razor를 실행하기 위한 extension을 설치 해야 하지 않을까? - 서버에 그 골치아픈 종속성(Dependency)는 어떻게 하지? SQLCE DB인데 파일만 복사한다고 해서 안될거고… SQLCE 런타임 파일은? 어떻게 하는거지? 이런 고민은 그만~ 고민 끝~~!!! 배포의 어려움에 대해서 이야기 하자면, 아마 눈물나는 포스팅 대여섯개는 후닥닥 나올 겁니다. 아니 그럼 WebMatrix에서 배포는 뭐가 다르길래 콧방귀 뿡~? 이런 고민은 정말 상상일까요? - 사장님이 고객사 제과점 웹사이트 만들라고 하네요. 아마 예전에 작업 하셨던 환경이라면 - 사장님이 고객사 제과점 웹사이트 만들라고 하네요. - 제가 주로 작업하는 프레임만 있는 템플릿을 열고 여기에 전달 받은 이미지 몇개 올려서 레이아웃 잡고… (템플릿 폴더를 탐색기로 복사, 개발 테스트용 웹서버에 사이트로 걸고, 에디터 프로그램이나 개발도구 사용… 에디터… 안습…) - DB 처리 속도도 빠르고, SQL서버와 호환도 되는 DB 세팅하고 (작은 DB야 그렇게 쓰고, 좀 큰 DB면.. 고민… MySQL이면 GUI 환경 없어서 대략 안습) - 호스팅사 웹사이트에 배포 (FTP로 폴더 파일들 복사, 파일 누락되서 다시 올리려면? DB배포는? 안습) 고충이 참 많습니다. WebMatrix를 이용한다면 어떻게 할 수 있을까? - 제과점 웹사이트 만들라고 하네요. - 제가 주로 작업하는 프레임만 있는 템플릿을 열고 여기에 전달 받은 이미지 몇개 올려서 레이아웃 잡고 (WebMatrix에서 Template으로 테스트 웹 사이트 바로 완성) - DB 처리 속도도 빠르고, 나중에 제과점 사이트 커지면 빠른 성능의 상위 DB와 호환도 되야 하고, 쿼리도 한두개 확인 해야 하고 (WebMatrix 자체 GUI기반 DB 활용, MySQL도 GUI로 처리 가능) - 호스팅사 웹사이트에 배포 (콧방귀 뿡~ WebMatrix에서 배포 진행)
하실 수 있습니다. 정말? 아래 링크 참조 하세요.
(1) WebMatrix와 Razor! 이제 시작합니다. (2) WebMatrix 설치부터 Hello World까지 [동영상 강좌] (1) WebMatrix 첫 실행 & Hello World까지 달려요~ [동영상 강좌] (2) WebMatrix 5분 리뷰~ [PHP개발] 후덜덜~ 진짜? WebMatrix로 깔끔하게 PHP 개발이 가능? 강좌를 쭈욱 따라오신 분들은 공감해 주실 겁니다. 그렇죠? ^_^;;; 자자~ 서론이 길었죠~ 그렇다면 오늘의 목표인 배포 과정을 진행해 보시죠~!!! 어플리케이션 설치부터 코드 수정, 배포까지 한방에 끝내는 WebMatrix, 그 배포 과정을 저와 함께 진행해 보시죠~
이렇게 Site From Template을 실행합니다. – 자신의 Template을 물론 걸어 놓고 사용도 가능합니다. 저는 이렇게 제과점 사이트를 위해 Bakery Template을 사용합니다. 클릭질만으로 template 기반 테스트 웹사이트가 완성되지요. 보시면 template을 통해 사이트가 만들어 졌습니다. 바로 웹사이트로 구동되고 실행도 되지요. 테스트 환경 구축 끝~ 바로 코딩 과정이나 DB 테스트도 했다고 가정하겠습니다. 다음으로 배포를 진행할 시간. 국내에는 아직 WebMatrix기반 배포를 지원하는 호스팅사가 없기 때문에 기본 등록된 해외 호스팅사를 활용해 보겠습니다. 당연하지만, 사내에 있는 IIS7 웹서버에 배포도 물론 설정을 하시면 가능합니다. 해당 내용은 맨 아래 기술해 두었으니 참고하세요. 웹서버를 구성할 환경이 안되는 분들이 많으실 듯 하니, Publish 메뉴의 Find Web Hosting을 진행해 호스팅사를 찾아 볼께요. – 물론 Beta 기간이라 사용 무료이며 메일 주소 정도만 사용하면 됩니다.(현재 2010년 9월 28일 WebMatrix Beta 입니다. 나중에 공식 버전이나 RC버전이 나와도 호스팅사 등록 패턴은 비슷 하실 거에요. 이후에 변경되어도 아래 내용대로 참조해 등록 하시면 될겁니다.) Publish 메뉴의 Find Web Hosting을 클릭하니 ADHOST라는 곳이 맨 위에 보이네요. WebMatrix를 완벽 지원한다고 하네요. Learn More를 클릭해 한번 이 호스팅사를 이용해 보겠습니다. 들어가니 바로 WebMatrix 호스팅이라는 말이 있네요. 가입해야 사용 가능하겠죠? Sign up now 하시면 됩니다.
대충 정보를 입력 하시구요. email은 validation을 체크하니 정확히 넣으세요. 이렇게 확인하고 Submit 하면 됩니다. validation을 위해 이메일을 체크 하라고 하네요. 대략 이런 메일이 도착해 있습니다. 저 링크를 클릭 하시면 validation이 완료 되지요. 이제 로그인 정보 등이 포함된 메일이 왔다고 합니다. – 네 PDF 파일로 깔끔하게 첨부되어 도착해 있네요. 첨부된 PDF를 열어 보시면 상세한 설명과 함께 이렇게 WebMatrix를 위한 sample publish 설정까지 알려 줍니다. 이 정보를 이용하면 되지요~
자~ WebMatrix 메뉴에서 Publish - Configure를 선택 하시고… 조금 전에 WebMatrix에서 만든 제과점 웹사이트를 배포 합니다. (저만 그런지 모르겠는데요, PDF파일에서 복사해 쓰면 이상하게 Username에 공백이 포함되네요.) 네.. 감동입니다.
WebMatrix가 웹사이트 파일들은 물론, Razor 구동과 SQLCE 구동 등에 필요한 모든 Dependency를 자동으로 추출해 리스트합니다. 저 처음 할때 여기서 정말 깜딱 놀랐어요!!! DB 파일 역시 체크 하시면 서버로 배포 되지요. 배포가 진행됩니다. more detail을 클릭하면 상세 과정이 나와요. 배포가 끝나면, 링크까지 상세히 제공해 주네요. 클릭 하시면? 후덜덜~ 배포가 완료되었습니다. DB를 사용하는 Our Products 링크를 가 보시면~ 네… SQLCE DB도 동작합니다. 모두모두 아무 문제 없이 자알 동작 합니다!!! - 호스팅사 테스트 웹사이트 등록 과정이 길었지, 배포 과정은 말 그대로 한방에 끝! - 자동으로 웹사이트 구동에 필요한 모든 종속(Dependency) 파일을 자동 배포 합니다. - 참고로, 한번 배포 한 후, 다음 배포시에는 변경된 파일들만 WebMatrix가 자동으로 추적해 변경된 녀석들만 배포합니다. - 기본 WebMatrix의 DB인 SQLCE DB도 배포되며, Connection String을 이용할 경우(SQL서버)에는 요녀석만 수정 후 배포도 가능합니다.
- 알고 있으시지요? 호스팅사 선택은 국내에서 지원하는 호스팅사가 있을 겁니다. 개인적으로, WebMatrix 배포 기능을 처음 보고 많이 놀랐습니다. 서버쪽의 설정이나 불필요한 Extension 설치 없이 개발 도구인 WebMatrix만으로 테스트 웹사이트 구축, 개발은 물론 배포까지 하나의 도구로 가능하다는 것을 실감할 수 있었습니다. 어떠세요? WebMatrix가 바꾸게 될 웹 개발자의 개발 업무 프로세스! 조금 실감 하시나요? 이제 이제 첫 Beta인 WebMatrix가 앞으로 어떻게 진화할지 기대됩니다. 전문 개발자와 IIS 웹서버 관리자를 위한 참고 - WebMatrix의 해당 배포 기능은 Microsoft Web Deploy 기능을 이용합니다. - 호스팅사 뿐만 아니라 사내에서 구축하기 원하시면 IIS7의 Management Service 등을 활용해 이러한 배포 서비스 기능을 개발자에게 제공 가능합니다. - Web Deploy 서비스는 HTTPS로 8172 포트를 이용합니다. – 서버측 방화벽, 개발자 환경의 Proxy 등에서 미리 가용한지 확인이 필요합니다. - WebMatrix 뿐만 아니라 Visual Studio에서도 이 Web Deploy 기능을 이용 합니다. - 웹어플리케이션 배포의 목적 뿐만 아니라 IIS 운영의 목적(전체 웹서버 Export, Import 등)으로도 이 Microsoft Web Deploy 기능을 활용 가능합니다. 많은 도움 되시길 바랍니다.
지난 동영상 참고 자료 :
[동영상 강좌] (1) WebMatrix 첫 실행 & Hello World까지 달려요~
[동영상 강좌] (2) WebMatrix 5분 리뷰~
[동영상 강좌] (3) Razor 강좌 - 기본 구문 및 주석 처리
[동영상 강좌] (4) Razor 강좌 - 코드 블록과 POST 처리
[동영상 강좌] (5) Razor 강좌 - 재사용 가능한 코드 생성 [동영상 강좌] (6) Razor 강좌 - 레이아웃 페이지 구조 처리
[동영상 강좌] (7) Razor 강좌 - 파일처리, 파일 업로드
[동영상 강좌] (8) Razor 강좌 - 데이터베이스 처리 [동영상 강좌] (9) Razor 강좌 - Helper 소개(이미지, 비디오)
[동영상 강좌] (10) Razor 강좌 – 디버깅
[동영상 강좌] (11) Razor 강좌 - 캐시 처리
[동영상 강좌] (12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원)
[동영상 강좌] (13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈
[동영상 강좌] (14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현
Razor & WebMatrix 시리즈 강좌
(1) WebMatrix와 Razor! 이제 시작합니다. (2) WebMatrix 설치부터 Hello World까지 (3) Razor 강좌 - 기본 구문 및 주석 처리 (4) Razor 강좌 - 코드 블록과 POST 처리 (5) Razor 강좌 - 재사용 가능한 코드 생성 (6) Razor 강좌 - 레이아웃 페이지 구조 처리 (7) Razor 강좌 - 파일처리, 파일 업로드 (8) Razor 강좌 - 데이터베이스 처리 (9) Razor 강좌 - Helper 소개(이미지, 비디오) (10) Razor 강좌 – 디버깅 (11) Razor 강좌 - 캐시 처리 (12) Razor 강좌 – SMTP 메일전송(Live메일과 Gmail지원. SSL지원) (13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈
(14) Razor 강좌 - URL 라우팅(Routing) 으로 SEO 최적화 구현
지난 세미나에서 WebMatrix는 단순한 개발 도구가 아니라 “스택-Stack”이라고 말씀 드렸는데요. 몇몇 분들이 좀더 자세히 알고 싶다고 따로 피드백을 주셔서 정리해 봅니다.
WebMatrix는 단순 개발 도구 아닌가요? 넵. 개발 도구의 이름이 WebMatrix입니다. Razor 개발을 하는 개발 도구이지요. 하지만, 개발자라면 정확히 내부에 어떤 요소들이 있으며 어떻게 서로 유기적으로 동작하는지 한번 고민해 볼 만 하실 겁니다.
WebMatrix를 표현하는 좋은 이미지라서 골라 봤습니다.
아래 내용을 살펴 보면 WebMatrix에 어떤 녀석들이 포함되어있는지 아실 겁니다.
- Web Server : IIS devloper 웹서버 - Framework Web Apps : Web Pages 엔진과 Razor - Database Engine : SQL CE 데이터베이스 - Integrated Tool : WebMatrix 개발환경
이 정도만 이해해 주셔도 충분할 것 같습니다. 중요한건, WebMatrix가 우리의 웹 개발을 조금 더 편하고, 행복하게 해 줄거라는 것이겠지요.
참고자료 : WebMatrix 세미나를 진행했어요. Microsoft WebMatrix 공식 웹사이트
동영상 참고 자료 :
안녕하세요. 김대우 입니다. 지난 세미나에서 Razor와 WebMatrix 벗겨먹기라는 주제로 세션을 진행 했는데요.
진행하면서 많은 분들이 궁금해 하실 Razor 벗겨먹기 내용과 FAQ 등을 따로 정리해 보았습니다.
Razor 벗겨먹기! - Simple, Small, Seamless가 제작 컨셉이며 지상과제 - 살짝 이라도 복잡한 건 다 벗겨 버림 - 개발을 위해 Class나 OOP를 이해할 필요 없이 개발 자체에 집중 가능 - 코드 비하인드 기본 없음. - 기존 웹사이트 실행을 위해 빌드(Build) 과정 생략 - Web.config 기본 없음. – 초기 웹사이트 설정 없음 - SEO 기본 지원 - 대부분의 웹 작업을 “Helper”로 쉽고 빠르게 처리 가능 - 개발 언어는 C#과 VB.NET 지원 - 개발을 위해 추가 툴이나 서비스 설치 불필요
특히, 기존에 웹 개발을 진행하신 경험이 있거나, Razor의 실체(?)가 궁금하신 분들은 도움 되실 거에요. - 참고로 아래의 내용은 제 사견(?)도 포함되어 있음을 미리 밝힙니다. ^_^;;;
Q. Razor 용어에 차이가 있는 것 같아요. 어디는 ASP.NET MVC의 뷰 엔진(View Engine)이라는데 어디는 Web Pages?
A. WebMatrix로 개발 가능한 프레임워크 입니다. 기본 개발 구문(Syntax)가 Razor 입니다. ASP.NET MVC의 View 엔진으로 Razor도 있습니다. 하부 구조적으로는 같다고 보시면 됩니다. 하지만, 개발 경험이나 개발 환경(개발툴) 사용 경험등은 완전히 틀리지요.
코난이가 이야기 드리는 Razor는 모두 ASP.NET Web Pages의 Razor 입니다. 여기에서 앞의 ASP.NET Web Pages를 대부분 없애고 "Razor"라고 쓰게 될겁니다. 즉, Razor 개발 = WebMatrix 개발 = ASP.NET Web Pages with Razor 개발 이라고 보시면 됩니다.
Q. 마이크로소프트가 또 하나 찔러 보는건 아닌지?
A. Razor의 코드명 시절부터 햇수로 2년 가까운 시간을 기다려온 한 사람으로 경험을 말씀 드리자면, Visual Studio와 같은 WebMAtrix 개발 환경에, Web Pages, SQL CE DB와 IIS Express까지 다양한 도구와 프레임워크, 플랫폼이 동시에 발표 되었습니다. 하루아침에 뚜닥뚜닥 만든 녀석이 아니라, ASP.NET 웹개발의 한 축으로 개발되었지요. 오랜시간 마이크로소프트의 기술을 봐 온 한 사람으로, Beta 시절부터 이렇게 달리던 녀석이 얼마나 있었을까...? 하는 생각이 듭니다.
Q. ASP 4.0 같아요!!??
A. 그 만큼 쉽다는 말씀이지요? ^_^ 저의 소견을 말씀 드리자면, ASP나 PHP의 쉬운 장점과 ASP.NET의 성능과 안정성 같은 장점을 쏙쏙 빼와 만들게된 녀석이 바로 Razor가 아닐까 감히 말씀 드리고 싶어요. ASP 4.0은 아마 앞으로도 발표 되기는 힘들것 같네요.
Q. Java(JSP)나 PHP와 경쟁 하기 위한 기술인가요?
A. 그렇지 않습니다. ASP.NET 웹 개발의 다양성을 위한 마이크로소프트의 노력으로 봐 주시면 좋을 것 같습니다. Razor는 10년만에 리노베이션된 새로운 웹 개발 방식입니다. 10년의 시간동안 변화되고 새로워진 다양한 개발 방법들을 그 안에 품고 있으며 이런 요구를 수렴해 개발된 기능들이 다른 개발 언어들과 차별화되는 부분이라고 생각합니다.
Q. .NET은 몰라도 되나요?
A. 저의 소견을 말씀드리자면, 네! 모르셔도 됩니다. 맨위 Razor 벗겨먹기에서 소개해 드린 것처럼, Razor는 기존 웹 개발의 모든 복잡성을 벗겨버린 녀석입니다. 그만큼, 단순하고 쉽다를 지상목표로 하고 있구요. Razor로 개발을 진행 하시면서 자연스럽게 C#을 접하시고, 한단계 더 나아가시기 위해 .NET과 MVC를 공부하시면 그게 최선 아닐까요? 시작부터 .NET을 모두 알고 시작할 필요는 없다고 생각합니��. - 제 강좌를 주욱 보시면 아마 제 마음을 이해해 주실 거에요. 제 강좌 어디에도 .NET에 대한 이야기는 없지만, 개발은 가능하니까요.
Q. 초보자 또는 학생용 저급 개발 언어라서 엔터프라이즈 환경에서는 적용이 불가할 것이다?
A. 소견입니다만, 웹 개발은 점점 더 Agile해 지는 것 같습니다.(업무 환경이 아니라 개발 패턴을 말씀 드리는 겁니다.)
하나의 이벤트 페이지나 게시판과 같은 오픈소스 CMS나 블로그엔진을 만들기 위해 반드시 복잡한 기술이나 프레임워크를 써야만 개발자로 인정 받는 것일까요? 기업의 모든 웹은 반드시 모두 무겁고 복잡한 프레임워크를 기반으로한 사이트를 써야만 할까요? Razor라는 "면도날"이름에서 보시는 것처럼, 가볍고 빠른 개발에 이용하는 것은 어떨까요. 엔터프라이즈 역시 마찬가지라고 생각합니다. Pattern & Practice에 Razor를 이용한 프레임워크 관련 내용이 나오게 되면 엔터프라이즈 기술이 될까요? 웹폼이나 MVC, 상용 프레임워크가 사용되어야 엔터프라이즈일까요? 소견으로는 "목적에 맞는 선택"이 그 답이 되지 않을까 감히 생각합니다.
Q. Razor 개발 환경인 WebMatrix는 곧 유료화 될 예정인가요?
A. 아니오. 앞으로도 계획 없습니다.
이렇게 부족하지만, 저의 소견을 정리해 보았습니다. 기존에 개발일들을 해오신 분이라면 FAQ에 대한 저의 소견이 조금 당황 스러우셨을지도 모르겠네요. Razor와 WebMatrix는 분명 웹 개발의 한 축으로 자리잡게 될 것입니다. 많은 관심 부탁 드려요~
발표 자료 입니다. 도움 되시길 바랍니다.
다운로드 : 김대우 - Razor와 WebMatrix를 소개.pdf
다운로드 : 김시원 - Razor와 WebMatrix로 게시판 만들기.pdf 게시판 소스코드 다운로드 : CielBoard.zip
소스코드를 여는 방법은 압축을 푸시고 탐색기에서 마우스 우측 버튼을 "CielBoard" 위에서 누르신 후 "Open as Website with Microsoft WebMatrix" 하시면 됩니다. - 참 쉽죠잉~
도움 되시길 바랍니다. ^_^
안녕하세요. 김대우 입니다.
지난 OData Helper에 이어 또하나의 WebMatrix 외부 Helper가 공개되었습니다. 바로, Azure Helper 입니다.
Windows Azure Storage Helper for WebMatrix
필요에 의해 검색을 보고 오셨거나, 전문 개발자 분이실테니 상세한 설명은 줄이도록 하겠습니다. Azure를 잘 모르시겠거나, 클라우드 컴퓨팅에 대해서 잘 모르신다면 아래 링크들의 소개 자료를 참고 하세요. 특히, JSPARK님의 블로그에 따라하기 등의 강좌도 상세히 잘 되었 있으니 도움 되시길 바랍니다.
소개 링크 :
New: Windows Azure Storage Helper for WebMatrix Windows Azure Storage Helper
참고링크 :
JSPARK 블로그 - Windows Azure 블로그 [한국어 애저 자료] 발표자료 01 윈도우 애저 플랫폼 소개 & 02 윈도우 애저 소개 VSTS팀블로그 Cloud 포스트 : http://vsts2010.net/category/Cloud
이 포스트는 간단히, WebMatrix로 Azure의 Storage를 처리하는 예제라고 보시면 됩니다.
(기본 Storage는 Queue, Table, Blob이 있습니다. SQL Azure는 따로 존재합니다.)
앞의 포스팅인 OData Helper를 소개해 드리면서 OData Helper가 다양한 서비스에 접근 가능한 API라고 소개해 드렸는데요.
Razor와 WebMatrix로 OData 처리 - OData Helper가 발표 되었습니다.
마찬가지로, Azure Helper는 이 OData를 이용하며 Azure의 데이터를 쉽게 다루도록 돕는 Helper라고 보면 됩니다. OData와 마찬가지로, 런타임 바이너리를 Codeplex에서 다운로드하고 bin 폴더에 복사해 두시면 준비 끝.
당연하지만, Azure 기본 account + Storeage가 필요합니다.
대략 이런 형태로, 2010년 8월 30일 현재 Azure Dash board의 제 계정 화면 입니다. – 중요 정보는 제거 했습니다. Account 정보를 한눈에 볼 수 있습니다. Azure Storage에 테이블을 생성하고, 데이터를 삽입하고, 조회하고 하는 처리 관련 예제는 아래와 같습니다.
@using Microsoft.Samples.WebPages.Helpers @{ WindowsAzureStorage.AccountName = ""; WindowsAzureStorage.AccountKey = ""; }
_start.cshtml에 Azure AccountName과 Key를 넣습니다. _start가 뭔지 모르시면 기본 강좌의 (13) Razor 강좌 – 웹사이트 전체, 또는 폴더 내 파일 요청 시 항상 실행 되는 모듈 을 참고 하시길 바랍니다.
@using Microsoft.Samples.WebPages.Helpers @{ WindowsAzureStorage.CreateTable("NewSampleTable");
var row1 = WindowsAzureStorage.CreateRow("partition1", "row1"); row1.Name = "John Doe"; WindowsAzureStorage.InsertRow("NewSampleTable", row1);
var row2 = WindowsAzureStorage.CreateRow("partition1", "row2"); row2.Name = "Jessica Anderson"; WindowsAzureStorage.InsertRow("NewSampleTable", row2); }
Azure Storage에 Table을 생성하고 insert를 수행하는 예제
@using Microsoft.Samples.WebPages.Helpers @{ var rows = WindowsAzureStorage.GetRows("NewSampleTable"); var grid = new WebGrid(rows); }
WebGrid로 데이터를 조회하는 예제
@using Microsoft.Samples.WebPages.Helpers @{ var row = WindowsAzureStorage.GetRow("NewSampleTable", "partition1", "row1"); row.Name = "Peter Simmons"; WindowsAzureStorage.UpdateRow("NewSampleTable", row); }
데이터 업데이트 예제
@using Microsoft.Samples.WebPages.Helpers @{ WindowsAzureStorage.DeleteRow("NewSampleTable", "partition1", "row1"); }
데이터 삭제 수행 예제
@using Microsoft.Samples.WebPages.Helpers @{ WindowsAzureStorage.DeleteTable("NewSampleTable"); }
Storage의 Table을 삭제하는 예제 입니다. 아울러 Blob Storage처리 역시 아래 링크에서 보실 수 있으니 도움 되시길 바라며…. http://azurestoragehelper.codeplex.com/documentation Queue Storage나 다른 기능들은 현재 구현 중이라고 하니 앞으로 기대됩니다. - 2010년 8월 30일
감사합니다.