SlideShare ist ein Scribd-Unternehmen logo
1 von 37
BEXIS Tech Talk Series
#6: UI Structure and Web API
Javad Chamanara
August 2016
Jena, Germany
Reminder
• Extensibility Aspects
– Modules
– UI
– Integration
– Branding
BEXIS Tech Talk #6: UI Structure and Web API
Today
• In depth view to:
– The UI Structure
– The Web APIs
BEXIS Tech Talk #6: UI Structure and Web API
UI-> Tools
• ASP.NET MVC 5
– Razor
– Views
• Sections
– Shared Views
– Partial Views
BEXIS Tech Talk #6: UI Structure and Web API
UI-> Structure
• The Shell as the application view container
– Composition
– Default Contents
• Modules’ UI
– Actions
– Content
– Placement
• Tenants
BEXIS Tech Talk #6: UI Structure and Web API
Shell ->Anatomy
• Themes
– Layouts
• Arrangement
• Content Providers
– Content Holders
• Partial Views
– Styling
• Images
• CSSs
• Scripts
• Menus
BEXIS Tech Talk #6: UI Structure and Web API
Shell -> Layout
BEXIS Tech Talk #6: UI Structure and Web API
Shell: Themes
• Changing themes affects:
– Placement
– Content
BEXIS Tech Talk #6: UI Structure and Web API
Shell ->Theme Configuration
• Current theme can be set
– In the app’s config file
• Each theme may contain more than one
layout
• Active layout of the current theme can be set
– In the app’s config file
BEXIS Tech Talk #6: UI Structure and Web API
Shell -> Content Rendering
• @RenderSection
– Renders a named section in the bound view
• @RenderBody
– Renders the body, the default unnamed section
• @Html.RenderAuto
– Renders an action result
– Utilizes the content provider file (layout.xml)
BEXIS Tech Talk #6: UI Structure and Web API
Shell -> Content Descriptor
• Maps a content key (in the layout) to a content
provider
• A provider can be:
– an action
– A view
– An external service
• Providers may accept parameters
• Multiple call to one provider with different parameters
• Activating/ Inactivating providers’ mapping
• Multiple provider per key and output concatenation
• Providers should return string, HTML, or MvcString
BEXIS Tech Talk #6: UI Structure and Web API
Modules’ UI
• Layout Selection
• Action Integration
• Content Placement
BEXIS Tech Talk #6: UI Structure and Web API
Modules->Layout Application
• View Level
• Module Level
– At each area
• Fallback Layout
BEXIS Tech Talk #6: UI Structure and Web API
<Module>/Views/_ViewStart.cshtml
Module: UI
BEXIS Tech Talk #6: UI Structure and Web API
Modules-> Action Integration
• Registered by Modules
• Integrated into Shell
• Some are fixed
BEXIS Tech Talk #6: UI Structure and Web API
Modules-> Action Integration
BEXIS Tech Talk #6: UI Structure and Web API
Branding
• Details in Tech Talk #5
BEXIS Tech Talk #6: UI Structure and Web API
Tenants-> Folder Structure
BEXIS Tech Talk #6: UI Structure and Web API
Tenants->Catalog
BEXIS Tech Talk #6: UI Structure and Web API
Tenants -> Package Structure
BEXIS Tech Talk #6: UI Structure and Web API
Tenants-> Package’s Manifest
BEXIS Tech Talk #6: UI Structure and Web API
Tenants-> Package’s Manifest
BEXIS Tech Talk #6: UI Structure and Web API
Branding-> Applied
BEXIS Tech Talk #6: UI Structure and Web API 23
Web APIs
• MVC 5 Web API 2
• No Html Rendering
• JSON and XML Outputs
• Output Overriding
–CSV
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Project Structure
– In respective modules’ Controller folder
– Derived from ApiController class
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Registration
– In BExIS.Web.Shell->App_Start->WebApiConfig
– The Register method
– Provides a unified URL space for all the web APIs
• For all modules
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• URL space
– All APIs under one unified space /api
– Base_URL/api/<entity>/<action>
– No API versioning is considered!
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Naming
– Controller name: entity’s plural name
– Http request carries verbs
– URLs do not contain verbs
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Actions:
– /api/<entity>: list all the entities
• Controller’s Get() method is called
• May reduce the number of entity attributes reported
• May omit some entities
– /api/<entity>/<id>: returns the entity with
identifier <id>
• Controller’s Get(id) method is called
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Actions:
– /api/<entity>: Creates a new entity
• based on the received form data
• Controller’s Post(value) method is called
– /api/<entity>/<id>: Updates the entity with
identifier <id>
• based on the received form data
• Controller’s Put(id, value) method is called
BEXIS Tech Talk #6: UI Structure and Web API
Web API-> Mechanics
• Actions:
– /api/<entity>/<id>: deletes the entity with
identifier <id>
• Controller’s Delete(id) method is called
BEXIS Tech Talk #6: UI Structure and Web API
• Example
– rBExIS package for R
BEXIS Tech Talk #6: UI Structure and Web API
Exemplary Use-Cases
• Authentication/Authorization
• Dataset
• Schema of a dataset
• Metadata of a Dataset
BEXIS Tech Talk #6: UI Structure and Web API
Sample Web API calls: Data
• http://www.name.com/api/data
• http://www.name.com/api/data/6
– /api/data/6?header=id,name
– /api/data/6?filter=(Grade>50 AND Grade <90)
– /api/data/6?header=id,name&filter=(Grade>50)
BEXIS Tech Talk #6: UI Structure and Web API
Sample Web API calls: Metadata
• http://www.name.com/api/metadata
• http://www.name.com/api/metadata/6
• http://www.name.com/api/metadata/6?Conv
ertTo=EML
BEXIS Tech Talk #6: UI Structure and Web API
Outlook
Whats next in the talk series?
Source Control
Release Management
BEXIS Tech Talk #6: UI Structure and Web API
37
Thanks!
Questions?
Contact:
javad.chamanara@uni-jena.de
http://bexis2.uni-jena.de
Acknowledgment
BEXIS Tech Talk #6: UI Structure and Web API

Weitere ähnliche Inhalte

Was ist angesagt?

SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
Bill Ayers
 
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuerySharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
Ken Kuzdas
 
Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013
C/D/H Technology Consultants
 

Was ist angesagt? (20)

All about SPFx
All about SPFxAll about SPFx
All about SPFx
 
Apps for SharePoint
Apps for SharePointApps for SharePoint
Apps for SharePoint
 
Share point developement Introduction for students
Share point developement Introduction for studentsShare point developement Introduction for students
Share point developement Introduction for students
 
SharePoint Development
SharePoint DevelopmentSharePoint Development
SharePoint Development
 
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
SPS Paris: Building great client-side web parts with spfx, pnp-js-core, React...
 
Yii 2.0 overview - 1 of 2
Yii 2.0 overview - 1 of 2Yii 2.0 overview - 1 of 2
Yii 2.0 overview - 1 of 2
 
Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2Share point saturday presentation 9 29-2012-2
Share point saturday presentation 9 29-2012-2
 
Introducing Office Web Apps as a Tool for Developing Content Rich Applications
Introducing Office Web Apps as a Tool for Developing Content Rich ApplicationsIntroducing Office Web Apps as a Tool for Developing Content Rich Applications
Introducing Office Web Apps as a Tool for Developing Content Rich Applications
 
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
Tutorial, Part 2: SharePoint 101: Jump-Starting the Developer by Rob Windsor ...
 
App deployment
App deploymentApp deployment
App deployment
 
Share point 2013 Building Websites
Share point 2013 Building WebsitesShare point 2013 Building Websites
Share point 2013 Building Websites
 
Branding and designing capabilities with the Design Manager
Branding and designing capabilities with the Design ManagerBranding and designing capabilities with the Design Manager
Branding and designing capabilities with the Design Manager
 
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuerySharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
SharePoint - Creating Beautiful Yet Powerful Dashboards Using jQuery
 
All about Office UI Fabric
All about Office UI FabricAll about Office UI Fabric
All about Office UI Fabric
 
Use the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a boxUse the PnP SharePoint Starter Kit to create your intranet in a box
Use the PnP SharePoint Starter Kit to create your intranet in a box
 
SharePoint 2013 Javascript Object Model
SharePoint 2013 Javascript Object ModelSharePoint 2013 Javascript Object Model
SharePoint 2013 Javascript Object Model
 
Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013Dynamic no-code mashups in SharePoint 2010 and 2013
Dynamic no-code mashups in SharePoint 2010 and 2013
 
Chris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien - Introduction to the SharePoint Framework for developers
Chris O'Brien - Introduction to the SharePoint Framework for developers
 
Introduction to SharePoint Framework
Introduction to SharePoint FrameworkIntroduction to SharePoint Framework
Introduction to SharePoint Framework
 
SharePoint Framework - Developer Preview
SharePoint Framework - Developer PreviewSharePoint Framework - Developer Preview
SharePoint Framework - Developer Preview
 

Andere mochten auch

Deber 1 estadistica
Deber 1 estadisticaDeber 1 estadistica
Deber 1 estadistica
Cand Jof
 
Teresa Parent
Teresa ParentTeresa Parent
Teresa Parent
paren1tl
 
Acompañamiento primaria semana del 31 de agosto al 4 de septiembre
Acompañamiento primaria semana del 31 de agosto al 4 de septiembreAcompañamiento primaria semana del 31 de agosto al 4 de septiembre
Acompañamiento primaria semana del 31 de agosto al 4 de septiembre
colegiommc
 

Andere mochten auch (13)

Presentación SlideShare
Presentación SlideSharePresentación SlideShare
Presentación SlideShare
 
Ciudades mayas luis
Ciudades mayas luisCiudades mayas luis
Ciudades mayas luis
 
4 the 3rd party libraries
4 the 3rd party libraries4 the 3rd party libraries
4 the 3rd party libraries
 
Deber 1 estadistica
Deber 1 estadisticaDeber 1 estadistica
Deber 1 estadistica
 
Catálogo Industria Gráfica
Catálogo Industria GráficaCatálogo Industria Gráfica
Catálogo Industria Gráfica
 
Teresa Parent
Teresa ParentTeresa Parent
Teresa Parent
 
3D-mallinnus
3D-mallinnus3D-mallinnus
3D-mallinnus
 
Teresa Parent
Teresa ParentTeresa Parent
Teresa Parent
 
Logosuunnittelu
LogosuunnitteluLogosuunnittelu
Logosuunnittelu
 
Aprendizaje colaborativo
Aprendizaje colaborativoAprendizaje colaborativo
Aprendizaje colaborativo
 
Acompañamiento primaria semana del 31 de agosto al 4 de septiembre
Acompañamiento primaria semana del 31 de agosto al 4 de septiembreAcompañamiento primaria semana del 31 de agosto al 4 de septiembre
Acompañamiento primaria semana del 31 de agosto al 4 de septiembre
 
Keynote (DE): Beyond Budgeting, at AK Unternehmensführung, Heilbronn
Keynote (DE): Beyond Budgeting, at AK Unternehmensführung, HeilbronnKeynote (DE): Beyond Budgeting, at AK Unternehmensführung, Heilbronn
Keynote (DE): Beyond Budgeting, at AK Unternehmensführung, Heilbronn
 
Comment valoriser sa location de vacances?
Comment valoriser sa location de vacances? Comment valoriser sa location de vacances?
Comment valoriser sa location de vacances?
 

Ähnlich wie 6 The UI Structure and The Web API

Ähnlich wie 6 The UI Structure and The Web API (20)

Sitecore - what to look forward to
Sitecore - what to look forward toSitecore - what to look forward to
Sitecore - what to look forward to
 
Using MVC with Kentico 8
Using MVC with Kentico 8Using MVC with Kentico 8
Using MVC with Kentico 8
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015ASP.NET 5 Overview - Post Build 2015
ASP.NET 5 Overview - Post Build 2015
 
ASP.NET 5 Overview
ASP.NET 5 OverviewASP.NET 5 Overview
ASP.NET 5 Overview
 
ASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTMASP.NET 5 Overview: Post RTM
ASP.NET 5 Overview: Post RTM
 
ASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex SystemsASP.NET 5 Overview for Apex Systems
ASP.NET 5 Overview for Apex Systems
 
Mvc4
Mvc4Mvc4
Mvc4
 
Introduction to PowerShell for SharePoint Admins and Developers
Introduction to PowerShell for SharePoint Admins and DevelopersIntroduction to PowerShell for SharePoint Admins and Developers
Introduction to PowerShell for SharePoint Admins and Developers
 
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
Popping the Hood: How to Create Custom SharePoint Branding by Randy Drisgill ...
 
Intern Report
Intern ReportIntern Report
Intern Report
 
Developer’s Independence Day: Introducing the SharePoint App Model
Developer’s Independence Day:Introducing the SharePoint App ModelDeveloper’s Independence Day:Introducing the SharePoint App Model
Developer’s Independence Day: Introducing the SharePoint App Model
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Migration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET CoreMigration from ASP.NET MVC to ASP.NET Core
Migration from ASP.NET MVC to ASP.NET Core
 
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
D1 - Building Great Client-side Web Parts with SPFx, PnP-JS-Core, ReactJS and...
 
Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013Developing Apps for SharePoint 2013
Developing Apps for SharePoint 2013
 
ASP.NET MVC 4 Introduction
ASP.NET MVC 4 IntroductionASP.NET MVC 4 Introduction
ASP.NET MVC 4 Introduction
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
ASP.NET Core 1.0 Overview
ASP.NET Core 1.0 OverviewASP.NET Core 1.0 Overview
ASP.NET Core 1.0 Overview
 

Mehr von javadch

SciQL: A Scientific Query Language
SciQL: A Scientific Query LanguageSciQL: A Scientific Query Language
SciQL: A Scientific Query Language
javadch
 

Mehr von javadch (12)

Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!Data Lifecycle is not a Cycle, but a Plane!
Data Lifecycle is not a Cycle, but a Plane!
 
Scrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcaseScrum Project Management with Jira as showcase
Scrum Project Management with Jira as showcase
 
8 implementation notes
8 implementation notes8 implementation notes
8 implementation notes
 
7 Source Control and Release Management
7 Source Control and Release Management7 Source Control and Release Management
7 Source Control and Release Management
 
5 BEXIS Extensibility
5 BEXIS Extensibility5 BEXIS Extensibility
5 BEXIS Extensibility
 
An Itroduction to the QUIS Language
An Itroduction to the QUIS LanguageAn Itroduction to the QUIS Language
An Itroduction to the QUIS Language
 
Research Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On WorkshopResearch Data Management, BExIS Hands-On Workshop
Research Data Management, BExIS Hands-On Workshop
 
Added Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in GeosciencesAdded Value of Conceptual Modeling in Geosciences
Added Value of Conceptual Modeling in Geosciences
 
3 the system architecture
3 the system architecture3 the system architecture
3 the system architecture
 
2 the conceptual model
2 the conceptual model2 the conceptual model
2 the conceptual model
 
1 the big picture
1 the big picture1 the big picture
1 the big picture
 
SciQL: A Scientific Query Language
SciQL: A Scientific Query LanguageSciQL: A Scientific Query Language
SciQL: A Scientific Query Language
 

Kürzlich hochgeladen

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Kürzlich hochgeladen (20)

Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...Chinsurah Escorts ☎️8617697112  Starting From 5K to 15K High Profile Escorts ...
Chinsurah Escorts ☎️8617697112 Starting From 5K to 15K High Profile Escorts ...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban%in Durban+277-882-255-28 abortion pills for sale in Durban
%in Durban+277-882-255-28 abortion pills for sale in Durban
 

6 The UI Structure and The Web API

  • 1. BEXIS Tech Talk Series #6: UI Structure and Web API Javad Chamanara August 2016 Jena, Germany
  • 2. Reminder • Extensibility Aspects – Modules – UI – Integration – Branding BEXIS Tech Talk #6: UI Structure and Web API
  • 3. Today • In depth view to: – The UI Structure – The Web APIs BEXIS Tech Talk #6: UI Structure and Web API
  • 4. UI-> Tools • ASP.NET MVC 5 – Razor – Views • Sections – Shared Views – Partial Views BEXIS Tech Talk #6: UI Structure and Web API
  • 5. UI-> Structure • The Shell as the application view container – Composition – Default Contents • Modules’ UI – Actions – Content – Placement • Tenants BEXIS Tech Talk #6: UI Structure and Web API
  • 6. Shell ->Anatomy • Themes – Layouts • Arrangement • Content Providers – Content Holders • Partial Views – Styling • Images • CSSs • Scripts • Menus BEXIS Tech Talk #6: UI Structure and Web API
  • 7. Shell -> Layout BEXIS Tech Talk #6: UI Structure and Web API
  • 8. Shell: Themes • Changing themes affects: – Placement – Content BEXIS Tech Talk #6: UI Structure and Web API
  • 9. Shell ->Theme Configuration • Current theme can be set – In the app’s config file • Each theme may contain more than one layout • Active layout of the current theme can be set – In the app’s config file BEXIS Tech Talk #6: UI Structure and Web API
  • 10. Shell -> Content Rendering • @RenderSection – Renders a named section in the bound view • @RenderBody – Renders the body, the default unnamed section • @Html.RenderAuto – Renders an action result – Utilizes the content provider file (layout.xml) BEXIS Tech Talk #6: UI Structure and Web API
  • 11. Shell -> Content Descriptor • Maps a content key (in the layout) to a content provider • A provider can be: – an action – A view – An external service • Providers may accept parameters • Multiple call to one provider with different parameters • Activating/ Inactivating providers’ mapping • Multiple provider per key and output concatenation • Providers should return string, HTML, or MvcString BEXIS Tech Talk #6: UI Structure and Web API
  • 12. Modules’ UI • Layout Selection • Action Integration • Content Placement BEXIS Tech Talk #6: UI Structure and Web API
  • 13. Modules->Layout Application • View Level • Module Level – At each area • Fallback Layout BEXIS Tech Talk #6: UI Structure and Web API <Module>/Views/_ViewStart.cshtml
  • 14. Module: UI BEXIS Tech Talk #6: UI Structure and Web API
  • 15. Modules-> Action Integration • Registered by Modules • Integrated into Shell • Some are fixed BEXIS Tech Talk #6: UI Structure and Web API
  • 16. Modules-> Action Integration BEXIS Tech Talk #6: UI Structure and Web API
  • 17. Branding • Details in Tech Talk #5 BEXIS Tech Talk #6: UI Structure and Web API
  • 18. Tenants-> Folder Structure BEXIS Tech Talk #6: UI Structure and Web API
  • 19. Tenants->Catalog BEXIS Tech Talk #6: UI Structure and Web API
  • 20. Tenants -> Package Structure BEXIS Tech Talk #6: UI Structure and Web API
  • 21. Tenants-> Package’s Manifest BEXIS Tech Talk #6: UI Structure and Web API
  • 22. Tenants-> Package’s Manifest BEXIS Tech Talk #6: UI Structure and Web API
  • 23. Branding-> Applied BEXIS Tech Talk #6: UI Structure and Web API 23
  • 24. Web APIs • MVC 5 Web API 2 • No Html Rendering • JSON and XML Outputs • Output Overriding –CSV BEXIS Tech Talk #6: UI Structure and Web API
  • 25. Web API-> Mechanics • Project Structure – In respective modules’ Controller folder – Derived from ApiController class BEXIS Tech Talk #6: UI Structure and Web API
  • 26. Web API-> Mechanics • Registration – In BExIS.Web.Shell->App_Start->WebApiConfig – The Register method – Provides a unified URL space for all the web APIs • For all modules BEXIS Tech Talk #6: UI Structure and Web API
  • 27. Web API-> Mechanics • URL space – All APIs under one unified space /api – Base_URL/api/<entity>/<action> – No API versioning is considered! BEXIS Tech Talk #6: UI Structure and Web API
  • 28. Web API-> Mechanics • Naming – Controller name: entity’s plural name – Http request carries verbs – URLs do not contain verbs BEXIS Tech Talk #6: UI Structure and Web API
  • 29. Web API-> Mechanics • Actions: – /api/<entity>: list all the entities • Controller’s Get() method is called • May reduce the number of entity attributes reported • May omit some entities – /api/<entity>/<id>: returns the entity with identifier <id> • Controller’s Get(id) method is called BEXIS Tech Talk #6: UI Structure and Web API
  • 30. Web API-> Mechanics • Actions: – /api/<entity>: Creates a new entity • based on the received form data • Controller’s Post(value) method is called – /api/<entity>/<id>: Updates the entity with identifier <id> • based on the received form data • Controller’s Put(id, value) method is called BEXIS Tech Talk #6: UI Structure and Web API
  • 31. Web API-> Mechanics • Actions: – /api/<entity>/<id>: deletes the entity with identifier <id> • Controller’s Delete(id) method is called BEXIS Tech Talk #6: UI Structure and Web API
  • 32. • Example – rBExIS package for R BEXIS Tech Talk #6: UI Structure and Web API
  • 33. Exemplary Use-Cases • Authentication/Authorization • Dataset • Schema of a dataset • Metadata of a Dataset BEXIS Tech Talk #6: UI Structure and Web API
  • 34. Sample Web API calls: Data • http://www.name.com/api/data • http://www.name.com/api/data/6 – /api/data/6?header=id,name – /api/data/6?filter=(Grade>50 AND Grade <90) – /api/data/6?header=id,name&filter=(Grade>50) BEXIS Tech Talk #6: UI Structure and Web API
  • 35. Sample Web API calls: Metadata • http://www.name.com/api/metadata • http://www.name.com/api/metadata/6 • http://www.name.com/api/metadata/6?Conv ertTo=EML BEXIS Tech Talk #6: UI Structure and Web API
  • 36. Outlook Whats next in the talk series? Source Control Release Management BEXIS Tech Talk #6: UI Structure and Web API

Hinweis der Redaktion

  1. Code: Themes.Default.Layouts._Layout.cshtml Themes.Default.Layouts._Layout.xml
  2. _Layout.cshtml
  3. _Layout.xml
  4. Areas/site/views/Nav
  5. DIM.Controllers.DataController: Get, RPM.Controllers.StrcuturesController: Get(id) CSV -- DIM.Controllers.DataController: Get(id)
  6. ApiControllers in the Controllers folder
  7. ApiControllers in the Controllers folder
  8. ApiControllers in the Controllers folder
  9. ApiControllers in the Controllers folder
  10. ApiControllers in the Controllers folder
  11. ApiControllers in the Controllers folder
  12. ApiControllers in the Controllers folder