SlideShare uma empresa Scribd logo
1 de 36
WEB APPS DEVELOPMENT WITH
BREEZE.JS
AUTHOR:
VIACHESLAV BUKACH
SOFTWARE DEVELOPER AT SOFTENGI
• BREEZE IS A JAVASCRIPT LIBRARY THAT HELPS YOU TO MANAGE DATA IN
RICH CLIENT APPLICATION
• FIRST RELEASE – SEPTEMBER 17, 2012
• LAST RELEASED VERSION – 1.4.16 (JULY 13. 2014)
BREEZE
• - CAPABILITIES
• - REQUIREMENTS
• - CLIENT SIDE
• - SERVER SIDE
• - OTHER
OUTLINE
• DATA RETRIEVAL VIA SERVICE CALLS
• DATA CACHING ON CLIENT
• CHANGES TRACKING
• SAVE CHANGES VIA SERVICE CALLS
• VALIDATION
• EXPORT/IMPORT DATA ON FOR OFFLINE STORAGE
• WORK WITH ODATA SERVICES
CAPABILITIES
Single Page App
SERVER
DATABASE
Markup
UI Logic
Data Access
SPA ARCHITECTURE
• ENTITYMANAGER IS THE BRAINS OF BREEZE CLIENT SIDE FUNCTIONALITY
• - MAKES SERVICE CALLS
• - CACHES METADATA AND QUERY RESULTS
• - CREATES ENTITIES
• - VALIDATES ENTITIES
• - FORMS UPDATE REQUESTS
• - HANDLES MERGING REQUERY AND SAVECHANGES RESULTS WITH CACHED
ENTITIES
ENTITY MANAGER
• - QUERY
• - UPDATE
CALLING PATTERNS
Client
Breeze
Controller
Metadata
Entity
Manager
Query Results
GET breeze/Zza/Customers
Client
Entity
Manager
Client
GET
breeze/{controller}/Metadata
Entity
Manager
Client
Entity
Manager
ClientClient
Entity
Manager
Client
Entity
Manager
Client
Breeze
Controller
Entity
Manager
Client
Breeze
Controller
Entity
Manager
Client
QueryEntities
QUERY
• METADATA IS USED BY BREEZE ENTITYMANAGER FOR MANY ASPECTS
• ENTITY TYPE INFORMATION
• CREATING ENTITIES
• MANAGING KEY PROPERTIES FOR ENTITIES
• MANAGING ENTITY RELATIONSHIPS
• VALIDATION
• DEFAULT VALUES
• ALLOW ENTITYMANAGER TO BE SMART ABOUT SENDING CHANGE BATCHES
• PARENT-CHILD RELATIONSHIPS AND QUERY EXECUTION ORDER
METADATA
Server
Persisted
Entities
Breeze
Controller
POST
breeze/{controller}/SaveChanges
Entity
Manager
Client
SaveChanges
UPDATE
• BREEZE ROUTING
• AUTO-REGISTERS BREEZE ROUTES
• BREEZECONTROLLERS (WEBAPI CONTROLLER)
• ADDS QUERY FILTERS HANDLE QUERY REQUESTS
• CONTEXTPROVIDERS
BREEZE SERVER INFRASTRUCTURE
• BREEZE ROUTING IS ACTION-BASED
• URL INCLUDES CONTROLLER NAME AND METHOD (ACTION) ON CONTROLLER
TO INVOKE
• ALLOWS MANY DIFFERENT QUERY METHODS TO BE EXPOSED FROM THE SAME
CONTROLLER
• BREEZE ROUTING IS AUTO- CONFIGURED ON START- UP
BREEZE ROUTING CONFIGURATION
• BASED ON WEBAPI CONTROLLER
• SIMPLE ATTRIBUTE TO ADD TO AN APICONTROLLER
• ADDS FILTERS FOR METADATA AND QUERY REQUEST HANDLING
• SIMPLIFIES SERVER CODING PATTERN
CONTROLLER
• METADATA
• - RETURNS THE EDM AS CLIENT METADATA
• QUERY METHODS
• - RETURNS IQUERYABLE
• - NO EXPLICIT PARAMETERS
• - ODATA QUERY PARAMETERS ARE TURNED INTO EXPRESSION TREE
THAT IS EXECUTED AGAINST RETURNED IQUERYABLE BY THE FILTER
• SAVECHANGES
• - TAKES JOBJECT BUNDLE(BATCH OF ENTITIES)
• - HANDS IT OF TO EFCONTEXTPROVIDER TO PROCESS REQUEST
BREEZE CONTROLLER METHODS
• CONTEXTPROVIDER ENCAPSULATES THREE MAIN FUNCTIONS:
• - INSTANTIATION OF A CONTEXT FOR ACCESSING THE DATA STORE
• - GENERATION (OR ACQUISITION) OF METADATA TO SEND TO BREEZE CLIENTS
• - PROCESSING "CHANGE-SET" SAVE REQUESTS
• ALTERNATIVES TO ENTITY FRAMEWORK:
• - NHIBERNATE PROVIDER
• - YOU ARE ABLE TO IMPLEMENT YOUR OWN CUSTOM CONTEXT PROVIDER
• - ALSO YOU CAN EXTEND EFCONTEXTPROVIDER TO ADD CUSTOM CODE
CONTEXT PROVIDERS
• - BASIC QUERYING/CACHING
• - EDITING/SAVING
• - ENTITY CREATION
• - WORKING WITH ENTITY ON THE CLIENT
• - VALIDATIONS
OTHER
• ENTITYQUERY OBJECTS DEFINE THE QUERY TO BE EXECUTED
• - DEFINE THE MODEL RESOURCE COLLECTION THROUGH THE FROM() METHOD
• EXPOSES CHAINABLE METHODS FOR SUPPORTED QUERY OPERATIONS
• - WHERE/ORDERBY/TAKE/SKIP
• EXECUTED THROUGH ENTITYMANAGER
• - CALL ENTITYMANAGER.EXECUTEQUERY() OR ENTITYQUERY.EXECUTE()
• THE QUERY IS PASSED FROM THE CLIENT TO THE SERVER VIA ODATA
QUERY SYNTAX
• - EVEN IF NOT AN ODATA SERVER
• CAN BE EXECUTED LOCALLY AGAINST THE CACHE AS WELL
CREATING ENTITY QUERIES
• CAN EASILY QUERY THE ENTITIES THAT HAVE ALREADY BEEN LOADED INTO
THE ENTITYMANAGER CACHE
• SYNCHRONOUS:
• - ENTITYMANAGER.EXECUTEQUERYLOCALLY
• - RETURNS THE ARRAY OF MATCHING ENTITIES DIRECTLY
• ASYNCHRONOUS:
• - ENTITYQUERY.USING(FETCHSTRATEGY.FROMLOCALCACHE)
• - EXECUTE QUERY THROUGH ENTITYMANAGER.EXECUTEQUERY
• - RETURNS PROMISES AS NORMAL
• - ONLY EXECUTES AGAINST THE LOCAL CACHE
FETCHING FROM CACHE
• BREEZE APPENDS AN ENTITYASPECT OBJECT TO EVERY ENTITY IT
MANAGES
• CONTAINS METADATA AND STATE INFORMATION ABOUT THE ENTITY
• USED FOR
• - CHECKING/MODIFYING ENTITY STATE
• - OBTAIN ORIGINAL VALUES OF MODIFIED ENTITIES
• - OBTAINING REFERENCE TO ITS ASSOCIATED ENTITYMANAGER
• - VALIDATION
• - MONITORING PROPERTY CHANGE EVENTS
ENTITY ASPECT
• - ENTITYASPECT
• - MODIFYING ENTITIES
• - SAVING CHANGES TO THE SERVER
• - CREATING ENTITIES
• - REJECTING AND ACCEPTING CHANGES
• - DELETING ENTITIES
• - NAMED SAVES
EDITING AND SAVING
• ENTITY PROPERTIES ARE OBSERVABLES
• - RAISE CHANGE NOTIFICATIONS TO ANY SUBSCRIBERS WHEN PROPERTY IS
SET
• BREEZE ENTITYMANAGER TRACKS CHANGES TO ANY ENTITIES THAT ARE
ATTACHED
• ENTITYMANAGER WILL KNOW WHEN PROPERTIES GET MODIFIED AND
KEEPS A LIST OF THOSE ENTITIES THAT HAVE CHANGED
MODIFYING ENTITITES
• SIMPLY CALL ENTITYMANAGER.SAVECHANGES
• ENTITYMANAGER FORMS A BATCH FROM ALL THE ENTITIES THAT WERE
MODIFIED, ADDED, OR DELETED
• MAKES THE CALL TO THE SERVICE WITH THE BATCH
• - SAVECHANGES METHOD BY DEFAULT
• GETS BACK A RESPONSE CONTAINING ALL THE PERSISTED ENTITIES
• - IN CASE OF SERVER COMPUTED PROPERTIES
• - PRIMARY KEYS
• MERGES ENTITIES BACK INTO THE CLIENT SIDE CACHE
SAVING CHANGES TO THE SERVER
• NEED TO BE CONSTRUCTED THROUGH BREEZE
• BASED ON METADATA OBJECT MODEL
• - WITH AN ENTITYASPECT ATTACHED
• - WITH OBSERVABLE PROPERTIES
• - WITH TEMPORARY KEYS IF SERVER GENERATED KEY PROPERTIES
• TWO WAYS:
• ENTITYMANAGER.CREATEENTITY
• - CREATES AN INSTANCE
• - ATTACHES TO THE CACHE
• ENTITYTYPE.CREATEENTITY
• - GET REFERENCE TO METADATA STORE
• - GET ENTITYTYPE FROM THE METADATA STORE
• - CREATE THE ENTITY FROM THE ENTITYTYPE
• - ADD THE ENTITY TO THE ENTITYMANAGER’S CACHE
CREATING NEW ENTITIES
• ENTITYMANAGER.REJECTCHANGES
• - REVERTS ALL ENTITIES RETRIEVED FROM THE SERVER TO THEIR ORIGINAL
VALUES / UNCHANGED STATE
• - DETACHES AND RELEASES ANY ENTITIES THAT HAVE BEEN ADDED
• ENTITYASPECT.REJECTCHANGES
• - IF ENTITY RETRIEVED FROM SERVER, REVERTS STATE AND PROPERTY
VALUES TO ORIGINAL
• - IF ENTITY WAS ADDED, DETACHES ENTITY FROM ENTITYMANAGER CACHE
REJECTING CHANGES
ENTITYASPECT.SETDELETED
• - ENTITY WILL NOT BE PART OF LOCAL QUERY RESULTS
• - BREEZE WILL SEND ENTITY INFO TO SERVER SIDE ON SAVECHANGES
• - ENTITY WILL BE REMOVED FROM THE CACHE AFTER SUCCESSFUL
COMPLETION OF A SAVECHANGES CALL AND RELEASED BY BREEZE
DELETING ENTITIES
ENTITYMANAGER.SAVECHANGES NORMALLY CALLS “SAVECHANGES ”
• - ALL MODIFIED, ADDED, DELETED ENTITIES
• - ALL TYPES IN ONE BUNDLE
CAN TARGET SAVE METHODS WITH OTHER NAMES
• - SAVEOPTIONS PARAMETER TO SAVECHANGES , SET RESOURCENAME
PROPERTY
CAN SEND SPECIFIC COLLECTIONS OF ENTITIES
• - PASS ENTITY ARRAY TO SAVECHANGES
NAMED SAVES
ENTITYASPECT.ENTITYSTATE PROPERTY
• UNCHANGED – AFTER BEING LOADED BY A QUERY OR AFTER SUCCESSFUL
SAVECHANGES
• MODIFIED – PREVIOUSLY UNCHANGED ENTITY HAS A PROPERTY CHANGE
• ADDED – ENTITY HAS BEEN CREATED AND ADDED TO THE CACHE, BUT NOT SAVED
TO BACK END
• DELETED – PREVIOUSLY UNCHANGED ENTITY IS MARKED FOR DELETION
• DETACHED
• - NEWLY CREATED ENTITY THAT HAS NOT BEEN ADDED TO THE CACHE
• - ADDED ENTITY THAT GETS MARKED FOR DELETION
• - DELETED ENTITY AFTER SAVECHANGES IS COMPLETE
• - ENTITIES THAT WERE IN THE CACHE WHEN ENTITYMANAGER.CLEAR IS
CALLED
• - ENTITYMANAGER.DETACHENTITY CALLED
ENTITY STATES
ENTITYMANAGER.EXPORTENTITIES ([ ENTITYARRAY ])
• RETURNS STRING BUNDLE – SERIALIZED COPY OF THE ENTITY AND THEIR STATE
INFORMATION
• IF NO PARAM , EXPORTS ENTIRE CACHE CONTENTS
• IF ARRAY PASSED IN, ONLY THOSE ENTITIES ARE EXPORTED
ENTITYMANAGER.IMPORTENTITIES (BUNDLE, [CONFIG ]) – STATIC
• CREATES A NEW ENTITYMANAGER INSTANCE, POPULATES ITS CACHE WITH THE
BUNDLE, RETURNS IT
• OPTIONAL CONFIG ARGUMENT WITH MERGESTRATEGY TO OVERRIDE DEFAULT
ENTITYMANAGER.IMPORTENTITIES (BUNDLE, [CONFIG ]) – INSTANCE
• MERGES ENTITIES INTO EXISTING ENTITYMANAGER CACHE
• OPTIONAL CONFIG ARGUMENT WITH MERGESTRATEGY TO OVERRIDE DEFAULT
EXPORTING/IMPORTING ENTITIES
CLIENT AND SERVER SIDE SUPPORT
YOU ARE ABLE TO DEFINE CLIENT AND SERVER SIDE RULES
• - BECOME A PART OF METADATA FOR MODEL
ERRORS ASSOCIATED WITH ENTITIES
ENTITYASPECT
• - MANUAL VALIDATION
• - ACCESSING VALIDATION ERRORS
VALIDATION
ENTITIES ARE VALIDATED DURING SAVECHANGES
• SERVER LOGIC IS EXECUTED
• 403 STATUS CODE AND ENTITIES WITH VALIDATION ERRORS ATTACHED ARE
THROWN
• ERRORS ARE ASSOCIATED WITH ENTITIES IN THE CACHE
VALIDATION ON THE SERVER
EACH ENTITY CONTAINS COLLECTION OF VALIDATIONERROR OBJECTS
• PROPERTYNAME
• PROPERTY
• ERRORMESSAGE
• CONTEXT
• ISSERVERERROR
• KEY
• VALIDATOR
DISPLAYING VALIDATION ERRORS
SOME VALIDATION RULES ARE CREATED AUTOMATICALLY BASED ON METADATA
• - DATA TYPES: NUMERIC TYPES, BOOL , BYTE, DATE, DURATION, GUID , STRING
• - REQUIRED, STRINGLENGTH
OTHER RULES CAN BE ADDED ON THE CLIENT SIDE
RULES ARE CHECKED
• - WHEN PROPERTIES CHANGE
• - WHEN YOU ADD/ATTACH AN ENTITY TO THE CACHE
• - WHEN YOU TRY TO SAVECHANGES
• - WHEN ENTITIES ARE LOADED INTO CACHE FROM A QUERY (OFF BY DEFAULT)
• - CONFIGURABLE – ENTITYMANAGER.VALIDATIONPROPERTIES
AUTOMATIC VALIDATION
THERE ARE SEVERAL VALIDATION RULES, DEFINED INSIDE VALIDATOR CLASS
• - DATA TYPES, REGULAR EXPRESSIONS, PHONE, EMAIL, CREDITCARD, URL
VALIDATOR ALLOWS YOU TO:
• - REGISTER CUSTOM VALIDATION RULES
• - MANUALLY VALIDATE
• - MANAGE ERROR MESSAGE TEMPLATES
BUILT IN CLIENT SIDE VALIDATION RULES
ANY JS LIBRARY
BEST (IF WE NEED DATA BINDING ADVANTAGE):
• KNOCKOUT, ANGULAR ETC.
WORKS WELL WITH REQUIRE.JS FOR MODULE DEPENDENCY CHECKING
BREEZE AND OTHER JS LIBRARIES/TOOLS
• HTTP://WWW.BREEZEJS.COM/
• HTTP://WWW.BREEZEJS.COM/PREVIOUS-RELEASE-NOTES
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/RELEASE-NOTES
• HTTP://BRIANNOYES.NET/2013/02/16/CONSUMING-AN-ASP-NET-WEB-API-ODATA-SERVICE-WITH-BREEZE/
• HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/ENTITYMANAGER.HTML
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/METADATA
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/WEB-API-ROUTING
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/WEB-API-CONTROLLER
• HTTP://WWW.BREEZEJS.COM/SAMPLES/NODB
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/NHIBERNATE
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/ENTITYMANAGER-AND-CACHING
• HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/ENTITYASPECT.HTML
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/EXPORTIMPORT
• HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/MERGESTRATEGY.HTML
• HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/VALIDATIONERROR.HTML
• HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/TESTING-BREEZE-APPLICATION
LINKS
NOW WATCH LIVE VIDEO
OF THIS PRESENTATION AT:
HTTPS://YOUTU.BE/KGSHQ
ZD6SLM

Mais conteúdo relacionado

Mais de Softengi

Как оценить Тестировщика. Александра Ковалева, Testing Consultant в Softengi
Как оценить Тестировщика. Александра Ковалева, Testing Consultant в SoftengiКак оценить Тестировщика. Александра Ковалева, Testing Consultant в Softengi
Как оценить Тестировщика. Александра Ковалева, Testing Consultant в SoftengiSoftengi
 
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiКак оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiSoftengi
 
Архитектурные семинары Softengi - инфографика
Архитектурные семинары Softengi - инфографикаАрхитектурные семинары Softengi - инфографика
Архитектурные семинары Softengi - инфографикаSoftengi
 
Автоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложенийАвтоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложенийSoftengi
 
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...Softengi
 
About REST. Архитектурные семинары Softengi
About REST. Архитектурные семинары SoftengiAbout REST. Архитектурные семинары Softengi
About REST. Архитектурные семинары SoftengiSoftengi
 
AutoTest Refactoring. Архитектурные семинары Softengi
AutoTest Refactoring. Архитектурные семинары SoftengiAutoTest Refactoring. Архитектурные семинары Softengi
AutoTest Refactoring. Архитектурные семинары SoftengiSoftengi
 
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiРазработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
 
Enviance Environmental ERP
Enviance Environmental ERPEnviance Environmental ERP
Enviance Environmental ERPSoftengi
 
Corporate Social Responsibility at Softengi
Corporate Social Responsibility at SoftengiCorporate Social Responsibility at Softengi
Corporate Social Responsibility at SoftengiSoftengi
 
Localize your business - Software Localization Services LocServ
Localize your business - Software Localization Services LocServLocalize your business - Software Localization Services LocServ
Localize your business - Software Localization Services LocServSoftengi
 
Тестирование web-приложений на iPad
Тестирование web-приложений на iPadТестирование web-приложений на iPad
Тестирование web-приложений на iPadSoftengi
 
Постановка и улучшение Scrum процесса для группы проектов в компании
Постановка и улучшение Scrum процесса для группы проектов в компанииПостановка и улучшение Scrum процесса для группы проектов в компании
Постановка и улучшение Scrum процесса для группы проектов в компанииSoftengi
 
Softengi Software Development Company Profile
Softengi Software Development Company ProfileSoftengi Software Development Company Profile
Softengi Software Development Company ProfileSoftengi
 
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15Путь к трассировке требований: от идеи к инструменту. SQA-Days 15
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15Softengi
 
Планирование трудозатрат на тестирование
Планирование трудозатрат на тестированиеПланирование трудозатрат на тестирование
Планирование трудозатрат на тестированиеSoftengi
 
Softengi - Business Process Automation based on Microsoft SharePoint Platform
Softengi - Business Process Automation based on Microsoft SharePoint PlatformSoftengi - Business Process Automation based on Microsoft SharePoint Platform
Softengi - Business Process Automation based on Microsoft SharePoint PlatformSoftengi
 
4 Reasons to Outsource IT to Ukraine
4 Reasons to Outsource IT to Ukraine4 Reasons to Outsource IT to Ukraine
4 Reasons to Outsource IT to UkraineSoftengi
 

Mais de Softengi (18)

Как оценить Тестировщика. Александра Ковалева, Testing Consultant в Softengi
Как оценить Тестировщика. Александра Ковалева, Testing Consultant в SoftengiКак оценить Тестировщика. Александра Ковалева, Testing Consultant в Softengi
Как оценить Тестировщика. Александра Ковалева, Testing Consultant в Softengi
 
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead SoftengiКак оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
Как оценить время на тестирование. Александр Зиновьев, Test Lead Softengi
 
Архитектурные семинары Softengi - инфографика
Архитектурные семинары Softengi - инфографикаАрхитектурные семинары Softengi - инфографика
Архитектурные семинары Softengi - инфографика
 
Автоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложенийАвтоматизированный подход к локализации корпоративных приложений
Автоматизированный подход к локализации корпоративных приложений
 
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
Scrum и пустота. Доклад Анатолия Кота, менеджера проектов Softengi, на Междун...
 
About REST. Архитектурные семинары Softengi
About REST. Архитектурные семинары SoftengiAbout REST. Архитектурные семинары Softengi
About REST. Архитектурные семинары Softengi
 
AutoTest Refactoring. Архитектурные семинары Softengi
AutoTest Refactoring. Архитектурные семинары SoftengiAutoTest Refactoring. Архитектурные семинары Softengi
AutoTest Refactoring. Архитектурные семинары Softengi
 
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiРазработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
 
Enviance Environmental ERP
Enviance Environmental ERPEnviance Environmental ERP
Enviance Environmental ERP
 
Corporate Social Responsibility at Softengi
Corporate Social Responsibility at SoftengiCorporate Social Responsibility at Softengi
Corporate Social Responsibility at Softengi
 
Localize your business - Software Localization Services LocServ
Localize your business - Software Localization Services LocServLocalize your business - Software Localization Services LocServ
Localize your business - Software Localization Services LocServ
 
Тестирование web-приложений на iPad
Тестирование web-приложений на iPadТестирование web-приложений на iPad
Тестирование web-приложений на iPad
 
Постановка и улучшение Scrum процесса для группы проектов в компании
Постановка и улучшение Scrum процесса для группы проектов в компанииПостановка и улучшение Scrum процесса для группы проектов в компании
Постановка и улучшение Scrum процесса для группы проектов в компании
 
Softengi Software Development Company Profile
Softengi Software Development Company ProfileSoftengi Software Development Company Profile
Softengi Software Development Company Profile
 
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15Путь к трассировке требований: от идеи к инструменту. SQA-Days 15
Путь к трассировке требований: от идеи к инструменту. SQA-Days 15
 
Планирование трудозатрат на тестирование
Планирование трудозатрат на тестированиеПланирование трудозатрат на тестирование
Планирование трудозатрат на тестирование
 
Softengi - Business Process Automation based on Microsoft SharePoint Platform
Softengi - Business Process Automation based on Microsoft SharePoint PlatformSoftengi - Business Process Automation based on Microsoft SharePoint Platform
Softengi - Business Process Automation based on Microsoft SharePoint Platform
 
4 Reasons to Outsource IT to Ukraine
4 Reasons to Outsource IT to Ukraine4 Reasons to Outsource IT to Ukraine
4 Reasons to Outsource IT to Ukraine
 

Último

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhikauryashika82
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfChris Hunter
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...KokoStevan
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdfQucHHunhnh
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsTechSoup
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeThiyagu K
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfAyushMahapatra5
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Shubhangi Sonawane
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactPECB
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfagholdier
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDThiyagu K
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxVishalSingh1417
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.christianmathematics
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxVishalSingh1417
 

Último (20)

Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
SECOND SEMESTER TOPIC COVERAGE SY 2023-2024 Trends, Networks, and Critical Th...
 
1029 - Danh muc Sach Giao Khoa 10 . pdf
1029 -  Danh muc Sach Giao Khoa 10 . pdf1029 -  Danh muc Sach Giao Khoa 10 . pdf
1029 - Danh muc Sach Giao Khoa 10 . pdf
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Class 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdfClass 11th Physics NEET formula sheet pdf
Class 11th Physics NEET formula sheet pdf
 
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
Ecological Succession. ( ECOSYSTEM, B. Pharmacy, 1st Year, Sem-II, Environmen...
 
Beyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global ImpactBeyond the EU: DORA and NIS 2 Directive's Global Impact
Beyond the EU: DORA and NIS 2 Directive's Global Impact
 
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"Mattingly "AI & Prompt Design: The Basics of Prompt Design"
Mattingly "AI & Prompt Design: The Basics of Prompt Design"
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Measures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SDMeasures of Dispersion and Variability: Range, QD, AD and SD
Measures of Dispersion and Variability: Range, QD, AD and SD
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 

Web Apps Development With Breeze.js. Workaround Seminars

  • 1. WEB APPS DEVELOPMENT WITH BREEZE.JS AUTHOR: VIACHESLAV BUKACH SOFTWARE DEVELOPER AT SOFTENGI
  • 2. • BREEZE IS A JAVASCRIPT LIBRARY THAT HELPS YOU TO MANAGE DATA IN RICH CLIENT APPLICATION • FIRST RELEASE – SEPTEMBER 17, 2012 • LAST RELEASED VERSION – 1.4.16 (JULY 13. 2014) BREEZE
  • 3. • - CAPABILITIES • - REQUIREMENTS • - CLIENT SIDE • - SERVER SIDE • - OTHER OUTLINE
  • 4. • DATA RETRIEVAL VIA SERVICE CALLS • DATA CACHING ON CLIENT • CHANGES TRACKING • SAVE CHANGES VIA SERVICE CALLS • VALIDATION • EXPORT/IMPORT DATA ON FOR OFFLINE STORAGE • WORK WITH ODATA SERVICES CAPABILITIES
  • 5. Single Page App SERVER DATABASE Markup UI Logic Data Access SPA ARCHITECTURE
  • 6. • ENTITYMANAGER IS THE BRAINS OF BREEZE CLIENT SIDE FUNCTIONALITY • - MAKES SERVICE CALLS • - CACHES METADATA AND QUERY RESULTS • - CREATES ENTITIES • - VALIDATES ENTITIES • - FORMS UPDATE REQUESTS • - HANDLES MERGING REQUERY AND SAVECHANGES RESULTS WITH CACHED ENTITIES ENTITY MANAGER
  • 7. • - QUERY • - UPDATE CALLING PATTERNS
  • 9. • METADATA IS USED BY BREEZE ENTITYMANAGER FOR MANY ASPECTS • ENTITY TYPE INFORMATION • CREATING ENTITIES • MANAGING KEY PROPERTIES FOR ENTITIES • MANAGING ENTITY RELATIONSHIPS • VALIDATION • DEFAULT VALUES • ALLOW ENTITYMANAGER TO BE SMART ABOUT SENDING CHANGE BATCHES • PARENT-CHILD RELATIONSHIPS AND QUERY EXECUTION ORDER METADATA
  • 11. • BREEZE ROUTING • AUTO-REGISTERS BREEZE ROUTES • BREEZECONTROLLERS (WEBAPI CONTROLLER) • ADDS QUERY FILTERS HANDLE QUERY REQUESTS • CONTEXTPROVIDERS BREEZE SERVER INFRASTRUCTURE
  • 12. • BREEZE ROUTING IS ACTION-BASED • URL INCLUDES CONTROLLER NAME AND METHOD (ACTION) ON CONTROLLER TO INVOKE • ALLOWS MANY DIFFERENT QUERY METHODS TO BE EXPOSED FROM THE SAME CONTROLLER • BREEZE ROUTING IS AUTO- CONFIGURED ON START- UP BREEZE ROUTING CONFIGURATION
  • 13. • BASED ON WEBAPI CONTROLLER • SIMPLE ATTRIBUTE TO ADD TO AN APICONTROLLER • ADDS FILTERS FOR METADATA AND QUERY REQUEST HANDLING • SIMPLIFIES SERVER CODING PATTERN CONTROLLER
  • 14. • METADATA • - RETURNS THE EDM AS CLIENT METADATA • QUERY METHODS • - RETURNS IQUERYABLE • - NO EXPLICIT PARAMETERS • - ODATA QUERY PARAMETERS ARE TURNED INTO EXPRESSION TREE THAT IS EXECUTED AGAINST RETURNED IQUERYABLE BY THE FILTER • SAVECHANGES • - TAKES JOBJECT BUNDLE(BATCH OF ENTITIES) • - HANDS IT OF TO EFCONTEXTPROVIDER TO PROCESS REQUEST BREEZE CONTROLLER METHODS
  • 15. • CONTEXTPROVIDER ENCAPSULATES THREE MAIN FUNCTIONS: • - INSTANTIATION OF A CONTEXT FOR ACCESSING THE DATA STORE • - GENERATION (OR ACQUISITION) OF METADATA TO SEND TO BREEZE CLIENTS • - PROCESSING "CHANGE-SET" SAVE REQUESTS • ALTERNATIVES TO ENTITY FRAMEWORK: • - NHIBERNATE PROVIDER • - YOU ARE ABLE TO IMPLEMENT YOUR OWN CUSTOM CONTEXT PROVIDER • - ALSO YOU CAN EXTEND EFCONTEXTPROVIDER TO ADD CUSTOM CODE CONTEXT PROVIDERS
  • 16. • - BASIC QUERYING/CACHING • - EDITING/SAVING • - ENTITY CREATION • - WORKING WITH ENTITY ON THE CLIENT • - VALIDATIONS OTHER
  • 17. • ENTITYQUERY OBJECTS DEFINE THE QUERY TO BE EXECUTED • - DEFINE THE MODEL RESOURCE COLLECTION THROUGH THE FROM() METHOD • EXPOSES CHAINABLE METHODS FOR SUPPORTED QUERY OPERATIONS • - WHERE/ORDERBY/TAKE/SKIP • EXECUTED THROUGH ENTITYMANAGER • - CALL ENTITYMANAGER.EXECUTEQUERY() OR ENTITYQUERY.EXECUTE() • THE QUERY IS PASSED FROM THE CLIENT TO THE SERVER VIA ODATA QUERY SYNTAX • - EVEN IF NOT AN ODATA SERVER • CAN BE EXECUTED LOCALLY AGAINST THE CACHE AS WELL CREATING ENTITY QUERIES
  • 18. • CAN EASILY QUERY THE ENTITIES THAT HAVE ALREADY BEEN LOADED INTO THE ENTITYMANAGER CACHE • SYNCHRONOUS: • - ENTITYMANAGER.EXECUTEQUERYLOCALLY • - RETURNS THE ARRAY OF MATCHING ENTITIES DIRECTLY • ASYNCHRONOUS: • - ENTITYQUERY.USING(FETCHSTRATEGY.FROMLOCALCACHE) • - EXECUTE QUERY THROUGH ENTITYMANAGER.EXECUTEQUERY • - RETURNS PROMISES AS NORMAL • - ONLY EXECUTES AGAINST THE LOCAL CACHE FETCHING FROM CACHE
  • 19. • BREEZE APPENDS AN ENTITYASPECT OBJECT TO EVERY ENTITY IT MANAGES • CONTAINS METADATA AND STATE INFORMATION ABOUT THE ENTITY • USED FOR • - CHECKING/MODIFYING ENTITY STATE • - OBTAIN ORIGINAL VALUES OF MODIFIED ENTITIES • - OBTAINING REFERENCE TO ITS ASSOCIATED ENTITYMANAGER • - VALIDATION • - MONITORING PROPERTY CHANGE EVENTS ENTITY ASPECT
  • 20. • - ENTITYASPECT • - MODIFYING ENTITIES • - SAVING CHANGES TO THE SERVER • - CREATING ENTITIES • - REJECTING AND ACCEPTING CHANGES • - DELETING ENTITIES • - NAMED SAVES EDITING AND SAVING
  • 21. • ENTITY PROPERTIES ARE OBSERVABLES • - RAISE CHANGE NOTIFICATIONS TO ANY SUBSCRIBERS WHEN PROPERTY IS SET • BREEZE ENTITYMANAGER TRACKS CHANGES TO ANY ENTITIES THAT ARE ATTACHED • ENTITYMANAGER WILL KNOW WHEN PROPERTIES GET MODIFIED AND KEEPS A LIST OF THOSE ENTITIES THAT HAVE CHANGED MODIFYING ENTITITES
  • 22. • SIMPLY CALL ENTITYMANAGER.SAVECHANGES • ENTITYMANAGER FORMS A BATCH FROM ALL THE ENTITIES THAT WERE MODIFIED, ADDED, OR DELETED • MAKES THE CALL TO THE SERVICE WITH THE BATCH • - SAVECHANGES METHOD BY DEFAULT • GETS BACK A RESPONSE CONTAINING ALL THE PERSISTED ENTITIES • - IN CASE OF SERVER COMPUTED PROPERTIES • - PRIMARY KEYS • MERGES ENTITIES BACK INTO THE CLIENT SIDE CACHE SAVING CHANGES TO THE SERVER
  • 23. • NEED TO BE CONSTRUCTED THROUGH BREEZE • BASED ON METADATA OBJECT MODEL • - WITH AN ENTITYASPECT ATTACHED • - WITH OBSERVABLE PROPERTIES • - WITH TEMPORARY KEYS IF SERVER GENERATED KEY PROPERTIES • TWO WAYS: • ENTITYMANAGER.CREATEENTITY • - CREATES AN INSTANCE • - ATTACHES TO THE CACHE • ENTITYTYPE.CREATEENTITY • - GET REFERENCE TO METADATA STORE • - GET ENTITYTYPE FROM THE METADATA STORE • - CREATE THE ENTITY FROM THE ENTITYTYPE • - ADD THE ENTITY TO THE ENTITYMANAGER’S CACHE CREATING NEW ENTITIES
  • 24. • ENTITYMANAGER.REJECTCHANGES • - REVERTS ALL ENTITIES RETRIEVED FROM THE SERVER TO THEIR ORIGINAL VALUES / UNCHANGED STATE • - DETACHES AND RELEASES ANY ENTITIES THAT HAVE BEEN ADDED • ENTITYASPECT.REJECTCHANGES • - IF ENTITY RETRIEVED FROM SERVER, REVERTS STATE AND PROPERTY VALUES TO ORIGINAL • - IF ENTITY WAS ADDED, DETACHES ENTITY FROM ENTITYMANAGER CACHE REJECTING CHANGES
  • 25. ENTITYASPECT.SETDELETED • - ENTITY WILL NOT BE PART OF LOCAL QUERY RESULTS • - BREEZE WILL SEND ENTITY INFO TO SERVER SIDE ON SAVECHANGES • - ENTITY WILL BE REMOVED FROM THE CACHE AFTER SUCCESSFUL COMPLETION OF A SAVECHANGES CALL AND RELEASED BY BREEZE DELETING ENTITIES
  • 26. ENTITYMANAGER.SAVECHANGES NORMALLY CALLS “SAVECHANGES ” • - ALL MODIFIED, ADDED, DELETED ENTITIES • - ALL TYPES IN ONE BUNDLE CAN TARGET SAVE METHODS WITH OTHER NAMES • - SAVEOPTIONS PARAMETER TO SAVECHANGES , SET RESOURCENAME PROPERTY CAN SEND SPECIFIC COLLECTIONS OF ENTITIES • - PASS ENTITY ARRAY TO SAVECHANGES NAMED SAVES
  • 27. ENTITYASPECT.ENTITYSTATE PROPERTY • UNCHANGED – AFTER BEING LOADED BY A QUERY OR AFTER SUCCESSFUL SAVECHANGES • MODIFIED – PREVIOUSLY UNCHANGED ENTITY HAS A PROPERTY CHANGE • ADDED – ENTITY HAS BEEN CREATED AND ADDED TO THE CACHE, BUT NOT SAVED TO BACK END • DELETED – PREVIOUSLY UNCHANGED ENTITY IS MARKED FOR DELETION • DETACHED • - NEWLY CREATED ENTITY THAT HAS NOT BEEN ADDED TO THE CACHE • - ADDED ENTITY THAT GETS MARKED FOR DELETION • - DELETED ENTITY AFTER SAVECHANGES IS COMPLETE • - ENTITIES THAT WERE IN THE CACHE WHEN ENTITYMANAGER.CLEAR IS CALLED • - ENTITYMANAGER.DETACHENTITY CALLED ENTITY STATES
  • 28. ENTITYMANAGER.EXPORTENTITIES ([ ENTITYARRAY ]) • RETURNS STRING BUNDLE – SERIALIZED COPY OF THE ENTITY AND THEIR STATE INFORMATION • IF NO PARAM , EXPORTS ENTIRE CACHE CONTENTS • IF ARRAY PASSED IN, ONLY THOSE ENTITIES ARE EXPORTED ENTITYMANAGER.IMPORTENTITIES (BUNDLE, [CONFIG ]) – STATIC • CREATES A NEW ENTITYMANAGER INSTANCE, POPULATES ITS CACHE WITH THE BUNDLE, RETURNS IT • OPTIONAL CONFIG ARGUMENT WITH MERGESTRATEGY TO OVERRIDE DEFAULT ENTITYMANAGER.IMPORTENTITIES (BUNDLE, [CONFIG ]) – INSTANCE • MERGES ENTITIES INTO EXISTING ENTITYMANAGER CACHE • OPTIONAL CONFIG ARGUMENT WITH MERGESTRATEGY TO OVERRIDE DEFAULT EXPORTING/IMPORTING ENTITIES
  • 29. CLIENT AND SERVER SIDE SUPPORT YOU ARE ABLE TO DEFINE CLIENT AND SERVER SIDE RULES • - BECOME A PART OF METADATA FOR MODEL ERRORS ASSOCIATED WITH ENTITIES ENTITYASPECT • - MANUAL VALIDATION • - ACCESSING VALIDATION ERRORS VALIDATION
  • 30. ENTITIES ARE VALIDATED DURING SAVECHANGES • SERVER LOGIC IS EXECUTED • 403 STATUS CODE AND ENTITIES WITH VALIDATION ERRORS ATTACHED ARE THROWN • ERRORS ARE ASSOCIATED WITH ENTITIES IN THE CACHE VALIDATION ON THE SERVER
  • 31. EACH ENTITY CONTAINS COLLECTION OF VALIDATIONERROR OBJECTS • PROPERTYNAME • PROPERTY • ERRORMESSAGE • CONTEXT • ISSERVERERROR • KEY • VALIDATOR DISPLAYING VALIDATION ERRORS
  • 32. SOME VALIDATION RULES ARE CREATED AUTOMATICALLY BASED ON METADATA • - DATA TYPES: NUMERIC TYPES, BOOL , BYTE, DATE, DURATION, GUID , STRING • - REQUIRED, STRINGLENGTH OTHER RULES CAN BE ADDED ON THE CLIENT SIDE RULES ARE CHECKED • - WHEN PROPERTIES CHANGE • - WHEN YOU ADD/ATTACH AN ENTITY TO THE CACHE • - WHEN YOU TRY TO SAVECHANGES • - WHEN ENTITIES ARE LOADED INTO CACHE FROM A QUERY (OFF BY DEFAULT) • - CONFIGURABLE – ENTITYMANAGER.VALIDATIONPROPERTIES AUTOMATIC VALIDATION
  • 33. THERE ARE SEVERAL VALIDATION RULES, DEFINED INSIDE VALIDATOR CLASS • - DATA TYPES, REGULAR EXPRESSIONS, PHONE, EMAIL, CREDITCARD, URL VALIDATOR ALLOWS YOU TO: • - REGISTER CUSTOM VALIDATION RULES • - MANUALLY VALIDATE • - MANAGE ERROR MESSAGE TEMPLATES BUILT IN CLIENT SIDE VALIDATION RULES
  • 34. ANY JS LIBRARY BEST (IF WE NEED DATA BINDING ADVANTAGE): • KNOCKOUT, ANGULAR ETC. WORKS WELL WITH REQUIRE.JS FOR MODULE DEPENDENCY CHECKING BREEZE AND OTHER JS LIBRARIES/TOOLS
  • 35. • HTTP://WWW.BREEZEJS.COM/ • HTTP://WWW.BREEZEJS.COM/PREVIOUS-RELEASE-NOTES • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/RELEASE-NOTES • HTTP://BRIANNOYES.NET/2013/02/16/CONSUMING-AN-ASP-NET-WEB-API-ODATA-SERVICE-WITH-BREEZE/ • HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/ENTITYMANAGER.HTML • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/METADATA • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/WEB-API-ROUTING • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/WEB-API-CONTROLLER • HTTP://WWW.BREEZEJS.COM/SAMPLES/NODB • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/NHIBERNATE • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/ENTITYMANAGER-AND-CACHING • HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/ENTITYASPECT.HTML • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/EXPORTIMPORT • HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/MERGESTRATEGY.HTML • HTTP://WWW.BREEZEJS.COM/SITES/ALL/APIDOCS/CLASSES/VALIDATIONERROR.HTML • HTTP://WWW.BREEZEJS.COM/DOCUMENTATION/TESTING-BREEZE-APPLICATION LINKS
  • 36. NOW WATCH LIVE VIDEO OF THIS PRESENTATION AT: HTTPS://YOUTU.BE/KGSHQ ZD6SLM

Notas do Editor

  1. U can modify the state on your own, by calling methods or changing state by hands
  2. Yo