Quantcast
Channel: TechNet Technology News
Viewing all 13502 articles
Browse latest View live

Technical Preview: Database Experimentation Assistant

$
0
0

This post was authored by Christina Lee, Program Manager – SEALS Team

Overview

Database Experimentation Assistant (DEA) is a new A/B testing solution for SQL Server upgrades. It will assist in evaluating a targeted version of SQL for a given workload. Customers who are upgrading from previous SQL Server versions (SQL Server 2005 and above) to any new version of SQL Server will be able to use these analysis metrics provided, such as queries that have compatibility errors, degraded queries, query plans, and other workload comparison data, to help them build higher confidence, making it a successful upgrade experience.

What is new?

DEA 2.0 is a major version update and includes the following improvements:

    • Bundled installation of DEA dependencies: Installation is simplified by bundling all dependencies (barring R-Interop and CRAN) with DEA installer. Note that DReplay setup is assumed to be available to run replay.
    • Support for multiple captures and replay from the UI: DEA UI now supports the ability to start multiple captures and replay. Please refer to How to capture workload using DEA for details.
    • Simplified replay through DEA UI: Number of steps required to start a replay is reduced from three to one. DEA will also show status from DReplay controller as well as all the clients. Please refer to  How to replay workload using DEA for details.
    • Revamped user interface for analysis: This version includes a more intuitive UI for tools and especially analysis reports.
    • Bug fixes from DEA 1.0: Many customer-reported bugs are fixed as part of this release. This includes fix for errors occurring while capturing in SQL Server 2005 and errors seen while in the Replay and Analysis steps.
    • Feedback UI: Customers can now submit feedback through a simple UI in DEA.

Other documents/tutorials?

The following documents give a step-by-step guide to leverage DEA 2.0 for workload comparison

Installation

You can install from Microsoft Download Center. Run DatabaseExperimentationAssistant.exe to install Database Experimentation Assistant tool.

Existing features

Database Experimentation Assistant (DEA) v1.0

Supported sources and target versions

Source: SQL Server 2005 and above

Target: SQL Server 2005 and above

Analysis: SQL Server 2008 and above


What’s new in Office 365 administration—public preview of Microsoft Graph reporting APIs

$
0
0

Since March 2016, the usage reports in the Office 365 admin center have been providing admins with insights about how their users adopt and use Office 365. Today, we’re pleased to announce the public preview of the new Microsoft Graph reporting APIs, enabling customers to programmatically access the data available within the usage reports.

Public preview of Microsoft Graph reporting APIs for retrieving Office 365 product usage data

The usage reports in the Office 365 admin center enable admins to understand usage across the various services within Office 365. However, many of you already have existing reporting solutions—such as a company reporting application or a web portal—in place. To assure that you can monitor your IT services in one unified place, the usage reporting APIs complement the existing usage reports by allowing organizations and independent software vendors to incorporate the Office 365 activity data into their existing reporting solutions. Using this API, you can retrieve the data available in all the usage reports, including organization level summaries per service, as well as entity level (user, sites, accounts) detail usage information for different reporting periods of the last 7/30/90/180 days, and daily activity aggregates.

Get started with the new APIs

Any user with global admin or product admin rights (for Exchange, Skype for Business and SharePoint) in the organization can retrieve data through these APIs. You can leverage the Microsoft Graph documentation for the reporting API and submit feature requests by asking or voting on an idea on UserVoice. Please submit questions by posting them on Stack Overflow and tagging microsoftgraph.

With this announcement, we’re starting the deprecation of the following APIs available within the Office 365 Reporting Web Service: ConnectionbyClientType, ConnectionbyClientTypeDetail, CsActiveUser, CsAVConferenceTime, CsP2PAVTime, CsConference, CsP2PSession, GroupActivity, MailboxActivity, GroupActivity, MailboxUsage, MailboxUsageDetail, StaleMailbox and StaleMailboxDetail. We will remove these APIs on October 1, 2017.

If you are currently using APIs from the Office 365 Reporting Web Service, which are going to be replaced by the new APIs, please start planning the migration of any subsystems within your organization.

More management enhancements in March

Here’s a summary of additional Office 365 administration updates for March:

Additional mailbox settings in the admin center—Admins can now convert user mailboxes into shared mailboxes directly from the main Office 365 admin center. The default resulting shared mailbox will continue to have a license; however, admins can manually remove the license after the conversion.

Admins have now more control over what items get copied to a shared mailbox by enabling the Copy items set on behalf of this mailbox toggle. This allows the admin to ensure that members of the mailbox can see what other members have sent on behalf of it.

Dynamics 365 (online) admin role in Office 365 admin center—The Dynamics 365 service administrator role is meant for those who are administering Dynamics 365 for their organization. This role can now be assigned to users in the Office 365 admin center or via PowerShell. Once a user is assigned, they’ll be able to access the Dynamics 365 admin center without needing a paid Dynamics license. For more information, see “Use the Dynamics 365 service admin role to manage your tenant.”

New employee quick start guide—It is important for a company to quickly onboard a new employee into their role. As part of the ramp-up process, admins are often asked to help the new employee understand and use the available software and tools—including Office 365. The new employee quick start guide helps admins quickly get users started with Office 365 by walking them through the sign-up process, the installation of apps, as well as common scenarios such as saving files to OneDrive. It is also a helpful resource for organizations that just deployed Office 365 to use with all employees.

Managing Microsoft Teams from the Office 365 admin center—On March 14, Microsoft Teams reached general availability. Microsoft Teams is now enabled at the tenant level by default but will continue to respect per user licensing. Tenant admins can control the organization-wide settings as well as the per user settings in the Office 365 admin center or via PowerShell script for bulk editing. Read this article to learn more.

Improved support for full re-delegation of your domain—It is now even easier for admins to move their domain management to Microsoft. After adding a custom domain to Office 365, admins must verify that they are the owner of the respective domain by connecting it to Office 365. They can now do so by simply adding one TXT record to their name server DNS. Microsoft will then set up the online services and manage DNS records on your behalf.

New export capabilities in usage reports in the Office 365 admin center—Admins can now export the data from the organization-wide activity charts at the top of each usage report. By clicking or tapping the Export link, the data for the selected time period is exported into an Excel .csv file, enabling admins to further analyze or share the chart data with others. The export will contain data for the selected reporting period.

New Service health dashboard available for the mobile app—The new Service health dashboard has started to roll out to the Office 365 mobile admin app for Windows Phone, iOS and Android. The dashboard provides admins with a new level of service health insights that are personalized for their organization and that allow them to stay on top of service incidents, improve their internal support experience and improve their users’ Office 365 experience.

Modern Service Management blog series—Regardless of the size of the organization, the move to Office 365 brings changes from a service management perspective. This blog series discusses major aspects of service management, including monitoring, incident management and change management in an evergreen service.

More to come

Over the coming months, we will add more reports focused on the clients used to access SharePoint and OneDrive for Business, as well as enhance existing reports, including the Microsoft Groups report. We are also working on making a reporting role and the Office 365 adoption content pack in Power BI available to all customers.

Let us know what you think!

Try the new features and provide feedback using the feedback link in the lower right corner of the admin center. And don’t be surprised if we respond to your feedback. We truly read every piece of feedback that we receive to make sure the Office 365 administration experience meets your needs.

Please note: the features mentioned in this blog post have started to roll out. If they are not available yet in your region, for your subscription or for your organization, please check back in a few weeks!

—Anne Michels, @Anne_Michels, senior product marketing manager for the Office 365 Marketing team

The post What’s new in Office 365 administration—public preview of Microsoft Graph reporting APIs appeared first on Office Blogs.

New MapControl features in Windows 10 Creators Update

$
0
0

We have updated the Maps platform for the Windows 10 Creators Update to give our maps a cleaner, more beautiful and realistic look so that it’s consistent between web and UWP apps. We are also making Road view look more authentic by adding layers of terrain, where previously the Road view appeared flat. In addition to an updated 3D engine, we have delivered added features that our users requested for certain areas of visual improvements, like styling, offline capabilities, routing and others.

Just a quick note regarding the improvements to the engine: even though we go through many compatibility tests and make our best effort to minimize impact to third-party apps, it is always possible that something might have slipped through. This would be a good time to review your apps and confirm that the updated Maps platform is working as expected for your scenarios.

With that out of the way, please see the highlights below around some of the top asked-for features.

Map Styling APIs

We are happy to announce a set of Map Styling APIs for Windows 10 Map Control. The styling APIs will allow you to customize the look and feel of the map canvas on the fly. As a developer you will be able to control the map rendering by dynamically disabling or changing the styling characteristics of a layer or to emphasize certain aspects of the map canvas.

Map customization features are supported for regions where Windows 10 Map Control performs vector rendering, which includes all markets except for China, Japan and South Korea. Since vector mode supports offline storage for all layers, the maps customization feature is available for both online and offline modes.

Customizing the map

You can customize the look and feel of the map by using the new MapStyleSheet and setting the StyleSheet property of the MapControl. Think of a map stylesheet as a set of custom rules defined in JSON markup which can be combined to override our styling defaults. It allows you to customize colors, fonts and visibility status of various map elements, such as roads, areas (e.g. building structures, parks, water) and political features (e.g. city titles).

Here are some great examples of re-styling layers or specific primitives within a layer in the Windows 10 Map Control:

Spooky Map

Some of you might remember the Spooky Map that we released over a year ago in Bing to celebrate one of our favorite holidays. Back then we had just revamped our styling system and our team had a lot of fun coming up with this Halloween theme.

The Spooky road map style is rendered by Windows 10 Map Control through changing the land color, the color for the neighborhood labels and the fill color for areas such as airports, cemeteries and education structures.

Winter Map

The Winter road map style is rendered by Windows 10 Map Control through changing the land color, the color for neighborhood labels and the fill color for the areas such as cemeteries, education structures and military bases.

Gray Map

The Gray road map style is rendered by Windows 10 Map Control through changing the land and water color, the color for all labels and the fill color for all areas and map elements such as roads, railways, runways, transportation network lines and structures.

3D Map Engine

The map engine that is shipping with Windows RS2 update is a 3D map viewer.  It displays objects on top of the terrain and uses globe or web Mercator projection model for vector rendering and map interactions. Vectors are full 3D objects in a 3D scene. To place 3D objects correctly, the engine uses elevation data on the vertices of the vector geometry. If you don’t supply the altitude values to render points and polylines, they will simply be draped over the terrain surface.

Here are some of the major changes to keep in mind.

3D Scenes

Both Road and Aerial maps now support 3D views and elevation data. As you might remember, a 3D perspective of the map can be specified by using MapScene. While the map scene represents the 3D view that appears in the map, the MapCamera represents the position of the camera that would display such a view.

Labels created by the 3D map engine are placed laying down or standing up in the 3D scene to improve readability and visual quality. They also use a distance-fade occlusion rule with other 3D geometry indicative of their actual position in the scene. Because the map view can show both oblique and nadir views, as well as 3D topology, it is important to carefully set your view so that the obstacles, (such as mountains) do not get in your way. To help with this, the control supports the concept of scenes as a primary tool for establishing the best views. Via TrySetSceneAsync methods, you can establish different perspectives and the map will automatically choose the best camera for that perspective based on the environmental factors—including the user’s current view within the map.

Las Vegas Strip, oblique view from the east

For more details, see Display Maps with 2D, 3D and Streetside Views.

Displaying points of interest (POI) on the map

Typically, with marking points of interest (POI) on a map the first thing you consider is using pushpins, images, shapes and/or XAML UI elements. However, one of the main things to consider when adding points of interest to a 3D map should also be altitude and the AltitudeReferenceSystem to be used.

You’ll need an altitude reference system to indicate what the altitude value is relative to. If you specify Terrain, the altitude value will be relative to the terrain and will not include surface objects like trees or buildings. Ellipsoid altitude value will be relative to WGS84 ellipsoid, while Surface altitude value will be relative to the surface and will include objects such as trees and buildings that are on top of the terrain. Geoid altitude values are currently not supported by the Maps API.

Cattedrale di Santa Maria del Fiore, pushpin using zero surface altitude

Using different map projections

The map engine supports both a standard Web Mercator projection and a 3D globe projection now. The developer specifies the map projection of the MapControl that you want to use through the new MapProjection property.

MapBillboard

Along with the 3D enhancements to the existing MapElements, we added a new MapElement called MapBillboard. This new API can be used to display images or signage on the 3D map. Similar to the MapIcon API, MapBillboard displays an Image at a specific location on the map. However, it behaves differently in that it acts as if it was part of the 3D scene: the image scales with the rest of the 3D scene as the camera zooms and pans.

Offline Maps

In the past developers had to direct users to the Settings app for users to download Offline Maps. To streamline these scenarios, we added the OfflineMapPackage API which allows you to find downloaded packages in a given area (Geopoint, GeoboundingBox, etc). You can check and listen for downloaded status on these packages as well as trigger a download without the user having to leave your app.

https://github.com/Microsoft/Windows-universal-samples/tree/dev/Samples/MapControl

Other changes

Area

Description

3D textured landmarks3D textured buildings are missing with this update, but we are working on getting these back.

API Updates and Additions

For a list of the APIs added since Windows 10 Anniversary Update, please see here the following resources:

For more details on all new APIs go to MSDN.

The post New MapControl features in Windows 10 Creators Update appeared first on Building Apps for Windows.

Shutting down CodePlex

$
0
0

Almost 11 years after we created CodePlex, it’s time to say goodbye.  We launched CodePlex in 2006 because we, like others in the industry, saw a need for a great place to share software.  Over the years, we’ve seen a lot of amazing options come and go but at this point, GitHub is the de facto place for open source sharing and most open source projects have migrated there.

We migrated too.  As many of you know, Microsoft has invested in Visual Studio Team Services as our “One Engineering System” for proprietary projects, and we’ve exposed many of our key open source projects on GitHub (Visual Studio Code, TypeScript, .NET, the Cognitive Toolkit, and more).  In fact, our GitHub organization now has more than 16,000 open source contributors – more than any other organization – and we’re proud to partner closely with GitHub to promote open source.

msoss

Over the past few years, we’ve watched many CodePlex projects migrate.  During the same period, we’ve had to address several issues, including a spam epidemic over several months in 2015, as spammers sought to take advantage of the CodePlex.com domain to boost their illicit activities.  We’ve also seen a substantial decrease in usage: as of this writing, less than 350 projects saw a source code commit in the last 30 days.

The shutdown plan

So, it’s time to say goodbye to CodePlex.  As of this post, we’ve disabled the ability to create new CodePlex projects.  In October, we’ll set CodePlex to read-only, before shutting it down completely on December 15th, 2017.  In its place, we’ll have a lightweight archive that will allow you to browse through your project and source code as it looked when CodePlex went read-only.

Migrating your data

We’re providing two first-class ways to get your data out of CodePlex.  First, we’ve partnered with GitHub to provide a streamlined import experience to help you bring your CodePlex source code, license, and documentation to GitHub.  A migration tool for issues is also in the works and will be available soon – we’ll update this blog post with more details when it’s available.  And, we’ve added a new option to your project to set an “I’ve moved” banner on your project that will direct your users to your new home. There’s a walkthrough on the CodePlex wiki to help you through the migration process.

Second, the CodePlex Archive will allow you to download an archive file with your CodePlex source code, releases, documentation, issues, and license, all in common formats like Markdown and JSON.

If you’d like to migrate just your source code, you have a variety of options depending on your source control type. For Git users, many Git hosting services, including Visual Studio Team Services and BitBucket, offer an easy import flow to help you migrate. Bitbucket also offers import for Mercurial users.

We’re here to help

As you use these tools, CodePlex support is standing by to help via email.  GitHub is also ready to help if you encounter any issues with the import experience.

Thank you,

Brian

How It’s Done: Animals on the Bing homepage

$
0
0

Sometimes Bing Studios can be a real zoo. On any given day, we may wrangle an African elephant, a glasswing butterfly, and a meerkat through the front lobby. But this is what it takes to give our fans those amazing animal photos that have become some of the most popular Bing homepages.

Once we get the critters through the door, they’re signed in and receive a visitor badge—corporate policy doesn’t just apply to us bipeds. Then it’s off to our photography studio, where various creatures sit for portraits or stage action shots.

Things sometimes go awry, as was the case for our April 1, 2017* homepage photo session, but the show must go on.

Meery

*No animals or crew members were harmed during the making of this April 1st edition of the Bing homepage

How to create your own templates for dotnet new

$
0
0

You can now create your own templates for dotnet new. Creating and installing your own templates is an experimental feature at this point, but one that we are seeing significant interest in and that deserves more of your feedback before we enable it for broad use with .NET Core 2.0. The version of dotnet new shipped with the .NET Core 1.0 SDK has a new command line parameter --install. This is an undocumented feature, and is not currently included in the help output.

You can try the new template experience if you have the new SDK or Visual Studio 2017 installed. If you didn’t you can right now.

The goal of this post is to connect with developers who are interested in creating templates. If you maintain a library or framework project on GitHub, then you are a great candidate to be a template author. There are lots of other cases too, where creating templates makes sense. If you can create a sample, you can create a template. It’s not hard at all.

In the last update for .NET Core, we have updated dotnet new. This new version of dotnet new is now built on top of the new Template Engine, which is a library that we are developing. To learn more about how to use dotnet new see the docs. In this article, we’ll show how to create some custom templates and then use them from dotnet new.

Over the past several years we have seen a lot of interest in creating custom templates. We also heard that it’s too difficult to create and maintain templates with the existing tools. Because of that we wanted to make it easy to create, maintain and share templates. Let’s dive into the demos, and see how to create some templates. Everything that we cover here is in a GitHub repository at https://github.com/sayedihashimi/dotnet-new-samples.

I have a web project which I’d like to create a template out of. The template project can be found at Sayedha.StarterWeb. This is a modified version of the mvc template which is availables out of the box. Before you create a template out of this, let’s run the sample to see what was created. After running dotnet restore, and dotnet run, you can view the app at http://localhost:5000 (or if running in Visual Studio it will launch automatically when you run the app). The following screenshot of this app running on my machine (I’m creating these samples on a Mac, but you can use any platform).

runapp01

The app will look pretty familiar if you’ve created an app with this template in Visual Studio. There are also some strings that need to be replaced when you create a template out of this. For example the namespace is set to SayedHa.StarterWeb. This should be updated to match the project name created. Now let’s create a template out of this and then you can start adding the replacements that are needed.

How to create a basic template

To create a template from an existing project you will need to add a new file .template.config\template.json. You should place the .template.config folder at the root of the files which should become the template. For example, in this case I’m going to add the .template.config directory in the Sayedha.StarterWeb folder. This is the same folder that contains the .csproj project file. Let’s take a look at the content of the template.json file.

{
"author": "Sayed Ibrahim Hashimi",
"classifications": [ "Web" ],
"name": "Sayed Starter Web",
"identity": "Sayedha.StarterWeb",        // Unique name for this template
"shortName": "sayedweb",                 // Short name that can be used on the cli
"tags": {
    "language": "C#"                       // Specify that this template is in C#.
},
"sourceName": "Sayedha.StarterWeb",      // Will replace the string 'Sayedha.StarterWeb' with the value provided via -n.
"preferNameDirectory" : "true"
}

The contents of template.json shown above are all pretty straight forward. The sourceName field is an optional field that you should pay more attention to. I’ll tell you why." When a user invokes dotnet new and specifies a new project name, by using --name, the project is created, and the string value for sourceName will be replaced with the value provided for --name. In the template.json example above, sourceName is set to Sayedha.StarterWeb. This enables all instances of that string to be re-written by the user-provided value specified at the command line, with --name. This string is also used to subsitute the namespace name in the .cs file for the project. When a new project is created with the template, these values will be updated. We will discuss preferNameDirectory later. Let’s try out our template now and see that in action.

Now that we have created the template, it’s time to test it out. The first thing to do is to install the template. To do that, execute the command dotnet new --install where is the path to the folder containing .template.config. When that command is executed it will discover any template files under that path and then populate the list of available templates. The output of running that command on my machine is below. In the output you can see that the sayedweb template appears.

$ dotnet new --install /Users/sayedhashimi/Documents/mycode/dotnet-new-samples/01-basic-template/SayedHa.StarterWeb

    Templates                                 Short Name      Language      Tags
    Console Application                       console         [C#], F#      Common/Console
    Class library                             classlib        [C#], F#      Common/Library
    Unit Test Project                         mstest          [C#], F#      Test/MSTest
    xUnit Test Project                        xunit           [C#], F#      Test/xUnit
    Sayed Starter Web                         sayedweb        [C#]          Web
    Empty ASP.NET Core Web Application        web             [C#]          Web/Empty
    MVC ASP.NET Core Web Application          mvc             [C#], F#      Web/MVC
    Web API ASP.NET Core Web Application      webapi          [C#]          Web/WebAPI
    Solution File                             sln                           Solution

    
    Examples:
    dotnet new mvc --auth None --framework netcoreapp1.0
    dotnet new sln
    dotnet new --help

Here you can see that the new template is included in the template list as expected. Before moving on to create a new project using this template, there are a few important things to mention about this release. After running install, to reset your templates back to the default list you can run the command dotnet new --debug:reinit. We don’t currently have support for --uninstall, but we are working on that. Now let’s move on to using this template.

To create a new project you can run the following command.

$ dotnet new sayedweb -n Contoso.Web -o Contoso.Web
Content generation time: 150.1564 ms
The template "Sayed Starter Web" created successfully.

After executing this command, the project was created in a new folder named Contoso.Web. In addition, all the namespace elements in the .cs files have been updated to be namespace Contoso.Web instead of namespace SayedHa.StarterWeb. If you recall from the previous screenshot there were two things that needed to be updated in the app: the title and the copyright. Let’s see how you can add these parameters to the template.

How to create a template with replaceable parameters

Now that you have created a basic template, let’s see how you can customize this a bit by adding parameters. There are two elements in the home page that should be updated when the template is used.

  • Title
  • Copyright

For each of these, you will create a parameter that can be customized by the user during project creation. To make these changes the only file that you will need to modify is the template.json file. The following snippet contains the updated template.json file content (source files are located in the 02-add-parameters folder).

{
    "author": "Sayed Ibrahim Hashimi",
    "classifications": [ "Web" ],
    "name": "Sayed Starter Web",
    "identity": "SayedHa.StarterWeb",
    "shortName": "sayedweb",
    "tags": {
        "language": "C#"
    },
    "sourceName": "SayedHa.StarterWeb",
    "symbols":{
        "copyrightName": {
            "type": "parameter",
            "defaultValue": "John Smith",
            "replaces":"Sayed Ibrahim Hashimi"
        },
        "title": {
            "type": "parameter",
            "defaultValue": "Hello Web",
            "replaces":"Sayed Web"
        }
    }
}

Here you have added a new element symbols with two child elements, one for each parameter. Let’s look at the copyrightName element a bit closer. When creating a parameter, the type value will be parameter. The replaces element defines the text which will be replaced. In this case Sayed Ibrahim Hashimi will be replaced. If the user doesn’t pass in a value when invoking this template, the defaultValue value will be applied to that. In this case, the default is John Smith.

Now that you’ve added the two parameters you need, let’s test it with dotnet new. Since you changed the template.json file, you will need to re-invoke dotnet new -i again to update the template metadata. After installing the template again, let’s see what the help output looks like. After executing dotnet new sayedweb -h, in addition to the default help output you see the following.

    Sayed Starter Web (C#)
    Author: Sayed Ibrahim Hashimi
    Options:
    -c|--copyrightName
    string - Optional
    Default: John Smith

    -t|--title
    string - Optional
    Default: Hello Web

Here you can see the two parameters which you defined in template.json. The following is an example of invoking this template and customizing these values.

$ dotnet new sayedweb -n Contosog.Web -o Contoso.Web -c Contoso -t ContosoAdmin

This will result in the _Layout.cshtml file being updated. The and

elements are both updated.

@ViewData["Title"] - Contoso

© 2017 - Contoso

Now that you’ve shown how to add a parameter which replaces some text content in the source project, let’s move to a more interesting example by adding optional content.

Add optional content

The existing template that you have created has a few pages, including a Contact page. Our next step is to make the Contact page an optional part of the template. The Contact page is integrated into the project in the following ways.

  • Method in Controllers/HomeController.cs
  • View in Views/Home/Contact.cshtml
  • Link in Views/Home/Shared/_Layout.cshtml

Before you start modifying the sources the first thing you should do is to create a new parameter, EnableContactPage, in the template.json file. In the following snippet you can see what needs to be added for this new parameter.

"EnableContactPage":{
    "type": "parameter",
    "dataType":"bool",
    "defaultValue": "false"
}

Here you used "dataType":"bool" to indicate that this parameter should support true/false values. Now you will use the value of this parameter to determine if content will be added to the project. First let’s see how you can exclude Contact.cshtml when EnableContactPage is set to false. To exclude a file from being processed during creation, you need to add a new element into the template.json file. The required content to add is.

"sources": [
    {
        "modifiers": [
            {
                "condition": "(!EnableContactPage)",
                "exclude": [ "Views/Home/Contact.cshtml" ]
            }
        ]
    }
]

Here you’ve added a modifier to the sources element which excludes the Views/Home/Contact.cshtml if EnableContactPage is false. The expression used in the condition here, (EnableContentPage), is very basic but, you can create more complex conditions using operators such as &&,||,!,<,>=,etc. For more info see https://aka.ms/dotnetnew-template-config. Now let’s see how you can modify the controller and the layout page to conditionally omit the Contact specific content.

Below is the modified version of HomeController.cs file that contains the condition for the Contact method.

The following code block contains the contents of HomeController.cs. This shows how you can make the Contact method conditional based on the value of EnableContactPage.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;

namespace SayedHa.StarterWeb.Controllers
{
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return View();
        }

        public IActionResult About()
        {
            ViewData["Message"] = "Your application description page.";

            return View();
        }

#if (EnableContactPage)
        public IActionResult Contact()
        {
            ViewData["Message"] = "Your contact page.";

            return View();
        }

#endif
        public IActionResult Error()
        {
            return View();
        }
    }
}

Here you use a C# #if preprocessor directive to define an optional section in the template. When editing template source files, the idea is that the files should be editable in a way that allows the files to still be "runnable". For example, in this case, instead of modifying the C# file by adding elements which are invalid, the #if/#endif directives are used for template regions. Because of this each file type has its own syntax for conditional regions. For more info on what syntax is used for each file type see https://aka.ms/dotnetnew-template-config.

When this template is processed, if EnableContactPage is true then the Contact controller will be present in the HomeController.cs file. Otherwise it will not be present. In addition to the Contact method in the Controller, there is a link in the _Layout.cshtml file which be omitted if the Contact page is not created. The code fragment shows the definition of the navbar from the _Layout.cshtml file.

Here the tag helper element creating the Contact link is surrounded with a condition to check the value of EnableContactPage. Similar to the controller, if EnableContactPage is false then this link (along with #if/#endif lines) will not be present in the generated _Layout.cshtml file. The full config file is available at template.confighttps://github.com/sayedihashimi/dotnet-new-samples/blob/master/03-optional-page/SayedHa.StarterWeb/.template.config/template.json. Let’s move on to the next example, giving the user a set of choices.

Add a choice from a list of options

In the project the background color is set in the site.css, and site.min.css, to skyblue. You now want to create a new parameter for the template and give the user a choice of different background colors to choose from. To do this you will create a new template parameter, and define the available choices in the template.json file. The parameter name that you are going to create is BackgroundColor. Here is the snippet to create this new parameter.

"BackgroundColor":{
  "type":"parameter",
  "datatype": "choice",
  "defaultValue":"aliceblue",
  "choices": [
    {
      "choice": "aliceblue",
      "description": "Alice Blue"
    },
    {
      "choice": "dimgray",
      "description":"dimgray"
    },
    {
      "choice":"skyblue",
      "description":"skyblue"
    }
  ],
  "replaces":"skyblue"
}

Here we define the name of the parameter, the available choices, the default value (aliceblue), and the string that it replaces ‘skyblue’.

How to create projects with the name matching the directory

Earlier we saw a property in the template.json file, preferNameDirectory, which we skipped over. This flag helps simplify creating projects where the name of the project matches the folder name. Most project templates should have this parameter set to true.

For example, earlier you created a project with the command dotnet new sayedweb -n Contoso.Web -o Contoso.Web. This created a new project named Contoso.Web in a folder with the same name. This can be simplified by adding "preferNameDirectory":"true" in the template.json file. When a project is created using a template that has this set to true the project name will match the directory name (assuming that the --name parameter is not passed in). With this approach, instead of calling dotnet new with both -n and -o it can be simplified to the commands shown in the following code block.

    $ mkdir Contoso.Web
    $ cd Contoso.Web
    $ dotnet new sayedweb

When the project is created the name of the folder, Contoso.Web will be used as the project name, and it will be generated into the current directory.

Closing

In this post, we have shown how you can get started with creating your own custom templates for dotnet new. We are still working on enabling the end user scenarios where templates are acquired and used. In this release, the --install switch is hidden because it’s currently in preview. The syntax of this command is likely to change. After installing templates, to reset your templates back to the default list you can run the command dotnet new --debug:reinit In the following section, you’ll find some links to existing resources. Please share your comments here and file issues as needed. You can also reach me on twitter @SayedIHashimi We’re very excited to see the awesome templates that the community creates. In addition to this blog, we may post dotnet new related posts to the .NET Web Developer Blog.

Resources

Announcing our great lineup of featured speakers for the Microsoft Data Insights Summit!

$
0
0
We recently shared our full session catalog for this year’s Microsoft Data Insights Summit. This week we want to highlight some of the featured speakers we’ll have at the event. The Data Insights Summit includes an amazing mix of BI experts, product partners, community members, and Microsoft product engineers – all at the conference to help you learn how make the most of your data. We’re thrilled to spotlight Amanda Cofsky, Brian Jones, Chris Webb, Danielle Dean, Jennifer Stirrup, Justyna Lucznik, Kim Manis, Marco Russo, and Rob Collie.

Scalable Telemetry Based Multiclass Predictive Maintenance Model

$
0
0

I recently presented Building a Scalable Telemetry Based Multiclass Predictive Maintenance Model in R at the ICDSE conference. This conference was inter-disciplinary where the attendees were primarily from academia and shared their scholarly research and innovation. Due to the nature of the conference, the focus was on the methodology used to solve their domain-specific problem rather than the tooling needed to solve a large-scale problem.     

My talk at the conference was focused on outlining how a user or an organization would build a Scalable Telemetry based Predictive Maintenance Model. To set the context, I described how we routinely come across IoT devices with sensors embedded all around us, which collect a lot of telemetry data over time. Then the natural next question was on how this data can be used to address business questions like, "When is my device going to fail?" Some tips on how the raw sensor data can be enhanced with additional machine related data and how to formulate and build a reasonable ML model were briefly discussed during the talk.

Finally, typical scenarios for an on-premise and cloud based solution was outlined with focus on SQL Server R Services and Azure Machine Learning Studio, as well as jupyter notebooks as example tools to develop and operationalize these models. To accompany my oral presentation, I wrote a short paper which describes the methodology in more detail. The audience was intrigued with the solution and hoped to use such a similar technique for the healthcare domain.  


Upcoming changes to the Microsoft Access Control Service

$
0
0

What is the Access Control Service?

The Microsoft Azure Access Control Service (or ACS) is a cloud-based service that provides a way of authenticating and authorizing users to gain access to web applications and services.

Changes to How Access Control Service Namespaces are Created

New ACS namespace creation will be restricted starting June 30th, 2017. If you need to create an ACS namespace beyond this date, you will need to call Azure customer support.

Azure Active Directory (Azure AD) and Azure AD B2C

ACS functionality is fully supported for existing namespaces. However, the future of ACS is Azure Active Directory. We are committed to improving and updating Azure Active Directory to natively support many of the scenarios enabled by ACS. We encourage you to explore the offerings that Azure AD B2C can provide today.

Contact Us

If you have questions or feedback about these changes or ACS in general, please do not hesitate to contact us at acsfeedback@microsoft.com.

Tech support scams persist with increasingly crafty techniques

$
0
0

Millions of users continue to encounter technical support scams. Data from Windows Defender SmartScreen (which is used by both Microsoft Edge and Internet Explorer to block malicious sites) and Windows Defender Antivirus show that some three million users are subjected to these threats every month.

In addition to being rampant, technical support scams continue to evolve, employing more and more complex social engineering tactics that can increase panic and create a false sense of legitimacy or urgency in an effort to get more victims.

Given the sheer volume of tech support scams and the pace at which they evolve, here at Microsoft we take a holistic approach to this problem. We monitor the threat landscape for patterns and variations in threat behavior. Using intelligence from sensors, we employ machine learning models to deliver cloud-based protection against the latest tech support scams, whether they take the form of web pages with malicious scripts or Trojans that run on computers.

In 2016, the threat of support scam was most felt in the United States, which saw 58% of encounters. United Kingdom, Canada, and Australia follow, with 13%, 11%, and 8% of encounters, respectively. Notably, significant encounters were also registered in France and Spain, where we saw localized technical support scam attacks.

tech-support-scam-countries

Figure 1. Top counties that saw the most number of tech support scam encounters in 2016

(Note: This blog post is the third in the 2016 threat landscape review series. It follows the review of exploit kits and ransomware. The series looks at how major areas in the threat landscape transformed over the past year.)

The evolution of technical support scam malware

Technical support scams are built on the deception that your computer is somehow broken, and you need to contact technical support to fix it. You may then be asked to pay for support. In some cases, the tech support agent may ask you to install other software or malware disguised as support tools on your computer, bringing in more threats that can cause even more damage.

You may come across these threats while browsing dubious websites, most notably those that host illegal copies of media and software, crack applications, or malware. Links or ads on these sites may lead you to tech support scam websites, which display pages that are designed to look like error messages and serve pop-up messages indicating fictitious errors. Some tech support scam threats take the form of executable programs like other malware.

Although tech support scams have been around for many years, in 2016 we saw the threat evolve by  integrating more scare tactics. At the beginning of the year, the landscape was dominated by threat families with simple techniques and social engineering lures. However, more evolved threat families have since taken over.

tech-support-scam-malware-families

Figure 2. Top support scam families based on encounters in 2016

FakeCall and FakeBSOD: The early types that used one pop-up window and simple messages

Tech support scams are known for their use of pop-up windows to advance their pretense. While most of the scams today abuse pop-up windows to the point of locking the browser, the earlier types relied on just pop-up windows and effective social engineering lures.

FakeCall is a family of malicious scripts hosted in tech support scam sites. It may use messages about virus infection or suspicious activities on your computer. The first sign you have been led to a FakeCall tech support scam site is a pop-up message that tries to create an impression that it’s a system pop-up and usually describes a fake problem and contains instruction to contact fake technical support.

tech-support-scam-fakecall-pop-up

Figure 3. A sample pop-up message from FakeCall

If you click OK, the website loads a page giving more details about the supposed problem, and more instructions to call the technical support number. It may spoof security products and list malware that have purportedly been found on your computer. The goal is to convince you to call the support number.

tech-support-scam-fakecall-webpage

Figure 4. Sample FakeCall support scam website, which asks potential victims to call 8554003930

On the other hand, FakeBSOD is a very similar threat but instead pretends to be a system error, like Blue Screen of Death (BSOD), where it got its name.

tech-support-scam-fakebsod

Figure 5. Sample FakeBSOD site that pretends to look like system errors, such as BSOD, and asks to call 18443307888

FakeBSOD sites usually force the browser to go on full-screen mode to simulate the BSOD experience. Just like FakeCall, it also has a pop-up message detailing the fake problem and a number to call fake technical support.

Both FakeCall and FakeBSOD heavily rely on social engineering lures to get you to take action, and don’t have much in terms of technical complexity. Simply closing the browser will work in most cases.

TechBrolo: Support scam malware on steroids

TechBrolo takes on characteristics of both FakeCall and FakeBSOD, but integrates technical enhancements that not only makes the pretense more believable but can also adversely affect your overall computing experience.

For instance, TechBrolo employs the dialogue loop technique. When you visit the TechBrolo site, you get a pop-up message that won’t go away, no matter how many times you click OK. This method effectively locks your browser; you must manually terminate the process via Task Manager in order to close your browser.

tech-support-scam-techbrolo-1

Figure 6. Sample TechBrolo site with dialogue loop and fake support number 18662190211

Most variants of TechBrolo also play an audio describing the problem, adding a sense of urgency. For example, one recent variant mimics Windows Defender Antivirus, and when the website loads, it plays an audio with the following message:

“Critical alert from Microsoft. Your computer has alerted us that it is infected with a virus and spyware. This virus is sending your credit card details, Facebook login, and personal emails to hackers remotely. Please call us immediately at the toll-free number listed, so that our support engineers can walk you through the removal process over the phone. If you close this page before calling us, we will be forced to disable your computer to prevent further damage to our network. Error #268D3.”  It is important to note that Windows Defender Antivirus does not act this way.

tech-support-scam-techbrolo

Figure 7. Sample TechBrolo site that spoofs Windows Defender Antivirus, plays an audio message, and uses fake support number 0754059588

Recently, we also spotted a TechBrolo variant that uses website elements to spoof the Microsoft support site and fake the pop-up dialogue box. It does this by loading a page that looks like a browser and then going to full screen. If you are not too paying attention, you might think Microsoft is giving you a warning. Microsoft does not deliver warning messages like this via the browser.

tech-support-scam-escape-from-fullscreen-1

Figure 8. One TechBrolo site uses website elements to achieve a browser in a browser effect and asks target victims to call 18443137003

Non-English support scam websites

Consistent with our findings that some of the countries most affected by tech support scam are non-English speaking countries (see Figure 1), we have seen some localized tech support scam malware.

These sites employ a combination of the techniques discussed in this blog, only presented in non-English websites, images, or pop-up messages.

tech-support-scam-french

Figure 9. French tech support scam website that uses fake support number 0186264266

tech-support-scam-spanish

Figure 10. Spanish tech support scam website that uses fake support number 900839260

tech-support-scam-german

Figure 11. German tech support scam website that uses fake support number 08001838114

tech-support-scam-techbrolo-japanese

Figure 12. Japanese tech support scam website that uses fake support number 0345789419

Cusax, Hicurdismos, and Monitnev: Support scam Trojans

Apart from scripts hosted on websites, we have also seen tech support scam malware in the form of executable files. They may be installed on your computer by other malware or downloaded from drive-by sites.

These malware have the same goal as their script counterparts: to get you to call the technical support number. However, the difference is that their malicious behaviors are not limited to the browser.

For instance, Cusax is a tech support scam malware that makes system changes, including registry modifications that ensure it runs every time your computer starts. It then forces a reboot, further reinforcing the scam that there is a problem with your computer.

As soon as your computer boots, it opens a window that asks for your Windows activation key as well as the technical support number.

tech-support-scam-cusax

Figure 13. Cusax uses the lure that you need to enter your activation key and asks to call the number 18772563313

Hicurdismos, on the other hand, displays an image that looks like the BSOD. However, this fake BSOD screen has instructions to call a technical support number, something that the real error doesn’t have.

In order to further its pretense, Hicurdismos hides the mouse cursor, disables Task Manager, and makes sure the fake BSOD image occupies the entire screen and is always on top of other windows.

tech-support-scam-hicurdismos

Figure 14. The fake BSOD screen displayed by Hicurdismos contains the number 18004184202

More recently, Monitnev was discovered to monitor event logs. It then displays fake error notifications every time an application crashes. This can appear more convincing because the pop-up messages are timed with legitimate computing behavior.

Cusax, Hicurdismos, Monitnev and other tech support scam malware can be more complex than scripts. Because they make system changes, they can inflict more damage and can be trickier to remove. However, we’re seeing significantly fewer of these types of tech support scam threats because they are more difficult to distribute than their script counterparts. Despite that, they pose threats that you need protection from.

Protection against tech support scams

Tech support scams take different forms and are known to take on more characteristics over time. Get the protection against the latest tech support scams by upgrading to Windows 10. The Windows 10 Creators Update brings in additional security features and will start rolling out on April 11, 2017. Keeping your computers up-to-date gives you the benefits of the latest features and proactive mitigation from Microsoft.

A majority of these threats, like TechBrolo, FakeCall, and FakeBSOD, are scripts hosted on websites where you are led to by malicious ads on dubious sites. To avoid tech support scam websites, use Microsoft Edge. It uses Windows Defender SmartScreen (also used by Internet Explorer) to block known malicious websites.

tech-support-scam-microsoft-edge-blocked-twitter

Figure 15. Microsoft Smart Screen blocks techs support scam websites

In addition, Microsoft Edge provides a way to close dialogue loops, which are used by support scam sites to keep on delivering pop-ups even after you close them. At the bottom of pop-up dialogue messages, you have an option to tick the checkbox Don’t let this page create more messages, which will stop the recurring messages.

tech-support-scammicrosoft-edge-protection-against-dialogue-loops

Figure 16. Dialogue loop protection for Microsoft Edge

Enable Windows Defender Antivirus to remove tech support scam Trojans, such as Cusax and Hicurdismos. Windows Defender AV uses cloud-based protection, which helps make sure you are protected from the latest threats.

Tech support scams employ varying social engineering techniques to get you to call the support hotline. Do not call the number in pop-up messages. Microsoft’s error and warning messages never include a phone number.

Some scammers can also contact you directly and claim to be from Microsoft. Remember, Microsoft will never proactively react out to you to provide unsolicited PC or technical support. Any communication we have with you must be initiated by you. Reach out directly to one of our technical support experts at the Microsoft Answer Desk.

For more help, read our page on avoiding technical support scams.

 

Jonathan San Jose, Alden Pornasdoro, Francis Tan Seng
Microsoft Malware Protection Center

 

 

Price reductions on L Series and announcing next generation Hyper-threaded virtual machines

$
0
0

For Microsoft Azure, we have a long standing promise of making our prices comparable with AWS on commodity services such as compute, storage, and bandwidth. In keeping with this commitment, we are happy to announce price reductions of up to 69% on our storage-optimized virtual machines, L Series. We are also excited to share more about our next generation of Hyper-Threaded virtual machines for general purpose and memory optimized workloads that are up to 28% lower in prices than the current generation.

Price reductions on L Series

We are reducing prices by 60% to 69% on our newly-launched L Series virtual machines, effective April 1st to match recent price changes from AWS. These VMs are storage optimized sizes, best suited for low latency workloads such as NoSQL databases including Cassandra and MongoDB. L Series offers virtual machines from 4 to 32 vCPUs, based on Intel® Xeon® processor E5 v3 family with 32 to 256 GiB memory, and from 678 GB to 5.6TB of SSD disk. 

New Hyper-Threaded VMs and Dv2 limited time promotion

In the next few months, Microsoft will be introducing a new generation of Hyper-Threading Technology virtual machines for general purpose workloads, Dv3, and a new family for memory optimized workloads, Ev3. This shift from physical cores to virtual cores is a key architectural change in our VMs that enables us to unlock the full potential of the latest processors. This new generation will introduce sizes with 64 vCPUs on Intel® Broadwell E5-2673 v4 2.3 processor and with 432 GiB of memory on the largest Ev3 sizes. By unlocking more power from the underlying hardware, we are able to harness better performance and efficiency, resulting in cost savings that we are passing on to our customers.

As our new Hyper-Threaded VMs become generally available in the coming months, we would like to give our customers the opportunity to take advantage of these savings early. These new Hyper-Threaded VMs will be priced up to 28% lower than Dv2 Series VMs, matching the comparable AWS instance prices. Starting today, you can provision a Dv2 Promo VM on our current generation hardware at the lower Dv3 and Ev3 VM prices, allowing you to take advantage of these cost savings now.

This promotion will be available until the launch of the Dv3 and Ev3 VMs later this year. We encourage you to deploy the Dv2 Promo VMs using Azure Resource Manager to simplify migration to the new VMs in the future.

Continuous Delivery Tools Adds GitHub Support and My Build Notifications

$
0
0

The Continuous Delivery Tools for Visual Studio shipped last month as a Microsoft DevLabs extension to experiment with some of the latest ideas for setting up and working with a DevOps pipeline. As with any experiment the goal is to learn and test our hypotheses. The enthusiasm and feedback has validated just how much opportunity there is to help developers continuously deliver value to their users. We’ve shipped several incremental updates that fix bugs and other minor usability improvements. Our latest update has several new improvements:

  • Support configuring a continuous delivery pipeline for a repository hosted on GitHub
  • Improvements that make it simpler to getting started
  • Notifications for all Builds you trigger manually, through a CI event or with a PR

Let’s walkthrough some of these improvements.

Configuring Continuous Delivery for a repository hosted on GitHub

After we released the extension one of the first items users asked about was how do I use this extension to setup a continuous delivery pipeline if my code doesn’t live in a Git repository on Visual Studio Team Services? GitHub and TFVC were the two most popular requests. This update adds support for Git repositories on GitHub and we’re looking at adding support for TFVC in the future.

If you have the GitHub extension for Visual Studio installed, the ‘Add to Source Control’ button in the status bar will setup a repo and push your code up to GitHub in a couple clicks.

github-extension

Then, right click on your ASP.NET project in Solution Explorer and select “Configure Continuous Delivery…”. The wizard has a new field to enter your GitHub Personal Access Token (PAT) so Team Services can listen for commits and trigger a build & release whenever code is pushed into the GitHub repository.

continuous-delivery

Another observation from the first release was some users were not able to successfully setup a Continuous Delivery pipeline. When we dug in to the data, we found many users were failing because they were missing one of the prerequisites needed to get everything setup on VSTS. Some common case were users running the wizard on projects that were not under version control or users who did not have an Azure Subscription. We’ve made some improvements to help users with those prerequisites and over time we’ll integrate them directly into the experience so it’s all one step.

Notifications for builds you trigger manually, through a CI or with a PR

We heard lots of feedback around what DevOps activities should produce a notification in the IDE as well as when and where they should appear. Some users wanted to track all CI results. Some users wanted only failures. Some wanted failure results for specific projects. It was clear throughout the feedback that configuration would be critical to meet the broad set of requirements. Notifications for events “I” triggered was as theme that resonated with most users we interviewed.

notifications

In this update, we’ve pivoted our notification experience to generate failed, fixed, or success notifications for all builds you triggered in Team Project for your active repository. Now you’ll see a notification the first time you Configure a Continuous Delivery pipeline using the extension and then every time you trigger a build which can happen automatically with a code push or pull request, or manually from Team Services. We’ve also started investigating how we can offer a more complete configuration experience on Team Services that will expand the set of notifications you can receive in the IDE.

It’s all about feedback

First, a thank you to everyone who has reached out and shared feedback and ideas so far. We’re always looking for feedback on where to take this Microsoft DevLabs extension next. There’s a Slack channel and a team alias vsdevops@microsoft.com where you can reach out to the team and others in the community sharing ideas on this topic.

Anthony Cangialosi-2Anthony Cangialosi, Principal PM Manager, Visual Studio Platform IDE
@ACangialosi

Anthony has focused his career at Microsoft on building developer technologies. He is the program manager for Visual Studio’s Connected experiences and IDE. Anthony joined the Visual Studio team in 2001 and has contributed experiences across the IDE including VS’s identity infrastructure the Shell, the VS SDK, Ecosystem, VSIP, and mobile device development

Microsoft Updates its Deep Learning Toolkit

$
0
0

This post is by Chris Basoglu, Partner Engineering Manager in the AI & Research group at Microsoft.

We are delighted to announce that Microsoft has brought Microsoft Cognitive Toolkit version 2.0 out of beta and is making the first release candidate available today. The toolkit, previously known as CNTK, is a system for deep learning used to speed advances in areas such as speech and image recognition and search relevance on CPUs and NVIDIA® GPUs. Cognitive Toolkit can be used on-premises or in the cloud with Azure GPUs.

Cognitive Toolkit is being used extensively by a wide variety of Microsoft products, by companies worldwide with a need to deploy deep learning at scale, and by students interested in the very latest algorithms and techniques. The latest version of the toolkit is available on GitHub via an open source license. Since releasing the beta in October 2016, more than 10 beta releases have been deployed with hundreds of new features, performance improvements and fixes.


Cognitive Toolkit as a Library

Cognitive Toolkit has added more bindings beyond BrainScript. Version 2.0 enables using Cognitive Toolkit as a software library with the following supported bindings:

Python Examples and Tutorials (Jupyter Notebooks)

Recognizing the importance of Python in deep learning, we have prepared a set of Python examples and tutorials (the latter are implemented as Jupyter Notebooks). You will find relevant information at these locations:

You may also use Cognitive Toolkit Docker Containers to run Jupyter Notebooks tutorials.

New Evaluation Library

The new Cognitive Toolkit evaluation library has also been significantly enhanced, with improved performance and ease of use. The evaluation library can be used on Windows and Linux utilizing C++, Python, as well as C# and other .NET languages.

Learn more about the Cognitive Toolkit Evaluation Library here.

New Features

We have introduced several new features in the version 2.0 beta, including:

  • The ability to extend Cognitive Toolkit functions, learners, trainers and optimizers with your own algorithms in Python, C++.
  • Enhanced, built-in distributed readers for speech, image, and text deep learning tasks.
  • The ability to use TensorBoard visualizations from Cognitive toolkit! Read more here.
  • Pretrained models available for use.
  • Performance improvements.
  • Support of distributed scenarios in Python API. See more in the sections on distributed scenarios in the ConvNet and ResNet examples.
  • Support of Asynchronous Stochastic Gradient Descent (ASGD)/Hogwild! training parallelization support using Microsoft’s Parameter Server (Project Multiverso).
  • Support for training on one-hot and sparse arrays via NumPy.
  • Support of object recognition using Fast R-CNN algorithm.
  • Integration with NVIDIA NCCL, a stand-alone library of standard collective communication routines, such as all-gather, reduce, broadcast, etc., that have been optimized to achieve high bandwidth over PCIe. See how to enable NCCL in the Cognitive Toolkit Wiki.
  • Lambda rank and NDCG at 1 are accessible from Python for real this time.
  • Performance Profiler for BrainScript and Python.
  • Support in training session for cross validation and preservation of all checkpoints.

New Automated Installation Procedures

We have enabled different ways to install CNTK in an automated manner:

  • Installation scripts for binary distribution.
  • Installation scripts for the users who would like to work with CNTK source code.
  • Installation via pip install procedure.

Read more about the different ways to install Cognitive Toolkit here.

Docker Hub and Self-Built Docker Images

CNTK is now available as Docker Images at Docker Hub.

You may also build your own Docker Images using pre-configured Docker files from the CNTK Code base. See this Wiki page on using Cognitive Toolkit as Docker Images and Containers.

NuGet Packages

Windows developers are welcome to use multiple CNTK NuGet packages supporting both v.1 and v.2 model formats. See more on Cognitive Toolkit NuGet packages here.

Contact Us

You can always work with us through the community pages on GitHub issues, Stack Overflow and @mscntk.

Chris

New value in Office 365 Enterprise K1 for frontline workers

$
0
0

Today, we are announcing updates to the Office 365 Enterprise K1 plan—designed to enable your frontline workers to do their best work with tools for schedule and task management, communications and community, training and onboarding, and identity and access management.

Frontline workers are the heartbeat of many of the world’s largest industries, such as manufacturing, retail, healthcare and hospitality. They’re the people behind the counter, on the phone with customers, operating the production line, building products, and running the day-to-day operations. They are often the face of an organization to its customers. And as more companies invest in digital transformation, there’s a growing recognition of the importance of empowering frontline workers with modern productivity tools.

That’s why we have expanded the Office 365 Enterprise K1 plan to include the following additional products:

  • Microsoft StaffHub—Helps frontline workers manage their workday with schedule management, information sharing and the ability to connect to other work-related apps and resources.
  • OneDrive for Business with 2 GB of cloud storage—Provides employees a secure environment to store, manage and access files from virtually anywhere and on any device.
  • Skype for Business presence and instant messaging—Enables employees to communicate in real-time, along with the ability to participate in Skype Meeting Broadcast sessions.
  • Microsoft Teams—A hub for teamwork that connects employees to the people, tools and content they need to do their best work.
  • Office 365 Video—Provides employees with a secure, company-wide destination for posting, sharing and discovering video content.
  • Microsoft PowerApps and Microsoft Flow—Eases the automation of repetitive tasks and workflows.

These additional products build upon the core value already offered with the Office 365 Enterprise K1 plan and unlock important scenarios for frontline workers, including the ability to view and swap shifts, take advantage of video-based employee training and onboarding, exchange best practices across the company and even participate in live, company-wide town hall meetings. The Office 365 Enterprise K1 plan gives companies the tools they expect to manage employee access and the digital identity to meet today’s complex and constantly changing security and compliance requirements.

Broadcast company town halls to engage employees remotely.

Finally, we are excited by the response of our customers, like AccorHotels, who’ve already started to change the way they work with Office 365 and Microsoft StaffHub.

These new capabilities will begin rolling out to customers in the next several weeks. Please visit the Office 365 Enterprise K1 plan page to learn more, and check out the Microsoft Mechanics video below.

The post New value in Office 365 Enterprise K1 for frontline workers appeared first on Office Blogs.

Assigning multiple users to a task is now possible in Microsoft Planner

$
0
0

As of today, Microsoft Planner users can assign multiple people to a task—a feature that tops the list at planner.uservoice.com. Now, users can assign more than just one user to a task in Planner, and every user that is assigned the task will see it on their My Tasks page.

Our goal is to support additional collaboration, and we will continue to develop features and enhancements that our users want. Feel free to join the conversation about this feature and many others at our TechCommunity page. Also, please share your feedback with us about Planner features you would like to see at planner.uservoice.com.

—The Planner team

The post Assigning multiple users to a task is now possible in Microsoft Planner appeared first on Office Blogs.


Create and manage up to 30,000 projects in Project Online

$
0
0

The Microsoft Project team is continuously innovating to meet our customers’ most-pressing needs. That’s why we’ve released additional features during the past six months—and why we’re now excited to announce a huge increase in the number of projects you can support through Project Online, a Microsoft Project & Portfolio Management (PPM) solution.

Create more projects, get more done

In the past, Project Online only allowed for 5,000 projects. Today, that increases six-fold, enabling you to create and manage up to 30,000 projects in the cloud. You’ve been asking for greater scale through Project Online, and we believe 30,000 projects gives you ample space and flexibility to get more done without resorting to cumbersome workarounds.

We’re also excited to announce several updates that improve performance and help you get the project information you need faster. One of these updates is the ability to create more project sites—also called subsites or collaboration sites. Before, there was a limit of 2,000 project sites. If you wanted more, you had to split them into multiple Project Web App (PWA) sites, impacting team productivity. Now, there’s a one-to-one relationship between projects and project sites. For example, if your Operations department creates 4,000 projects, it can also create 4,000 project sites across multiple site collections, boosting collaboration and information-sharing among project teams. Additionally, you can set the destination of these project sites in the Enterprise Project Type (EPT) template to help streamline project creation.

Divide projects and project sites among different departments, as shown here, or host all 30,000 in a single place—whatever works best for your business.

Access the Project Center data faster

More projects also means more data. Every time you go to the Project Center, Project Online calculates aggregate information—like total cost of all projects—which slows the time it takes to pull up that page. Going forward, you have the option to disable rollup groups and Gantt charts, bringing you the project data you need faster—especially as you create more and more projects. We also expedited the process for displaying a list of projects within Project Center and improved the custom filtering feature to help you quickly find the right project data.

Filter data rollup and Gantt chart groups to find Project Center information faster.

We also released OData performance enhancements to decrease the transmission time for retrieving data from project reports. This is particularly helpful if you use SQL Server Integration Services to transfer data from Project Online into your own warehouse. You can download all your data at once, then pull the changed records at regular intervals to keep project data updated.

Lastly, we added modify dates to the following entities:

  • AssignmentBaseline
  • AssignmentBaselineTimephasedData
  • AssignmentTimephasedData
  • Engagement
  • EngagementsTimephasedData
  • ProjectBaseline
  • TaskBaseline
  • TaskBaselineTimephasedData
  • TaskTimephasedData
  • TimesheetLineActualData
  • ResourceDemandTimephasedData
  • ResourceTimephasedData

The Project team is always innovating to help customers achieve better project outcomes. Please go to our UserVoice page to submit ideas for improving Project. You can also visit the Microsoft PPM website to learn more about Project Online and other PPM offerings.

—The Project team

 

Frequently asked questions

Q. What do I need to do to increase my limit to 30,000 projects?

A. The limit has been updated for everyone.

Q. Can I control which site collections my project sites are created in?

A. You can set project destinations at the Enterprise Project Type (EPT) level.

Q. Where can I go to find the best practices to be successful with 30,000 projects?

A. Please see “Tune Project Online performance” for best practices.

Q. Can I use User Sync and SharePoint Task List Sync with these updates?

A. User Sync and SharePoint Task List Sync are only supported when a project site is in the same site collection as the PWA site. Project sites created outside the PWA site will not support these functionalities.

The post Create and manage up to 30,000 projects in Project Online appeared first on Office Blogs.

Updated Maps Platform for Windows 10 Creators Update

$
0
0

We have updated the Maps platform for the Windows 10 Creators Update to give our maps a cleaner, more beautiful and realistic look so that it’s consistent between web and UWP apps. We are also making Road view look more authentic by adding layers of terrain, where previously the Road view appeared flat. In addition to a new 3D engine, we have delivered added features that our users requested for certain areas of visual improvements, like styling, offline capabilities, routing and others

Our updated data pipeline paves the way for improvements to our global map data. This also allows us to react more quickly to user feedback (e.g. when you report that a place is missing).  As with any journey, we expect to discover a few bumps along the way.

Please check out the latest in the Windows Maps app and keep your feedback coming!

Read the full post on the Windows Developer blog.

Free AI Immersion Workshop on May 9th in Seattle – Register Now!

$
0
0

We are excited to announce that registration for the Microsoft AI Immersion Workshop is now open to all developers. The Workshop is being held on Tuesday, May 9th, at the W Hotel in Seattle. This is a free in-person event, but capacity is limited – so register now to reserve your spot.


This is a unique opportunity for developers interested in creating the next generation of intelligent apps, including enterprise-grade solutions, using the very latest AI and Machine Learning techniques. You’ll learn how to build solutions from scratch. Seasoned software engineers and data scientists from Microsoft – people who are building some of the world’s most advanced AI and ML technologies – will run these hands-on tutorials. Several presenters are also active contributors to this blog, as you’ll see from the presenter names next to the session abstracts below.


The Workshop will kick off with a keynote talk that will cover the breadth and depth of Microsoft’s AI investments and offerings. That will be followed by your choice of five deep technical tutorial sessions, which will run for much of the day, from 11:00 AM through 5:00 PM. These tutorials will focus on hands-on activities and projects, so attendees are expected to bring their own laptops, and also check our event website for any pre-requisite software or subscriptions they might need, to make the most of the day.

Learn more about the workshop sessions below.

WORKSHOP TITLEABSTRACTINSTRUCTORS
1Applied Machine Learning for Developers Learn data science from the very basics, and build an app that uses a machine learning model. Little or no knowledge of data science is assumed.
We’ll start with essentials of the data science process, from identifying the question that you would like to see answered, to determining which algorithm to apply, to evaluating how good your model is. We’ll then use Azure Machine Learning to apply the data science process and build an ML model, which will be deployed as an API on Azure. Finally, you’ll build an app that uses the ML model.
  • Barbara Stortz, Principal Software Engineering Manager
  • Raymond Laghaeian, Senior Program Manager
2Big AI – Applying Artificial Intelligence at ScaleLearn how to apply AI at scale – at massive scale – and using a variety of technologies.
Topics covered will include: planet-scale AI on structured and unstructured data, deep learning at scale using Azure, intelligence at scale using the Azure Data Lake Store, and related topics.
  • Alex Sutton, Principal PM Manager
  • Andrew Liu, Program Manager
  • Bart Czernicki, Senior Technical Evangelist
  • Danielle Dean, Senior Data Scientist Lead
  • Michael Rys, Principal Program Manager
  • OP Ravi, Principal Program Manager
  • Thomas Delteil, Data Scientist
  • Tony Guidici, Principal Software Development Engineer
  • Wee Hyong Tok, Principal Data Scientist Manager
3Weaving Cognitive and Azure Services to Provide Next-Generation Intelligence Get a guided tour of Microsoft Cognitive Services and the Azure service offerings that pair well with them, followed by a walkthrough of common application scenarios involving stitching Cognitive Services together, including with Azure Search, Document DB (i.e. NoSQL), and related technologies, to provide comprehensive end-to-end solutions.
Attendees will get hands-on time with multiple Cognitive Services and Azure technologies, and behind-the-scenes details from Microsoft product engineers.
  • Elad Ziklik, Principal PM Manager
  • Jason Fox, Software Development Engineer
  • Jennifer Marsman, Principal Software Development Engineer
  • Liam Cavanaugh, Principal Program Manager
  • Michael Lanzetta, Principal Software Development Engineer
4Deep Learning and the Microsoft Cognitive Toolkit We will introduce deep learning and common use cases with a hands-on tutorial on how to use Microsoft’s open source deep learning framework, i.e. the Cognitive Toolkit. We will also focus on different Azure services that you can use to build an end-to-end deep learning solution.
Goals for this session are to help attendees familiarize themselves with the different areas of deep learning, gain hands-on experience in practical apps that could use deep learning, and recognize the different Azure services to use, when building such solutions.
  • Anusua Trivedi, Data Scientist
  • Gopi Kumar, Principal Program Manager
  • Miguel Fierro, Data Scientist
  • Patrick Buehler, Senior Data Scientist
  • Sayan Pathak, Principal Software Development Engineer
  • Sudarshan Sudarshan, Principal Software Engineering Manager
  • Tao Wu, Principal Data Scientist Manager
  • TJ Hazen, Principal Data Scientist Manager
  • Ye Xing, Senior Data Scientist
5Building Intelligent SaaS Applications We will cover the end-to-end flow of building intelligent Software as a Service (SaaS) apps in Azure through short presentations coupled with hands-on experiences.
This workshop will cover the Data tier, including different SaaS design patterns to consider when building, managing and monitoring a scalable and cost-efficient multi-tenant data tier; the App tier, including the powerful AI technologies available for you to build intelligent apps; and the Analytics tier, showing you how to power interactive analysis on your app telemetry data, and backing up your SaaS app with a highly scalable data warehousing solution.
  • Julie Strauss, Principal Group Program Manager
  • Siva Harinath, Principal Program Manager

You will have opportunities to connect in person with our presenters and other Microsoft experts, as well as with industry peers. There will be plentiful food, snacks and caffeine throughout the day, of course. So hurry up and reserve your spot as we expect to sell out very soon and we’ll see you in Seattle in May!

The AI Immersion Workshop Team

Spring Into DevOps

$
0
0

Stack Overflow just released their annual community survey and it reminded us that a happy developer is a developer who can ship. Of course, nowadays shipping means having a great pipeline for continuous integration and continuous deployment. That allows you to continuously improve. For a long time now we’ve been working hard to make the DevOps experiences in VSTS best of breed. More recently we’ve also been trying to continuously improve content to help you learn about them.

Every week I talk to customers about their DevOps journeys. Most customers have mastered Agile and Version Control and appreciate the simpler experiences we’re bringing to them. Build Automation and Continuous Integration are much more common than they were. Most teams are starting to invest in some form of monitoring and telemetry so they can see what is really happening in production.
For many teams, continuous deployment is that next step in their process maturity to help them get better at DevOps. Therefore, we thought we’d have a push to de-mystify CI/CD during April to help people “Spring Into DevOps” (or maybe that should be “Fall into DevOps” if you are in the Southern Hemisphere?). We will focus on talking about how to go from continuous integration to continuous deployment. There’ll be several blog posts coming here over the month on this theme, but there are also many special events during the month to help you Spring Into DevOps. If you are hosting your own event in your local community, then please get in touch and tweet about it using the #SpringIntoDevOps hashtag.

What is DevOps?

If you’re new to DevOps, or want to explain it to your friends and colleagues, take a look at https://www.visualstudio.com/learn/what-is-devops/. We’ve posted informational content here to help you get started on building a DevOps mindset in your organization.

The DevOps Loop

Getting Started

Maybe you have decided that DevOps is the way to go and you want to take that next step with Continuous Integration and Continuous Delivery, here are some links to help you get started with applications in .NET, Java, Node, iOS, Android and more:

  • Build and Release– Implement continuous integration and continuous deployment to reliably deliver quality apps to your customers.
  • Test– Test continuously while you code, build, and deploy before releasing to production.
  • Package– Publish, discover, and install shared binary code from Team Build.
  • Deploy to Azure– Release apps to Azure services and Azure virtual machines.
  • HockeyApp– Distribute test releases for your mobile apps. Monitor usage and crashes.
  • Application Insights– Monitor performance and usage for your live web apps.

Live Events

There will be meetups and conferences this month and we would love to see you. If you are hosting your own live event, please let us know by tweeting about it using the #SpringIntoDevOps tag. We’d love to see you live, but check back for links to the recordings if you are not able to make them in person. We’ve posted these resources and registration links on http://aka.ms/SpringIntoDevOps.

Global Azure Bootcamp

Don’t forget that April 22 is also the Global Azure Bootcamp. There will be meet-ups happening in user groups all around the world with lots of DevOps content there to get your teeth into. You can find your nearest Global Azure Bootcamp here or learn how to set up your own.

Webcasts

If you can’t make the face-to-face events, then we have a few webcasts you might want to catch. We’d love to see you live, but check back for links to the recordings if you are not able to make them in person. Visit the Spring Into DevOps site for registration links.

Podcasts

If you prefer to listen, you’ll be hearing lots of #SpringIntoDevOps content on your favorite podcasts including .NET Rocks, RunAs Radio and RadioTFS. We’ll post links to individual shows here as they are published – but if you subscribe now to the shows you’ll get the episodes as they come out along with other great content.

Build

While we’ll be talking a lot during April about #SpringIntoDevOps the fun doesn’t stop in April. We’ve loads of great features coming out soon to make it even easier for your team to Spring Into DevOps. While the Build conference is now sold out, plan on watching the videos that come out of Build for the first look and some great new DevOps experiences coming soon – we’re really looking forward to seeing what you think.

Now is the Time to Spring Into DevOps

It has never been a better time to take that next step in your DevOps maturity and make it easy to get your software into production.  Concentrate on solving your customers’ problems, not the mechanics of getting the software into their hands. You might have already got your build automated and have some basic unit tests, but how do you get that software into a test environment for stakeholder feedback? How about pushing that software into your production environment? Please take the time this April to Spring Into DevOps and think about what you and your team could do to make it easier to build and deploy your code. Let us know what we can do to help and please share your success stories using the #SpringIntoDevOps hashtag.

Writing and debugging Linux C++ applications from Visual Studio using the "Windows Subsystem for Linux"

$
0
0

I've blogged about the "Windows Subsystem for Linux" (also known as "Bash on Ubuntu on Windows") many times before. Response to this Windows feature has been a little funny because folks try to:

  • Minimize it - "Oh, it's just Cygwin." (It's actually not, it's the actual Ubuntu elf binaries running on a layer that abstracts the Linux kernel.)
  • Design it - "So it's a docker container? A VM?" (Again, it's a whole subsystem. It does WAY more than you'd think, and it's FASTer than a VM.)

Here's a simple explanation from Andrew Pardoe:

1. The developer/user uses a bash shell.
2. The bash shell runs on an install of Ubuntu
3. The Ubuntu install runs on a Windows subsystem. This subsystem is designed to support Linux.

It's pretty cool. WSL has, frankly, kept me running Windows because I can run cmd, powershell, OR bash (or zsh or Fish). You can run vim, emacs, tmux, and run Javascript/node.js, Ruby, Python, C/C++, C# & F#, Rust, Go, and more. You can also now run sshd, MySQL, Apache, lighttpd as long as you know that when you close your last console the background services will shut down. Bash on Windows is for developers, not background server apps. And of course, you apt-get your way to glory.

Bash on Windows runs Ubuntu user-mode binaries provided by Canonical. This means the command-line utilities are the same as those that run within a native Ubuntu environment.

I wanted to write a Linux Console app in C++ using Visual Studio in Windows. Why? Why not? I like VS.

Setting up Visual Studio 2017 to compile and debug C++ apps on Linux

Then, from the bash shell make sure you have build-essential, gdb's server, and openssh's server:

$ sudo apt update
$ sudo apt install -y build-essential
$ sudo apt install -y gdbserver
$ sudo apt install -y openssh-server

Then open up /etc/ssh/sshd_config with vi (or nano) like

sudo nano /etc/ssh/sshd_config

and for simplicity's sake, set PasswordAuthentication to yes. Remember that it's not as big a security issue as you'd think as the SSHD daemon closes when your last console does, and because WSL's subsystem has to play well with Windows, it's privy to the Windows Firewall and all its existing rules, plus we're talking localhost also.

Now generate SSH keys and manually start the service:

$ sudo ssh-keygen -A
$ sudo service ssh start

Create a Linux app in Visual Studio (or open a Makefile app):

File | New Project | Cross Platform | Linux

Make sure you know your target (x64, x86, ARM):

Remote GDB Debugger options

In Visual Studio's Cross Platform Connection Manager you can control your SSH connections (and set up ones with private keys, if you like.)

Tools | Options | Cross Platfrom | Connection Manager

 

Boom. I'm writing C++ for LInux in Visual Studio on Windows...running, compiling and debugging on the local Linux Subsystem

I'm writing C++ in Visual Studio on Windows talking to the local Linux Subsystem

BTW, for those of you, like me, who love your Raspberry Pi tiny Linux computers...this is a great way to write C++ for those little devices as well. There's even a Blink example in File | New Project to start.

Also, for those of you who are very advanced, stop using Mingw-w64 and do cool stuff like compiling gcc 6.3 from source under WSL and having VS use that! I didn't realize that Visual Studio's C++ support lets you choose between a number of C++ compilers including both GCC and Clang.


Sponsor: Thanks to Redgate! Track every change to your database! See who made changes, what they did, & why, with SQL Source Control. Get a full version history in your source control system. See how.


© 2017 Scott Hanselman. All rights reserved.
     
Viewing all 13502 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>