SlideShare a Scribd company logo
1 of 27
Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner:
Automated Code Quality Analysis of
SharePoint Solutions
Matthias Einig
Contact
@mattein
mail@matthiaseinig.de
www.matthiaseinig.de
Who is that guy?
• SharePoint developer since SPS2003
• MCSE, MCPD, MCITP, MSCA in
SharePoint 2007-2013
• SCRUM Master and Product Owner
Matthias Einig
SharePoint Architect
Steria AB, www.steria.com
Stockholm, Sweden
Main Focus:
• Solution Architecture,
• Solution Development,
• SharePoint ALM,
• Solution Quality Assurance
sharepoint-community.net
What is Code Analysis?
 Static vs. Dynamic
 Source Code vs. Object Code
 Manual vs. Automated
 Coding Errors, Best Practices
 Metrics
Why is it so important for SharePoint?
 Solutions / apps are black boxes
 Code quality differs a lot
 Solutions change (ALM)
 Complexity complicates
maintainability
 Farm stability / security / licensing needs to be
assured
 Policies / best practices are hard to enforce
So, what the heck is SharePoint Code?
 .NET code using SP API
 XML Files: Manifest,
Features, Content Types,
Web Templates etc.
 HTML, ASPX, ASCX
 CSS, JavaScript
 Resources: images, resx, document templates…
 Deployment locations!
Is my code
correct and follows
best practices?
Developer
Will the code
harm my farm?
Administrator
Is the code
well designed and
maintainable?
Architect
Does the code
comply with
company policies
and standards? QualityManager
Who needs it and why?
ObjectCode FxCop/VSCA
FxCop Metrics
CAT.net
SourceCode StyleCop
SPCode SPDisposeCheck
MSOCAF
Checks against general coding errors
(not SharePoint-specific)
Calculates code metrics
(only .NET code, not SharePoint specific)
Checks coding style guidelines
(only .NET code, not SharePoint specific)
Analyses code security
(not SharePoint-specific)
Checks memory leaks
(SharePoint-specific)
Combination of FxCop and
SPDisposeCheck for SharePoint Online
What do we have right now?
What’s missing?
 No tool to check all SharePoint specific Code
 Analyze solution dependencies
 Calculate SharePoint metrics
 Show what’s inside the solution / app!
The Solution!
Identifies coding
violations against
~400 rules
Visualizes
dependencies
between
SharePoint
elements
Calculates metrics
on SharePoint
Code
Creates content
reports of packages
What is in it?
DEMO
Visual Studio Integration
SPCAF 4 Visual Studio
• Run SPCAF manually or on
solution build
• Doubleclick results in Error List
to open the line of code
Configure Rulesets
• Use predefined settings
i.e SP2013 Compatibility
• Create your own settings
• Enable/disable rules
• Adjust severity of notifications
• Information
• Warning
• Error
Continuous Integration
Run SPCAF in TeamBuild as Quality Gate
• Custom Build Activity
• Supports TFS 2010/2012 and Team Foundation Service (Cloud)
Build in TFS on-premises Build in Team Foundation Services
Client Applications
• SPCAF runs on Azure (WCF Service)
• Available Clients:
Windows 8 App Desktop Client (WPF) Web Client (Silverlight)
SPCAF on Azure
DEMO
Desktop Client
SPCAF Desktop/Online
DEMO
Develop custom rules for SPCAF
1. Create empty class library
2. Add SPCAF.SDK.dll assemblyreference
3. Create class and add usings
4. Add method stub by inheriting from ”Rule”
You want to rule yourself? (1)
using SPCAF.Sdk;
using SPCAF.Sdk.Rules;
using SPCAF.Sdk.Model;
using SPCAF.Sdk.Model.Extensions;
namespace SPKonfAT.Rules
{
public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition>
{
public override void Visit(FeatureDefinition target, NotificationCollection
notifications)
{}
}
}
You want to rule yourself? (2)
5. Add Rule Metadata
namespace SPKonfAT.Rules
{
[RuleMetadata(typeof(Naming),
CheckId = "SPC99001",
DisplayName = "Feature name should start with SPKonfAT",
Description = "A feature name should be prefixed with 'SPKonfAT'.",
DefaultSeverity = Severity.Warning,
SharePointVersion = new string[] { "12", "14", "15" },
Message = "Feature '{0}' should start with 'SPKonfAT'.",
Resolution = "Change the folder name of the feature and add the name at the beginning,
e.g.
'SPKonfAT.Intranet.Components_ContentTypesFeature'.")]
public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition>
{
...
You want to rule yourself? (3)
7. Build and drop the assembly into SPCAF installation folder
public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition>
{
public override void Visit(FeatureDefinition target, NotificationCollection
notifications)
{
if (!target.FeatureName.StartsWith("SPKonfAT"))
{
string message = string.Format(this.MessageTemplate(), target.FeatureName);
Notify(target, message, notifications);
}
}
}
6. Implement the rule
Read more about the SDK at http://matte.in/SPCAFSDK
What was that again?
SharePoint Code Analysis
• is important for EVERYBODY 
• improves solution quality
• improves farm stability
SPCAF
• fills the tooling gap
• runs locally and in the cloud
• integrates in the ALM process
• is extensible
Where do I get it?
Download SPCAF BETA for free at
www.spcaf.com
Matthias Einig
@mattein
www.matthiaseinig.de
Follow us!
TheSharePointCodeQualityTeam
Torsten Mandelkow
@tmandelkow
blogs.msdn.com/b/torstenmandelkow
SPCAF
@spcaf
www.spcaf.com
SharePoint Code Quality Tools
FRAGEN ?
SharePoint Camp
ab 08. Juli in München
ab 05. August in Berlin
ab 02. September in Karlsruhe
in zwei speziellen Versionen
www.SharePointCamp.de
Trainings und Events der ppedv
Mehr als 100 verschiedene Trainings auf
Microsoft-Technologien spezialisiert
11 Standorte in AT & D Maßgeschneiderte Trainings direkt bei Ihnen vor Ort!
www.ppedv.at
Wir sehen uns wieder!
Hat Ihnen mein Vortrag gefallen?
Ich freue mich auf Ihr Feedback!
VIELEN DANK!
Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner:

More Related Content

More from Matthias Einig

Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Matthias Einig
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapMatthias Einig
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsMatthias Einig
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellMatthias Einig
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerMatthias Einig
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementMatthias Einig
 

More from Matthias Einig (7)

Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24Developing high quality SharePoint solutions/apps with SPCAF #SP24
Developing high quality SharePoint solutions/apps with SPCAF #SP24
 
Keynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recapKeynote - The future of SharePoint - SPC14 recap
Keynote - The future of SharePoint - SPC14 recap
 
SPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutionsSPSOslo: Automated code quality analysis of SharePoint solutions
SPSOslo: Automated code quality analysis of SharePoint solutions
 
Professional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShellProfessional SharePoint Solution Deployment with PowerShell
Professional SharePoint Solution Deployment with PowerShell
 
Developing for SP2013
Developing for SP2013Developing for SP2013
Developing for SP2013
 
SPSD SharePoint Solution Deployer
SPSD SharePoint Solution DeployerSPSD SharePoint Solution Deployer
SPSD SharePoint Solution Deployer
 
SSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle ManagementSSUG: SharePoint Application Lifecycle Management
SSUG: SharePoint Application Lifecycle Management
 

Recently uploaded

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAndikSusilo4
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Azure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & ApplicationAzure Monitor & Application Insight to monitor Infrastructure & Application
Azure Monitor & Application Insight to monitor Infrastructure & Application
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

Automated Code Quality Analysis of SharePoint Solutions

  • 1. Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner: Automated Code Quality Analysis of SharePoint Solutions Matthias Einig
  • 2. Contact @mattein mail@matthiaseinig.de www.matthiaseinig.de Who is that guy? • SharePoint developer since SPS2003 • MCSE, MCPD, MCITP, MSCA in SharePoint 2007-2013 • SCRUM Master and Product Owner Matthias Einig SharePoint Architect Steria AB, www.steria.com Stockholm, Sweden Main Focus: • Solution Architecture, • Solution Development, • SharePoint ALM, • Solution Quality Assurance sharepoint-community.net
  • 3. What is Code Analysis?  Static vs. Dynamic  Source Code vs. Object Code  Manual vs. Automated  Coding Errors, Best Practices  Metrics
  • 4. Why is it so important for SharePoint?  Solutions / apps are black boxes  Code quality differs a lot  Solutions change (ALM)  Complexity complicates maintainability  Farm stability / security / licensing needs to be assured  Policies / best practices are hard to enforce
  • 5. So, what the heck is SharePoint Code?  .NET code using SP API  XML Files: Manifest, Features, Content Types, Web Templates etc.  HTML, ASPX, ASCX  CSS, JavaScript  Resources: images, resx, document templates…  Deployment locations!
  • 6. Is my code correct and follows best practices? Developer Will the code harm my farm? Administrator Is the code well designed and maintainable? Architect Does the code comply with company policies and standards? QualityManager Who needs it and why?
  • 7. ObjectCode FxCop/VSCA FxCop Metrics CAT.net SourceCode StyleCop SPCode SPDisposeCheck MSOCAF Checks against general coding errors (not SharePoint-specific) Calculates code metrics (only .NET code, not SharePoint specific) Checks coding style guidelines (only .NET code, not SharePoint specific) Analyses code security (not SharePoint-specific) Checks memory leaks (SharePoint-specific) Combination of FxCop and SPDisposeCheck for SharePoint Online What do we have right now?
  • 8. What’s missing?  No tool to check all SharePoint specific Code  Analyze solution dependencies  Calculate SharePoint metrics  Show what’s inside the solution / app!
  • 10. Identifies coding violations against ~400 rules Visualizes dependencies between SharePoint elements Calculates metrics on SharePoint Code Creates content reports of packages What is in it?
  • 12. SPCAF 4 Visual Studio • Run SPCAF manually or on solution build • Doubleclick results in Error List to open the line of code
  • 13. Configure Rulesets • Use predefined settings i.e SP2013 Compatibility • Create your own settings • Enable/disable rules • Adjust severity of notifications • Information • Warning • Error
  • 14. Continuous Integration Run SPCAF in TeamBuild as Quality Gate • Custom Build Activity • Supports TFS 2010/2012 and Team Foundation Service (Cloud) Build in TFS on-premises Build in Team Foundation Services
  • 15. Client Applications • SPCAF runs on Azure (WCF Service) • Available Clients: Windows 8 App Desktop Client (WPF) Web Client (Silverlight) SPCAF on Azure
  • 19. 1. Create empty class library 2. Add SPCAF.SDK.dll assemblyreference 3. Create class and add usings 4. Add method stub by inheriting from ”Rule” You want to rule yourself? (1) using SPCAF.Sdk; using SPCAF.Sdk.Rules; using SPCAF.Sdk.Model; using SPCAF.Sdk.Model.Extensions; namespace SPKonfAT.Rules { public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition> { public override void Visit(FeatureDefinition target, NotificationCollection notifications) {} } }
  • 20. You want to rule yourself? (2) 5. Add Rule Metadata namespace SPKonfAT.Rules { [RuleMetadata(typeof(Naming), CheckId = "SPC99001", DisplayName = "Feature name should start with SPKonfAT", Description = "A feature name should be prefixed with 'SPKonfAT'.", DefaultSeverity = Severity.Warning, SharePointVersion = new string[] { "12", "14", "15" }, Message = "Feature '{0}' should start with 'SPKonfAT'.", Resolution = "Change the folder name of the feature and add the name at the beginning, e.g. 'SPKonfAT.Intranet.Components_ContentTypesFeature'.")] public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition> { ...
  • 21. You want to rule yourself? (3) 7. Build and drop the assembly into SPCAF installation folder public class FeatureNameStartsWithSPKonfAT : Rule<FeatureDefinition> { public override void Visit(FeatureDefinition target, NotificationCollection notifications) { if (!target.FeatureName.StartsWith("SPKonfAT")) { string message = string.Format(this.MessageTemplate(), target.FeatureName); Notify(target, message, notifications); } } } 6. Implement the rule Read more about the SDK at http://matte.in/SPCAFSDK
  • 22. What was that again? SharePoint Code Analysis • is important for EVERYBODY  • improves solution quality • improves farm stability SPCAF • fills the tooling gap • runs locally and in the cloud • integrates in the ALM process • is extensible
  • 23. Where do I get it? Download SPCAF BETA for free at www.spcaf.com Matthias Einig @mattein www.matthiaseinig.de Follow us! TheSharePointCodeQualityTeam Torsten Mandelkow @tmandelkow blogs.msdn.com/b/torstenmandelkow SPCAF @spcaf www.spcaf.com SharePoint Code Quality Tools
  • 25. SharePoint Camp ab 08. Juli in München ab 05. August in Berlin ab 02. September in Karlsruhe in zwei speziellen Versionen www.SharePointCamp.de Trainings und Events der ppedv Mehr als 100 verschiedene Trainings auf Microsoft-Technologien spezialisiert 11 Standorte in AT & D Maßgeschneiderte Trainings direkt bei Ihnen vor Ort! www.ppedv.at Wir sehen uns wieder!
  • 26. Hat Ihnen mein Vortrag gefallen? Ich freue mich auf Ihr Feedback!
  • 27. VIELEN DANK! Platin-Partner: Gold-Partner: Veranstaltungs-Partner: Medien-Partner: