ASP.NET Core 과 Asp의 차이 ?
◆ 클라우드 기반 웹 응용 프로그램을 개발하기 위해 오픈소스로 새롭게 개발된 크로스 플랫폼 프레임워크다
◆ 온프레미스 환경에도 배포하여 수행할 수 있는 앱을 개발하기 위한 최적화된 개발 프레임워크를 제공하기 위해서 완전히 새롭게 개발
온프레미스 소프트웨어는 인터넷 네트워크에 연결 된 서버팜이나 클라우드 등의 원격 환경에서 사용하는 것이 아니라 건물에서 일하는 직원 또는 단체에서 설치, 실행하는 소프트웨어를 말한다. on-prem software(온프렘 소프트웨어) 또는 on-premise software(온프레미스 소프트웨어)라고 줄여서 쓰기도 하며 shrinkwrap software라고 부르기도 한다.
◆ 오버헤드를 최소화한 모듈화된 컴퍼넌트로 구성되어 있어서, 솔루션 구성시에 유연성을 유지
◆ 윈도우, 맥, 리눅스에서 ASP.NET Core 응용 프로그램을 개발할 수 있다
왜 ASP.NET Core를 만들었는가?
◆ 아키텍쳐 변경을 통해 군더더기 없이 모듈화된 코어(core) 웹 프레임워크를 만들기 위해
(ASP.NET Core는 System.Web.dll 에 더이상 기반하지 않고, 잘게 분리된 NuGet 패키지들에 기반해서 최적화된 개발가능) (응용프로그램이 필요 이상의 모듈을 포함하지 않기 때문에 보안상 개선 효과가 있고, 서비스 하는 부담 또한 줄여준다)
(사용한만큼 지불하는(pay-for-what-you-use) 모델을 채택함으로써 응용프로그램의 성능이 개선)
◆ ASP.NET Core에서 중대한 개선사항 포함
(새롭게 경량화되고 모듈화된 HTTP 요청 파이프라인)
(IIS 또는 개발자 자신의 프로세스에서 셀프 호스트할 수 있는 능력)
(닷넷 코어에 기반한 진정한 side-by-side 앱 버전 관리(versioning)) = 동일한 컴퓨터에서 여러 버전의 응용 프로그램 또는 구성 요소를 실행
(모든 기능이 NuGet 패키지 형태로 추가)
(NuGet 패키지들을 생성하고 사용하는 것에 대한 통합된 지원)
(웹 사용자 인터페이스와 웹 API를 위한 단일 웹 스택)
(클라우드를 위한 환경 기반 구성)
(내장된 종속성 주입 기능)
(모던 웹 개발을 단순화 시킨 새로운 도구들(tooling))
(윈도우, 맥, 리눅스에서 개발하고 실행할 수 있는 크로스플랫폼)
(오픈 소스와 커뮤니티에 초점)
ASP.NET Core 특징
◆ Kestrel 자체 웹서버 운용 가능
◆ 동적 컴파일
- 기존에는 빌드 하고 배포 했으나 에디터로 수정 가능함
◆ 의존성 주입 포함 - Startup.cs 에 ConfigureServices에서 아래와 같이 트랜젝션 제어 주입이 가능함
- services.AddTransient<IService, Service>();
- services.AddScoped<IService, Service>();
- services.AddSingleton<IService, Service>();
◆ Bower(정적파일 패키지 관리[jquery, angular, bootstrap 같은것 관리]), Gulp(빌드자동화), Grunt, NPM, Node.js, TypeScript, Yeoman 등 통합 가능
- 스크립트 압축, 빌드 자동화 등 커뮤니티 기반 웹개발 도구를 포함한다.
ASP.NET Core 몇가지 과거와 달라진 사용법
◆ ViewEngine 커스터 마이징
Startup.cs -> ConfigureServices(IServiceCollection services)
services.AddMvc().Configure<MvcOptions>(options => { options.ViewEngines.Add(new MyCustomerViewEngine ()); });
◆ MapRoute 커스터 마이징
Startup.cs -> Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
app.UseMvc(routes => {routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}/{id?}"); });
◆ BundleCollection 커스터 마이징
bundleconfig.json에 설정하여 사용
◆ GlobalFilterCollection 커스터 마이징
services.AddMvc(options =>
{
options.Filters.Add(new AddHeaderAttribute("GlobalAddHeader",
"Result filter added to MvcOptions.Filters")); // an instance
options.Filters.Add(typeof(SampleActionFilter)); // by type
options.Filters.Add(new SampleGlobalActionFilter()); // an instance
});
'프로그래밍 > 기타프로그램툴' 카테고리의 다른 글
웹 개발를 위한 것들 제로보드xe+그누보드+워드프레스+부트스트랩(Bootstrap)+제이쿼리모바일+제이큐터치 (0) | 2018.03.28 |
---|---|
프로그래머에게 잘 알려진 무료 텍스트 에디터 노트패드(notepad) (0) | 2017.05.12 |
프로그램을 빠르고 쉽게 에디트 플러스 (Edit plus) (0) | 2017.04.29 |