Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
2015.3
모스티소프트 기술연구소
ASP.NETMVC 5
GT Framework v2.0.2
for ASP.NET MVC 5
INDEX GTFramework Web
for ASP.NET MVC
Component Stack
Data Architecture
Layer Architecture
Functions
Layout
Validation
다국어
인증 및 권한
Html Helter Controls
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
유효성
검사
세션/캐쉬
관리
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
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 인코딩지원
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
7Go Together with MostiSoft
운영 및 유지보수 편의를 위한 Open UX Framework 도입
부트스트랩 CSS 프레임워크
JQuery
Framework 기본 Layout 제공
MDI Tab Container
페이지 Layout
레이어 팝업 Layout
공통 메시지 Layout
GTFramework Web - Layout Mosti.WebMvcRoot
8Go Together with MostiSoft
디자인 표준 가이드
Web Control Sample Page 제공
프레임웍에서 제공 하는
Html Helper 컨트롤과 연동
GTFramework Web - Layout Mosti.WebMvcRoot
9Go Together with MostiSoft
공통 메시지 박스 표준
Java Script 공통 API 제공
Inform, Confirm, Warning, Error 메시지 창
GTFramework Web - Layout Mosti.WebMvcRoot
10Go Together with MostiSoft
팝업 UI 개발 표준
페이지 개발 패턴과 동일
프레임워크에서 제공하는
Java Script 함수를 이용 하여
Popup 컨테이너에 추가
GTFramework Web - Layout Mosti.WebMvcRoot
11Go Together with MostiSoft
Data Annotation 유효성 검사 지원
Model 기반 Data Annotation을 이용한 유효성 검사 개발 가이드
비지니스용 Custom Data Annotation 추가 제공
Validation 메시지 커스터마이징 및 다국어 지원
GTFramework Web - Validation
Data Annotation을 이용한 Validation 수행
Mosti.WebMvc DataAnnotationAttributes
12Go Together with MostiSoft
Data Annotation 유효성 검사 지원
Model
Code
GTFramework Web - Validation Mosti.WebMvc DataAnnotationAttributes
13Go Together with MostiSoft
Data Annotation 유효성 검사 지원을 위한 모델 생성 스크립트 및 Tool 제공
Model
GTFramework Web - Validation
Copy & Paste
Mosti.WebMvc DataAnnotationAttributes
14Go Together with MostiSoft
전통적인 Java Script 유효성 검사
Java Script 공통 API 제공
일괄 Check 및 부분 체크 옵션 지원
GTFramework Web - Validation Mosti.WebMvc DataAnnotationAttributes
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
16Go Together with MostiSoft
GTFramework Web –인증 및 권한
New
Membership
System
One
Identity
System
Support
Claims-based
Authentication
Integrated
with external
logons
Mosti.WebMvcIdentity
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
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
19Go Together with MostiSoft
코드 샘플 ( Login Logic 에서 구현)
1. IAuthenticateWeb 인터페이스를 구현한 클래스 타입 정의
2. IAuthenticateWeb.Authenicate 구현
GTFramework Web –인증 및 권한
Code
DEMO
Mosti.WebMvcIdentity
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
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
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
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
24Go Together with MostiSoft
RadioButtonList
@Html.GtRadioButtonListFor(a => a.selectedValue
, new SelectList(@Model.AvailableCities, "Id", "Name"))
GTFramework Web –Html Helper Controls Mosti.WebMvc ControlHelpers
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
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
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
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
29Go Together with MostiSoft
We light up your future
Thank you