반응형

카페 홈페이지를 만들면서 겪은 경험 중 하나는 데이터 테이블의 구조를 변경해야 하는 일이 있어서 몇자 적어보기로 했다.
제품 등록 부분이였는데, 이부분은 요구사항을 듣고, 그닥 어렵지 않게 구현되었다.
입력하고, 보여주고 업데이트 하고 지우는 정도인 간단하게 명령어 하나로 끝내버렸다.

그러나.. ㅡ,.ㅡa

일요일날 카페 친구와 이야기를 나누던 중, 제품(products) 관련 부분이 상당히 중요한 부분에서 잘못 이해되고 만들어 졌다는걸 알게 되었다.

초기에 받았던 요구 사항 중

1. 고객은 6개월, 12개월 단위로 한꺼번에 주문을 할 수 있어야 한다. (가격은 관리자가 직접 입력한다.)
    (이해) 각각의 커피를 6개월치, 12개월 치를 한꺼번에 주문한다.
2. 고객은 "이달의 커피" 를 커피 리스트 상단에서 볼 수 있어야 한다.
   (이해) 이달의 커피로 선정된 커피가 따로 상단에 올라간다.
3. 고객은 "샘플러" 혹은 프로모션 으로 관리되는 커피를 구입 할 수 있어야 한다.
   (이해) 따로 이벤트 커피세일로 관리하여 제품리스트와는 별도로 관리한다.

 이야기를 나누던 중, 위의 요구사항 부분이 틀렸다는걸 알았다.

1. 고객은 6개월 제품을 구입하면, 6개월 간 MD 추천의 다른 커피를 매달 받을 수 있어야 한다.
2. 고객은 커피 리스트 상단에 보이는 (MD 추천된) "이달의 커피" 로 받을 커피를 확인 할 수 있다.
3. 샘플러 커피나 프로모션 커피는 이벤트 커피 세일이 아닌 하나의 제품으로 팔려야 한다.

음.. 이런 이런 일이 생기다니.. 커헐..
서로 함께 이야기 하면서 같은 부분을 이정도로 다르게 이해 전달을 잘못 받을 수 있다는거에 충격을 먹었다.
(내 경험이 그닥 많지 않으므로.. ㅋㅋ) 여하튼, 그럼 수정에 들어가야 한다.

그럼 틀리게 만들어진 products 테이블을 보기로 하자. (200903230948203948_create_products.rb)

위의 테이블을 보면, 정말 성의 없이 만들어 진걸 알 수 있다. ㅡ,.ㅡ (챙피해..)
뭐 여하튼 챙피 하지만 잘못된 테이블이니 잘 만들어야 겠다.
(200903230948203948_create_products.rb) 파일 내 붉은 글씨 부분들은 이제 필요없는 부분들이다.
그리고 파란색 부분은 새로 추가 되어야 할 컬럼들이다.

products 테이블 외에도 필요한 새로운 테이블이 2개 생겼다.

1. productorigin: 나라와 농장, 그리고 제품 아이디를 가지고 있는 테이블
2. price : 제품 아이디 당 각각의 무게에 대한 가격을 들고 있는 테이블

그리고 공통 코드 테이블내에 product_type 이 추가 되게 되었다. : Normail, Sampler, CoffeeMonthly

자.. 그럼 서로의 관계는..

1. product has many product origins
2. product origins has one product
3. proudct has many price
4. price has one product
5. product origin has many nationals farms
6. nationals, farms has many product origins


자 그럼.. alter table을 해보기로 하자.

$/ruby script/generate migration change_product

위의 명령어를 쳐서 db/migrate/2009023948029_change_product.rb 파일을 만든 뒤

class ChangeProduct < ActiveRecord::Migration
  def self.up
 remove_column :products, :national_id, :farm_id, :level, :image_url, :p200,:p500, :p1000,:p6m200,:p6m1000, :p12m200, :p12m500, :p12m1000
 add_column :products, :name, :string
 add_column :products, :product_type, :string

  end

  def self.down
 remove_column :products, :name, :product_type
  end
end

up 과 down 쪽에 파란색 부분을 넣어준다. 솔직히 원상복귀를 위해서는 self.up 내에 있는 remove_column 에 있는 모든 컬럼을 self.down 내에 add_column 으로 만들어 줘야 한다. 하지만 이전으로 복귀하지 않을 생각에 새로이 추가된 컬럼 2개만 없애버리기로 했다.

자 이제 rake db:migrate 을 하게되면

==  ChangeProduct: migrating ==================================================
-- remove_column(:products, :national_id, :farm_id, :level, :image_url, :p200, :p500, :p1000, :p6m200, :p6m1000, :p12m200, :p12m500, :p12m1000)
   -> 2.9486s
-- add_column(:products, :name, :string)
   -> 0.2711s
-- add_column(:products, :product_type, :string)
   -> 0.2248s
==  ChangeProduct: migrated (3.4452s) =========================================

두둥~ 테이블이 변경되었다.
자 이제 모델 productorigin 과 price 2개를 만들어 필요한 데이터들을 저장 할 수 있도록 바꾸는 작업만 남았다.
 


 

반응형
반응형
ROR 의 migration 에서 지원되는 컬럽 타입 총 11개
:binary, :boolean, :date, :datetime, :decimal, :float, :integer, :string, :text, :time, :timestamp



옵션 3개
:null => true 혹은 false, :limit => size 즉 크기, :default => value 값



demimal 컬럼 타입만을 위한 옵션 2개
:precision => 소수점자리, :scale => 소숫점 자리 위치
ex) :precision => 5, :scale => 0 로 정하면 -99,999 에서 +99,999
      :precision => 5, :scale => 2 로 정하면 -999.99 에서 +999.99



반응형
반응형
Nate's Tumble Log 에 올라온 (http://n8.tumblr.com/post/117477059/security-hole-found-in-rails-2-3s) 내용으로
RubyonRails.Org (http://weblog.rubyonrails.org/2009/1/2/this-week-in-edge-rails) 에서 소개된 "HTTP Digest Authentication" 의 보안오류에 대해 짚어보기로 하자.

Ruby on Rails 2.3 의 보안 오류 는 RailsInside.com (http://www.railsinside.com/) 에 2009년 6월 3일에 소개되었다.


RubyonRails.Org 에서 소개된 샘플 코드를 보면, authenticate 은 Users 해쉬 를 HTTP Digest Auth 요청을 받아 진행하게 되어 있다.
해쉬를 부를때 아무런 값을 넣지 않고 불러오게 되면 "Nil" 이 리턴이 된다. Rails 의 digest authentication 루틴에서는 nil 에 대한 반응으로 authentication 실패로 받아들인다. 하지만 암호(password) 가 빈칸으로 제공이 된다면.. 입력된 nil 과  리턴된 nil 이 즉 nil==nil 이 되어 실패 값이 아닌 성공값이 되어 인증 성공이 되어 버린다.

2.3 Ruby on Rails 에서 위의 방법으로 인증을 거친다면, 사용자 이름 및 암호에 아무런 값을 넣지 않아도 인증 성공이 되어 버린다.

예로 http://authbroken.heroku.com/ 싸이트를 방문하면 인증을 거치는데 그냥 확인을 누르게 되면 "you needed a password to see this... ( 암호를 넣어야 볼 수 있는 페이지 입니다..." 라는 문구를 볼 수 있다.

Ruby on Rails 의 Core 팀에서 만들어진 패치는 아니지만, 실질적으로 아래 링크된 패치를 적용시켜 인증에 대한 위험 요소를 줄여야겠다.
패치된 내용은 password_procedure 에서 nil 을 반환하면 validate_digest_response 에서 false 를 반환하도록 바꾸었다고 한다.

https://gist.github.com/d5fa1ce8be9dfe0d9d19


반응형
반응형
log 2 번째 이다. 이번엔 동적 드롭다운(dynamic dropdown) 을 해보려 했다.
기본적이기 때문에 인터넷에 도움말들이 많았고, 원하는 내용을 RailsCasts 에서 찾을 수 있었다.
dynamic select 를 사용하여 만드는 Rails 에서의 첫번째 dynamic dropdown 이다.

"제품 등록" 사용자 스토리 중 다음은 동적 드롭다운을 사용하는 부분이다.

1. 제품을 선택할 때 원산지(나라) 와 농장을 선택한다.
2. 원산지(나라)를 선택하면 농장 선택을 할 수 있는데, 그 나라에 해당하는 농장이 보여주어야 한다.

간단한 스토리이다. 하지만 처음 접하는 레일즈에서 어떻게 구현을 해야 할지 난감 했다.
Log 1 을 보면 dropdown list 구현 방법이 나와 있는데, 나라 리스트의 이벤트를 받아 나라 코드를 가지고 해당 농장을 보여주는 간단한 구현을 railscasts 에 나와 있는데로 자바 스크립트를 사용하였다.

   


모든 농장 리스트를 자바 스크립트에서 받아 DOM 로드 후 (원산지) 나라 리스트의 이벤트를 기다린다.
이벤트가 일어나며 농장 리스트에서 이벤트 시 나라 코드가 일치된 농장 리스트만을 배열에 넣어 농장 등롭 다운 리스트에 보여준다.

등록될 나라들의 농장 리스트가 그리 많지 않기에, 원산지 나라 리스트에서 이벤트를 매번 받아 서버에 접속하는 것 보다는 클라이언트 쪽에서 리스트를 들고 있다가 보여주는게 효율적이라 판단되었다.

RailsCast (http://railscasts.com/episodes/88-dynamic-select-menus) #88 번을 참조하여 만들었으며 주의 해야 할 점은

routes.rb 에 map.js ':controller/:action.:format' 을 첨부해야 한다.


그 외에는 별다르게 주의해야 할 사항은 없다.

반응형
반응형
요즘 Ruby on Rails (ROR) 로 커피 온라인 샾을 구성중이다.
xp 방법론을 사용하여 일단 스토리 카드를 작성, googlecode 에 올려 팀과 함께 공유중이며, 일단 ROR 관련 공부를 하겠다는 취지하에 시작한 프로젝트라서 하나의 작업이 완료되면 서로 공유하는 시간을 가지고 있다.

일단 지금은 공통 코드 및 사용자 로그인 부분을 작업 중이며, 나는 공통 코드 중 국가 코드와 농장 코드를 맡게 되었다.
커피의 제품 표시 및 원산지 표시를 하기 위해 국가 및 농장 코드를 공통 코드로 나누었고, 국가 코드엔 국가 별로 커피 등급을 지정하는 표기법이 다르기에 5가지 단계로 나누어 입력하게 넣어 두었다.

농장코드는 농장 이름과 국가 코드를 가지고 있으며 최종적으로 상품 입력시 국가 이름과 농장 이름, 그리고 커피 등급으로 제품 이름이 결정되게 된다.

국가 코드를 만드는 부분은 별다르게 어려운 부분이 없었다. 바로 scaffold 하여 입력시 국가 이름을 한글 영문으로 넣는 부분을 확인하며 영문 부분은 중복 이름 확인 기능을 넣어 주었다.

문제는 농장 코드 입력 부분인데, 여기서 Dropdown 리스트를 만드는 부분에서 이해 하기는 쉬웠지만 사용하기까지 어려운 부분이 있어 잠시 적어보려고 한다.

국가 코드의 id 필드를 참조하여 농장 코드 입력 시 사용자 화면에서는 Dropdown List 로 국가명을 보여주고, 저장시엔 농장 테이블에 국가 코드 id 를 저장케 했다.



자 여기서 농장 테이블(farms) 와 나라 테이블 (nationals) 와의 관계를 적어줘야 하는데, farms 모델 파일인 farms.rb 에서 농장 테이블이 나라 테이블에 national_id 를 foreign_key 로 호함되어 있다고 알려주었고

또한 nationals.rb 에서 국가 테이블은 여러개의 농장 테이블을 가지고 있다고도 알려주어 서로의 관계를 만들어 주었다.

Rails 에는 Find 명령어가 있다. 기본적으로 controller 에서 아래의 명령어를 Controller 에 주면 @farm 객체에 id 순으로 "select * from farms" 의 내용을 담아둔다.


객체변수 선언을 위와 같이  controller 에서 해주면, farms 의 view 단에서 db 에서 들고 온 정보들을 원하는데로 사용할 수 있다. 기본적으로 New, Show, Edit, Delete 가 만들어지는 ROR 에서, 일단 New 에 Dropdown List 를 만들어 보았다.


collection_select 헬퍼(helper) 는 dropdown 리스트를 뷰단에 작성을 해준다. 이때 저장되어야 하는 모델 과 저장 될 모델의 필드명을 지정 해 주고, 보여줄 값들을 가지고 있는 객체변수명과 option 값, 그리고 dropdownlist 에 보여주는 값을 지정 해 준다.

<작성된 html, new.html.erb>

여기서 option 으로 blank 필드를 위에 올려줄 수 도 있고, blank값을 지정 해 줄 수도 있다.


<작성된 html new.html.erb>

자 여기까지는 new.html.erb 에서 농장 이름과, 농장의 나라 이름을 dropdown list 에서 선택하여 farms 테이블의 national_id 에 nationals 테이블의 id 값을 넣는 작업을 하였다.


반응형
반응형

Install VMware Tools

이번에 우분투 9.04 를 설치 하기 전에 브엠웨어 에서 테스트 해봤다.

브엠웨어 사용하다 보면 브엠웨어 설치를 해야 사용하기 편한뎀, 어찌 된게 잘 설치 하는법을 몰라 인터넷을 뒤졌더니 아래 방법을 사용하라고 나왔다. 터미널에서 치는 명령어 들이다.

아직 리눅스를 잘 몰라 명령어들의 기능에 대해 잘 이해하지 못했지만, 아래 명령어들을 차례대로 쳐보니 브엠웨어가 잘 설치되어 사용가능하게 되었다.

sudo aptitude update

sudo aptitude install build-essential linux-headers-$(uname -r)

cp -a /media/cdrom/VMwareTools* /tmp/

cd /tmp/

tar -vxzf VMwareTools*.gz

cd vmware-tools-distrib/

sudo ./vmware-install.pl

반응형
반응형
자.. 내가 우분투를 설치한 이유중 가장 큰 이유는 루비온레일즈 공부 때문이다.
지난번엔 Ruby on Rails 의 강좌 중 Depot 강좌를 따라하는 내용을 올리다 말았는데, 그 이유는 모.. 그냥.. ㅡ,.ㅡa 다른일이 생겨서 잠시 보류 시켰지만, 다시 한번 마음을 가다듬고 루비온레일즈를 공부 하기 위해 모든걸 설치 하기로 했다.

출처 ( http://www.hackido.com/2009/04/install-ruby-rails-on-ubuntu-904-jaunty.html ) :

우분투 9.04 에서 루비 온 레이즈 설치는 10스텝이면 된다. (소요시간은, 인터넷연결에 따라..다르겠지만, 여하튼 )

스텝 1: 우분투의 버전 확인을 하고 업데이트를 모두 완료 한다.
sudo apt-get update sudo apt-get dist-upgrade
스텝 2: 컴파일 시 필요한 패키지를 받는다.
sudo apt-get install build-essential
스텝3: MySQL 과 Ruby 를 다운받을 차례이다. 만약 SQLLite 를 사용할 예정이라면 스텝 3은 건너 뛰어도 상관업다.
sudo apt-get install ruby ri rdoc mysql-server libmysql-ruby ruby1.8-dev irb1.8 libdbd-mysql-perl libdbi-perl libmysql-ruby1.8 libmysqlclient15off libnet-daemon-perl libplrpc-perl libreadline-ruby1.8 libruby1.8 mysql-client-5.0 mysql-common mysql-server-5.0 rdoc1.8 ri1.8 ruby1.8 irb libopenssl-ruby libopenssl-ruby1.8 libhtml-template-perl mysql-server-core-5.0 (sudo 부터 끝까지 한줄임)
스텝4: RubyGems 설치한다. rubyforge.org 에서 최신버전 확인이 가능하다.
wget http://rubyforge.org/frs/download.php/55066/rubygems-1.3.2.tgz tar xvzf rubygems-1.3.2.tgz cd rubygems-1.3.2 sudo ruby setup.rb
스텝5: 설치가 끝난 후 Gem -v 를 쳐서 Gem Command Not Found 라는 에러가 난다면, SymLink 를 해야 한다.
sudo ln -s /usr/bin/gem1.8 /usr/local/bin/gem sudo ln -s /usr/bin/ruby1.8 /usr/local/bin/ruby sudo ln -s /usr/bin/rdoc1.8 /usr/local/bin/rdoc sudo ln -s /usr/bin/ri1.8 /usr/local/bin/ri sudo ln -s /usr/bin/irb1.8 /usr/local/bin/irb
SymLink 이후 Gem -v 를 쳐서 버전 확인을 한다. 이렇게 해도 만약 Gem Command Not Found 가 나올 시 시냅틱 패키지 관리자에서도 RubyGem 설치를 할 수 있다.
스텝 6:  자 이제 루비 레이즈를 설치한다. 뒤에 있는 --no-rdoc --no-ri 옵션은 램이 256MB 정도로 낮은 램을 사용하는 컴퓨터에서 권장한다. 그렇지 않는다면 뒤의 옵션은 생략해도 좋다.
sudo gem install rails --no-rdoc --no-ri
여기까지 완료가 되었다면 rails 설치는 일단 끝이 난다. 스텝 7 부터는 추가적인 프로그램 설치이며 서버를 돌릴 때 필요한 설정들이다. 데스크 탑을 사용하여 개발위주로 사용할 꺼라면 7번 부터는 따라 하지 않아도 된다...

스텝 7 : Phusion 설치
sudo apt-get install libc6 libpcre3 libpcre3-dev libpcrecpp0 libssl0.9.8 libssl-dev zlib1g zlib1g-dev lsb-base
스텝 8 : 어플리케이션 디렉토리 만들기 /var/www/myapp/current 에서 myapp 은 어떤 이름으로 바꾸어도 상관없다.
sudo mkdir -p /var/www/myapp/current Sudo chown -R www-data:www-data /var/www/myapp/current/
스텝 9 : Phusion Passenger 설치. 주의 해야 할 사항은 Phusion Passenger 2.2.1 이 설치되어 있거나 더 높은 버전이 설치되어 있어야 한다. 2.2.0 에서는 될 수도 있긴 하다.
sudo gem install passenger sudo passenger-install-nginx-module
스텝 10:





반응형
반응형
Ubuntu 9.04 버전이 나왔다. Jaunty Jakalope 의 To-do 리스트에서 내가 설치한 패키지들에 대한 내용을 적어본다.
출처(http://theindexer.wordpress.com/2009/04/24/to-do-list-after-installing-ubuntu-904-aka-jaunty-jackalope/)

1. 소프트웨어 저장소 리스트 확장   
sudo gedit /etc/apt/sources.list
Ubuntu 에서 더 많은 소프트웨어들을 다운 받을 수 있게 소스 리스트 확장 시켰다.
a) 위의 명령어로 소스 리스트 파일을 연후 아래 리스트로 바꿔준다.

b) Source.List 파일을 저장하고
sudo apt-get update && sudo apt-get upgrade
를 치면 모든 프로그램이 업그레이드 된다.

2. 소스 컴파일 에 유용한 툴입니다.
sudo apt-get install build-essential checkinstall cdbs devscripts dh-make fakeroot libxml-parser-perl check avahi-daemon

3. Java Runtime 환경입니다.
sudo apt-get install sun-java6-fonts sun-java6-jre sun-java6-plugin equivs ttf-sazanami-gothic ttf-sazanami-mincho

4. emacs 에디터 설치
sudo apt-get install emacs

5. 인스턴스 메신저 (MSN, Yahoo Messenger) 처럼 사용할 수 있는 Emesene, Pidgin 입니다. Emesene 은 윈도우상의 MSN 메신저를 리눅스에 구현해 놓은 프로그램이며 Pidgin 은 따로 다운받을 필요없이 디폴트로 설치됩니다.
a) 프로그램-> 인터넷 -> Pidgin 인터넷 메신저
b) Emessen 설치 : sudo apt-get install emesene
    프로그램->인터넷-> Emessen 메신저

6. NateOn 설치 :
 (http://kldp.net/frs/?group_id=1143 ) 페이지에서 리눅스 용 네이트온이 올라온다.
 아직 인텔 x86 용으로는 9.04 버전 Ubuntu 에서 실행 가능한 네이트는 아직 없다. (2009-05-05)
 해보진 않았지만 다음 링크에서 Pidgin 에서 Nateon 플러그인 설치하는 방법이 자세히 설명되어 나와있다.
 (http://rageworx.tistory.com/426)

7. Adobe Reader
sudo apt-get install acroread acroread-plugins mozilla-acroread acroread-plugin-speech acroread-fonts

8. Multimedia 설치 : 윈도우의 미디어 플레이어 가 있다면 우분투엔 (Vic 과 mplayer) 가 있다.
sudo apt-get install vlc mplayer

(코덱 패키지 설치)
sudo apt-get install
non-free-codecs libxine1-ffmpeg gxine mencoder mpeg2dec vorbis-tools id3v2 mpg321 mpg123 libflac++6 ffmpeg toolame libmp4v2-0 totem-mozilla icedax tagtool easytag id3tool lame nautilus-script-audio-convert mozilla-helix-player helix-player libmad0 libjpeg-progs libmpcdec3 libquicktime1 flac faac faad sox toolame ffmpeg2theora libmpeg2-4 uudeview flac libmpeg3-1 mpeg3-utils mpegdemux liba52-dev

9. 안티바이러스
wget http://files.avast.com/files/linux/avast4workstation_1.3.0-2_i386.deb && sudo dpkg -i avast4workstation_1.3.0-2_i386.deb

Jaunty Jakalope 의 원본 글을 보면 윈도우 관련 프로그램이나 게임들도 실행 할 수 있도록 하는 프로그램들 포함하여 41가지 프로그램들이 나열되어 있다. 내가 당장 필요한 9가지 기본적인 프로그램을 설치 해 봤다.

리눅스가 어렵다고 이야기들 많이 하는데, 별로 내가 사용하는데 필요한 부분들만 충족 시켜 주어 조금만 익숙해 진다면 참 좋은 프로그램일 듯 싶다. 윈도우도 뭐 그닥 내가 100% 사용할 줄 알아서 사용해온 OS 가 아닌건 분명하다. 그렇다면 구지 지속적으로 무거워 지는 OS 를 사용해야 하는지 의문점이 나서 시작한 우분투, 계속 발전해 나아갔으면 한다.


반응형
반응형

간단한 JQuery 소스를 받아 연습해 봤다.
요즘 jQuery 공부? ㅡ,.ㅡa 를 해본답시고 필요에 의해 읽어보고 있다.
아래 기능이 가장 처음 해본 기능 중 하나라.. 올려본다.


slideUp, slideDown, slideToggle (속도, callback) 은 속도 "slow", "normal", "fast" 값으로 지정해 줄수 있으며 또한 숫자 밀리세컨드로 값지정이 가능하다.
옵션으로 callback (function) 도 가능하다. 에니메이션이 끝난 후 실행될 함수가 각각의 엘리멘트들이 한번씩 실행될때 마다 불려 진다.

function callback() {
  this; // dom element
}

출처 (http://.jquery.com")
반응형
반응형

지난 2009년 4월 9일 ASP.NET MVC 1.0 이 출시되었다.
닷넷 개발자라면 누구나 한번쯤은 들어봤을 뉴스이다. 아래 내용은 ASP.NET MVC 1.0  을 다운받을 수 있는 MS 싸이트에서 파일과 함께 간략하게 소개된 내용을 정리해 보았다.
(http://www.microsoft.com/downloads/details.aspx?FamilyID=53289097-73ce-43bf-b6a6-35e00103cb4b&displaylang=en)

간략한 소개
1) 버전 : 1.0
2) 출시 : 2009 년 4월 9일
3) 언어 : 영어

ASP.NET MVC 1.0은 ASP.NET 3.5 런타임에 새로운 MVC 프레임웍을 탑제 하여, MVC 디자인 패턴으로 개발자들로 하여금 웹 어플리케이션을 개발하는데 좀더 유리하게 하였다. UI 나 View 를 비지니스 와 어플리케이션 로직 및 백엔드 데이터와 명확하게 구분될 수 있도록 하였으며, 테스트 주도 개발 또한 쉽도록 하였다.

ASP.NET MVC framework 는 웹 어플리케이션에 사용하는 폴더 구조에 관습적인 특정 패턴의 정의를 부여하며, "action" 의 요청에 대하여 컨트롤러 기반 클래스가 받아 처리토록 하였다.
이번 릴리즈엔 웹 어플리케이션을 만들 때 Visual Studio 2008 MVC 템플릿이 사용할 수 있도록 하였으며 이를 사용한 웹 어플리케이션 개발에 개발자들이 편리하게 선택할 수 있는 특정 유닛 테스트 구조도 포함하고 있다.

MVC 프레임웤은 개발자들의 필요에 따른 정교하며 복잡한 구조 설계나, Dependency Injection(DI) 기술, 새로운 뷰 렌더링 엔진 혹은 개발자가 만든 컨트롤러 등 개발자가 개발에 필요한 확장이 자유롭도록 하였다.

ASP.NET MVC 프레임웤이 ASP.NET 3.5 에 탑제되어 있어 개발자들은 .NET 3.5 의 로컬라이제이션, 권한, 프로필 등 모든 기능들을 함께 사용할 수 있다.

System Requirements
지원 OS: Server 2003, Server 2008, Vista, XP, .NET 3.5 SP1 VS2008, VS2008 SP1 이나 Visual Web Developer 2008 SP1

다운받아 실행해 본 화면을 함께 올립니다.

반응형

'초짜 IT보이 서바이벌 스토리 > ASP.Net' 카테고리의 다른 글

c#.Net Transaction Scope 사용하기  (0) 2010.04.27
ASP.NET MVC 패턴 소개 (C#)  (0) 2009.11.05
ViewState 와 Session 의 장단점  (0) 2008.08.25
ASP.NET 공부시작~  (1) 2008.07.14
ASP.Net vs VB.Net  (0) 2008.03.04

+ Recent posts