GT Framework v2.0.2 for ASP.NET MVC 5 2015.3 모스티소프트기술연구소 ASP.NET MVC 5 1
INDEX GTFramework Web for ASP.NET MVC Component Stack Data Architecture Layer Architecture Functions Layout Validation 다국어 인증및권한 Html Helter Controls
GTFramework Web - for ASP.NET MVC ASP.NET MVC 5 아키텍처최적화 마이크로소프트최신아키텍처요소반영 ASP.NET Identity / OWIN 프레임워크 부트스트랩 CSS 프레임워크 JQuery 스크립트 Layout 다국어 Html Helper Controls Business 용자체제작 Html Helper Control 제공 Base Library Data Annotation을이용한 Validation 처리및확장 Action 및 View Page 버튼권한처리 다국어지원 인증 / 권한 유효성 검사 세션 / 캐쉬 관리 Web Service Client Proxy Runtime 에러처리및로깅 기타 Utility API 3
GTFramework Web - for Component Stack GT Framework for ASP.NET MVC 5 Multi Language GtValidator JS SearchTextBox CalendarTextBox Data Annotation Model Generator Script Validation Support Html Helper Controls Custom Data Annotation Data Annotation RadioButtonList 기타 (13 종 ) SearchTextBoxExtended CheckBoxList Cache Management Application Profile User Profile Session & Cache MSMQ Proxy AJAX Proxy WCF Proxy Web Service Proxy Action History No Cache Error Handler Authorization Global Filter 통계 / Utilization Service Logging UI Logging Logging Multi Language Handler & Tool Common Dialog View Web View Page Base Multi Language Popup View Controller Base Authorization UI View Base Library Authentication MDI Page View ASP.NET IDENTITY ASP.NET OWIN GT RMS( 권한관리 ) Layout Template ASP.NET MVC 5 Identity View.NET Framework 4.5 4
Data Architecture Model / Entity 기반다중 Layer 의데이터통신지원 WCF 기반 Web Service 호스팅을제공함으로써다양한 Application 개발환경에유연하게대처 Web, Windows, Mobile Client 등멀티디바이스의요청에대해비즈니스코드의변경없이최적의통신방식으로동시에호스팅 Web Client는 JSON 메시지를전달하고 Smart Client 및 Mobile Client 는 JSON / SOAP 메시지를서버에전달한다. 1 2 클라이언트의요청타입에따라서서비스는최고의안정성과성능을보장하는방식으로호스팅된다. Client Web Client ASP.NET / JSP Smart Client SOAP/ JSON 메세지 JSON W/S WSHTTP W/S 동일한 Business 코드호출 Business Component Business Component Legacy 1 Legacy 2 Mobile Client Binary 인코딩지원 TCP W/S Business Component Legacy n SOAP 1.x HTTP/HTTPS 전송 데이터압축 SOAP 1.x HTTP/HTTPS 전송 데이터압축 5
Layer Architecture (.NET Based) WEB 및스마트클라이언트의로직재사용을극대화시키고유지보수의편의를위해 UI Logic 레이어를추가하여 View 와 UI Logic 을분리함 View 에서 AJAX 를이용해 Web Service 에바로접근하는경우를위해별도의 WS EndPoint 노출 Client Service Legacy View Layer UI Logic Layer Client Proxy A.Biz.dll Interface Biz ASP.NET MVC VIEW Contr oller AJAX 서비스호스트 기타 Façade Class Biz B.Biz.dll Legacy Interface System1 System2 Smart Client VIEW Model 바인딩 IF Logic View Model / Event Handl er WCF Client Proxy Module Interface 업무 1 웹서비스 Interface 업무 2 웹서비스 업무 1 Façade Class 업무 2 Façade Class Biz Biz C.Biz.dll Biz MSMQ Interface Database Interface MSMQ DB Presentation Layer Service Layer Façade Layer Business Logic Layer Data Access Layer Data 6
GTFramework Web - Layout Mosti.Web Mvc Root 운영및유지보수편의를위한 Open UX Framework 도입 부트스트랩 CSS 프레임워크 JQuery Framework 기본 Layout 제공 MDI Tab Container 페이지 Layout 레이어팝업 Layout 공통메시지 Layout 7
GTFramework Web - Layout Mosti.Web Mvc Root 디자인표준가이드 Web Control Sample Page 제공 프레임웍에서제공하는 Html Helper 컨트롤과연동 8
GTFramework Web - Layout Mosti.Web Mvc Root 공통메시지박스표준 Java Script 공통 API 제공 Inform, Confirm, Warning, Error 메시지창 9
GTFramework Web - Layout Mosti.Web Mvc Root 팝업 UI 개발표준 페이지개발패턴과동일 프레임워크에서제공하는 Java Script 함수를이용하여 Popup 컨테이너에추가 10
GTFramework Web - Validation Mosti.Web Mvc DataAnnotationAttributes Data Annotation 유효성검사지원 Model 기반 Data Annotation을이용한유효성검사개발가이드 비지니스용 Custom Data Annotation 추가제공 Validation 메시지커스터마이징및다국어지원 Data Annotation 을이용한 Validation 수행 11
GTFramework Web - Validation Mosti.Web Mvc DataAnnotationAttributes Data Annotation 유효성검사지원 Model Code 12
GTFramework Web - Validation Mosti.Web Mvc DataAnnotationAttributes Data Annotation 유효성검사지원을위한모델생성스크립트및 Tool 제공 Model Copy & Paste 13
GTFramework Web - Validation Mosti.Web Mvc DataAnnotationAttributes 전통적인 Java Script 유효성검사 Java Script 공통 API 제공 일괄 Check 및부분체크옵션지원 14
GTFramework Web - 다국어 Mosti.Web Mvc MultiLanguage 다국어리소스관리프로세스가이드 리소스사전 Import 및 Generation 툴제공 Code에서리소스이름으로 Strong Typed Access Gt Html Helper Control 연동 DB 리소스사전 Code 리소스관리툴 리소스파일 Export Build & Deploy Gt Html Helper Control Strong Typed Access 15
GTFramework Web 인증및권한 Mosti.Web Mvc Identity New Membership System One Identity System Support Claims-based Authentication Integrated with external logons 16
GTFramework Web 인증및권한 Mosti.Web Mvc Identity ASP.NET Form 인증 OWIN Form 인증비교 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 17
GTFramework Web 인증및권한 Mosti.Web Mvc Identity 인증구현 1. Mosti.Web.Identity.IAuthenticateWeb 인터페이스구현 - GTFramework 에서각사이트에서사용자인증을구현하기위해정의한공용인터페이스 IAuthenticateResult Authenticate(IAuthenticateParam authparam); // Biz Component 에인증을요청 2. Mosti.Web.Identity.IAuthenticateResult 인터페이스구현 bool IsAuthenticated { get; set; } GtUser GtUserInfo { get; set; } Dictionary<string, string> CustomClaimData { get; set; } // Biz Component 에서 true 를반환하면인증성공 // Micrisoft.AspNet.Identity.IUser 인터페이스구현 // 인증성공시사용자클레임정보 3. Mosti.Web.Identity.IAuthenticateParam 인터페이스구현 string LoginID { get; set; } String Password { get; set; } Dictionary<string, string> CustomData { get; set; } // 로그인아이디 // 로그인패스워드 // 인증확인시사용하는추가정보 Collection 18
GTFramework Web 인증및권한 Mosti.Web Mvc Identity 코드샘플 ( Login Logic 에서구현 ) 1. IAuthenticateWeb 인터페이스를구현한클래스타입정의 2. IAuthenticateWeb.Authenicate 구현 Code DEMO 19
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers 자체제작된 Html Helper Extension 컨트롤 총 18 종 Helper Control 제공 모든컨트롤에 Default 디자인 CSS 반영 / 권한적용 / 다국어적용 Style Override 및커스터마이징가능 Model 바인딩 Based 유연하고강력한스타일링기반마련, 한국형웹사이트특성에맞는 Composit 컨트롤 Control 명 유형 특징 미리보기 ActionLinkButton ActionButton + 버튼스타일 <a> 태그버튼스타일링지원 CalendarTextBox TextBox + Calendar + 지우개 달력기본연동, 지우개기능 Option CheckBoxList CheckBox List<T> 데이터바인딩시자동렌더링 RadioButtonList RadioButton List<T> 데이터바인딩시자동렌더링 SearchTextBox SearchTextBoxExtended TextBox + Search 버튼 + 지우개 TextBox + TextBox + Search 버튼 + 지우개 @Html.Gtxxx 로시작 20
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers 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) 21
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers CalendarTextBox @Html.GtCalendarTextBoxFor(a => a.startdate) @Html.GtCalendarTextBoxFor(a => a.startdate, "txtcalendarto", false) 22
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers 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))) 23
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers RadioButtonList @Html.GtRadioButtonListFor(a => a.selectedvalue, new SelectList(@Model.AvailableCities, "Id", "Name")) 24
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers 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) 25
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers SearchTextBoxExtended @Html.GtSearchTextBoxExtendedFor(a => a.code, a => a.text, "txtcode", "txttext, null, null, new { @onclick = "return showid('ssong')" }, "whpx50, "whpx120" ) 26
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers 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 } ) 27
GTFramework Web Html Helper Controls Mosti.Web Mvc ControlHelpers GtLabel @Html.GtLabelFor(a => a.password); @Html.GtLabelFor(a => a.password, LabelType.TableRequired); 28
We light up your future Thank you 29