This document discusses blogs and the blogosphere. It defines blogs as a database of posts that are reverse-chronologically ordered and do not require HTML knowledge. The blogosphere refers to the collection of all blogs indexed by search engines. However, different search engines index different blogs and communities, essentially creating separate blogospheres. The document also notes that software and engines have a symbiotic relationship, and that default engine settings influence how blogs are discovered and spread.
This document discusses modern JavaScript development approaches like MVVM and KnockoutJS. It promotes using a ViewModel pattern to separate application logic and state from the view. This improves testability and avoids issues like tightly coupled JavaScript code. The document provides examples of building Single Page Applications with KnockoutJS, handling dependencies through AMD, and using frameworks to create composable user interfaces. Overall it advocates for test-driven development and leveraging new JavaScript capabilities for building maintainable, modular applications.
This document describes different templates and services provided by the MVVMWindowsUWP framework. It includes blank, minimal, and hamburger templates that provide basic project structure and navigation capabilities. It also describes services for navigation, settings, logging and more. Common base classes are provided for view models, commands and property change notification. The framework supports plugins for other MVVM libraries and patterns. It also includes a page header control for adding uniform headers to pages.
The document discusses decoupling JavaScript code into modular pieces. It recommends defining shared code as modules that can be extended for different environments like desktop and mobile. Modules should be scalable, maintainable and reusable. The document provides an example of defining a viewport module with shared, desktop and mobile code, and communicating between modules using events instead of direct callbacks. The overall recommendations are to build the next version of Chico using a modular structure with prototype extension and event-based communication between modules.
I prepared a set of slides for my Multisite Q&A at the WordPress Winnipeg meetup, in case there weren't enough Qs. I ended up not needing them (though a couple of them came in handy when answering the questions). Anyway, here's the slideshow, if you're interested.
Who is she in tunis advanced webmaster administration sessionMichael Bryder
1. The document discusses different user types in Drupal including anonymous users, experts, editors, webmasters, and überadmins and how their permissions and views differ.
2. It explains some basic Drupal concepts like views, blocks, and nodes - the building blocks of content - and how they can be configured through the user interface without programming.
3. The document emphasizes the importance of understanding the differences between what a webmaster and editor can see and do, and recommends setting up a test Drupal server to practice administration skills without affecting a live site.
This document introduces RIB, a framework for organizing JavaScript projects. RIB abstracts HTML forms and separates projects into controllers and presentations. It uses a loosely coupled approach with event broadcasting to communicate between presentations. The goals are to make projects more modular, collaborative, and testable compared to monolithic JavaScript files.
WebAssembly is a new low-level compilation target that provides better performance than JavaScript without compromising on portability and security. It runs at native speed by taking advantage of common hardware capabilities available on a wide range of platforms. WebAssembly code is portable and works consistently across multiple browsers without modifications. It also inherits JavaScript's security model and allows safe sandboxing of code.
8 Most Common Joomla! Hacks and How to Avoid ThemDaniel Kanchev
On 23.03.2013 I visited The Netherlands to give the keynote speak about Joomla! web security. I talked about the most common 8 ways a Joomla! website can get hacked. So you should check the presentation if you are a Joomla! hacker that knows less than 8 ways :) It will be useful for you. However, if you are a Joomla user that doesn’t know anything about how to hack a Joomla!, or even worse, how to protect your Joomla! from being hacked, you should definitely check the slides! Because there is a way to protect yourself from each of the common Joomla hacks that I revealed them in the presentation.
I went through the following scenarios and what should be done to prevent each of them:
- Hacked through outdated Joomla!/extensions/themes.
- Hacked through a vulnerable extensions/themes, that is not outdated
- Hacked with the help of stolen/weak login details
- Hacked through outdated/vulnerable server software - Apache, PHP, MySQL.
- Hacked through incorrectly configured web server
- A completely healthy site hacked through another vulnerable Joomla that is hosted on the same server
- Hacked because of incorrect Joomla permissions
- Hacked through malware on local PC which allows attackers to access a healthy site
This document discusses the Model-View-Controller (MVC) pattern and how to implement it for web applications. Some key points discussed include:
1. Using small JavaScript modules and message passing between components to implement MVC.
2. Using an observer pattern to notify views when models change and controllers when user events occur.
3. Implementing a URL router to handle application URLs and navigation.
4. Having views delegate user interface handling to separate UI components.
This document discusses integrating front-end tools like Grunt and Bower with build tools like Maven to improve the front-end development workflow for Java web apps. It outlines how Maven currently uses plugins like wro4j for tasks like JavaScript minification and CSS compilation. Grunt and Bower are proposed as alternatives that offer more tasks and easier setup than wro4j. Integrating Grunt and Bower through shell commands makes them extensible to work with various build tools like Maven. Example setup and code for both development and production environments using Maven will be shared.
This document summarizes a Node Meetup that took place on December 2, 2014. It introduces Node.js frameworks like Express, Mongoose, Passport and tools like Grunt. Express is presented as a lightweight web framework that adds routing and middleware support. Mongoose provides an ORM for MongoDB that simplifies interactions. Passport handles authentication with over 140 strategies. Grunt is used to automate tasks. Code samples and demos are provided for Express, authentication with Passport, and using Grunt. The meetup concludes with a question and answer session.
My presentation at the Seattle Google Technology Users Group on the development of http://scrabb.ly, a massively multiplayer word game.
This document discusses CoffeeScript, a programming language that compiles to JavaScript. It provides an overview of CoffeeScript, highlighting its clarity, uniformity, and ease of translation to JavaScript. Key points include that CoffeeScript has alternative syntax that some find cleaner than JavaScript, compiles to readable JavaScript code, and is used by many popular Node.js modules and developers. Challenges of CoffeeScript like debugging and learning pains are also addressed.
Node.js is a JavaScript runtime environment that allows JavaScript to be used for server-side scripting. It uses non-blocking I/O and event-driven architecture, allowing it to handle multiple concurrent connections efficiently. Some key features of Node.js include asynchronous I/O, an event-driven model, callbacks, and the npm package manager. While Node.js has advantages like scalability, it is single-threaded and lacks standard libraries, making it best suited for real-time applications like chat and games rather than CPU-intensive tasks.
The document discusses the Java Virtual Machine (JVM) and how it works. It mentions that the JVM allows Java code to run on any system as it uses bytecode, which is platform-independent code generated by compiling Java source code. The JVM interprets the bytecode and performs the computations that are specified by the bytecode.
MoViz is a movie recommender system that uses visualizations to provide recommendations. It has both a basic MoViz Lite version and a more advanced MoViz Enterprise version. The system utilizes visualizations tools like Tableau and Highcharts, and web technologies like Bootstrap, HTML, CSS, JS and jQuery. Future work includes adding more personalization, using reviews to categorize movies, increasing interconnectivity between visualizations, and focusing more on recommendations.
WordPress Navigation in Responsive Designopenchamp
I gave this presentation at WordCamp Atlanta 2013. It covers one of the biggest challenges in responsive design - navigation. Specifically, it covers a few tips on how to leverage your WordPress theme's navigation to make it more responsive. I also cover some popular patterns in navigation that are best formatted for responsive designs - specifically mobile viewports.
BBUI.js is a JavaScript library that allows developers to create BlackBerry apps that look, feel, and flow like native BlackBerry apps. It uses HTML fragments without <head> or <body> tags to create screens. Screen functions like bb.pushScreen() and bb.popScreen() are used to navigate between these screens. Common UI elements like buttons are created without using <button> tags. Initialization involves including the BBUI.js and CSS files, adding an event listener for the webworksready event, and calling bb.init() to set up default styles and behaviors.
WordPress security & sanitation for beginnersD'nelle Dowis
Basic steps for keeping your WordPress website tidy. This presentation is for beginner-level WordPress users and focuses on your to-do list for running standard maintenance tasks from the WordPress dashboard
Angular2 getting started by Stephen LautierAndrei Toma
The document provides an overview of Angular 2, including the speaker's background and experience, the agenda, features of Angular 2 like input, output, directives, pipes, and demos of creating a simple application. It discusses machine setup, creating a hello world app, routing, services, and dependency injection. Criticism of Angular 2's learning curve and syntax are also mentioned.
Azure functions and container instancesJohn Staveley
This document discusses using Azure Functions and Container Instances to interact with a website without using virtual machines. It presents the Page Object Model pattern for maintaining a representation of web pages. Selenium is used to drive a browser within a Docker container to interact with the website. Azure Container Instances host the Docker container in Azure. Polly provides reliability by implementing retry and circuit breaker policies. The solution achieves the goals of interacting with a website daily without additional cost by using serverless Azure Functions and container-based hosting with on-demand billing.
Mobilizing Your Visualforce Application With JQuery and KnockoutJSSalesforce Developers
Join Force.com MVP Keir Bowden (aka Bob Buzzard) to learn how to mobilize your Visualforce applications. We'll take an existing survey application and make it mobile by creating pages based on the JQuery Mobile framework, replacing stateful controllers with Javascript remoting, and using Knockout.js to manage client-side data.
This document introduces WordPress Multisite, which allows a single WordPress installation to host multiple sites. It can share plugins, themes, and updates across sites for easier maintenance. The document discusses who might use Multisite, examples of sites using it, and considerations for whether it is needed. It provides a brief overview of setting up Multisite, including enabling it, creating the network, and domain mapping. References for more information are also included.
High performance java script why everything youve been taught is wrongTao Gao
1) The document discusses high-performance JavaScript and describes how the speaker's company, Plaxo, almost failed to launch their product because it was too slow.
2) It presents a mantra for high-performance JavaScript: be lazy, be responsive, be pragmatic, be vigilant.
3) Some techniques discussed include writing less code, loading JavaScript on demand, drawing UI late, yielding to keep the interface responsive, and profiling relentlessly.
Web Development with Joomla - Past, Present & FutureThemeXpert
Joomla! turned 12 this year and it evolved a lot. At ThemeXpert we tried to make it more easier for end users and we are continuously working to make it a better CMS. Checkout Quix 2 https://www.themexpert.com/quix-pagebuilder
Single Page Applications - Desert Code Camp 2012Adam Mokan
Slides from my presentation on Single-Page Applications at Desert Code Camp 2012.
The event was held on November 17th, 2012 at Chandler-Gilbert Community College.
http://nov2012.desertcodecamp.com/session/565
Transitioning Groupon to Node.js - EmpireJS 2014Sean McCullough
Groupon's monolithic platform was struggling to support growth and feature development. They rewrote part of it using a Node.js service-oriented architecture with decoupled frontend applications and shared backend services. This allowed for faster development and improved performance, but also introduced increased testing needs and operational complexity compared to the monolithic approach.
WebAssembly is a new low-level compilation target that provides better performance than JavaScript without compromising on portability and security. It runs at native speed by taking advantage of common hardware capabilities available on a wide range of platforms. WebAssembly code is portable and works consistently across multiple browsers without modifications. It also inherits JavaScript's security model and allows safe sandboxing of code.
8 Most Common Joomla! Hacks and How to Avoid ThemDaniel Kanchev
On 23.03.2013 I visited The Netherlands to give the keynote speak about Joomla! web security. I talked about the most common 8 ways a Joomla! website can get hacked. So you should check the presentation if you are a Joomla! hacker that knows less than 8 ways :) It will be useful for you. However, if you are a Joomla user that doesn’t know anything about how to hack a Joomla!, or even worse, how to protect your Joomla! from being hacked, you should definitely check the slides! Because there is a way to protect yourself from each of the common Joomla hacks that I revealed them in the presentation.
I went through the following scenarios and what should be done to prevent each of them:
- Hacked through outdated Joomla!/extensions/themes.
- Hacked through a vulnerable extensions/themes, that is not outdated
- Hacked with the help of stolen/weak login details
- Hacked through outdated/vulnerable server software - Apache, PHP, MySQL.
- Hacked through incorrectly configured web server
- A completely healthy site hacked through another vulnerable Joomla that is hosted on the same server
- Hacked because of incorrect Joomla permissions
- Hacked through malware on local PC which allows attackers to access a healthy site
This document discusses the Model-View-Controller (MVC) pattern and how to implement it for web applications. Some key points discussed include:
1. Using small JavaScript modules and message passing between components to implement MVC.
2. Using an observer pattern to notify views when models change and controllers when user events occur.
3. Implementing a URL router to handle application URLs and navigation.
4. Having views delegate user interface handling to separate UI components.
This document discusses integrating front-end tools like Grunt and Bower with build tools like Maven to improve the front-end development workflow for Java web apps. It outlines how Maven currently uses plugins like wro4j for tasks like JavaScript minification and CSS compilation. Grunt and Bower are proposed as alternatives that offer more tasks and easier setup than wro4j. Integrating Grunt and Bower through shell commands makes them extensible to work with various build tools like Maven. Example setup and code for both development and production environments using Maven will be shared.
This document summarizes a Node Meetup that took place on December 2, 2014. It introduces Node.js frameworks like Express, Mongoose, Passport and tools like Grunt. Express is presented as a lightweight web framework that adds routing and middleware support. Mongoose provides an ORM for MongoDB that simplifies interactions. Passport handles authentication with over 140 strategies. Grunt is used to automate tasks. Code samples and demos are provided for Express, authentication with Passport, and using Grunt. The meetup concludes with a question and answer session.
My presentation at the Seattle Google Technology Users Group on the development of http://scrabb.ly, a massively multiplayer word game.
This document discusses CoffeeScript, a programming language that compiles to JavaScript. It provides an overview of CoffeeScript, highlighting its clarity, uniformity, and ease of translation to JavaScript. Key points include that CoffeeScript has alternative syntax that some find cleaner than JavaScript, compiles to readable JavaScript code, and is used by many popular Node.js modules and developers. Challenges of CoffeeScript like debugging and learning pains are also addressed.
Node.js is a JavaScript runtime environment that allows JavaScript to be used for server-side scripting. It uses non-blocking I/O and event-driven architecture, allowing it to handle multiple concurrent connections efficiently. Some key features of Node.js include asynchronous I/O, an event-driven model, callbacks, and the npm package manager. While Node.js has advantages like scalability, it is single-threaded and lacks standard libraries, making it best suited for real-time applications like chat and games rather than CPU-intensive tasks.
The document discusses the Java Virtual Machine (JVM) and how it works. It mentions that the JVM allows Java code to run on any system as it uses bytecode, which is platform-independent code generated by compiling Java source code. The JVM interprets the bytecode and performs the computations that are specified by the bytecode.
MoViz is a movie recommender system that uses visualizations to provide recommendations. It has both a basic MoViz Lite version and a more advanced MoViz Enterprise version. The system utilizes visualizations tools like Tableau and Highcharts, and web technologies like Bootstrap, HTML, CSS, JS and jQuery. Future work includes adding more personalization, using reviews to categorize movies, increasing interconnectivity between visualizations, and focusing more on recommendations.
WordPress Navigation in Responsive Designopenchamp
I gave this presentation at WordCamp Atlanta 2013. It covers one of the biggest challenges in responsive design - navigation. Specifically, it covers a few tips on how to leverage your WordPress theme's navigation to make it more responsive. I also cover some popular patterns in navigation that are best formatted for responsive designs - specifically mobile viewports.
BBUI.js is a JavaScript library that allows developers to create BlackBerry apps that look, feel, and flow like native BlackBerry apps. It uses HTML fragments without <head> or <body> tags to create screens. Screen functions like bb.pushScreen() and bb.popScreen() are used to navigate between these screens. Common UI elements like buttons are created without using <button> tags. Initialization involves including the BBUI.js and CSS files, adding an event listener for the webworksready event, and calling bb.init() to set up default styles and behaviors.
WordPress security & sanitation for beginnersD'nelle Dowis
Basic steps for keeping your WordPress website tidy. This presentation is for beginner-level WordPress users and focuses on your to-do list for running standard maintenance tasks from the WordPress dashboard
Angular2 getting started by Stephen LautierAndrei Toma
The document provides an overview of Angular 2, including the speaker's background and experience, the agenda, features of Angular 2 like input, output, directives, pipes, and demos of creating a simple application. It discusses machine setup, creating a hello world app, routing, services, and dependency injection. Criticism of Angular 2's learning curve and syntax are also mentioned.
Azure functions and container instancesJohn Staveley
This document discusses using Azure Functions and Container Instances to interact with a website without using virtual machines. It presents the Page Object Model pattern for maintaining a representation of web pages. Selenium is used to drive a browser within a Docker container to interact with the website. Azure Container Instances host the Docker container in Azure. Polly provides reliability by implementing retry and circuit breaker policies. The solution achieves the goals of interacting with a website daily without additional cost by using serverless Azure Functions and container-based hosting with on-demand billing.
Mobilizing Your Visualforce Application With JQuery and KnockoutJSSalesforce Developers
Join Force.com MVP Keir Bowden (aka Bob Buzzard) to learn how to mobilize your Visualforce applications. We'll take an existing survey application and make it mobile by creating pages based on the JQuery Mobile framework, replacing stateful controllers with Javascript remoting, and using Knockout.js to manage client-side data.
This document introduces WordPress Multisite, which allows a single WordPress installation to host multiple sites. It can share plugins, themes, and updates across sites for easier maintenance. The document discusses who might use Multisite, examples of sites using it, and considerations for whether it is needed. It provides a brief overview of setting up Multisite, including enabling it, creating the network, and domain mapping. References for more information are also included.
High performance java script why everything youve been taught is wrongTao Gao
1) The document discusses high-performance JavaScript and describes how the speaker's company, Plaxo, almost failed to launch their product because it was too slow.
2) It presents a mantra for high-performance JavaScript: be lazy, be responsive, be pragmatic, be vigilant.
3) Some techniques discussed include writing less code, loading JavaScript on demand, drawing UI late, yielding to keep the interface responsive, and profiling relentlessly.
Web Development with Joomla - Past, Present & FutureThemeXpert
Joomla! turned 12 this year and it evolved a lot. At ThemeXpert we tried to make it more easier for end users and we are continuously working to make it a better CMS. Checkout Quix 2 https://www.themexpert.com/quix-pagebuilder
Single Page Applications - Desert Code Camp 2012Adam Mokan
Slides from my presentation on Single-Page Applications at Desert Code Camp 2012.
The event was held on November 17th, 2012 at Chandler-Gilbert Community College.
http://nov2012.desertcodecamp.com/session/565
Transitioning Groupon to Node.js - EmpireJS 2014Sean McCullough
Groupon's monolithic platform was struggling to support growth and feature development. They rewrote part of it using a Node.js service-oriented architecture with decoupled frontend applications and shared backend services. This allowed for faster development and improved performance, but also introduced increased testing needs and operational complexity compared to the monolithic approach.
This document discusses productive desktop development with the NetBeans IDE. It covers using the NetBeans GUI builder to easily design Swing UIs via drag and drop. It also discusses Swing frameworks that provide common services to large Swing applications, and the NetBeans Platform for modular and pluggable applications. The document demonstrates scripting Swing and JavaFX applications using Groovy in NetBeans. Overall, it promotes NetBeans IDE as a free, full-featured environment for building desktop Java applications with tools for UI design, frameworks, and scripting.
Valeri Karpov
MongoDB - NodeJS Engineer
Tuesday, Oct 20th
11:25 am - Front-End/Back-End Dev
Find more by Valeri Karpov: http://www.slideshare.net/vkarpov15/
The document discusses strategies for addressing common AngularJS challenges including SEO, responsive design, and integration testing. It recommends using Prerender.io to generate static HTML for search engines to index Single Page Apps. For responsive design, it suggests using reactive directives that emit events in response to screen size changes rather than having directives know about screen size. Finally, it outlines an approach to integration testing AngularJS directives in isolation using Karma and bootstrapping directives for testing DOM logic.
This document provides an overview of Google Chrome DevTools, a set of web development tools built into the Google Chrome browser. It discusses how to access DevTools, the key features and benefits, and examples of how to use the various DevTools features for HTML, CSS, JavaScript debugging, performance monitoring, and responsive design testing. The document also includes information about Thinkful, a online coding school that provides 1-on-1 mentorship programs in web development and data science.
Single Page Applications: Your Browser is the OS!Jeremy Likness
Single Page Applications have gained tremendous popularity over the past few years and have prompted the creation of several frameworks to support their development. Unlike traditional web applications, most of the heavy lifting for SPA happens on the client side in your web browser. These applications rely on hundreds of lines of JavaScript coupled with asynchronous web service calls to provide a desktop-like experience that is accessible from virtually any device.
Join Principal Architect, Jeremy Likness, to learn more about SPA, including how to determine when you should choose this approach, how SPA compares and contrasts with traditional server-based approaches including ASP.NET WebForms and MVC, and what frameworks and tools (such as jQuery, AngularJS, and Aurelia) make building SPA easier. Discover how single page applications powered by HTML5 and JavaScript transform your browser into a web-based operating system.
The document discusses ClojureScript, an alternative to JavaScript that compiles to JavaScript. It provides information on where ClojureScript can run, companies that use it, and benefits like structural sharing, core.async for concurrency, and immutability. It also mentions Google Closure Compiler and Library for optimizations and code splitting in JavaScript projects.
This document provides a high-level overview of JavaScript and Node.js. It discusses how JavaScript originated as a browser scripting language but is now widely used for server-side applications through Node.js. Node.js uses Google's V8 JavaScript engine and allows JavaScript code to run outside of browsers. Popular Node.js frameworks like Express.js are introduced. Key features of JavaScript like asynchronous programming and Node.js concepts like modules, middleware, and MongoDB are summarized at a high level.
This document discusses frontend architecture patterns for large development teams. It begins with an introduction and then covers server-generated frontend, separated frontend, micropages, and portal and widgets patterns. For each pattern, it describes characteristics and pros and cons related to issues like loose coupling, development speed, testing, reusability and performance for large teams. Continuous integration challenges are also discussed. The goal is to help designers choose patterns that balance autonomy, modularity and integration for large frontend codebases.
Drupal Presentation for CapitalCamp 2011: Features Driven DevelopmentMediacurrent
This document provides an overview of feature driven development in Drupal. It discusses how features allow encapsulation of items like views, content types, and configurations to make deployment and version control easier. It provides instructions for creating basic features and exporting non-exportable items. Feature driven development is presented as creating a feature module for each content type along with related components. Examples of real world feature lists are shown to demonstrate how features are used to package common site elements.
This document provides an overview of the open source content management system Drupal. It describes Drupal as a flexible CMS built on PHP and modular architecture. Core features include nodes, taxonomy, views, and themes. Key terms are defined such as modules, blocks, and users/roles. The document outlines some top Drupal modules, advantages of Drupal for libraries, potential obstacles, and resources for learning more.
CUST-2 New Client Configuration & Extension Points in ShareAlfresco Software
Video that accompanies this presentation at: http://www.youtube.com/watch?v=UNjn6bOJ308
Spring Surf has been updated to allow increased customization and extensibility. This session will demonstrate how these capabilities can and have been used in Alfresco Share to add, remove and modify its appearance without needing to copy and paste code.
Ad107 - Enhance Your Existing Applications with XPagesddrschiw
XPages allows you to build great looking, Web 2.0 style applications in browsers and Lotus Notes clients alike. This session will show you the tricks and tips on upgrading your existing applications with quick win performance, feature and UI enhancements. From simple design patterns for typical Lotus Domino developers, to easy OneUI styling and simple upgrade steps, this session will benefit all existing Lotus Notes and Domino developers looking for that "step up".
Alfresco Share provides a rich platform for further development, allowing you to tweak and customize to your heart’s content, using only lightweight scripting and templating. But with great power, comes great responsibility, as they say. So this session looks at what it means to customize Share, before discussing how best to go about it, with tips and tricks based on real-world examples.
DrupalSouth 2015 - Performance: Not an AfterthoughtNick Santamaria
Nick Santamaria's performance and scalability presentation from DrupalSouth 2015.
https://melbourne2015.drupal.org.au/session/performance-not-afterthought
The document discusses several popular JavaScript libraries including Dojo, Prototype, jQuery, Mochikit, and Yahoo UI. It compares the libraries based on their focus, DOM support, events/effects handling, documentation, community, file size, and popularity. The libraries provide a variety of features like DOM manipulation, Ajax capabilities, and animations to make JavaScript development easier.
Chris O'Brien - Building AI into Power Platform solutionsChris O'Brien
A presentation I gave at ESPC 2020 (the European SharePoint, Microsoft 365 and Azure Conference) covering simple options for adding AI to Power Apps and Power Automate solutions.
Topics covered include AI costs and different implementation approaches - including Power Apps AI Builder, use of Azure Cognitive Services from code, and use of Azure Cognitive Services in a Flow (Power Automate).
Chris OBrien - Azure DevOps for managing workChris O'Brien
A presentation I gave at ESPC 2019 (the European SharePoint, Office 365 and Azure Conference) about Azure DevOps for managing both development and support work. The focus is on Azure DevOps boards and task management, but covers some CI/CD aspects too.
Chris O'Brien - Ignite 2019 announcements and selected roadmapsChris O'Brien
My announcement summary slides from Ignite 2019 (covering Teams, SharePoint, Power Platform and Azure) and also selected roadmap slides from Microsoft.
COB ESPC18 - Rich PowerApps with offline supportChris O'Brien
A presentation I gave at ESPC 2018 (the European SharePoint, Office 365 and Azure Conference) about enterprise PowerApps. Focus areas include how to implement offline support, how to connect to on-premises data, and various tips for performance and management. I also talk about what I find to be the most important PowerApps functions from the list of 150+ that can be used in PowerApps formulas.
COB - Azure Functions for Office 365 developersChris O'Brien
A presentation I gave at ESPC 2018 (the European SharePoint, Office 365 and Azure Conference) about use of Azure Functions to extend Office 365 solutions. Covers Azure Functions fundamentals, adding code to PowerApps/Flow, Site Designs and Site Scripts (and PnP site templating), SPFx and Durable Functions. Also has tips on v1/v2, performance, pricing and how to avoid cold starts.
Chris OBrien - Pitfalls when developing with the SharePoint Framework (SPFx)Chris O'Brien
A presentation given at ESPC 2017, discussing common pitfalls in SPFx development. Includes discussion of versioning and dependency issues, code re-use, SPFx component bundles, Office UI Fabric and more.
Chris O'Brien - Best bits of Azure for Office 365/SharePoint developersChris O'Brien
Discussion of Azure web apps, App Insights, "Azure Functions in the real world", ARM templates, queues, BLOB storage and more. Includes a video demo of AAD-secured Azure Function called from a SharePoint Framework (SPFx) web part with SPO cookie auth.
Chris O'Brien - Intro to Power BI for Office 365 devs (March 2017)Chris O'Brien
A high-level view of Power BI as it relates to Office 365, SharePoint and developers. Potentially useful to help consider Power BI against custom development options.
Chris O'Brien - Modern SharePoint sites and the SharePoint Framework - referenceChris O'Brien
Covers the changes Microsoft are making to team sites in Office 365/on-premises SharePoint - in terms of end-user changes, and also the impact on developers. The second half of the deck covers the SharePoint Framework (the new coding framework for developers).
Chris O'Brien - Introduction to the SharePoint Framework for developersChris O'Brien
Describes the new SharePoint development framework, which uses Gulp, node.js, TypeScript, SASS and other modern web technologies. Covers client web parts, modern pages and the canvas, and how to surface your files on a CDN for optimum performance. This intro presentation helps you get started.
Application Lifecycle Management for Office 365 developmentChris O'Brien
For teams doing cloud-friendly SharePoint or Office 365 development, apps will be a key area of focus - be they SharePoint add-ins or the newer Office 365/Azure AD apps. ASP.NET (typically MVC) is a common platform here, and fortunately ALM and Continuous Integration become MUCH easier - finally, an end to "it’s harder because it's SharePoint!" We'll demonstrate how Visual Studio Online and Azure Web Apps are a winning combination for “continuous deployment”, and also how features such as "Deployment Slots" in Azure can help with dev and test environments, and also the upgrade/push-to-live process. Several demos will ensure you’re covered for developing both SharePoint add-ins and Office 365 apps.
Do's and don'ts for Office 365 developmentChris O'Brien
A session I gave at the European SharePoint Conference 2015. Abstract: The "rules" of SharePoint development have changed - although MSDN documentation often lags behind, the Office 365 Product Group tell us we're no longer supposed to use custom master pages, WebTemplates or deploy our fields and content types in XML. This means core concepts and guidelines that have been around for 7 or 8 years no longer hold true! Clearly this is a massive change - but do we always need to adhere to these new rules? Or are there times when it's OK to use less-preferred (but still supported) approaches?
In this session we look at the reasons behind Microsoft's change of position, and the associated thinking you need to do in the real world.
In this session you will learn:
1. A discussion of the key changes in developer guidance
2. A technical deep-dive (with demos) into the new approaches Microsoft recommend
3. Consideration of the circumstances where you might choose NOT to adhere to the guidance, and why
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
A presentation I gave at SharePoint Evolutions 2015. Here, I compare SharePoint apps (now renamed "SharePoint Add-Ins" as of April 2015!) and the newer flavour of app development, Office 365 apps.
It focuses primarily on the perspective of a development team implementing the app - and factors to consider when deciding between the two approaches. However, to do this we must consider end-user and administration aspects, as well as code/development.
Key agenda points:
- Changes in SharePoint development
- Apps, 2 years on..
- SharePoint Add-Ins – a recap
- Office 365 apps - Why did Microsoft introduce these? What do they promise?
- Comparing SharePoint Add-Ins with Office 365 apps - For the end-user, administrator and developer
- Summary
Chris OBrien - Weaving Enterprise Solutions into Office ProductsChris O'Brien
The document discusses permissions models for accessing documents in Office Add-ins including Read, Write, and ReadWrite permissions. It also discusses using client-side code and cross-domain libraries to authenticate to SharePoint when server-side authentication is difficult from an add-in. Several examples are provided of add-ins with different surfaces like a Word task pane and SharePoint app.
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
This document discusses modern techniques for developing for SharePoint in a cloud-friendly way by moving code off SharePoint servers. It covers remote event receivers, PowerShell with CSOM, and Microsoft's App Model Samples. Remote event receivers allow executing code in response to events. PowerShell and CSOM is a powerful combination. The App Model Samples provide helper libraries and examples for common tasks like uploading files, provisioning sites and managing terms. While Microsoft's optimal approach is debated, these techniques allow customizations to be deployed to Office 365.
Chris O'Brien - Customizing the SharePoint/Office 365 UI with JavaScript (ESP...Chris O'Brien
Covers several approaches for user interface customization in SP2013 - using JSLink to customize a list and/or view, creating custom Display Templates for the Content Search web part, and different approaches for customizing the search hover panel.
Additional information added for the European SharePoint Conference 2014
Deep dive into SharePoint 2013 hosted apps - Chris OBrienChris O'Brien
Covers key aspects of SharePoint 2013 apps, with a focus on SharePoint-hosted apps. Includes detail on app parts, using web parts within an app, configuring SSL, troubleshooting apps and possible reasons to move away from a SharePoint-hosted app to a cloud app. Also covers "high-privilege" apps which provision to the host web.
Customizing the SharePoint 2013 user interface with JavaScript - Chris OBrienChris O'Brien
Covers several approaches for user interface customization in SP2013 - using JSLink to customize a list and/or view, creating custom Display Templates for the Content Search web part, and different approaches for customizing the search hover panel.
The document provides guidance on developing apps for SharePoint instead of classic solutions whenever possible. It discusses SharePoint-hosted and cloud apps. It also discusses whether all apps from the SharePoint Store will be allowed to be installed and if customizations will be developed as apps. Finally, it provides information on web parts, search results, and control templates used to render items for web parts.
14. Advantages Disadvantages
• Easy to create • If complex, hard to manage
• Easy to manage • Lots of JavaScript can be
• Great for simple commands hard to manage
• Not cached on the client
• Not reusable outside of the
definition
15. Advantages Disadvantages
• External JS library • Poor JavaScript dev tools
• Easier to manage & debug • Must be added to the page
• Can be minified • More work (build, register &
• Allows for greater control initialize on page)
over commands • All OO JavaScript
• Enable/disable command
• Block loss of focus
• Reusable across
customizations
16. Global Commands Focused Command
• Always available when on a • Only available at specific times,
page e.g. when web part has focus
• (if CanExecute says it is • Example: Content Editor Web
available) Part controls
20. SplitButton ToggleButton Spinner
• Easy default plus • Off or on • Select within a
sub-menu range
29. Server side:
SPRibbon.MakeTabAvailable For contextual tab
SPList.UserCustomActions Target an individual list
JavaScript:
RefreshCommandUI() Refresh ribbon, e.g. in async
callback
SP.SOD.ExecuteOr Deal with JS dependencies
DelayUntilScriptLoaded()
#28: Parent control won’t appear.Error “MenuSections can only have children of type MenuItem, Gallery or GroupPopup. - will get error below”No options appearOtherwise no options appear!