비주얼 스튜디오 2012는 기본적으로 ASP.NET MVC 4까지 지원한다. 따라서, 기본으로 생성해주는 템플릿을 그대로 사용한다면 아무런 문제가 없지만, NuGet 패키지를 ASP.NET MVC 5로 업그레이드한다면 아래와 같은 에러를 볼 수 있을 것이다. [A]System.Web.WebPages.Razor.Configuration.HostSection cannot be cast to [B]System.Web.WebPages.Razor.Configuration.HostSection. Type A originates from ‘System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ in the context ‘Default’ at location ‘C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Web.WebPages.Razor\v4.0_2.0.0.0__31bf3856ad364e35\System.Web.WebPages.Razor.dll’. Type B originates from []

About the Guidelines The guidelines provide a practical way of developing .NET applications using C# 3.0 or later depending on versions that applications are using. The existing coding guidelines that Aliencube have been using were originally written in 2003 by Mike Kruger. Many development environments, however, have a lot been evolved from that point of []

소프트웨어 공학 쪽에서 나오는 얘기들 중에 코드 복잡도에 대해 얘기하다보면 항상 언급되는 용어가 있는데 바로 맥카비 복잡도 지수 McCabe’s Cyclomatic Complexity 라는 것이 있다. 이와 관련한 논문은 궁금하면 직접 읽어보면 되고1, 그냥 간단하게 말하자면, 소프트웨어 코드가 복잡해지지 않게끔 간결하게 짜야 한단 얘기다. 이건 TDD를 프로젝트에 적용하다보면 꼭 겪는 문제이기도 한데, 메소드 하나가 엄청나게 길다든가, 복잡하다든가 []

닷넷 웹 어플리케이션을 작성하다보면 여러 가지 방법으로 로그를 작성하게 된다. 직접 로그 핸들러를 만든다거나 log4net 또는 ELMAH 등의 라이브러리를 사용한다거나 해서 핸들링하게 될텐데, 이 때 종종 이벤트 로그를 활용할 일이 있다. 그런데 윈도우 시스템별로 관리자의 권한 설정에 따라 아래와 같은 에러 메시지가 나타날 수 있다. Security Exception Description: The application attempted to perform an operation []

C#에서 코딩을 하다보면 AND 조건을 위해서는 &&, OR 조건을 위해서는 ||를 쓴다. 하지만 종종 & 또는 | 이런 식으로 하나씩만 쓰는 경우를 볼 때가 있다. 주로 정규식 객체를 초기화하는 경우 혹은 리플렉션을 이용하여 프라이빗 멤버에 접근하려고 하는 경우가 될텐데, 아래 코드를 살짝 들여다 보도록 하자

위의 코드에서 볼 수 있다시피 정규식 초기화 또는 리플렉션을 []

Enumerable.FirstOrDefault<Tsource>() 메서드 또는 Enumerable.SingleOrDefault<Tsource>() 메서드는 시퀀스에서 찾는 값이 없을 경우 Tsource 타입의 기본 값을 리턴한다. 대부분의 경우 이 Tsource 타입은 클라스와 같은 레퍼런스 타입이거나 nullable 타입이어서 그냥 간단하게 null 값을 리턴한다.

위의 예제 코드를 보자. 4번 라인에 보면 item == null을 통해 바로 위 FirstOrDefault() 메소드를 통해 가져온 값이 null인지 아닌지를 체크하고 있다. 앞서 []