13. Changing our tune…
Run on Windows
.NET as system component
Run on VM (CLR)
Black box compilers
Edit in Visual Studio
Proprietary
Run everywhere
Deploy with app
Compile to native
Open compiler APIs
Use your favorite editor
Open source
34. “Yet another” defintion …
Among programmers, yet another (often
abbreviated ya, Ya or YA in the initial part of an acronym)
is an idiomatic qualifier in the name of a computer
program, organisation, or event that is confessedly
unoriginal.[1]
Stephen C. Johnson is credited with establishing the
naming convention in the late 1970s when he named
his compiler-compiler yacc (Yet Another Compiler-
Compiler), since he felt there were already numerous
compiler-compilers in circulation at the time.
https://en.wikipedia.org/wiki/Yet_another
As in "Yet Another AI Group" or "Yet Another Simulated
Annealing Algorithm". If used of others' work, it describes
something of which there are already far too many. In
hackish acronyms the "YA" prefix almost invariably
expands to Yet Another, e.g. YABA, YAUN.
http://www.dictionary.com/browse/yet-another
YAAF – Yet Another Application Framework
Yabasic – Yet Another BASIC
Yabause – Yet Another Broken and
Uncomplete Saturn Emulator
Yacc – Yet another compiler compiler
Yacas – Yet another computer algebra system
YACT – Yet another capture the flag team
YACTA – Yet Another CT Analyzer
YaDICs – Yet another Digital Image Correlation Software
YADIFA – Yet Another DNS Implementation For All
YafaRay – Yet another free Ray tracer
Yafc – Yet another FTP client
YAFFS – Yet Another Flash File System
Yafra – Yet Another Framework
YAGO – Yet Another Great Ontology
Yahoo! – Yet another hierarchical, officious oracle[2]
Yakuake – Yet Another Kuake
YAM – Yet Another Mailer, an email client
YAML – Yet Another Markup Language. Later redefined to
YAML Ain't Markup Language, making a recursive
37. Plan
1 Monitor + Learn
ReleaseDevelop + Test
2
Development Production
4
3
DevOps
38. It starts with an idea – and a plan
how to turn this idea into reality …
Manage work
Develop + Test 1
Plan
Project starts
PlanTrack progress
39. Write Code
Unit Testing
2
Build
Version Control
Build Verification
Release
Once the iteration starts, developers
turn great ideas into features …
Develop +Test
41. Cloud
Load Testing
Integration testing
environment
Automated functional
testing environment
3
Pre-production
environment
Staging
environment
Monitor + Learn
When all tests pass, the build is deployed to testing
environments for each stage in the release process
Release
43. Learn and understand how users use your app, how it reacts
and quickly fix issues and bugs
Monitor + Learn
4
Monitor
Feedback
Plan the next iteration
47. Hackathon Continuous Integration
It’s just a simple ASP.NET or Node.js web api!
Considerations:
• CI for dependent services that you own that are
called by the bot
• LUIS, Databases, external APIs
• Put bot configs in Environment Variables or Release
definition to share the same build
cspkg
48. Hackathon Testing
How do you test a bot?
Considerations, forget about:
• Auth
• Mocking connector, mocking LUIS calls
• Unit/Functional/Load testing
https://www.microsoft.com/developerblog/real-life-code/2017/01/20/Bot-Framework-Unit-Testing.html
https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Tests/Microsoft.Bot.Sample.Tests/AlarmBotTests.cs#L91
https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Tests/Microsoft.Bot.Builder.Tests/Scripts
49. Hackathon Cont. Deployment
It’s just an ASP.NET or Node.js web api!
Considerations:
• CD for dependent services that you own that are called by
the bot
• Updates and retraining of LUIS models and other
intelligent systems
• Bot state
• Functional/performance tests
50. Thiago Almeida & Donovan Brown
(18 min video on Channel 9)
https://channel9.msdn.com/Series/DevOps-for-the-Bot-
Framework/Continuous-Deployment-and-Release-Management-for-
the-Bot-Framework
51. 1. Visual Studio 2017 & Visual Studio Code
2. Interactive Window
3. Get the most of Visual Studio 2017!
4. Don’t do a “Yet another …”
5. Think on DevOps for Bots
"Las mujeres nunca se equivocan, incluso cuando se equivocan, llega un momento de la discusión en el que sorprendentemente vuelven a tener razón.“
Dr. House
Talking Points
Switching between tabs, apps or computers are just some of the ways that you can lose context and become less effective while coding.
Visual Studio 2015 provides the right data in context and also has roaming settings so that you can stay in the zone.
Background Information
PerfTips: http://blogs.msdn.com/b/visualstudioalm/archive/2014/08/18/perftips-performance-information-at-a-glance-while-debugging-with-visual-studio.aspx
Light Bulbs: http://www.visualstudio.com/en-us/news/vs2015-preview-vs.aspx
Settings and roaming: http://channel9.msdn.com/Events/Visual-Studio/Connect-event-2014/710
David Note: Make sure to highlight customer pain points, “bullet train”, Poll??