You are here

MSDN Blogs

Subscribe to MSDN Blogs feed
Get the latest information, insights, announcements, and news from Microsoft experts and developers in the MSDN blogs.
Updated: 21 min 36 sec ago

UWP を Continuum に完全対応させるには?

Sat, 02/06/2016 - 09:26

#wpjp #wpdev_jp

UWPをContinuum に対応させるための方法をエバンジェリストの佐藤さんがまとめてくれました。

Continuum for Phone (電話用の Continuum) に対応したアプリを作成する

すいません。佐藤さんのネタをそのままパクッて簡略化してまとめます。サンプルや詳細な解説はぜひ、上記の佐藤さんの記事をご覧ください。(GitHubでサンプルも公開されています)

■ Continuum に対応するには

UWPを作ればOKです。

 

いま外部モニタかデバイスかどちらにいるか判断する

UIViewSettings.GetForCurrentView().UserInteractionMode の値が
UserInteractionMode.Mouse なら外部モニター
UserInteractionMode.Touch ならデバイス側で表示されてます。

画面サイズが変わった時などにこれで判断して、画面のデザインを変えたりするのがベター。

 

外部モニタとデバイスの両方に2つの別の画面を表示する

手順は4つかな?

  1. 外部モニター用のページを作る

    普通にページ(XAMLビュー)を追加するだけです。

  2. 今の画面のIDを取得する

    ApplicationView.GetForCurrentView().Id で取れます。

  3. 新しい画面を作って、その画面のIDを取得する

    画面(View)を作るには、Frameを作ってPageクラスにNavigateして、Activeにする。
    つまり App.xaml.cs でやっていることと同じです。
    そのまま2と同じ要領で画面ID取得できます。

    var rootFrame = new Frame();
    rootFrame.Navigate(typeof(ProjectionViewPage)); 
    Window.Current.Content = rootFrame; 
    Window.Current.Activate();
    int id = ApplicationView.GetForCurrentView().Id ;

    ただし、上記の処理をそのまま実行すると、新しい画面が今の画面とすり替わってしまうので、
    そうならないように(2つの画面が両方存在するよう)この処理は別のUIスレッドとして処理をします。

    await CoreApplication.CreateNewView().Dispatcher.RunAsync(
        CoreDispatcherPriority.Normal, () =>
        {
            :
        });

  4. デバイスと外部モニタにそれぞれの画面を出す

    2つの画面ができたら、StartProjectingAsync で画面のIDを指定するだけ。
    IDの順番は外部モニタに出す方、デバイスに出す方の順。

    await ProjectionManager.StartProjectingAsync(4のID, 2のID);

図解すると、こう。ちなみに、この画面IDをアプリ全体で覚えておけば、外部モニター側の画面を停止したり、デバイス側と外部モニター側の表示を入れ替えたりすることができるので、そういうことをやりたい場合は、覚えておくといいでしょう。(佐藤さんのサンプルが参考になります)

グダグダ書いたけど、ソースコードで言えばこれだけ。2画面をどう生かすかはあなた次第。

private async void Projection_Click(object sender, RoutedEventArgs e)
{

    if (ProjectionManager.ProjectionDisplayAvailable)
    {
        int thisViewId = ApplicationView.GetForCurrentView().Id;
        int newViewId = 0;

        await CoreApplication.CreateNewView().Dispatcher.RunAsync(
            CoreDispatcherPriority.Normal, () =>
            {
                var rootFrame = new Frame();
                rootFrame.Navigate(typeof(ProjectionViewPage));
                Window.Current.Content = rootFrame;
                Window.Current.Activate();
                newViewId = ApplicationView.GetForCurrentView().Id;
            });

        await ProjectionManager.StartProjectingAsync(newViewId, thisViewId);
    }
}

 

 

おまけ Continuum に対応させない(外部モニターでは表示させない)

普通はあまりやらないだろうけど、どうしても Windows 10 Mobile 専用で、かつ大きな横型の画面には対応させたくない、って場合はこれね。スマフォ専用のゲームとかアプリとかそんな場合ね。

Package.appxmanifest をコードで表示して以下を追加

<Applications>
    <Application ...>
      <Extensions>
        <mobile:Extension Category="windows.mobileMultiScreenProperties">
          <mobile:MobileMultiScreenProperties RestrictToInternalScreen="true"/>
        </mobile:Extension>
      </Extensions>
    </Application>
  </Applications>

Cross Forest Management - (Create groups with FSP's as Members) Part 2

Sat, 02/06/2016 - 07:08
In continuation of Cross Forest Management - (Create groups with FSP's as Members) Part 1 At this point you should have Groups from the Source Forest being created in the Destination Forest with the "FSP" of the user instead of the member of the group in the Source Forest. If for some reason the FSP's were not being created as members of the groups in the destination forest than i would verify that you are flowing objectSid from the Source forest into the metaverse for Users and Groups. Now...(read more)

DynamicsPerf 2.0 QUERY ALERTS

Sat, 02/06/2016 - 06:45
In the upcoming Beta 3 of DynamicsPerf 2.0, we have implemented a new feature called QUERY ALERTS. The inspiration for the design has come from all of you. One of the big challenges that we all face with performance is that sudden slowdown of the system. In general, this happens for 2 major reasons, database blocking or parameter sniffing. Everyone has a solution for monitoring database blocking including DynamicsPerf with Extended Events in version 2.0. The other issue, parameter sniffing...(read more)

Why should I teach Java out of Visual Studio Code instead of out of Eclipse or Netbeans?

Fri, 02/05/2016 - 22:39
Why should I teach Java out of Visual Studio Code instead of out of Eclipse or Netbeans?

 

1. Easier File Mapping 

 

In Visual Studio, we can add a file from a path to a project located in a workspace, and Visual Studio records the reference to a new file and opens it like any other file. But, in Eclipse and Netbeans, the structure of a project's elements must correspond to their layout in the underlying file system.

 

2. File Size & Download Speed - 3X Better!

 

Eclipse is 166 MB to download for Java. Even more for the other versions! To download the Java EE version of NetBeans, it's 186 MB. And it's 205 MB for all four languages. Now compare that to Visual Studio Code, which is only 58 MB for all 34 languages! Imagine having to wait three times longer per download/install on each computer in your school! And then downloading and installing the new versions for each of those machines!

 

3. No Plugins for Other Languages

 

Unlike Eclipse, in Visual Studio Code, you don't need a plugin to use other languages, like C#, F#, HTML5, Python, and Ruby. You can transition quickly to other languages!

 

4. Exposure to Other Languages - 8X More Languages!

 

Java is important, but it should just be one language on the road to learning computer science! Eclipse only has Java (out of the box), and NetBeans only has 4 languages out of the box (Java, C++, HTML5, and PHP). But Visual Studio Code includes 34 languages out of the box! (Java, C#, C++, HTML5, PHP, VB, CSS, XML, JavaScript, Python, Ruby, Go, Perl, R, SQL, JSON, F#, PowerShell, and more!) And if it doesn't have your language, it's far easier to add it into Visual Studio Code than the other IDEs!

  

Comparison

Wikipedia

  
Languages Out of the Box

  • Eclipse: 1 (Java)
  • NetBeans: 4 (C++, HTML5, Java, PHP)
  • Visual Studio Code: 34 (Batch, C#, C++, Clojure, CoffeeScript, CSS, DockerFile, F#, Go, HandleBars, HTML5, Ini, Jade, Java, JavaScript, JSON, Less, Lua, Makefile, Markdown, Objective-C, Perl, PHP, PowerShell, Python, R, Razor, Ruby, Rust, Sass, SQL, TypeScript, Visual Basic, XML)

File Size

  • Eclipse: At least 166 MB
  • Netbeans: 205 MB
  • Visual Studio Code: 58 MB

 

Questions for You
  1. Did I get everything accurate? If anything isn't 100% accurate, please reply and explain why!
  2. Could any of the reasons use better clarifications or explanations/details? Please reply with the info!
  3. Are there any reasons to teach Java in Visual Studio Code that I missed? Reply with the reasons!
  4. Any reasons not to teach Java on Visual Studio Code?

 

Thank you for reading! Please reply with your answers to any of the four questions above!

 

Have a day! Not just any day! Have this one!

   - Ninja Ed

Investigating issues with Cloud Load Test Service- 2/6 - Investigating

Fri, 02/05/2016 - 21:32
Initial Update: Saturday, 6 February 2016 05:29 UTC

We are actively investigating issues with Cloud Load Test in VS Team Services. A small subset of customers in Australia region may experience internal server error in accessing Cloud Load Test service.

We are working to resolve this issue and apologize for any inconvenience.

Sincerely,
VS Team Services Service Delivery Team

IoT & Marketing

Fri, 02/05/2016 - 21:08
The Internet of Things will enable us to get data & insights that was not available till now. It will trigger a massive influx of Big Data. This goldmine of data in conjunction with the proprietary, public and purchased data represents a turning point for marketing. I had the opportunity to discuss Iot and its impact on Marketing at the recent Data Marketing Conference in Toronto. Thank you Palma for the invitation. Here are the slides that I used for the presentation:...(read more)

Pages

Drupal 7 Appliance - Powered by TurnKey Linux