1 / 140

Litium Certified Developer

Litium Certified Developer. Agenda. About Litium Litium Accelerator Installation Architecture Data modelling Websites area Globalization Dependency injection Security token Litium areas E-Commerce, PIM, Customers and Media Logging Events Validation Web API Searching & Batching

santosk
Download Presentation

Litium Certified Developer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Litium Certified Developer

  2. Agenda • About Litium • Litium Accelerator • Installation • Architecture • Data modelling • Websites area • Globalization • Dependency injection • Security token • Litium areas E-Commerce, PIM, Customers and Media • Logging • Events • Validation • Web API • Searching & Batching • Accelerator frontend • Testing • Certification

  3. Features PRODUCT INFORMATION MANAGEMENT Product management Categorystructures Pricing Workflows Images and media DIGITAL MARKETING Content management Personalization Product presentation Landing pages Inspiration E-COMMERCE Purchase process Order management Payments Campaigns Reports

  4. EDGE 3rd PARTY ACCELERATOR STOREFRONT • CONNECT • WEB APIs PRODUCT PIM COMMERCE OMS CONTENT CMS • ON DEMAND • CLOUD

  5. Eco system PAYMENTS PRICE COMPARISON SEARCH & RECOMMENDATIONS SEO & CONVERSION ANALYTICS + and more EMAIL MARKETING PREMIUM PIM CUSTOMER SERVICE PRINT SOCIAL MARKETING AdobeInDesign + and more ERP + and more

  6. AddOns • Following are some of the most frequently used AddOns • Product Media Mapper - To connect images and files to products automatically • Payment providers - Klarna, Dibs, PayEx, Adyen, PayPal, Nets, Handelsbanken Ecster, Skrill • Integration kit - Platform to develop file based integrations towards Litium

  7. Integration Integration Kit InRiverConnector ERP / PIM / CRM Product info Images & media Order status Delivery status Customer Info Stock balance Prices Credit limits Order Payments Customer Info etc. https://docs.litium.com/more/best-practices/integrate/best-practice-for-integration-architecture

  8. Litium is based on standard technology • .NET Standard 2.0 • Entity Framework Core (Microsoft/Open Source) • Newtonsoft JSON (Open Source) • AutoMapper (Open Source) • ASP.NET MVC 5 (Microsoft) • ASP.NET WebAPI 5 (Microsoft) • Angular JS (Google/Open Source)

  9. Roadmap Platform • Litium 5.5 • Litium 6 • Litium 7 • Litium 8 Today • Multi-market campaigns • Google Shopping • Custom Web API Foundations • PIM improvements • E-commerce improvements • Order & Returns Management • Campaign management • Microsoft Azure Infrastructure support • User interface improvements • Media management • Real-time customer segmentation • User interface improvements • GDPR process support • Web API add-on • Brand new CMS with Marketing Automation and Personalization • Refactored Accelerator • Improved headless support • User interface improvements 2019 Q3 2018 Q3 2017 Q1 2018

  10. The “New” API The “Old” API • Products – Litium 5.x • Media and Customers – Litium 6.x • Websites – Litium 7.x • Ecommerce – Litium 8.x • Service Oriented design • Each entity has its service for create/update/delete operations • Business logic in extensible interface implementations • Use decorator pattern to extend • Old API (Ecommerce module) • Based on architecture popular in year 2000 to 2010 • “Collection” classes as object creators • “Carrier” is a pure code object (no operations) • “Entity” has operations • Business logic in extensible interface implementations • Use inheritance to extend

  11. Litium Accelerator

  12. What is Litium Accelerator? • A packaged technical solution, • Speed up starting new projects. • No need to build from scratch, • Base for common functionality to start development. • Delivered as source code. • Once customized, accelerator will be part of the solution.

  13. Litium Accelerator • A complete re-write for Litium 7 • Blocks instead of sections • Settings moved into platform • Business logic separation • ASP.NET Mvc, React and Redux (no JQuery) • Foundation Zurb - Responsive design framework

  14. Litium Accelerator 7 MVC ReactRedux Selectedcomponents Most pages Web api Business LogicLayer (BLL) Litium API

  15. Technical choices • Design - less is more • Zurb Foundation for Sites • Zurb Foundation for E-mails • Styles • Component based • SASS • Block, Element, Modifiermethodology (BEM) • JavaScript • Component based • React • Webpack • No JQuery

  16. MVC React + Redux • Used when not much javascript is needed • Litium.Accelerator.Mvc/Controllers • Litium.Accelerator.Mvc/Views • Litium.Accelerator/ViewModels • Used when more js is needed for dynamic views • Compile with WebPack • All client resources in folder • Litium.Accelerator.Mvc\Client • Litium.Accelerator.Mvc/Controllers/Apihas the webapi endpoints

  17. Installation

  18. Installation • Installation of Litium is done through Visual Studio • With or without accelerator • Litium is available through a private Litium NuGet-feed • NuGet-feed is accessed with your user account in http://docs.litium.com • All packages that start with Litium.* are distributed as individual nuget packages • One DLL = one NuGet package

  19. Installation Pre-requisites • System requirementshttps://docs.litium.com/documentation/get-started/system-requirements • VS 2017 • Sql Server 2012 • .NET 4.7.2 dev pack • Litium NuGet feed https://docs.litium.com/download/litium-nuget-feed • Requires docs.litium.com account with download rights • IIS (Should have .net development enabled through “Turn windows features on/off”)

  20. Enable (install) IIS on Windows

  21. NuGet package for installation Litium.Web.Setup.Complete Litium.Setup.Complete

  22. Distribution – Add-Ons/Accelerator • Compiled Add-Ons (e.g. payment provider addOns) • Install via NuGet packages • Accelerator and source code Add-Ons (e.g. Integration Kit) • Download from KC (Litium Knowledge Center) • The Litium platform and licensed Add-Ons (e.g. Accelerator and Integration Kit) can not be reused or shared after download

  23. Configure Https • HSTS max age = The time, in seconds, that the browser should remember that a site is only to be accessed using HTTPS. • Chrome requires min 1 year to be allowed in its hardcoded list of HTTPS only websites • For development set to a few minutes • Litium does not include subdomain in hsts setting https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security https://hstspreload.org/

  24. Task: Installation During this education we will build a bookstore webshop All tasks are available at https://github.com/LitiumAB/Education/in the Developer education/Bookstore folder

  25. Installation review

  26. Options in Web.config • Update database connection string • Update the files folder. • Used for • Temporary files. • Lucene search index. • Media files. • CommonFilesDirectory • Sessionstate, inProc vs StateServer • Use StateServer in local development to verify serialization support • SMTP https://docs.litiumstudio.com/documentation/get-started/configure/web_config

  27. Should you use IIS in dev? • IIS Express has limitations, by using IIS during development these will not come as a surprise when moving to production • If you ever need to check something, without opening visual studio! https://msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx

  28. Useful tools • http://readme.localtest.me/ • You can use <yourDomainName>.localtest.me instead of using windows hosts file • Will not work offline • ReAttach, a Visual Studio addon that makes it easy to attach to IIS process for debugging. • Baretail or Wintail to keep an eye on the log • PaperCut for local email testing

  29. Demo: Litum Accelerator

  30. Login to backoffice • <mydomain>/litium • If you belong to the local administrators group in windows, use your windows account user name and password. • Otherwise, you need to change systemUserGroupin Web.config to specify a different group to allow login locally. https://docs.litium.com/documentation/get-started/web_config

  31. Administration UI • Angular • ASP.NET WebAPI • Signalr • Webforms in Sales

  32. Accelerator – What is deployed? • New site in websites area • New assortment in products area • Fields and templates in Blocks, Customers, Websites and PIM • Globalization artifacts • Channel, Country, Currency, Domain name, Market and Tax class

  33. Demo: Litum Backoffice

  34. Architecture

  35. Web solution ASP.NET web app running on IIS • Integration- file based / Web APIs / Headless • - Windows Service /ASP.NET web app running on IIS Accelerator (MVC REACT)Foundation by Zurb Foundation Email by Zurb Litium API Sites Products Orders Customer Media Globalization Dashboard Price calculations Validation rules State Transitions Search Campaign Engine Field framework Querying Batching Security Dependencyinjection Event Auditing Log Infrastructure CDN FileStorage Service bus Database

  36. Component model - Assemblies • Litium.Abstractions • Domain entities, events and service contracts. • When there are breaking changes • Information in release notes. • Except items where namespace name include ”Internal” • Litium.Application • Implementation of service contracts. • Litium.Infrastructure.X • Implementation of external services, e.g: Service Bus

  37. Component model • Namespaces • Same namespace for domain entity and its service contract. • Example: Variant and VariantService in same Litium.Products namespace • Assembly Structure, examples • Litium.Abstractions • Litium.Web.Abstractions • Litium.Web.Mvc.Abstractions • Litium.Web.WebApi.Abstractions • Litium.Web.Administration.Abstractions • Implementations • Litium.Application • Litium.Infrastructure.MicrosoftServiceBus

  38. Service Model • Litium contracts (Services) • Artifacts that have “methods” or “operations” • Interfaces • Implement an interface to extend the functionality • Or change default functionality by extending default implementation (service decorator pattern) • Example: IPriceCalculator • Abstract Classes • Declare service definitions that implementation projects are not expected to change. • Example: BaseProductService

  39. Concurrency • Optimistic concurrency is available only in Ecommerce area • Pessimistic locking – prevent edits when an entity is being edited • Optimistic locking – allow edit but check before save if the item has been edited since it was read • All other areas do not have concurrency checks • Can enforce pessimistic concurrency through DistributedLock object

  40. Data Modelling

  41. Data modelling Entities • Entities which supports data modelling • from Litium 7 are shown in green • from Litium 5 and Litium 6 versions are shown in blue

  42. Field Framework Litium.FieldFramework • Handles all “dynamic” fields (fields defined in the project) • Can create your own field types • Field types are per Installation • The field does need not be added to the Field template to use it. • Consider field template as a grouping, and a way to point out the display template. • Field template is not the container of fields. • In accelerator, setup is done in \Src\Litium.Accelerator\Definitions\

  43. Field Definition • Defined for each Area • Litum.WebSites.WebSiteArea • Litium.Products.ProductArea • Litium.Customers.CustomerArea • Litium.Blocks.BlockArea • \Src\Litium.Accelerator\Definitions\

  44. Field Template • The field definitions are grouped into field groups and added to a field template

  45. Field Template • Fields are added to a field group by Field definition id • Field group added to template

  46. Usage – Getting data from fields \Src\Litium.Accelerator\Builders\Product\VariantInfoBuilder.cs Extension method

  47. Pointer Can be any entity • One field type that points to other entities • Single or multi select Image Pointer Page Product

  48. Multi field • A field that is a container for other fields • Can be used as array Slide Image Text Link

  49. Entity model • Each entity has its own “entity service” • Use the service to get, create, update and delete entities • Example:

More Related