Toni Petrina Microsoft MVP for C# Ekobit d.o.o. Controlling and extending development environment.

Slides:



Advertisements
Similar presentations
Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Advertisements

PowerBuilder.NET Guided Tour. PowerBuilder A New PowerBuilder IDE for.NET Development.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
T Sponsors Sameer Chabungbam Principal Program Manager, Microsoft Connector API Apps BizTalk Summit 2015 – London ExCeL London | April 13th & 14th.
OFC 317 使用 WinWF 构建 Microsoft Office SharePoint Server 2007 中的工作流应用.
Microsoft SharePoint 2013 SharePoint 2013 as a Developer Platform
Becky Bertram SharePoint MVP
SQL Server Reporting Services
Sharepoint Portal Server Basics. Introduction Sharepoint server belongs to Microsoft family of servers Integrated suite of server capabilities Hosted.
Enterprise Reporting with Reporting Services SQL Server 2005 Donald Farmer Group Program Manager Microsoft Corporation.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
SharePoint 2010 and Office 2010 Development Randy Williams Senior Consultant & Trainer Synergy Corporate Technologies.
What is QTP ► QTP stands QuickTest Professional ► It is an automated testing tool provided by HP/Mercury Interactive ► QTP integrates with other Mercury.
Microsoft Office Project Desktop Development Marcel Parent Program Manager Project Microsoft Corporation.
Future Directions: Building Customizable Applications using.NET Eric Schnepp TLN205 Lead Program Manager Microsoft Corporation.
Microsoft Confidential Office as a Development Platform Tim Heuer
Introducing NativeScript [Pavel Kolev Software Telerik: a Progress company]
Office 365 Platform Flexible Tools Understand different provisioning options and their advantages and disadvantages…
Introducing Reporting Services for SQL Server 2005.
Todd Kitta  Covenant Technology Partners  Professional Windows Workflow Foundation.
StyleCop Breaking down the barriers to entry Gary Ewan Park Twitter: Blog:
© BJSS Limited 2005 Commercial in Confidence Visual Studio 2008 Productivity Enhancing Tips and Resources Jeff Watkins – 25 September 2008.
Lecture Set 2 Part A: Creating an Application with Visual Studio – Solutions, Projects, Files.
Slide 1.NET Development for Project 2003 Samples from the Project 2003 SDK Jim Corbin Programmer Writer Office Developer Documentation Microsoft Corporation.
4. Managing the Desktop Thomas Lee Chief Technologist – QA plc.
Office Business Applications Workshop Defining Business Process and Workflows.
Name Microsoft Student Partner Overview of the Visual Studio 2005 Express Products.
Wizards for the OMNeT++ IDE András Varga OMNeT++ Workshop March 19, 2010 Malaga, Spain.
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311.
ADD-IN EXPRESS World-class Office extensions with little coding.
Extending the 2007 Microsoft Office System User Interface Mike Taulty Developer & Platform Group, Microsoft Ltd
Microsoft Visual Studio 2005 Tools for the Office System: Building Office Solutions Using Visual Studio 2005 Tools for Office Andrew Coates Developer Evangelist.
Lecture Set 2 Part A: Creating an Application with Visual Studio – Solutions, Projects, Files 8/10/ :35 PM.
UNDERSTANDING YOUR OPTIONS FOR CLIENT-SIDE DEVELOPMENT IN OFFICE 365 Mark Rackley
Neil Kidd Developer Tools Technical Specialist Microsoft UK.
Workflow in Microsoft Office SharePoint Server Jessica Gruber Consultant Microsoft Corporation.
Integrating with and Extending Visual Studio. Objectives.
Build Hybrid Mobile Apps with Ionic, Angular, & Cordova Brian
Ognjen Bajić Ana Roje Ivančić Ekobit Efficient Application Testing.
Introduction ITEC 420.
DevOps with ASP.NET Core and Entity Framework Core
1/10/2018 9:33 PM Cloud Roadshow © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO.
Stress Free Deployments with Octopus Deploy
INF230 Basics in C# Programming
Introduction to ASP.NET 2.0
DotNetNuke® Web Application Framework
Brian Leonard ブライアン レオナルド
Development Changes in Dynamics 365 for Finance and Operations
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Introduction to .NET Framework Ch2 – Deitel’s Book
Developing Drivers in Visual Studio
Introduction to SharePoint Framework (SPFx)
What’s New in Colectica 5.3 Part 1
Web Development in Microsoft Visual Studio 2013
Web Development Using ASP .NET
Unreal Engine and C++ We’re finally at a point where we can start working in C++ with Unreal Engine To get everything set up for this properly, we’re going.
Introduction to SharePoint Framework (SPFx)
CRM 2016 Solutions and Package Deployer
Using Visual Studio and VS Code for Embedded C/C++ Development
What's New in Visual Studio 2005
Patrick Flynn | Link Group Australia
Introduction to Group Policy
Visual Studio 2010 和 .NET Framework 4 培训研讨会
Windows Forms in Visual Studio 2005: An in-depth look at key features
Introduction to ASP.NET Parts 1 & 2
Mark Quirk Head of Technology Developer & Platform Group
St. Louis Day of Dot Net 2011 Building Web Parts for an Office 365 SharePoint Site Becky Bertram Independent SharePoint Consultant SharePoint MVP, MCSD.NET,
Selenium IDE Installation and Use.
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
Samuel Kastberg Scripting a BizTalk Server installation
Presentation transcript:

Toni Petrina Microsoft MVP for C# Ekobit d.o.o. Controlling and extending development environment

Turn off your mobile. Thank you.

3 Agenda Intro Extending your code Snippets, Item, Project Templates, T4-templates Extending your reach Custom NuGet repository, Private Extension Galleries Extending your environment Visualizers, Add-Ins, The future – Roslyn, Browser Link Summary

4 Problem?

5 Every scrum iteration... You tend to forget that churning code should be optimized too Tooling Rules Policies

6 Problems we run into High cost of training newcomers High cost of maintenance Adding new features takes too long Legacy apps are more of a frameworks

7 Patterns, patterns everywhere

8 Organization MyCompany.Interfaces MyCompany.Models MyCompany.ViewModels MyCompany.Views MyCompany.Utilities MyCompany.DataProviders MyCompany.MockDataProviders MyCompany.UnitTests

9 Why extend Familiar environment Don’t leave Visual Studio Bring your tools inside Enhance productivity Reduce repetitiveness Copy/paste pattern can introduce errors Become VSIP Sell extensions through Extension Galleries

Extending your code

11 Repetitive code I’ve seen this code before DRY – don’t repeat yourself applies to creating properties in code too Golden rule – if you wrote it twice, you’ll probably write it again Size matters For reusing smaller fragments of code – snipets For reusing file/class/interface structure – item templates For reusing entire project structure – project templates Sometimes code even needs to be generated – T4 text templates Sharing VSIX – for item/project templates (and snippets) VSI – for snippets

12 Snippets Create and reuse snippets Just a.snippet file Creating them manually is tedious Snippet Designer to the rescue Excellent for idioms Share snippets Copy/paste Shared folder Distribute via Visual Studio Content Installer

13 Snippets

14 Item templates Common scenarios - You need a license header - Complex inheritance - Forcing comments - You need items for your custom framework i.e. non-coding files: localization, resources, business logic - Replace default items - Complex item creation via wizard Advanced Multi-file item templates Distribute via VSIX

15 Project templates Common scenarios You need a project template for your company (setting up common stuff) Your application is actually a set of project templates (thing app/add-in generators) Starter kit Third-party controls provider offering template with initial settings MEF, Localization, Dependency Injection, Resources, etc. When Item Templates are not good enough Advanced Add wizards for custom Distribute via VSIX

16 Item/Project template

17 T4 text templates Common scenarios Complex code generation when item template is not good enough Localization (generate from UI components) Designers (model, database, UI) Imports from other project outputs (e.g. XML) Legacy bindings (language bindings) Help/static documents generator Code changes during development or between versions Testing scenarios Advanced Run time generation (e.g. reports) Distribute via VSIX

18 T4-templates

Extending your reach

20 Private Extension Galleries Distributing - licensed extensions - in-house extensions - Project/Item templates Works in intranet environments Integrate with CI to create custom distribution channels E.g. for testers Can be administrated via registry

21 Private Extension Galleries

22 Custom NuGet repository Works in intranet environments Hosting options - Shared folder - IIS host

23 Private Extension Galleries

Extending your environment

25 Why would I build extensions Customize IDE Keybindings, tools customization Custom content New components, domain specific Automation Speed up development and/or deployment Replace or add new features New platforms, language support, integration with other services

26 Sky is the limit Enhance your productivity Custom tooling Refactoring Custom editors (useful for DSLs) Custom languages Add help for your development environment Apply company- or team-wide standards Less code reviews Policies become effective

27 Sky is the limit (2) Connect with outside tools Database ERP Testing/Staging environments Third-party apps for content creation Visual Studio as a platform

28 Visualizer Debugging made easy Specific types for your projects Build better visualizers for the BCL or FCL classes Easily extensible Supports editing Custom forms Custom controls Don’t forget: inherit ISerializable

29 Visualizer

30 Creating VS add-ins You will need Visual Studio 2012 SDK* Or use the Extensions and Updates dialog * This depends on the version of Visual Studio you are building your extensions for

31 Creating VS add-ins Launch in new Visual Studio instance No conflicts with the existing environment Supported languages C#, Visual Basic, C++ Default template Menu command Tool windows Custom editor

32 Add-in

33 Looking for inspiration? Lots of add-ins are open source Learn from them Interesting ideas Notable examples NuGet WebEssentials 2012/2013 Snippet Designer

Extensions that understand your code

35 Roslyn Compiler as a Service

36 Roslyn Latest version is September 2012 CTP  Work in progres Entire compiler pipeline is available

37 Types of extensions Code Issue Info, warning or error Code refactoring Offer refactoring Completion provider Custom completion Outliner For custom structures

38 Roslyn extensions

39 Distributing add-ins VSIX files Pack all MEF or other components into a single installer Distribute via Extension Gallery Sell, distribute, open source... Easy to version and upgrade

40 Browser Link Part of Visual Studio 2013 Itself an extension Open source Source code at github Don’t forget to install Visual Studio 2013 SDK downloads#d-additional-softwarehttp:// downloads#d-additional-software Extendible extension MEF components Two-part extension: one for Visual Studio, another for the browser

41 Browser Link

42...and beyond Powershell extensions for Visual Studio Custom processing Complex item creation/manipulation Build extensions Custom content generation Custom steps Deploy to internal gallery/nuget integration

43 Summary Remember, DRY Reuse code as snippets or templates Generate code that you don’t want to write Integrate tools that will help you do your job Private repositories/galleries For companies VSIP partnership and monetization opportunities Sell extensions

Q&A.