- Schema Modeling for Cosmos: Yes, it matters!
Document oriented databases are deceivingly easy to use. Just shove some stuff in and it works? Well, not so fast… Turns out, just because you have no schema or no enforced document structure doesn’t mean that anything goes. How you structure your document will have an impact on your cost, your speed, and your ability to use the database. Sharing from Nuri’s experience using Cosmos and Mongo, this talk will review some common patterns and anti-patterns in document oriented design. Nuri will show you some common scenarios and how to approach designing them appropriately for this brave new world. Nuri Halperin helps companies get software done! He architects and builds scalable websites and business applications. His experience of over 2 decades ranges from founding CTO of Jdate.com to international e-commerce multilingual websites, to social photo sharing. His focus is on helping companies move to the Azure and creating cloud native solutions. Nuri is a Microsoft MVP, a MongoDB Master, and author of instructional online courses on Pluralsight.com. He also appeared on MSDN Channel 9 and podcasts. He is involved in the software community, coaches youth robotics, and contributes to OSS projects.
- What's New in C# 8 Interfaces (and how to use them effectively)
C# 8 brings new features to interfaces, including default implementation, access modifiers, and static members. We'll look at these new features and see where they are useful and where they should be avoided. With some practical tips, "gotchas", and plenty of examples, we'll see how to use these features effectively in our code. Jeremy Clark makes developers better. By drawing on over 15 years of experience in application development, he helps developers take a step up in their skill set with a focus on making complex topics approachable regardless of skill level. He is a Microsoft MVP for .NET, and he has authored seven courses for Pluralsight, including "C# Interfaces", a course aimed at giving developers a clear understanding of abstraction. He loves speaking and has delivered over 300 technical presentations in the last 10 years in the United States and Europe. Jeremy lives in northern Washington with his lovely wife, 3 cats, 2 dogs, and a banjo. This session is part of the .NET Virtual User Group (https://www.meetup.com/dotnet-virtual-user-group) series, where you can join and find more virtual user groups happening around the world.
- Introduction to F# for C# Developers with Steve Peterson
“Monad”. “Monoid”. “Endofunctor”. You might have run across the scary sounding words that are associated with functional languages like F#. Or maybe you assumed that F# is designed to solve complex algorithms. In reality, F# is a perfect match for us mere mortals writing boring line of business applications! In this talk we will introduce the .NET Language F#. We will begin by talking about some of the features that distinguish F# from C#. We will then compare example F# code directly with C# code to demonstrate not only the differences and similarities of the two languages, but also some of the main advantages F# has compared to C# in helping you write clean, less buggy code. We will wrap up by comparing two complete .NET Core API projects, one written in F#, the other in C#. Stephen Peterson is a F# and C# Sr. Software Engineer with The Nerdery based in Phoenix, Arizona. Steve has been developing applications for over twenty years and has been working on the Microsoft .NET platform since 2002. Steve is excited about the latest F# and C# language features allowing developers to write cleaner, maintainable, and more robust code than ever before. Steve likes to spend his spare time with his wife, three Golden Retrievers, two Chocolate Labs, St. Bernard and a cat. He enjoys running and makes an effort to run at least one half marathon a year. Steve also holds a private pilot certificate, so flying is also a passion. He is currently in the process of earning his Instrument pilot’s certification
- The Power of Code Automation within a Contract-Driven Architecture in VS2019
Whether you are building a small n-tier application for a mobile application or a Fortune 500 Enterprise class n-tier/SOA implementation with all of the bells and whistles, the basic services that sit between the layers of your application are both critical and at the same time kind of boring. Very few things will impact an application in terms of performance or security failures faster than a poorly implemented/performing service layer. Leveraging a code automation tool (such as CodeFactory), within Visual Studio 2019, we will demonstrate how to efficiently build customized service layers that will help to ensure that a Contract Driven-Architecture standards are met regardless of who is actually doing the coding. Applying code automation to solve architecture problems, pattern adherence and skill set gaps. Skill set gaps and how proper architecture solves them Leveraging patterns to address architecture and skill set challenges Using software factories to solve architecture and skill set problems - Introduction - Contract-Driven Architecture (CDA) and Design - A bit about Service Layer Design - What we did, and why - A bit about how CodeFactory works - Demo - Reasons to build CDA Automation: Legacy Code Issues - Reasons to build CDA Automation: Greenfield Issues - Question and Answers John A Hannah co-founded LifeCycle Delivery, a consultancy that focuses on removing obstacles to application lifecycle management and software delivery success. Some obstacles are technical, many originate from inadequate process or governance, but most are avoidable. Our objective is providing a major reduction in failed or under-performing projects by installing sustainable delivery frameworks that our clients will be able to adopt and sustain long term. As a Microsoft Gold Certified DevOps and App Dev partner, we can handle your hardest challenges related to Visual Studio, Team Foundation Server, Solution Architecture and much more. Earlier this year, we launched another company, CodeFactory, that focuses on developer tool products that enable good software design and simplified/high performance refactoring. CodeFactory is an extension to Visual Studio 2017 and is currently available in beta.
- Develop from Anywhere with Visual Studio Online
Hello! Feeling isolated? :( Join us virtually for our monthly meeting. We will have virtual pizza and beer, a great speaker and networking time. We would love to have you join us online. RSVP and let us know you are coming. Whether you’re working on a long-term project, a short-lived feature branch, or want to quickly review a pull request, Visual Studio Online can help you be more productive by providing a fully configured development environment in minutes. Access your environment from VS Code or a browser based editor; you’re no longer tied to one machine to do your development tasks! I’ll go over a bit of VSO’s history and then spend most of our time on demos and questions to help you assess whether VSO is right for you! Allison Buchholtz-Au is a Program Manager on the Visual Studio Online team, where she focuses on streamlining our user experience and understanding needs of our growing customer base. She’s no stranger to the Visual Studio family of products, having worked on everything from documentation as an Intern to source control integration and new user onboarding in Visual Studio to enhancing developer productivity with AI on the VS IntelliCode team.
- [1 week early] Cypress: Where Automated Web UI Testing Isn’t Just for QA Anymore
Note: This meeting is 1 week earlier than normal due to scheduling conflicts. Today’s fast-moving software delivery environment emphasizes pushing value to production as quickly as possible. “Value to production” implicitly requires high quality—low quality is of little value to anyone! —which means teams need to focus on being able to specify, build, test, and deploy software effectively and quickly. Acceptance testing historically been manually intensive efforts run by a dedicated QA department, resulting in a slower pace of production releases. No longer do we have to make acceptance a manual effort that requires a dedicated QA department. With the release of Cypress, we have a new standard in front-end testing that allows every developer to create acceptance tests. Come learn how you can create fast, easy, and reliable test for anything that runs in a browser regardless of the front-end framework used. You will walk away ready to end the era of “Developers don’t write acceptance tests” and start writing acceptance tests for all of your projects. Speaker: Justin James Justin James is the founder of Let Your Nerd Be Heard where he is hired by Nerdy Entrepreneurs to amplify their voice, message and authority so they are seen as the expert that they are in order to create a legacy, make a massive difference in people's lives and generate more income. Justin is also the host of the Let Your Nerd Be Heard Show, the creator of the Ultimate Presentation Formula for Nerds, an Award-Winning Entrepreneur, an Amazon #1 International Best Selling Author, an International Public Speaker and a Microsoft Most Valuable Professional (MVP) in Developer Technologies.
- Learn how to Build Machine Learning Models in C# Using ML.NET with Ron Dagdag
While most machine learning happens in python and R, these are not the only options to build machine learning models. For .NET developers, Microsoft released ML.NET, a maching learning library that allows us to build models in C#. In this session, you'll learn how to use ML.NET to automatically generate models for typical machine learning problems. We'll cover the following topics: - How to use Machine Learning in .NET - What are data transformations - Collecting metrics and evaluating training results - Using models in ASP.NET Core - Introduction to Automated Machine Learning By the end of the session you'll know how to get started with ML.NET and integrate models to your applications. During the day, Ron Dagdag is a Senior Software Engineer at Crestron Electronics where he supports developers with their IoT, Cloud and Voice AI assistant development. On the side, Ron is an active participant in the community as a Microsoft MVP, speaker, maker and blogger. He is passionate about Augmented Intelligence, studying the convergence of Augmented Reality/Virtual Reality, Machine Learning and the Internet of Things.
- Combined Holiday Special Event
Please join the combined .NET User Groups for a special holiday event with very special guest speaker Jeff Fritz (CSharpFritz) from Microsoft. Doors open at 5:30 pm and dinner, including soft-drinks, beer and wine will be provided. Come celebrate with us and discuss the latest .NET technology at Carvana in NW Tempe.
- Multi-Tenant Deployment Patterns with Ryan Rousseau
If you work on a multi-tenant application, you understand the value of multi-tenant deployments and deploying different versions of your application to different customers at different times. Even if your application doesn't support tenants, there are several reasons that you might consider multi-tenant deployments for your CI/CD pipeline. Maybe each team needs to deploy to an isolated development environment, you need to QA or UAT test different versions at the same time, or you deploy your application to various geographic regions. If I've piqued your curiosity, join me in this session where we'll walk through multi-tenant deployment patterns and how they enable these scenarios for your team. We'll configure some example multi-tenant deployments in Octopus Deploy and show how your CI server can play a role in supporting the multi-tenant pipeline. Concepts covered: - Multi-tenant application types - Multi-tenant deployment patterns - Continuous Delivery / Deployment Automation Server (Octopus Deploy) - Multi-tenant deployments in Octopus Deploy - Continuous Integration / Build Automation Server (Appveyor/Azure Devops) Ryan works with some of Octopus Deploy's largest customers to help them be successful in their continuous delivery efforts. He is also active in the broader Octopus community answering questions in Slack, recording videos for the Ask Octopus series, and visiting conferences and user groups to speak about CI/CD and Octopus Deploy. Before joining the Customer Success team at Octopus, Ryan was a developer and happy Octopus Deploy user. He's always taken an interest in improving processes and automating tasks where possible. This naturally led him to CI/CD and a several phase project to improve his team's build and deploy pipeline. By the end, his team had a fully automated build and deploy process that integrated with our other tools through APIs. They even had recurring scheduled deployments to keep our test and demo environments up to date. Outside of developing and advocating, Ryan performs comedy around Dallas, belongs to two needy cats, and likes to travel to new places and sampling their vegan food.
- How Not to be the Best App No One Uses: Effective Onboarding for Fun & Profit
You've made a brilliant application - perhaps a new startup or a new major initiative within your enterprise. For it to be successful you need to get people from interested to effective before they lose interest. Without effective onboarding built into your app users will not stick with it long enough to discover the great features you've built. In this talk we'll dig into what it takes to design and optimize an effective onboarding process and equip you with a strategy for making incremental investments that can be fit into your development project. Kendall Miller is the CEO of Gibraltar Software, the developers of Loupe, VistaDB and Visual ReCode for .NET and Java developers. As a software engineer now running an international company, Kendall focuses on system scalability, usability and user experience. Before starting Gibraltar Software, Kendall worked for multiple startups leading their technology development from beginning through profitability. In each case he's focused on translating enterprise-level performance and capabilities down to smaller companies. Kendall has a B.S in Computer Engineering from the University of Illinois, Urbana-Champaign.