2012년 2월 27일 월요일

ASP.NET 개발 방향

2012년 1, 2월에 집중적으로 UI 쪽 Framework에 대한 조사 및 공부를 했습니다.

개인적인 소회로는 제가 너무 Background 쪽에만 신경 쓰지 않았나 싶기도 하고, 웹 개발을 담당하고 있는 개발자들은 이런 큰 변화를 받아들이고 있나 싶기도 합니다만,

PMS 팀은 다행히 jQuery 등 JavaScript Framework 을 도입하여, 활용하는 것으로 알고 있습니다.

그럼 제가 2달 동안 공부하면서 느낀 점과 감으로 앞으로의 발전 방향에 대해 의견을 말씀 드리겠습니다.

 

  1. JavaScript Framework 필수 사용 
    1. jQuery, jQuery PlugIn, jQuery UI 사용
    2. Kendo UI 
    3. Ext JS 
    4. jQuery 와 Kendo UI 는 같이 사용할 수 있고, Ext JS 도 같이 사용할 수 있지만, Ext JS 는 워낙 많은 내용이 있어 독립적으로 사용할 수 있습니다.
    5. HTML5, CSS3 를 지원하도록 하는 Plug In이 많이 등장할 것이다. <HtmlDrive>
  2. ASP.NET MVC 득세
    1. Razor Template Engine 도입에 따른 생산성 향상
    2. Unit Testing, IoC/DI 를 통한 제품 안정성 향상 가능 (View 가 없어도 가능)
    3. View 는 Design 쪽에서 개발 가능
    4. MVC용 Javascript Framework Adapter 제공 – Kendo UI, Ext JS 도 MVC 용 라이브러리 제공
  3. ASP.NET WebPages 등장
    1. ASP.NET WebPages 는 Razor Template 엔진을 사용하는 WebForm 이라 보시면 됩니다. 즉 MVC 를 어려워 하거나, 단순한 웹 Application의 경우에는 WebPages 를 이용하여, 쉽고 빠르게 웹 페이지를 개발할 수 있습니다. (WebForm ASP.NET Control을 사용하지 않아 직관적입니다)
    2. 기존 C# 코드를 아주 쉽게 적용할 수 있어 고급 개발도 가능합니다.
    3. Master Page 기능이 있으므로, 기존 디자인 구조를 구조적으로 표현할 수 있습니다.
    4. php 와 유사하고, 간단한 Application 개발에 유용
    5. Helper 를 이용한 확장이 가능

더 많은 기술 자료와 발전 방향이 많겠지만, UI에 한정해서는 위의 방향들이 대세가 아닌가 싶습니다.

제가 초보 개발자라면, 우선 ASP.NET WebPages 의 Razor Template Engine 을 공부하여, 쉽고 빠르게 UI를 만들 수 있는 방법을 습득하고, JavaScript Framework 중 jQuery 와 jQuery PlugIn 들을 사용하는 방법 (특히 ajax) 를 먼저 습득하겠습니다.

중급 이상이라면, Razor, jQuery 정도는 기본으로 깔고, ASP.NET MVC 3, 4 를 심도있게 활용할 수 있도록 IoC/DI 및 ORM 을 연동하고, Unit Testing 및 Web Testing 을 자동 수행할 수 있는 기능을 습득하는 것을 추천드립니다.

그 후 UI에서 가장 화려하고, 기능이 막강한 Ext JS 나 Kendo UI를 도입 (이건 뭐 공부랄 것도 없죠 – 시간이 걸릴 뿐이죠) 하는 겁니다.

사실 저도 Razor Template Engine 이란게 새로 나왔다. 좋다 했을 때는 뭐… 또 금방 사라질 기술을 MS에서 광고 때리는 구나 라고 생각했습니다. 그러나 오판이었습니다. 뭐 자세히 볼 것도 없이, ASP.NET MVC 3 Tutorial Index, ASP.NET MVC 3 Razor 를 보니,

와우… 이거 예전 asp 하고는 완죤 다르네… 상당히 편해졌네… 코드도 지저분해지지 않고…

이게 제가 느낀 점이었습니다. 앞으로 저도 써보면서 처음 느낌이 달라질 수 있겠지만, 지금은 Razor Template Engine은 상당히 괜찮은 물건인 거 같습니다.

댓글 5개:

권스 :

ASP .NET은 지금 MVC가 대세인것은 확실한 것 같습니다. 당장 ASP .NET WebForm의 경우에도 이젠 MVC의 Model개념을 가지고 올려고 하고 있고.

무엇보다 Razor는 정말.. 대단합니다. 모든 코드를 단순하게도 만들어주고, 이렇게 편한 웹 개발이 있었나 싶을 정도군요.

Unknown :

저도 ASP.NET MVC3 + Razor Syntax 로 실제 프로젝트를 진행해봤습니다. 깔끔한 코드와 가독성 정말 마음에 듭니다. php + CodeIgniter 에서도 비슷한 구문을 쓰는 것이 대세인 것 같구요. 앞으로 뭐든지 심플하게 바뀌어가는 것 같네요.

Unknown :

오우 다들 저보다 경험이 많으시군요^^ 예전에 MVC 로 하려다가, 팀원들이 어려워해서 포기했는데, 이제 혼자이니 이것 저것 혼자서 해보고 있습니다.
역시 MVC 의 장점은 Unit Testing이라 생각했는데, Razor 라는 놈 때문에 많은 Javascript Framework 에서도 Extensions 들을 제공해서, 상당히 편하게 Web Page를 만들 수 있어 좋습니다.

Jeojy0109 :

Razor 엔진의 기능을 확장하면 더 심플하게 처리할 수도 있습니다. 예를 들어 자주 사용되는 게시판의 경우에도 지금도 여전히 @foreach를 사용하지만, delegate와 helper를 확장하여 사용하면 이 마저도 코드상에서 제거할 수 있구요. partial view를 component 개념으로 개발할시 동반되는 javascript 코드의 경우 본문 중간중간에 삽입되는 지저분함을 모두 하단배치할 수 있구요. Razor만의 장점은 아니지만 기존에 제공되는 확장성과 Razor문법을 섞어 사용하면 정말 가독성 좋은 깔끔한 코드가 나와 햄볶습니다 ^^;

Unknown :

MVC 가 WebForm 보다 Controller 를 상속받아 작업하는 것도 좋고, IoC/DI 도 제맘대로 할 수 있고... Unit Testing 도 꼼꼼하게 할 수 있고... Razor 도 직관적이고... 이제서야 제가 관심가진 게 너무 늦은 감이 있네요^^

뭐 앞으로 .NET 진영을 접하지 못할 수도 없지만... 하게 되면 MVC로 해야겠네요.