This document provides a summary of key concepts for new SharePoint developers. It discusses what functionality SharePoint provides out of the box, how the development tools and deployment process differ from a typical web application, important concepts like features and packages, and best practices around areas like disposing objects properly and avoiding direct web.config modifications. It also lists 10 things every SharePoint developer should know and how to avoid getting code rejected by an architecture group.
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
Localizing SharePoint: Adding Multi-language Support to Your SiteGreg Hurlman
More and more, single SharePoint applications are being exposed to international audiences, both on the Internet and the intranets of
the world – and clients only want to pay once. We will dive into how localization works in SharePoint in markup, in code-behind, and in CAML. We will also look at the pros and cons of variations in 2007, and how they have been improved for 2010
Slides of my session at DanNotes on the use of Bootstrap with XPages, including using the Bootstrap4XPages plugin.
View the demos at http://bootstrap4xpages.com
Best Practices in SharePoint Development - Just Freakin Work! Overcoming Hurd...Geoff Varosky
Abstract: “Why am I getting a security error??” “Why does my code work sometimes, but not others?” “I wonder if McDonalds is hiring.” Writing custom code in SharePoint opens up unlimited possibilities but also throws many hurdles in your way that will slow you down if you don’t take them into account. So, before giving up and searching for careers in the fast food industry, equip yourself with the knowledge you need to succeed in writing custom code for SharePoint.
Localizing SharePoint: Adding Multi-language Support to Your SiteGreg Hurlman
More and more, single SharePoint applications are being exposed to international audiences, both on the Internet and the intranets of
the world – and clients only want to pay once. We will dive into how localization works in SharePoint in markup, in code-behind, and in CAML. We will also look at the pros and cons of variations in 2007, and how they have been improved for 2010
Slides of my session at DanNotes on the use of Bootstrap with XPages, including using the Bootstrap4XPages plugin.
View the demos at http://bootstrap4xpages.com
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
Ionic is a great tool for building hybrid mobile apps and AngularJS is a great JavaScript framework that plays very nicely with Ionic. In this talk we'll go over the basics of getting started with AngularJS+Ionic. We'll look at some real code from each of the 2 libraries and see what all is involved in building a hybrid mobile application. We will finish our journey with a real-life Ionic app presentation powered by RESTFul services.
Target Audience: People that want to see where to start with AngularJS and how it fits into Ionic. This talk assumes no prior knowledge with either library. If you've built a PhoneGap mobile app but felt lost when adding MVC-style structure or Bootstrap-esque UI components, this is the talk for you.
Assumed Knowledge: Attendees should be comfortable with "modern JavaScript". A basic understanding of classes and objects and variable scopes will be helpful. Some basic prior exposure to PhoneGap/Cordova and a UI-framework such as Bootstrap will also be helpful.
Managing SharePoint Anywhere with Windows PowerShellRyan Dennis
With the growing adoption of Office 365 and SharePoint Online and the continued prevalence of SharePoint on-premises, it’s becoming more difficult to manage both environments in an automated fashion. While SharePoint Online does have native support for Windows PowerShell, there are very few cmdlets to manage the sites and site contents. SharePoint on-premises gives us well over 700 cmdlets, but it still doesn’t answer every situational scenario – leaving gaps in functionality which can be filled by scripters.
In this demo-heavy session, focused on both the developer AND the administrator – you’ll see how you can use one shell to manage both scenarios (on-premises and Office 365). Demonstrations will focus on building PowerShell Scripts and Advanced Functions for both target environments, and by the end of the session you’ll be ready to start Managing SharePoint Anywhere with PowerShell.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
This presentation introduces the key innovations that Play 2 brings to web application development in Java and Scala. The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 was released in March 2012 with innovations that are not just new in the Java world: type-safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala. Type safety matters. After dynamically-typed programming languages such as PHP and Ruby set the standard for high-productivity web development, Play built on their advantages and has created a type-safe web development framework with extensive compile-time checking. This is essential for applications that will scale to tens of thousands of lines of code, with hundreds of view templates. Meanwhile, Play avoids the architectural-complexity that is promoted by Java EE-based approaches. The result is that Play 2 first enables rapid initial application development and then Play 2 helps you build big, serious and scalable web applications.
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityJohnny Oldenburger
Develop highly user friendly responsive web (XPages) applications by making use of Bootstrap and JQuery Plugins as Select2, DateTimePickers, Multiselect, Confirmation, Modals, Popovers and Notifications for ultimate usability based on the latest versions of these plugins, including solutions for the AMD problem. Expect more of XPages Applications and go beyond the basics and create applications that nobody ever thought possible using XPages. Comprehensive demos of several plugins are shown within an XPages application.
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
Covers some key techniques and references for "cloud-friendly" SharePoint development (i.e. suitable for Office 365, or perhaps on-premises SharePoint projects which want to stay cloud compatible or benefit from greater isolation from SharePoint).
Includes detailed coverage on - Remote Event Receivers in Azure, "PowerShell + CSOM" scripts, and Microsoft's AMS samples.
Take this workshop to learn the core skills common to most SharePoint development activities, and find out how to work with back-end data and front-end user interfaces. Get guidelines and best practices to help you optimize your SharePoint applications, explore workflows inside the dramatically enhanced SharePoint Designer, and see cool demos that show you how to create an app, deploy it to a catalog, and install it. SharePoint developer training also prepare you for certification on Microsoft SharePoint.
Rambling Talk given at http://2012.oc.wordcamp.org/
Supplemental information at http://mdawaffe.wordpress.com/2012/06/02/wordcamp-oc-restjson-api-talk/
Ionic is a great tool for building hybrid mobile apps and AngularJS is a great JavaScript framework that plays very nicely with Ionic. In this talk we'll go over the basics of getting started with AngularJS+Ionic. We'll look at some real code from each of the 2 libraries and see what all is involved in building a hybrid mobile application. We will finish our journey with a real-life Ionic app presentation powered by RESTFul services.
Target Audience: People that want to see where to start with AngularJS and how it fits into Ionic. This talk assumes no prior knowledge with either library. If you've built a PhoneGap mobile app but felt lost when adding MVC-style structure or Bootstrap-esque UI components, this is the talk for you.
Assumed Knowledge: Attendees should be comfortable with "modern JavaScript". A basic understanding of classes and objects and variable scopes will be helpful. Some basic prior exposure to PhoneGap/Cordova and a UI-framework such as Bootstrap will also be helpful.
Managing SharePoint Anywhere with Windows PowerShellRyan Dennis
With the growing adoption of Office 365 and SharePoint Online and the continued prevalence of SharePoint on-premises, it’s becoming more difficult to manage both environments in an automated fashion. While SharePoint Online does have native support for Windows PowerShell, there are very few cmdlets to manage the sites and site contents. SharePoint on-premises gives us well over 700 cmdlets, but it still doesn’t answer every situational scenario – leaving gaps in functionality which can be filled by scripters.
In this demo-heavy session, focused on both the developer AND the administrator – you’ll see how you can use one shell to manage both scenarios (on-premises and Office 365). Demonstrations will focus on building PowerShell Scripts and Advanced Functions for both target environments, and by the end of the session you’ll be ready to start Managing SharePoint Anywhere with PowerShell.
Have you ever cried yourself to sleep unable to find the cause of a horrendous bug in your WordPress site? Cry no more, your tears will be reshaped as blinding swords as we explore uncharted territories laced with mystical creatures.
Debugging is an often avoided topic due to the uncertainty of how best to accomplish it and the lack of powerful introspective tools. This talk will explore new territory and showcase tools that help you debug complex and difficult issues in your WordPress site.
This presentation introduces the key innovations that Play 2 brings to web application development in Java and Scala. The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 was released in March 2012 with innovations that are not just new in the Java world: type-safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala. Type safety matters. After dynamically-typed programming languages such as PHP and Ruby set the standard for high-productivity web development, Play built on their advantages and has created a type-safe web development framework with extensive compile-time checking. This is essential for applications that will scale to tens of thousands of lines of code, with hundreds of view templates. Meanwhile, Play avoids the architectural-complexity that is promoted by Java EE-based approaches. The result is that Play 2 first enables rapid initial application development and then Play 2 helps you build big, serious and scalable web applications.
Engage - Expanding XPages with Bootstrap Plugins for ultimate usabilityJohnny Oldenburger
Develop highly user friendly responsive web (XPages) applications by making use of Bootstrap and JQuery Plugins as Select2, DateTimePickers, Multiselect, Confirmation, Modals, Popovers and Notifications for ultimate usability based on the latest versions of these plugins, including solutions for the AMD problem. Expect more of XPages Applications and go beyond the basics and create applications that nobody ever thought possible using XPages. Comprehensive demos of several plugins are shown within an XPages application.
Chris O'Brien - Modern SharePoint development: techniques for moving code off...Chris O'Brien
Covers some key techniques and references for "cloud-friendly" SharePoint development (i.e. suitable for Office 365, or perhaps on-premises SharePoint projects which want to stay cloud compatible or benefit from greater isolation from SharePoint).
Includes detailed coverage on - Remote Event Receivers in Azure, "PowerShell + CSOM" scripts, and Microsoft's AMS samples.
Take this workshop to learn the core skills common to most SharePoint development activities, and find out how to work with back-end data and front-end user interfaces. Get guidelines and best practices to help you optimize your SharePoint applications, explore workflows inside the dramatically enhanced SharePoint Designer, and see cool demos that show you how to create an app, deploy it to a catalog, and install it. SharePoint developer training also prepare you for certification on Microsoft SharePoint.
Introduction To Microsoft SharePoint 2013Vishal Pawar
Microsoft SharePoint is a Web application platform developed by Microsoft. First launched in 2001, SharePoint has historically been associated with intranet content management and document management, but recent versions have significantly broader capabilities
The market share for SharePoint has grown in leaps and bounds over the last few years, leading to many developers being told that they are now SharePoint developers. Developing for SharePoint is a strange new world; we will cover what’s new, what’s the same, the top things that every SharePoint developer should know, and a few things to make every new developer’s life easier.
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world.
With the official shipment of Angular 4 and the current release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions.
In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development.
This very demo-intensive session will make sure that at the end you get those 3 key takeaways :
- Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world
- Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario
- Change the way you will think for your next SharePoint project
By now you may have heard that JavaScript is becoming a viable solution for SharePoint Development, but where do you get started? This session will start with some of the basics and introduce attendees to a few different Javascript libraries such as jQuery, Knockout, Bootstrap, etc. It will showcase SharePoint's REST API and provide some examples of how to conduct basic CRUD operations which you can repurpose for your own custom SharePoint Apps.
SharePoint Framework, Angular and Azure FunctionsSébastien Levert
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world.
With the official shipment of Angular 4 and the current release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions.
In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development.
This very demo-intensive session will make sure that at the end you get those 3 key takeaways :
- Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world
- Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario
- Change the way you will think for your next SharePoint project
Thoughts on building deployable and updatable share point solutionsSerge van den Oever
Thoughts on building SharePoint solutions as if they are clicked together that can be deployed through dev, test, acceptation and production for version 1.0 and beyond.
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world.
With the official shipment of Angular 2 and the current preview release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions.
In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development.
This very demo-intensive session will make sure that at the end you get those 3 key takeaways :
Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world
Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario
Change the way you will think for your next SharePoint project
Getting started with Office 365 SharePoint 2010 online developmentJeremy Thake
Getting started with SharePoint 2010 Online development
Jeremy Thake, SharePoint MVP, will introduce SharePoint 2010 Online as an application development platform inside Office 365. The session will explain how to get started with the different approaches from web UI configurations, to SharePoint Designer 2010 customizations to full blown Visual Studio development with Sandbox Solutions. Jeremy will introduce the concepts of how Application Lifecycle Management can be introduced to this along with migrating existing applications across from on-premise.
From this session you should walk away with:
Using SharePoint Online 2010 as an Application Development Platform
Getting Started with SharePoint Online 2010 development
Application Lifecycle Management with SharePoint Online 2010 in Office 365
Migrating SharePoint 2010 Apps to SharePoint Online 2010
This presentation is an introduction to SharePoint development for .NET developers who have no knowledge of SharePoint. It was delivered at the Carolina Code Camp on Saturday, May 4th, 2013.
SharePoint Saturday New York 2017 - SharePoint Framework, Angular and Azure F...Sébastien Levert
Things are moving fast. Sometimes you might even feel that you own comfort zone is getting of control. But in a Mobile-First, Cloud-First world, things are changing to a crazy pace and to stay on the top of your game, you need keep up with the latest and greatest technologies that are available out there. By staying up to date, you will give to yourself new options that will let you be more productive, write better code and push you in a more open and more collaborative world. With the official shipment of Angular 2 and the current preview release of the SharePoint Framework, it is now the time to start moving towards those new technologies in your SharePoint Solutions. In this session, we will cover the modern tool belt of the SharePoint developer by covering the SharePoint Framework as the new surface to express yourself, Angular as a Framework to enable you to build complete applications within your SharePoint modern experiences and Azure Function as the perfect server-side companion for all your Office 365 & Azure development. This very demo-intensive session will make sure that at the end you get those 3 key takeaways : - Understand the role of the SharePoint Framework, Angular and Azure Functions in this Cloud-First, Mobile-First world - Have a complete sample where the modern tool belt is relevant and useful in a real-world scenario - Change the way you will think for your next SharePoint project
[Rodrigo Pinto] Being an enterprise consultant in many companies across the globe, the most common phrase I come across each client\supplier I've helped last year is "each team as a different way to do it"In small\medium\huge companies, this is a major overkill.In this session learn how you can structure your teams, processes, tools, and development for SharePoint Enterprise solutions.
Intro to SharePoint 2010 development for .NET developersJohn Ferringer
While its very true that SharePoint’s development model is firmly rooted in the .NET development world, at the same time SharePoint can be appear to be a completely alien beast to even the most experienced of .NET developers. In this session, John will introduce the fundamental practices that a .NET developer should understand about SharePoint and needs to follow when building custom solutions for the platform, whether its creating web parts or building complex workflows and Line of Business applications for deployment within a SharePoint farm.
This presentation is all about : why do we need Front-end developers, how do they work and what techniques, tools, languages and frameworks they are using on daily basis.
# Do you work so hard that you don’t have time to catch up with all the new front-end trends?
# Are you pondering to hire a front-end developer but you are still unsure if it is worth?
# Do you think it is about time to leave the full-stack development and focus in the front-end?
During presentation I will try to answer all those questions giving a complete overview on how Front-end apps are being developed. I will talk about : workflows, automated processes, Linting & styling, SASS, Unit and E2E testing, TDD, Hot reload, JS typed libraries, UI component libraries, UI frameworks and much more.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
Assuring Contact Center Experiences for Your Customers With ThousandEyes
SharePoint Development 101
1. You’re Doing It Wrong:
A New Developer’s Primer for SharePoint
– or –
Everything that you know is useful,
but is still, somehow, very, very
wrong.
#spdev101
4. Me:
Technical Lead @ Planet Technologies
Developer
Father
Community Organizer
Virginia Tech Hokie
Penny Arcade Expo Enforcer
UNSC M12 FAV “Warthog” gunner
World Famous Jungle Cruise Skipper (ret.)
#spdev101
6. SharePoint Development 101
• What do you get?
• What’s the same?
• What tools do I need?
• Key dev concepts you need to know
• 10 things every SharePoint developer should
know
• How to get your code rejected by your
SharePoint Architect(s)
• Resources
#spdev101
7. What do you get?
• You get a lot of functionality for free
– Authentication/Authorization
– Page Templating
– Workflow hosting/reporting
– Data storage
• You get a LOT of functionality for free
– Federated Search – Metadata management
– Excel Data Services – Access Services
– –
Business Connectivity Services Scalable Service Hosting
– Single Sign-On – Visio Workflow integration
– Etc. – Etc.
#spdev101
8. What’s different?
• Website Structure
– Web Application → Site Collection → S.C. Root Web →
Subwebs
• Deployment
– Code → Assembly → Feature (usually) → Package (.WSP)
• Fea⋅ture /ˈfit ər/ -noun
ʃ
1. A functional unit of SharePoint functionality, scoped at a Farm, Web
Application, Site Collection, or Web level
• Packages
– First added to the server farm
– Then, deployed to individual web applications (or globally)
#spdev101
9. What’s the same?
• SharePoint is an ASP.Net app
– Web.config
– HTTPHandlers/HTTPModules
– Authentication
– Master Pages
– Web Parts == Composite Server Controls
• Inherit from System.Web.UI.WebControls.WebParts.WebPart
– Postbacks/Event Lifecycle Model
#spdev101
10. What tools do I need?
• Virtual Machine w/ Visual Studio, SQL Server, Active
Directory, IIS, and MS Office running a server OS (64-bit
for SP 2010)
• Microsoft SharePoint 2010 SDK
– Documentation
– Code samples
• SharePoint Visual Studio add-ins
Windows SharePoint Services 3.0 Tools: Visual Studio 2008
Extensions, Version 1.2 (VSeWSS)
WSPBuilder (for VS 2008/SP 2007 or VS/SP 2010)
Visual Studio 2010 Tools for SharePoint Development (SP 2010
Only)
Microsoft Office Developer Tools for Visual Studio 2012 -
Preview 2 (SP 2013 only, SP 2010 is OOB) #spdev101
11. Add-Ins: SharePoint vs. Visual Studio
SharePoint SharePoint SharePoint
2007 2010 2013
WSPBuilder WSPBuilder NOPE :(
2008
VS
Visual Studio
2010 Tools for
2010
WSPBuilder NOPE :(
SharePoint
VS
Development
Microsoft Office
Developer Tools
2012
NOPE :( Built-in :D
for Visual Studio
VS
2012 - Preview 2
#spdev101
12. Key dev concepts you need to know
• Memory management (IDisposable)
• ASP.Net Web Forms page lifecycle (Page
• events) handling & process flow
Exception
• (try/catch/finally) not just thru server controls)
HTML & CSS (raw,
• JavaScript (SharePoint Client-Side Object
• Model)
JavaScript (jQuery)
• JavaScript (KnockoutJS, Modernizr, etc)
• Regular Expressions (because SCIENCE)
14. 10 Things Every SharePoint Developer
Should Know
10.Whenever possible, avoid creating
custom Site Definitions
• Use Web Templates
#spdev101
15. 10 Things Every SharePoint Developer
Should Know
9. Solution packages are NOT side-by-side,
versioned deployments
#spdev101
16. 10 Things Every SharePoint Developer
Should Know
8. Web.config changes should be made in
code, not by hand
• SPWebConfigModification
#spdev101
17. 10 Things Every SharePoint Developer
Should Know
7. Sandbox limitations are not enforced at
compile time.
You need:
• Visual Studio 2010 SharePoint Power
Tools
• Office365 Sandbox FxCop Rules
#spdev101
18. 10 Things Every SharePoint Developer
Should Know
6. Out of the box master & layout pages
should never be modified
#spdev101
19. 10 Things Every SharePoint Developer
Should Know
5. JavaScript and Publishing Content Pages
do not play well together
OK (In a Content Editor Web Part):
<script type=“text/javascript">…</script>
Not OK (CEWP or page content):
<a href="#" onclick="javascript: …">link</a>
List data is always stripped of JavaScript
#spdev101
20. 10 Things Every SharePoint Developer
Should Know
4. Yes, you can have ASP.Net “yellow
screen of death” callstacks on errors
In your web.config file:
1. Set mode to “off” in the customErrors element
2. Set debug to “true” in the compilation element
3. Set CallStack to “true” in the SafeMode element
In code!
• SPWebConfigModification
#spdev101
21. 10 Things Every SharePoint Developer
Should Know
3. There is a right and very wrong way to
iterate through a SharePoint list
OK:
SPListItemsCollection items = myList.Items;
for (int i = 0; i < items.Count; i++)
{
// loop
}
Not OK:
foreach (SPListItem item in myList.Items)
{
// loop
}
#spdev101
22. 10 Things Every SharePoint Developer
Should Know
2. Many of the out-of-box web part classes
are inheritable (but not all)
You need: ILSpy
#spdev101
23. 10 Things Every SharePoint Developer
Should Know
1. The rules for proper disposal of
SharePoint objects isn’t cut & dry – but
there is help.
SPDisposeChe
(Write ck down)
this
#spdev101
24. How to get your code rejected by your
SharePoint Architecture Group
• Don’t dispose of your SPSite and SPWeb
(and related) objects properly
– The SPDisposeCheck utility is invaluable for
this
• Use
SPSecurity.RunWithElevatedPrivileges
when unnecessary or just plain badly
• Log errors to whatever’s handy at the time
• Make changes to the web.config file
without consideration for others #spdev101
25. Resources
• SPDisposeCheck Utility
– http://code.msdn.microsoft.com/SPDisposeCheck
• StackOverflow/SharePointOverflow
– http://stackoverflow.com
– http://sharepointoverflow.com
• Twitter (#SPHelp)
• Your local SharePoint User Group
#spdev101
30. Thanks for coming!
• Don’t forget your evaluations
• You can find me at:
• Blog: http://greghurlman.com
• Twitter: @ghurlman
• Email: greg@greghurlman.com
• Princeton Area SharePoint User Group
• SharePoint Saturday New York & New
Jersey
• Manticore Theatre @ PAX East
#spdev101