The Microsoft AI Immersion Workshop, to be held in Seattle on May 9th, 2017, is a FREE pre-event to Microsoft Build 2017. The Workshop is a special opportunity for advanced developers interested in creating the next generation of intelligent apps, including enterprise-grade solutions, that use the very latest AI and Machine Learning techniques. Experienced Microsoft engineers and developers will run hands-on tutorials at the Workshop and help you learn how to build scalable, real-world solutions using Microsoft and open source technologies. There will be many opportunities to connect with developers and data scientists working on Microsoft’s products and services, as well as with industry peers. The workshop will feature a keynote talk on Microsoft’s AI vision and roadmap, followed by a choice of deep technical tutorials that will span areas such as:
The AI Immersion Workshop is being held at the W Hotel Seattle, a few blocks from the Washington State Convention Center, the venue for Microsoft Build 2017. Since our tutorials will focus on hands-on activities and projects, participants are expected to bring and use their laptops through most of the day. And we’ll provide plenty of food, snacks and caffeine throughout, of course. Note that attendees who are already confirmed to attend Microsoft Build 2017 will still need to register at a special registration page for the AI Immersion Workshop – that registration site will open in late March, so please stay tuned to this blog for more information. We hope to see many of you in Seattle at this event. |
Microsoft AI Immersion Workshop in Seattle – May 9th, 2017
What’s new with IncrediBuild and Visual Studio 2017
As a part of Visual Studio 2015 release, we introduced a partnership between IncrediBuild and Visual Studio. This partnership allowed developers to install IncrediBuild from the Build Accelerator menu and benefit from a few key build acceleration features free of charge.
Based upon the feedback we have heard, with Visual Studio 2017, we have made some changes to this experience which are as follows.
Install IncrediBuild from the Visual Studio Installer
Once you have downloaded the Visual Studio 2017 installer, IncrediBuild is presented as an optional component for C++ workloads namely ‘Desktop development with C++’, ‘Mobile development with C++’ and ‘Game development with C++’.
The figure below depicts the IncrediBuild optional component presented as part of the ‘Desktop Development with C++ workload’.
To install IncrediBuild just check the IncrediBuild optional component and then just wait and watch.
It should not take too long for the installation to complete and once it has been completed you can go ahead and build your first C++ application with IncrediBuild and Visual Studio 2017.
Increased Parallelization for your builds
Another change we have made with Visual Studio 2017 release is that the IncrediBuild build engine will now parallelize your build for up to 16 cores vs. the 8 cores limit in Visual Studio 2015 at no additional cost This would help further improve your build time when using IncrediBuild with Visual Studio 2017.
Tell us what you think
Download Visual Studio 2017, try out the IncrediBuild Visual Studio integration, and let us know what you think. You can report problems by clicking the user feedback icon next to Quick Launch in the title bar and then selecting . Track your feedback on the developer community portal. For suggestions, let us know through User Voice. We look forward to hearing from you!
New Hypervisor Top-Level Functional Specification
At the end of last week we published version 5.0 of the Hypervisor Top Level Functional Specification. This version details the state of the hypervisor in Windows Server 2016. You can download it from here:
https://docs.microsoft.com/en-us/virtualization/hyper-v-on-windows/reference/tlfs
Be warned – this is a very complicated technical document. However, it has also become the first place that I point anyone who wants to know more about the internal workings of Hyper-V towards.
Cheers,
Ben
Power BI solution templates now support Azure Analysis Services
We’re pleased to announce support for Azure Analysis Services for Power BI solution templates. Effective today, we support Azure Analysis Services for the Campaign/Brand Management for Twitter, System Center Configuration Manager, Sales Management for Dynamics 365, and Sales Management for Salesforce solution templates.
Power BI solution templates simplify and accelerate building analytics solutions on popular applications, many that you probably use today. They offer a very quick guided experience to create compelling analytics and visualizations on an extensible, scalable, and secure architecture that offer immediate value and that you can customize as you see fit. This means that instead of spending weeks or months getting going, you can get started immediately and spend your time on extending and customizing the result to meet your organization’s needs. Learn more about Power BI solution templates.
So what is Azure Analysis Services and why should I care?
Well - first some background. Azure AS (let’s call it AAS) is another incarnation of the same engine that runs in Power BI Desktop, the Power BI service, and in SQL Server Analysis Services. Azure Analysis Services was announced several months ago in an article on the Azure blog. (Read it – good stuff.)
Now, why should you care about AAS? The Power BI Service is an amazing thing – why would you want to store your data in AAS rather than leaving it in Power BI? Especially when there is an added cost to do so.
The simplest and most obvious answer is data volume. The maximum size of a power BI desktop file that can be published to the Power BI Service is 1GB, after compression. For larger databases, you’ll need to bring in Azure Analysis Services.
This is a pretty simplistic way to look at things and AAS brings enterprise-ready capabilities that you might need long before you hit this data size limit. Size is a leading indicator, but here are some other things to consider.
Processing– How often do you want to refresh your reports? A report published to the Power BI service can be refreshed several times per day. If you want your model to be processed more frequently or you need more control on how it is processed, then AAS is one of your options. Reports bound to AAS are as fresh as the data inside it.
Partitioning– A table can be divided into logical parts each of which can be processed independently of the other. We don’t exploit this capability directly with solution templates (at least not yet) but you can. Solution templates are designed to be extended. So, for example, if you anticipate marrying your own data with what we provide, this can be important.
Client tools– As hard as this is to say, Power BI might not meet all your needs. Other tools like Excel offer some capabilities that Power BI does not. You might even have to use a *cough* competitor product. Azure Analysis Services supports not only Excel, but too many other client tools to mention here.
Size– Yes, it’s simplistic but it matters. If your model gets large you may need to turn to AAS to give you the Azure resources you need to not only host the data you have, but give you the performance you need.
So please try it out. As always, we look forward to your reaction and feedback. You can comment on your community site or simply email us at PBISolnTemplates@microsoft.com.
Power BI Gateways–March Update
Comparing performance of data access libraries using StackExchange/Dapper benchmark
One of the most important questions that you need to answer in your projects is what data access library you should use to access your data in SQL Server database. One of the benchmarks that you can use is StackExchange Dapper benchmark that checks how fast could different data access libraries fetch a single row from database.
In this post I will show you how to use StackExchange/Dapper performance benchmark to evaluate performance of different data access libraries. This is simple performance benchmark that executes 500 SQL queries that read a single row from Posts table and return results. Example of test for hand coded query implemented using the plain SqlCommand/DataReader is shown in the following code:
var postCommand = new SqlCommand(); postCommand.Connection = connection; postCommand.CommandText = @"select Id, [Text], [CreationDate], LastChangeDate, Counter1,Counter2,Counter3,Counter4,Counter5,Counter6,Counter7,Counter8,Counter9 from Posts where Id = @Id"; var idParam = postCommand.Parameters.Add("@Id", System.Data.SqlDbType.Int); using (var reader = postCommand.ExecuteReader()) { reader.Read(); var post = new Post(); /* populate fields in Post object */ }
The same query is implemented in different frameworks and test measures elapsed time for 500 iterations of this query.
Setting-up the test
To setup test, you can go to StackExchange/Dapper GitHub an download source code. Tests are created as C# solution (Dapper.sln). When you open this solution you can find Dapper.Tests project. You might need to change two things:
- Connection strings are hardcoded in Tests.cs file with values like “Server=(local)\SQL2014;Database=tempdb;User ID=sa;Password=Password12!”. You might need to change this and put your connection info.
- Project is compiled using dotnet sdk 1.0.0-preview2-003121, so you might get compilation errors if you don’t have a matching framework. I have removed line: “sdk”: { “version”: “1.0.0-preview2-003121” } from global.json to fix this.
Now you will be able to build project and run tests.
Executing tests
To start tests you need to start Dapper.Tests project and results will be shown in console. I have executed test with the following results:
Running 500 iterations that load up a post entity Running... hand coded took 122ms Mapper QueryFirstOrDefault took 125ms Dynamic Mapper Query (buffered) took 130ms Dynamic Massive ORM Query took 140ms Dapper.Contrib took 147ms DataTable via IDataReader.GetValues took 157ms Mapper Query (buffered) took 160ms Linq 2 SQL Compiled took 168ms Mapper Query (non-buffered) took 179ms Dynamic Mapper Query (non-buffered) took 195ms Dynamic Mapper QueryQueryFirstOrDefault took 198ms Entity framework SqlQuery took 202ms Linq 2 SQL ExecuteQuery took 302ms Entity framework No Tracking took 365ms Entity framework took 378ms Simple.Data took 767ms Linq 2 SQL took 905ms
As expected, hand coded data access with data readers is the faster approach. Interesting fact is that Dapper library adds minimal overhead. It is slightly slower than hand coded data access. Compiled Linq 2 SQL also shows good results with 40% overhead compared to hand coded data access.
Entity Framework with Database.SqlQuery
Entity Framework with Linq, e.g. entityContext.Posts.First(p => p.Id == id) is around x3 slower that handcoded data reader.
Conclusion
This test compares performance of different data libraries with the faster handcoded approach. Using this test you can see what is the overhead of different libraries that are built on top of standard ADO.NET.
Dapper ORM is simple and interesting framework that has enables you to access your data with acceptable performance overhead. I have checked the test code and there is nothing specific to Dapper library that might bring false positive results.
If you are using Entity Framework you should try to use raw SQL queries if performance are important for you. Hopefully in the future we will see some performance improvements in EF Linq that will be closer to EF Query method.
Multi-Factor Authentication for the Hybrid Configuration Wizard and Remote PowerShell
You can now use an Administrator account that is enabled for Multi-Factor Authentication to sign in to Exchange Online PowerShell and the Office 365 Hybrid Configuration Wizard (HCW).
In case you are not aware, the Azure multi-factor authentication is a method of verifying who you are that requires the use of more than just a username and password. Using MFA for Office 365, users are required to acknowledge a phone call, text message, or app notification on their smart phones after correctly entering their passwords. They can sign in only after this second authentication factor has been satisfied. You can read more about the Office 365 Multi Factor Authentication option here.
Many Exchange Online customers wanted the extra level of security that is offered with Multi-Factor Authentication, which allows you to force the administrator account to use Multi-Factor Authentication. However, because of a limitation in Remote PowerShell, Exchange Online administrators could not connect with a Multi-Factor enabled account. In addition, as the Office 365 Hybrid Wizard also requires Remote PowerShell connections to Exchange Online, prior to now, the account you used to run the HCW could not be enabled for Multi-Factor Authentication.
The Exchange Online PowerShell Module
There is a new module that was created that can be downloaded to allow you to connect with an account that is enabled for Multi-Factor Authentication. You can download the module from the Exchange Online Administration Center (the steps are outlined in this article).
Note: We do not plan to discontinue traditional methods of connecting to Remote PowerShell; if you are not using Multi-Factor Authentication you can continue to connect using the methods you already have in place.
The Hybrid Wizard Update
The Hybrid Wizard has also been updated to allow for Multi-Factor Authentication enabled administrators to authenticate.
Note: There is an issue with this new Authentication method in the 21 Vianet Greater China tenants. For customers with Tenants in that region you cannot use the MFA module or Hybrid integration mentioned in this article and should instead use the Hybrid Wizard located here: http://aka.ms/HCWCN
In order to keep the sign in experience consistent for all customer whether they have MFA enabled or are using traditional credentials, we have updated our credentials page in the wizard.
On the Credential page of the wizard you will see that the “next” button is not available. You are required to pick your credential for on-premises (which by default will be the currently signed in credentials) and “sign in” to Office 365.
Once you select “sign in” you will be prompted for credentials in a familiar looking screen.
If you have Multi-Factor Authentication enabled for the administrator, you would then be prompted for the second factor of authentication.
Once verified, you would see the credential card for both the on-premises and Exchange Online administrators. You will also notice that the “next” button is now activated.
Conclusion
Your feedback about not being able to use MFA enabled account for Exchange Online administration was loud and clear! Please keep providing us feedback so we can continue to identify and address your needs.
Technology Manager at Lululemon Discusses Planning for a Mobile Workforce & Weighing Pros and Cons of Early Adoption
Simon Cheng is the Manager of Corporate Technology at Lululemon and he was nice enough to make the trip down from Vancouver so that we could drive around and ostensibly get lunch.
The work Lululemon has done with their infrastructure is fascinating: The IT team has built a network tailored to the needs of a mobile and widely distributed workforce. This means they understand that corporate devices will also have personal uses, that data is going to move back and forth across the perimeter constantly, and that their security and identity management has to account for all of this.
Simon also has a very interesting perspective on early adoption much like Accenture, Lululemon was using Office 365 back before it had a name. Any early adoption comes with risks, and Simon has worked first hand with these benefits and setbacks. I like how he explains it: You have to balance what you get with bumps in the road.
To learn more about how top CIOs stay secure + productive,check out this new report.
Next week, Simon and I talk about how Lululemon uses technology to support its culture, the steps they took to build an infrastructure that supports a wide variety of work styles, and how he uses Shadow IT as a learning tool.
You can also subscribe to these videoshere, or watch past episodes here: www aka.ms/LunchBreak.
Microsoft Teams is now generally available — and MAM enabled on iOS and Android!
Great news – today Microsoft announced the general availability of Microsoft Teams! Were excited to share this huge milestone and announce that the updated Microsoft Teams apps are now enabled with Intune MAM capabilities, so you can empower your teams to work freely across devices, while ensuring that conversations and corporate data is protected at every turn. The Microsoft Teams apps supports the Intune MAM app-level data protection with or without MDM device enrollment. Look for them in the Google Play and iOS App stores today.
Microsoft Teams is a chat-based workspace in Office 365 that brings together people, conversations, and content in a fresh new way that takes the work out of collaboration and makes it easy for teams to stay on the same page and achieve more. Microsoft Teams goes way beyond chat, giving you easy access to the tools your people depend on everyday Word, Excel, PowerPoint, OneNote, SharePoint and Power BI – are all built-in, so youre never more than a click away from getting things done. And its customizable, allowing you to create a workspace that fits the unique needs of every team.
With the Teams apps for iOS and Android, work gets done anywhere –you can collaborate with partners and contribute to projects, even on the go.
Heres a great article if youre looking for more details on Intune MAM policies. Visit the Whats new in Microsoft Intune page for more on these and other recent developments in Intune.
Additional Resources
Hendrick Motorsports drives collaboration to the finish line with Microsoft Teams
Today’s Office 365 post was written by Matthew Cochran, information technology manager at Hendrick Motorsports.
At Hendrick Motorsports, we look at IT as a competitive advantage. And it’s my job to support the company’s goals with the right technology. When Mr. Hendrick says he wants everyone—pit crews, engineers, accountants, mechanics—to work together to win NASCAR championships, we use Microsoft Teams to achieve that goal.
Most fans watching a race think it’s all about the car and the driver. But behind that combination is a ton of data, and the real question becomes how quickly we can consume and act on information to make race-winning decisions that give us a competitive edge. At the track, there’s not only adrenaline, but there’s a lot of noise, power issues and radio interference—so a lot of this collaboration has to be text driven. The persistent chat-based workspaces we get with Microsoft Teams are perfect on pit road.
In Talladega, Alabama, we have to make race strategy decisions for two of our cars. If we have a long green flag stint, when do we stop each car and take on gas and tires? The people on top of the pit box for both car crews use laptops running Windows 10 and Microsoft Teams to communicate so we don’t lose time due to a single car drag coefficient. And we can do that all without breaking radio silence, so we are not giving away secrets to the other competitors. Unlike most organizations that are separated from their competition across the city or the country, our competition is within feet of us, week in, week out. Microsoft Teams is based on the security features built into Office 365 and Windows 10, and that’s critical to keeping our competitive advantage.
Nowadays we have live radar on top of the pit box, and if we see a rainstorm coming, we get that information into Teams and chat about stopping before the race is halfway over. The reason being if the rain holds off until the race goes beyond the halfway mark, then it’s an official race, and we want to run it as if it’s not going to be canceled. Before Teams, we would send runners back and forth to a central radar location.
The communication that goes on during a race extends from the pit box to the people sitting in our transporters in the garage area to our complex in Concord, North Carolina. We have race engineers and crew chiefs devoted to individual car teams along pit road collaborating in Teams workspaces and making decisions that are relayed directly into the ears of the driver.
Then you have the crew members entering data into Teams, such as tire wear information, miles per gallon and how much fuel got added to a car. Race engineers and team managers back in the transporters watch the event, monitor communication and relay that information via Teams, straight to our personnel.
Back in Concord, there are people in the shop or conference rooms all signed in to Teams workspaces. They monitor the race to record events that the people at the track might miss in the moment. We use this to compile valuable historical data that we review later to make decisions for future races.
Everywhere you look, Hendrick Motorsports is using Microsoft Teams to fulfill Mr. Hendrick’s vision. We’re bringing the company together to help produce winning results.
—Matthew Cochran
For more on how Hendrick Motorsports produces more winning results, read the full case study.
The post Hendrick Motorsports drives collaboration to the finish line with Microsoft Teams appeared first on Office Blogs.
Microsoft Teams rolls out to Office 365 customers worldwide
Today’s post was written by Kirk Koenigsbauer, corporate vice president for the Office team.
Today, during a global webcast from Microsoft headquarters, we announced that Microsoft Teams—the chat-based workspace in Office 365—is now generally available in 181 markets and in 19 languages. Since announcing the preview in November, more than 50,000 organizations have started using Microsoft Teams, including Accenture, Alaska Airlines, Cerner Corporation, Conoco Phillips, Deloitte, Expedia, J.B. Hunt, J. Walter Thompson, Hendrick Motorsports, Sage, Trek Bicycle and Three UK. We’ve also introduced more than 100 new features to deliver ongoing innovation and address top customer requests.
With more than 85 million active users, Office 365 empowers individuals, teams and entire organizations with the broadest and deepest toolkit for collaboration. Office 365 is designed to meet the unique workstyle of every group with purpose-built, integrated applications: Outlook for enterprise-grade email; SharePoint for intelligent content management; Yammer for networking across the organization; Skype for Business as the backbone for enterprise voice and video; and now, Microsoft Teams, the new chat-based workspace in Office 365.
Microsoft Teams—the chat-based workspace in Office 365
Microsoft Teams is a digital workspace built on four core promises: chat for today’s teams, a hub for teamwork, customization options and security teams trust.
Chat for today’s teams
Microsoft Teams provides a modern conversations experience, with threaded, persistent chat to keep everyone engaged. We’ve rolled out many new communication features since preview, including audio calling from mobile devices, plus video on Android, which is coming soon to iOS and Windows Phone. And we’ve addressed numerous customer requests, adding the ability to email a channel, including attachments, send messages with markdown-based formatting, and receive notifications about all posts in a channel.
Move a conversation from email into Microsoft Teams with rich formatting, including attachments.
Hub for teamwork
The Office 365 applications and services that people use every day—including Word, Excel, PowerPoint, OneNote, SharePoint and Power BI*—are built into Microsoft Teams, giving people the information and tools they need. We’ve recently added support for open,public teams within an organization. We’ve also enhanced the meeting experience by adding scheduling capabilities, integrating free/busy calendar availability for team members, adding recurrence, and making it easier to transition from chat to high-quality voice and video.
Ad hoc and scheduled voice and video meetings right from within Microsoft Teams.
Customizable for every team
Every team is unique, so we’ve made it easy for teams to customize their workspace with Tabs, Connectors and Bots. More than 150 integrations are available or coming soon, including Bots from hipmunk, Growbot and ModuleQ. We’re also partnering with SAP and Trello to build new integrations. SAP SuccessFactors will help employees and managers track goals and performance as part of the way they work in Microsoft Teams every day. Trello will empower teams to easily get projects done with boards, lists and cards right within Microsoft Teams. These partnerships let users bring important apps and services into Microsoft Teams, truly making it their own hub for teamwork.
New Bots help you to complete tasks within your conversations.
Security teams trust
Finally, Microsoft Teams is built on the Office 365 hyper-scale, enterprise-grade cloud, delivering the advanced security and compliance capabilities our customers expect. Microsoft Teams supports global standards, including SOC 1, SOC 2, EU Model Clauses, ISO27001 and HIPAA. We also added support for audit log search, eDiscovery and legal hold* for channels, chats and files as well as mobile application management with Microsoft Intune.* And starting today, Microsoft Teams is automatically provisioned within Office 365.
These security and compliance capabilities are critical for enterprise customers, but our responsibility at Microsoft goes beyond this. Our mission is to empower every person and every organization on the planet to achieve more. With that in mind, we’re working to ensure every team member can participate, with new accessibility features, including support for screen readers, high contrast and keyboard-only navigation. This will enable Microsoft Teams to be more inclusive and tap into the collective brainpower and potential of every person.
Customers achieve more with Microsoft Teams
We’re thrilled by the enthusiasm of customers like Trek Bicycle, who’ve built Microsoft Teams into the way they work every day.
“Across Trek’s global teams, the integrated collection of Office 365 applications serves up a common toolset to collaboratively drive the business forward. We see Microsoft Teams as the project hub of Office 365 where everybody knows where to find the latest documents, notes and tasks, all in-line with team conversations for complete context. Teams is quickly becoming a key part of Trek’s get-things-done-fast culture.”
—Laurie Koch, vice president of Global Customer Service at Trek Bicycle
Start using Microsoft Teams today
Moving forward, we’ll provide a regular rhythm of new features and capabilities. For example, we are targeting to deliver guest access capabilities in June along with deeper integration with Outlook and a richer developer platform. Expect our pace to be rapid and responsive to customer needs.
Start using Microsoft Teams today.
To learn more about Microsoft Teams and how it works, join our Ask Us Anything session on the Microsoft Tech Community on March 22, 2017 at 9 a.m. PDT (UTC-8).
—Kirk Koenigsbauer
*Additional subscription may be required.
The post Microsoft Teams rolls out to Office 365 customers worldwide appeared first on Office Blogs.
J. Walter Thompson pioneers new brands on a global scale with Office 365
JWT breaks new ground with Microsoft Teams
Today’s Office 365 post was written by Jamie McLellan, chief technology officer at J. Walter Thompson.
For 152 years, J. Walter Thompson (JWT) has been moving at the speed of culture—and in some cases even shaping it.
As one of the world’s best-known communications brands, JWT achieved this level of cultural relevance through our deep understanding of people, from our clients to our employees. And as the CTO of JWT, it is my job to make sure the technology we choose is people-first: supportive, intuitive and connected.
We are a people business, so collaboration among employees and across the agency-client line is key to getting work done. We use Microsoft Office 365 cloud-based services, like the newly launched Microsoft Teams, to support frictionless collaboration among the 12,000 people and 200 offices that make up our global workforce.
One of the most appealing features of Microsoft Teams is the ability to start a small project among four or five people, and expand that group naturally with quick and easy onboarding as the project grows. The threaded conversations, tabs and dedicated Microsoft SharePoint sites within Teams make it simple for new team members to get up to date quickly. The faster that new team members become informed, the sooner they can start contributing value to the project overall.
Microsoft Teams connects our organization with an interface that supports the way we work, and I have seen firsthand how diverse working styles and demographics can all flourish within the Teams framework. For the employees in our company who are excited about technology that mirrors the software they use at home, the immediate chat-based collaboration and feedback across devices and the engaging Teams interface are very familiar and appealing. At the same time, employees who prefer a structured working environment, or who are concerned with policy, find that Teams fully meets their needs as well. It’s the best of both worlds and it’s not often that you find a single tool that has such a wide appeal.
The responsibilities of a large IT group extend beyond providing employees with the most effective tools to do their jobs. We are also accountable for the security concerns of JWT clients, which include some of the world’s largest and best-known brands. Microsoft Teams incorporates advanced Office 365 security and compliance capabilities, giving us and our clients peace of mind. It helps, too, that Microsoft is such a trusted entity; clients are likely to feel safer interacting with us in a Microsoft platform like Teams as opposed to a third-party or start-up program.
We chose Teams as a powerful alternative to a disparate collection of ad hoc solutions. Now, our employees all use the same tool that integrates with the rest of Office 365 to support collaboration, while maintaining a high standard of security. We consider Office 365, and all the powerful tools that come with it, a major strategic investment that helps us continue to shape culture at JWT.
In the future, we envision Teams becoming our central platform for collaboration on a global scale. We see it outpacing third-party tools that are not designed for enterprise collaboration, and enticing users back onto a single platform. The value of Teams is simple and powerful: wherever we can collaborate more productively as a team, we are better able to innovate and create stronger brands for our clients.
—Jamie McLellan
Read the case study to find out how J. Walter Thompson is pushing the cultural envelope.
The post J. Walter Thompson pioneers new brands on a global scale with Office 365 appeared first on Office Blogs.
Demo Tuesday // Boost Remote Desktop Services performance to optimize user productivity
Welcome to our new Demo Tuesday series. Each week we will be highlighting a new product feature from the Hybrid Cloud Platform.
If you manage a virtualized desktop/app environment, you probably spend a lot of time min/maxing resources for a variety of uses: from a power user designing graphically intense data visualizations to a group of employees sharing the same app resources. Our two demos this week show you new capabilities to:
- Help scale up and scale down connections
- Provide high-end device pass through capabilities for the most graphics-heavy workloads
- Set up Azure SQL connections that can now be shared across more than one RDS deployment
Demo #1: Improve GPU virtualization
This video demonstrates the improved tools for virtualization performance testing support and shows how to easily dedicate specific hardware to specific VMs for high-demand tasks and users.
RemoteFX vGPU in Windows Server 2016 Hyper-V has integration improvements specifically aimed at making GPU performance testing and monitoring smoother and more intuitive. It works in Windows 10 and Windows Server 2016 and is well suited for load balancing all types of VM use cases.
Discrete Device Assignment (DDA) is a new technology that helps you manage high-performance demands on virtualized resources. Its also useful for maximizing app compatibility across a large pool of users sharing a GPU resource. DDA works in Windows 10 as well as in Windows Server 2016, and in Linux VMs.
Demo #2: Beat the remote logon storm
Tired of the 9 A.M. scenario where everybody starts a connection request to their virtualized workloads, potentially slowing down connection times and deteriorating reliability?
We have made big improvements in highly available Remote Desktop Services in Windows Server 2016including fixing the issues around logon storm and providing a much easier way to do SQL connections. This video shows how to set up Azure SQL Database and connect via Remote Desktop Connection Broker (RD Connection Broker).
Remote Desktop Services technology can now handle 10,000 simultaneous connections, meaning the sudden performance bottlenecks that occur when a large number of users access virtualized resources at the same timeAKA logon stormsare no longer an issue.
In previous versions of high-availability mode, the RD Connection Broker required a dedicated SQL Server always-on cluster using Windows authentication, but this connection was hard and expensive to set up in high-availability mode. Windows Server 2016 has been updated to use RD Connection Broker to connect to an Azure SQL Database using SQL authentication instead.
Give it a try and get started with RDS on Azure or visit our website to learn more about Remote Desktop Services from Microsoft.
SSMS DAX Query Editor
We are excited to announce the SQL Server Management Studio DAX Query Editor! Have you ever authored a DAX query in SSMS using the MDX editor? With the new DAX Query Editor, you no longer need to do. Download RC3 for vNext from the SSMS release candidate download page.
To try it out, click on the new DAX Query toolbar button, or right-click > New Query in Object Explorer.
IntelliSense works for DAX functions and model objects. Members listed for selection are type aware. For example, after an EVALUATE statement, the DAX Query Editor expects a table type, so lists DAX table-valued functions, and tables in the model.
Once a function is selected, parameter information is provided.
In the following example, measures are offered for selection instead of DAX functions and tables based on the position of the parameter.
And of course, syntax highlighting works too.
We hope you agree these features make DAX query authoring in SSMS more productive. For example, the type-aware IntelliSense makes it easier to find what you’re looking for.
This is the first release of the SSMS DAX Query Editor; it is not yet in GA status. We are still adding enhancements. For example, DEFINE MEASURE syntax recognition, and parenthesis-match highlighting are planned for the next release. If you have suggestions for enhancements, or general feedback, please use ProBIToolsFeedback at microsoft.com.
The week in .NET – On .NET with Scott Hunter, On .NET with Matt Watson, MessagePack
Previous posts:
- Visual Studio 2017, .NET Core SDK, F# 4.1, On .NET with Phillip Carter, Happy Birthday from John Shewchuk, FNA, Pyre
- On .NET with Eric Mellino, Happy Birthday from Scott Hunter, OzCode.
- On .NET with Beth Massi, NeinLinq.
On .NET
We recorded two videos last week. In the first one, Scott Hunter showed Visual Studio 2017 and .NET Core SDK 1.0:
In the second video, Matt Watson from Stackify showed us Prefix, a free lightweight dev tool that shows you real-time logs, errors, queries, and more, and Retrace, a powerful commercial solution for gathering and analysis of performance data.
We have no show this week due to a last minute cancellation.
Happy Birthday .NET!
Last month we got together with the Microsoft Alumni Network and threw a big .NET 15th birthday bash with former .NET team members & rock stars. We caught up with Dee Dee Walsh, who was one of the original Developer Relations and Community person starting before Visual Studio! Dee Dee was most famously known for her Geekfest parties and helped foster the Microsoft developer community and MVP program. Happy Birthday .NET!
Package of the week: MessagePack for C#
I’ve featured quite a few serialization libraries in the past. I have another one for you this week. MessagePack is an efficient binary serialization format that is supported on more than 50 development platforms. It’s also used by Redis. There are at least five different implementations of MessagePack for .NET, but the one I want to showcase today is MessagePack for C# by Yoshifumi Kawai, also known as neuecc, who also built ZeroFormatter. His library supports LZ4 compression, and achieves extremely fast speeds on both serialization and deserialization, with a very compact serialized size.
First, you can define a serializable data object.
And then you can serialize and deserialize it.
User group meeting of the week: the state of .NET in Sydney
On Wednesday, March 15, at 6:30PM in Sydney, Australia, the Sydney .NET User Group holds a meeting on the state of .NET, presented by Markus Egger.
.NET
- What’s New in the .NET Platform (video) by Scott Hunter.
- Announcing NuGet 4.0 RTM by Anand Gaurav.
- Optimize your productivity with .NET in Visual Studio 2017 by Kasey Uhlenhuth.
- Live Unit Testing in Visual Studio 2017 Enterprise by Joe Morris and Manish Jayaswal.
- Run To Click Debugging in Visual Studio 2017 by Kaycee Anderson.
- Cake v0.18.0 released.
- Getting Started with .NET Core on Mac and Linux by Nate Cook for Pluralsight.
- P/invoke with unions in C# by Yi Zhang.
- Exploring .NET Core with Visual Studio 2017 and the updated CLI Tools by Michael Crump.
- Turning off Telemetry Data in .NET Core by Michael Crump.
ASP.NET
- Supporting both LTS and Current releases for ASP.NET Core by Andrew Lock.
- What is the Microsoft.AspNetCore metapackage? by Andrew Lock.
- Testing an ASP.NET Core MVC Protobuf API using HTTPClient and xUnit by Damien Bowden.
- ASP.NET Core MVC Anatomy (Part 1) – AddMvcCore by Steve Gordon.
- Fritz’s 10 Minute Tips – ASP.NET Core Configuration by Jeffrey T. Fritz.
- ASP.NET Core: Environment based configuring methods by Gunnar Peipman.
- Environment Variables in ASP.NET Core by Derek Comartin.
- A way too early discussion of “Jasper” by Jeremy D. Miller.
- Creating a simple blog engine by Ivan Gavryliuk.
- Book: Applying Domain Driven Design with CQRS and Event Sourcing by Nick Chamberlain, with all examples written with ASP.NET MVC.
- Precompiling MVC Views in ASP.NET Core with .csproj by Scott Sauber.
- Improve the security of your website using SSL and HSTS with ASP.NET Core by Gérald Barré.
- Simple localization and language based URLs by Gunnar Peipman.
C#
- New Features in C# 7.0 by Mads Torgersen.
- Exploring C# Productivity in Visual Studio 2017 (video) by Mads Torgersen and Kasey Uhlenhuth.
F#
F# eXchange 2017 is in London, April 6-7. Speakers include Don Syme, Phillip Carter, Scott Wlaschin, and many others.
- Using Elixir and F# Together – Bryan Hunter.
- Some Details about Visual F# Tools in VS 2017, by Vasily Kirichenko.
- Creating an Azure Function in F# from the ground up (Part 2), by Mathias Brandewinder.
- Magic of F# Type Providers , by Max Fedotov.
- Creating a fully functional F# microservice part 2: Azure, FSharp.Configuration, and part 3: Quartz.Net, Net.Mail by Michał Niegrzybowski.
- Contractive Functions on Streams in F#, by Matthew Doig.
New F# Language Suggestions:
- List’s exists2 inconsistent with Seq’s exists2
- Warn when an auto-property getter is confused with a default value
Check out F# Weekly for more great content from the F# community.
Xamarin
- Visual Studio for Mac – Preview 4 by Bri Brothers.
- Xamarin Alpha Release: 15.1 Alpha Preview 2 by Bri Brothers.
- Xamarin Dev Days are Coming to your City! by Jayme Singleton.
- Better Apps Faster with Visual Studio 2017 and Xamarin by Miguel de Icaza.
- Live Webinar: Introduction to Xamarin for Visual Studio 2017 by James Montemagno.
- Mobile Center: Xamarin support, detailed app analytics, and more by Keith Ballinger.
- Avoid these six mobile development pitfalls by Cormac Foster.
- Setting up Visual Studio 2017 for Xamarin Development by James Montemagno.
- NuGet Support in Xamarin Studio 6.2 by Matt Ward.
- Xamarin Forms User Control by Adam Pedley.
- Xamarin.Controls – Creating Your Own iOS Markdown UILabel, &Xamarin.Forms Borderless Entry by Alex Dunn.
- Xamarin Plugins / .NET Standard with Martijn van Dijk and Michael Ridland by Michael Ridland.
- Xamarin Forms, MVVMCross, and SkiaSharp: The Holy Trinity of Cross-Platform App Development by Sylvain Gravel.
- A Xamarin port of the usb-serial-for-android library by Chris Miller.
- Pull to Refresh Example Using Xamarin.Forms by Mario Jesús Galván Miranda.
- Sending Files to a Xamarin.Forms App – Part 2: Android by Matthew Soucoup.
- Swipe to Delete and more on Xamarin.iOS by Can Bilgin.
- Xamarin Forms with Microsoft Azure by Daniel Krzyczkowski.
- Validating User Input in Xamarin.Forms, &Validating User Input in Xamarin.Forms II by David Britch.
- Forms Previewer and Custom Controls by Peter Foot.
UWP
- Visual Studio 2017 – Now Ready for Your Windows Application Development Needs By Karan Nandwani.
- Desktop Bridge: Smooth User Transition and Data Migration By Arian Ghotbi.
- Building the Terminator Vision HUD in HoloLens By Windows Apps Team.
- Playable Ads – Acquire Users Who Love to Engage with Your App by Vikram Bodavula.
- Dragging and Dropping Images and Files into the Web Browser Control by Rick Strahl.
- Debugging the Web Browser Control with FireBug by Rick Strahl.
Data
- Oracle Data Provider for .NET Support for Microsoft .NET Core by Oracle.
- ODP.NET on Microsoft .NET Core by Maher Jendoubi.
Games
- Getting Started with MonoGame on Visual Studio 2017 by Simon Jackson.
- GDC 2017 Talks.
- Project Tanks 1: Simple Fake-3D Wireframes by James Furness.
- Curated #UnityTips No. 36 by Devdog March 2017.
- Fixeds, Floats and a Block Damage Effect by Kyle Halladay.
- Real Time Strategy in Unity – Making Units Construct Buildings (2) by Unit02Games.
- 11.0 Unity Tower defense tutorial – Selling towers by inScope Studios.
And this is it for this week!
Contribute to the week in .NET
As always, this weekly post couldn’t exist without community contributions, and I’d like to thank all those who sent links and tips. The F# section is provided by Phillip Carter, the gaming section by Stacey Haffner, and the Xamarin section by Dan Rigby, and the UWP section by Michael Crump.
You can participate too. Did you write a great blog post, or just read one? Do you want everyone to know about an amazing new contribution or a useful library? Did you make or play a great game built on .NET?
We’d love to hear from you, and feature your contributions on future posts:
- Send an email to beleroy at Microsoft,
- comment on this gist
- Leave us a pointer in the comments section below.
- Send Stacey (@yecats131) tips on Twitter about .NET games.
This week’s post (and future posts) also contains news I first read on The ASP.NET Community Standup, on Weekly Xamarin, on F# weekly, and on Chris Alcock’s The Morning Brew.
Windows 10 SDK Preview Build 15052 Released
Today, we released a new Windows 10 Creators Update SDK Preview to be used in conjunction with Windows 10 Insider Preview (Build 15052 or greater). The Preview SDK Build 15052 contains bug fixes and under development changes to the API surface area.
The Preview SDK can be downloaded from developer section on Windows Insider.
For feedback and updates to the known issues, please see the developer forum. For new feature requests, head over to our Windows Platform UserVoice.
What’s New
- No API changes have occurred since build 15021.
- Windows SDK setup name change: With this release of the Windows SDK the setup executable name changed. If you have scripts designed to install the previous SDK, you will need to update the path to use the new name: WinSDKSetup.exe
- The Windows SDK will now formally only be supported by Visual Studio 2017 and greater. You can download the Visual Studio 2017 here.
Known Issues Windows SDK
- DX12 Template Throws when running Build 15042: This is a known bug in the Windows SDK installer. If you encounter this issue, you can repair the SDK by simply running the following command from an Administrative command prompt: C:\program files (x86)\windows kits\10\bin\10.0.15042.0\x86\DismFoDInstall.cmd
API Updates and Additions
No API changes have occurred since build 15021. For a list of the APIs added since Windows 10 Anniversary Update, please see 15021.
The post Windows 10 SDK Preview Build 15052 Released appeared first on Building Apps for Windows.
Optimizing Linux Performance on Hyper-V
Hi all, this is Kevin Kelling and I’m a PFE with Microsoft focused on both Hyper-V and Azure. Today I’d like to talk about the performance of Linux workloads on both Hyper-V and Azure. Every now and then we are asked how well Linux performs on Hyper-V. We’ve done extensive testing and most of the time it runs quite well, but we’ve found a few cases, where some tuning can make all the difference.
I recently worked on an issue where a Linux application on Hyper-V (Windows Server 2016) was showing benchmarks of between 30-35% slower than other hypervisors. We instinctively felt something was wrong, so we rolled up our sleeves and got to work.
After some effort from our outstanding product engineering team, we found that this gap was completely eliminated by tuning some settings in the BIOS, tweaking some Linux kernel parameters, and keeping the in-guest tools current.
No changes were made to the Windows Server or Hyper-V configuration – just BIOS settings, and some changes within the Linux guest VMs. In other words, Hyper-V delivers great performance, but sometimes we need to tune the environment to take full advantage of it.
What changes made up for what initially was a significant difference in performance? Let’s go take a look!
TURN THOSE C-STATES OFF!
Many systems have power management profiles in the BIOS, and while many environments correctly have this set to “performance”, many systems will still have additional options for individual C-states. If you want a primer on what a C-state is, there’s a good article here from Intel, but basically it’s a power management method.
Hyper-V tries to aggressively leverage C-states to reduce power consumption, but if you want the best possible CPU performance on your host servers, turn it all off!
In this case, we observed a 15% performance improvement after disabling all C-states in the host server’s BIOS.
Upgrade Linux Integration Services (LIS)
Linux Integration Tools consists of optimized synthetic device drivers and other “virtualization helpers” that go into the guest OS. Windows servers have integration services built in and get can updates via Windows Update. Linux is similar in that the various distributions will build LIS into their images, and — depending on what version you are running — updates are distributed through their respective patch channels.
LIS 4.1.3 was released in December of 2016 (download here) and we found that simply updating to this version of LIS there was a 10% performance increase. The performance difference of course will vary based on the application, the version of Linux and the current version of the tools, but in this case the difference was quite significant.
A few notes here — some Linux distributions will not support LIS unless it is released through their patch distribution. Before you manually install LIS, make sure you understand if there are any support implications from your Linux vendor.
On the topic of LIS one final important point to keep in mind is that it makes a big difference what version of Linux you are running, as not all features are supported on all versions of Linux. If you visit the Hyper-V Linux support page, you will see sections for RHEL/CentOS, Debian, Oracle, Ubuntu, SUSE and FreeBSD. In each of these sections you can find details on which Hyper-V features are supported in which Linux versions.
Bottom line again, is that in this case, simply upgrading LIS to the current version of 4.1.3 delivered a 10% performance improvement.
Set the Linux Clock Source
Let’s say you didn’t want to upgrade to the latest LIS. You can still capture much of the performance improvement here simply by tuning the Linux clock.
Changing the Linux kernel’s clock source to “tsc” which stands for “Time Stamp Counter” resulted in a performance improvement of 6%. This particular application had a lot of context switches and made heavy use of clocks and timers, so your mileage may vary here.
A bit of information on this parameter is available here.
How Many CPUs?
Linux kernels have an optional parameter where you limit the number of possible CPUs by setting the “possible_cpus” kernel parameter. For example, if you have 8 virtual CPUs in the guest, edit the kernel parameters to include “possible_cpus = 8”. By setting this parameter, additional overhead processing was removed from the Linux CPU scheduler.
In this application, a performance improvement of 2% was observed after applying this setting.
CPU Load Balancing
Hyper-V presents a somewhat different view of the hardware to the guest OS than some other hypervisors do, in regard to how the L3 cache is presented. As a result, the Linux scheduler was not being sufficiently aggressive in scheduling the workload and some vCPUs were going into an idle state when they shouldn’t have.
By writing a simple shell script to run at boot, the Linux CPU scheduler used all of the vCPUs more efficiently, resulting in a 6% performance improvement for this application.
The Bottom Line
IT is often complicated. There’s so many distros, Linux versions and workload patterns generated by applications and other variables to consider — your mileage may vary.
But what at first appeared to be a big difference in performance, was completely eliminated by making absolutely no change to the Windows Server operating system – only changes in the BIOS (hardware) and within the Linux guest were needed to eliminate the performance difference.
In other words, you can rest assured that Hyper-V 2016 is capable of delivering strong performance for Linux workloads. Furthermore, you can expect some improvements in future updates to LIS (Linux Integration Services) to automatically exploit some of these tweaks, with the benefits extending to Linux workloads on not just Hyper-V, but to Linux on Azure as well.
If you are concerned that your Linux workloads may be running slower than they could be on Hyper-V check these three basic things:
- Disable C-States in BIOS
- Upgrade to current version of LIS (If not an option, change clock source to “tsc”)
- Set “maximum_cpus” in the Linux kernel
And if you suspect a problem with idle cores not being utilized, you may be able to further improve performance by tweaking the Linux scheduler (guest OS).
For one application, these above steps resulted in a performance improvement of over 30%.
So if you have any concerns about Linux performance in Hyper-V, just remember these tweaks. And of course that….
Announcing Nightly Releases for the Visual F# Tools
Announcing Nightly Releases for the Visual F# Tools
In our previous blog post announcing F# 4.1 and a release of the Visual F# Tools, we mentioned that a new release model for the Visual F# tools would be coming soon.
That time is now.
To recap, nightly builds of the tools are successful builds of the latest master branch of the tools, after having been run through our Continuous Integration system successfully. These will include new features, bug fixes, and improvements to existing features that will eventually make their way into a forthcoming Visual Studio update or release.
For VS 2017 RTW, it is highly recommended that you install the latest nightly. There have been a number of bug fixes, performance improvements, and new features that make the overall experience better than what was made available at the VS 2017 release.
Installing Nightly Builds of the Visual F# Tools
There are a few ways you can get nightly builds.
Configuring Extensions and Updates within Visual Studio (Recommended)
This is the recommended approach. The following steps will allow you to configure Extensions and Updates to point to the Visual F# Tools nightly feed. When a new nightly VSIX is published, you will get a notification in Visual Studio.
- Open Tools -> Extensions and Updates.
- Click "Change your Extensions and Updates settings" on the bottom-left corner.
- Click "Add" under "Additional Extension Galleries".
- Under "Name", enter anything you like. Under "URL", enter https://dotnet.myget.org/F/fsharp/vsix.
- Click "Apply".
- Click "OK".
It may take a few minutes for VS to refresh the feed, depending on your machine. Once that has happened, you can open Tools -> Extensions and Updates and notice that there is an update to the Visual F# tools!
Installing a Nightly VSIX Manually
If you don’t wish to configure Visual Studio to check for updates to the nightly builds, you can always install a given nightly VSIX manually. You can also use this method to access a particular nightly VSIX.
- Visit [URL HERE]
- Download the latest VSIX (or any you wish, really)
- Once it has downloaded, install it by double-clicking. You’ll have to close Visual Studio to install it.
This may be helpful if your code worked fine with a previous nightly build, but was broken in the latest one.
Uninstalling Nightly Builds to Revert to a Release Build
If you wish to revert your installation of a nightly build, the easiest way is with the Visual Studio Developer Command Prompt. You can open it by searching for "Visual Studio Developer Command Prompt" through the Windows Start Menu. Then, run the following command:
VSIXInstaller.exe /u:VisualFSharp
This will uninstall your nightly build. This will automatically bring you back to the latest release build of the Visual F# Tools that you have installed.
We’re really excited to have nightly builds for the Visual F# Tools. We encourage you to try them out and provide feedback, especially on new features. You can track any progress for a given feature, bug, or improvement on the Visual F# Github repository.
Thanks!
– The Visual F# Team
Announcing Storage Optimized Virtual Machines, L Series
We are excited to introduce a new series of virtual machine sizes. The L Series for Storage optimizes workloads that require low latency, such as NoSQL databases (e.g. Cassandra, MongoDB, Cloudera and Redis). This new series of VMs offers from up to 32 CPU cores, using the Intel® Xeon® processor E5 v3 family, similar to the CPU performance of the G-Series that is currently available.
L Series offers 4 new VM sizes from 4 cores, 32 GiB of memory, and 678 GB of fast local SSD, scaling up to 32 cores with 256 GiB of memory, and over 5.6 TB of local SSD. Please refer to the Azure VM pricing page for pricing details.
At general availability, L Series VMs are available in the following regions:
- East US 2
- West US
- Southeast Asia
- Canada Central
- Canada East
- Australia East
Please check the Azure services by region site for future updates to the geographic availability of L Series.
L Series: Standard and premium storage optimized
VM sizes | CPU Cores | Memory | Temporary Disk (SSD) | Max Network Bandwidth |
Standard_L4s | 4 | 32 GiB | 678 GB | Moderate |
Standard_L8s | 8 | 64 GiB | 1388 GB | High |
Standard_L16s | 16 | 128 GiB | 2807 GB | Very high |
Standard_L32s | 32 | 256 GiB | 5630 GB | Very high |
Note: Storage values for disk sizes use a legacy "GB" label. They are actually calculated in gibibytes, and all values should be read as "X GiB"
Announcing general availability of Update 4.0 for StorSimple 8000 series
We are pleased to announce that StorSimple 8000 series Update 4.0 is now generally available. This release has the following new features and enhancements:
- Heatmap-based restore– No more slowness when accessing data from appliance post device restore (DR). The new feature implemented in Update 4 tracks frequently accessed data to create a heatmap when the device is in use prior to DR. Post DR, it uses the heatmap to automatically restore and rehydrate the data from the cloud.
- Performance enhancements for locally pinned volumes– This update has improved the performance of locally pinned volumes in scenarios that have high data ingestion.
- Bug fixes – In the areas of MPIO support for StorSimple Snapshot Manager, alerts, controller replacement, updates, and more.
This update is now generally available for customers to apply from the StorSimple Manager Service in Azure. You can also manually apply this update using the hotfix method.
Next steps:
Visit StorSimple 8000 Series Update 4 release notes for a full list of features and enhancements.
For step-by-step instructions on how to apply Update 4, please visit Install Update 4 on your StorSimple device.