29
1 2015.3 모스티소프트 기술연구소 ASP.NET MVC 5 GT Framework v2.0.2 for ASP .NET MVC 5

GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

1

2015.3

모스티소프트 기술연구소

ASP.NETMVC 5

GT Framework v2.0.2

for ASP.NET MVC 5

Page 2: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

INDEX GTFramework Web

for ASP.NET MVC

Component Stack

Data Architecture

Layer Architecture

Functions

Layout

Validation

다국어

인증 및 권한

Html Helter Controls

Page 3: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

3Go Together with MostiSoft

ASP.NET MVC 5 아키텍처 최적화

마이크로소프트 최신 아키텍처 요소 반영

ASP.NET Identity / OWIN 프레임워크

부트스트랩 CSS 프레임워크

JQuery 스크립트

Business용 자체제작 Html Helper Control 제공

Data Annotation을 이용한 Validation 처리 및 확장

Action 및 View Page 버튼 권한 처리

다국어 지원

에러 처리 및 로깅

기타 Utility API

GTFramework Web - for ASP.NET MVC

인증 / 권한

Base Library

Layout 다국어

Html Helper Controls

Web Service Client Proxy

Runtime

유효성

검사

세션/캐쉬

관리

Page 4: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

4Go Together with MostiSoft

GTFramework Web - for Component Stack

ASP.NET IDENTITY

.NET Framework 4.5

ASP.NET MVC 5

ASP.NET OWIN

Base Library

Controller Base

Web View Page Base

Web Service Proxy

WCF Proxy

AJAX Proxy

MSMQ Proxy

Session & Cache

User Profile

Application Profile

Cache Management

Logging

Authentication

GT RMS(권한관리)

Authorization

MDI Page View

Layout Template

UI View

Popup View

Common Dialog View

Multi Language

Multi Language Handler & Tool

Html Helper Controls

CalendarTextBox CheckBoxList

SearchTextBox SearchTextBoxExtended

RadioButtonList 기타 (13종)

Validation Support

Multi Language

GtValidator JS

Custom Data Annotation

Data AnnotationModel Generator Script

Data Annotation

Global Filter

Authorization

Error Handler

No Cache

Action History

UI Logging

Service Logging

통계 / Utilization

GT Framework for ASP.NET MVC 5

Identity View

Page 5: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

5Go Together with MostiSoft

Model / Entity 기반 다중 Layer의 데이터 통신 지원

WCF 기반 Web Service 호스팅을 제공함으로써 다양한 Application 개발 환경에 유연하게 대처

Web, Windows, Mobile Client 등 멀티 디바이스의 요청에 대해 비즈니스 코드의 변경 없이 최적의 통신 방식으로 동시에 호스팅

Data Architecture

JSON W/SBusiness

Component

1 2

Web ClientASP.NET / JSP

Smart ClientClient WSHTTP W/S

TCP W/S

BusinessComponent

BusinessComponent

Web Client는 JSON 메시지를 전달 하고Smart Client 및 Mobile Client 는JSON / SOAP 메시지를 서버에 전달 한다.

클라이언트의 요청 타입에 따라서 서비스는 최고의 안정성과 성능을 보장하는 방식으로 호스팅 된다.

• SOAP 1.x• HTTP/HTTPS 전송• 데이터 압축

• SOAP 1.x• HTTP/HTTPS 전송• 데이터 압축

Mobile Client

SOAP/ JSON메세지

동일한 Business 코드 호출

Legacy 1

Legacy 2

Legacy nBinary 인코딩지원

Page 6: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

6Go Together with MostiSoft

Layer Architecture (.NET Based)

Client

MSMQ

WCFClient Proxy

Module

A.Biz.dll

B.Biz.dll

C.Biz.dll

AJAX 서비스호스트 Legacy

Interface

업무1웹서비스

업무2웹서비스

MSMQInterface

DatabaseInterface

System2

DB

Presentation Layer Service Layer Façade Layer Business Logic Layer Data Access Layer Data

Biz

Biz

Biz

Biz

Biz

Service Legacy

System1

ASP.N

ET M

VC

VIEW

Sm

art C

lient

VIEW

Controller

View Model

/Event Handl

er

View LayerUI Logic Layer

Client Proxy

Model 바인딩 IF Logic

WEB 및 스마트클라이언트의 로직 재사용을 극대화 시키고 유지보수의 편의를 위해 UI Logic 레이어를 추가 하여View와 UI Logic을 분리 함

View에서 AJAX를 이용해 Web Service에 바로 접근 하는 경우를 위해 별도의 WS EndPoint 노출

Interface

Interface

Interface

기타FaçadeClass

업무1FaçadeClass

업무2FaçadeClass

Page 7: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

7Go Together with MostiSoft

운영 및 유지보수 편의를 위한 Open UX Framework 도입

부트스트랩 CSS 프레임워크

JQuery

Framework 기본 Layout 제공

MDI Tab Container

페이지 Layout

레이어 팝업 Layout

공통 메시지 Layout

GTFramework Web - Layout Mosti.WebMvcRoot

Page 8: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

8Go Together with MostiSoft

디자인 표준 가이드

Web Control Sample Page 제공

프레임웍에서 제공 하는

Html Helper 컨트롤과 연동

GTFramework Web - Layout Mosti.WebMvcRoot

Page 9: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

9Go Together with MostiSoft

공통 메시지 박스 표준

Java Script 공통 API 제공

Inform, Confirm, Warning, Error 메시지 창

GTFramework Web - Layout Mosti.WebMvcRoot

Page 10: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

10Go Together with MostiSoft

팝업 UI 개발 표준

페이지 개발 패턴과 동일

프레임워크에서 제공하는

Java Script 함수를 이용 하여

Popup 컨테이너에 추가

GTFramework Web - Layout Mosti.WebMvcRoot

Page 11: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

11Go Together with MostiSoft

Data Annotation 유효성 검사 지원

Model 기반 Data Annotation을 이용한 유효성 검사 개발 가이드

비지니스용 Custom Data Annotation 추가 제공

Validation 메시지 커스터마이징 및 다국어 지원

GTFramework Web - Validation

Data Annotation을 이용한 Validation 수행

Mosti.WebMvc DataAnnotationAttributes

Page 12: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

12Go Together with MostiSoft

Data Annotation 유효성 검사 지원

Model

Code

GTFramework Web - Validation Mosti.WebMvc DataAnnotationAttributes

Page 13: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

13Go Together with MostiSoft

Data Annotation 유효성 검사 지원을 위한 모델 생성 스크립트 및 Tool 제공

Model

GTFramework Web - Validation

Copy & Paste

Mosti.WebMvc DataAnnotationAttributes

Page 14: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

14Go Together with MostiSoft

전통적인 Java Script 유효성 검사

Java Script 공통 API 제공

일괄 Check 및 부분 체크 옵션 지원

GTFramework Web - Validation Mosti.WebMvc DataAnnotationAttributes

Page 15: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

15Go Together with MostiSoft

다국어 리소스 관리 프로세스 가이드

리소스 사전 Import 및 Generation 툴 제공

Code에서 리소스 이름으로 Strong Typed Access

Gt Html Helper Control 연동

GTFramework Web - 다국어

리소스 사전 Code

Gt Html Helper Control

Strong Typed Access

DB

Mosti.WebMvcMultiLanguage

리소스 관리 툴 리소스 파일 Export Build & Deploy

Page 16: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

16Go Together with MostiSoft

GTFramework Web –인증 및 권한

New

Membership

System

One

Identity

System

Support

Claims-based

Authentication

Integrated

with external

logons

Mosti.WebMvcIdentity

Page 17: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

17Go Together with MostiSoft

ASP.NET Form 인증 OWIN Form인증 비교

GTFramework Web –인증 및 권한

Features Asp.Net Forms Authentication OWIN Forms Authentication

Cookie 인증 Yes Yes

Cookieless 인증 Yes No

Expiration Yes Yes

Sliding Expiration Yes Yes

Token Protection Yes Yes

Claims Support No Yes

Mosti.WebMvcIdentity

Page 18: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

18Go Together with MostiSoft

인증 구현

1. Mosti.Web.Identity.IAuthenticateWeb 인터페이스 구현

- GTFramework에서 각 사이트에서 사용자 인증을 구현하기 위해 정의 한 공용 인터페이스

2. Mosti.Web.Identity.IAuthenticateResult 인터페이스 구현

3. Mosti.Web.Identity.IAuthenticateParam 인터페이스 구현

GTFramework Web –인증 및 권한

IAuthenticateResult Authenticate(IAuthenticateParam authParam); // Biz Component에 인증을 요청

bool IsAuthenticated { get; set; } // Biz Component에서 true를 반환 하면 인증 성공

GtUser GtUserInfo { get; set; } // Micrisoft.AspNet.Identity.IUser 인터페이스 구현

Dictionary<string, string> CustomClaimData { get; set; } // 인증 성공 시 사용자 클레임 정보

string LoginID { get; set; } // 로그인 아이디

String Password { get; set; } // 로그인 패스워드

Dictionary<string, string> CustomData { get; set; } // 인증 확인 시 사용하는 추가 정보 Collection

Mosti.WebMvcIdentity

Page 19: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

19Go Together with MostiSoft

코드 샘플 ( Login Logic 에서 구현)

1. IAuthenticateWeb 인터페이스를 구현한 클래스 타입 정의

2. IAuthenticateWeb.Authenicate 구현

GTFramework Web –인증 및 권한

Code

DEMO

Mosti.WebMvcIdentity

Page 20: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

20Go Together with MostiSoft

자체 제작된 Html Helper Extension 컨트롤

총 18종 Helper Control 제공

모든 컨트롤에 Default 디자인 CSS 반영 / 권한 적용 / 다국어 적용 Style Override 및 커스터마이징 가능

Model 바인딩 Based

유연하고 강력한 스타일링 기반 마련, 한국형 웹 사이트 특성에 맞는 Composit 컨트롤

@Html.Gtxxx 로 시작

GTFramework Web –Html Helper Controls

Control 명 유형 특징 미리보기

ActionLinkButton ActionButton + 버튼 스타일 <a> 태그 버튼 스타일링 지원

CalendarTextBox TextBox + Calendar + 지우개 달력 기본 연동, 지우개 기능 Option

CheckBoxList CheckBox List<T> 데이터 바인딩시 자동 렌더링

RadioButtonList RadioButton List<T> 데이터 바인딩시 자동 렌더링

SearchTextBox TextBox + Search버튼 + 지우개

SearchTextBoxExtended TextBox + TextBox + Search버튼 + 지우개

Mosti.WebMvc ControlHelpers

Page 21: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

21Go Together with MostiSoft

ActionLinkButton

@Html.GtActionLinkButton("Action", "Control")

@Html.GtActionLinkButton("Action", "Control", null, LinkButtonType.Normal01, null)

@Html.GtActionLinkButton("Action", "Control", null, LinkButtonType.Normal02, null)

@Html.GtActionLinkButton("Action", "Control", null, LinkButtonType.Normal03, null)

@Html.GtActionLinkButton("Action", "Control", null, LinkButtonType.Normal04, null)

@Html.GtActionLinkButton("Action", "Control", null, LinkButtonType.Normal05, null)

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 22: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

22Go Together with MostiSoft

CalendarTextBox

@Html.GtCalendarTextBoxFor(a => a.StartDate)

@Html.GtCalendarTextBoxFor(a => a.StartDate, "txtCalendarTo", false)

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 23: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

23Go Together with MostiSoft

CheckBoxList

Html.GtCheckBoxListFor(a => a.PostedCities.CityIDs,

a => a.AvailableCities,

a => a.Id,

a => a.Text,

a => a.AvailableCities.Where(c => a.CheckedList.contains(c)))

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 24: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

24Go Together with MostiSoft

RadioButtonList

@Html.GtRadioButtonListFor(a => a.selectedValue

, new SelectList(@Model.AvailableCities, "Id", "Name"))

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 25: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

25Go Together with MostiSoft

SearchTextBox

@Html.GtSearchTextBoxFor(a => a.Text, a => a.Code, null)

@Html.GtSearchTextBoxFor(a => a.Text1, a => a.hiddenText

, “textbox_ID", “hiddenTextbox_ID“

, null

, new { @onclick = "return RaiseButtonAttribute('WOW')" }, false)

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 26: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

26Go Together with MostiSoft

SearchTextBoxExtended

@Html.GtSearchTextBoxExtendedFor(a => a.Code

, a => a.Text

, "txtCode", "txtText“

, null, null

, new { @onclick = "return showID('ssong')" }, "whPx50“ , "whPx120"

)

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 27: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

27Go Together with MostiSoft

GtButton

-- 기본

@Html.GtButton(“Text_or_ID", "btnid1", ButtonType.Default)

-- 권한@Html.GtButton("Text_or_ID ", "btnid1", ButtonType.Normal01, ActionAuthInfoType.CREATE)

-- CSS Append

@Html.GtButton("Text_or_ID", "btnid1", ButtonType.Normal04, appendClass: "whPx200")

-- CSS OverWrite

@Html.GtButton("Text_or_ID", "btnid1", ButtonType.Normal04, new { @class=“class1 class2”} )

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 28: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

28Go Together with MostiSoft

GtLabel

@Html.GtLabelFor(a => a.Password);

@Html.GtLabelFor(a => a.Password, LabelType.TableRequired);

GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers

Page 29: GT Framework v2.0.2 for ASP.NET MVC 5 - Mostisoft MVC Provosal.pdf · 2015-03-30 · MVC 5 GT Framework v2.0.2 for ASP.NET MVC 5. INDEX GTFramework Web for ASP.NET MVC Component Stack

29Go Together with MostiSoft

We light up your future

Thank you