What’s the difference between an on-premises business model and a cloud subscription-based business model?

Are you asking yourself “What’s the difference between an on-premises business model and a cloud subscription-based business model?”

How can I increase revenue by selling cloud solutions?

Are these some of the questions you are asking yourself as you think about developing cloud solutions and shifting offerings to include cloud.

Module 3 of the Cloud Profitability Program series, “Developing cloud solutions – shift your offerings,” can provide great insight.

Check it out TODAY! http://www.digitalwpc.com/Community/Perspectives/Pages/Training-Spotlight-Developing-cloud-solutions.aspx

Surface Pro 3 cursor disappears

I like my new Surface Pro 3. Things were working fine and all of a sudden, the cursor would disappear. I just have the Type Cover and a memory card installed: no other hardware. Narrowing down the issue: if I move my finger in circles on the trackpad to make the cursor move in small circles in the same area on a web page in IE, or Word or Visual Studio, the cursor disappears in a few seconds. I made sure my finger does not go anywhere near the edge of the trackpad and the mouse stays within the same…(read more)

Fun with the Interns: Christian Salgado Catalogs .NET APIs

A few weeks ago when I was up in Redmond I had the pleasure of interviewing some interns on the .NET team to talk about their experience as an intern at Microsoft and to show off the projects they are working on.

In this interview I sit down with Christian Salgado, a Developer Intern on the .NET BCL team, and we chat about his internship experience and summer project. Christian built an internal website and service that allows anyone in the company to browse the huge catalog of .NET APIs by profile. It also includes syntax, usage and design notes. He used ASP.NET MVC5 and Web API 2 to build the site and service and said it was “pretty comprehensive and straightforward to use“. So for those of you just starting out, check out the awesome tutorials on http://www.asp.net

Watch: Fun with the Interns: Christian Salgado Catalogs .NET APIs

And for all those students out there pursuing a career in computer science, you should consider an internship at Microsoft. You can help build real software that helps millions of people! Learn more about the Microsoft internship program here.


Sharepoint Foundations 2013 Configuration Script

##### Below is a script to Configure Sharepoint Foundations 2013 on Server 2012 or 2012 R2 (Installation on Server 2012 R2 requires the SP1 Package) #####

##### No edit is required to the script, execute the script on the server where Sharepoint Foundations 2013 is installed and enter information when prompted. ######

##### You can also enter this code in sections if desired #####

###### Download Sharepoint Foundations 2013 SP1 Here ######

##### Copy Script below Red Highlighted Text, or download attached script #####




##This first line only needs to be run if you’re not running the Sharepoint 2013 Management Console.
Add-PSSnapin Microsoft.SharePoint.PowerShell -EA SilentlyContinue

function Prompt-ForInput
 $success = “n”
 while($success -ne “” -and $success.ToLower() -ne “y”)
  $val = Read-Host $message
  $success = Read-Host “You entered: $val. Is this correct? Enter y or n”
 return $val

##All sections highlighted in Pink are currently not in use
##This next block of code sets your variables the script will need to build your Sharepoint Site
## Below you will need to know the following information
## NetBIOS Domain name
## The account that will be used run the actual website
## An account that will be used as a Farm Administrator
$Domain = $(Get-ADDomain).Name
$svcFIMPool = Prompt-ForInput “Enter the FIM Service Pool”
$FarmAdminUser = Prompt-ForInput “Enter the Farm Account”
$SecFarmAdmin = Prompt-ForInput “Enter the Secondary Site Administrator”
$Site = “http://” + $(Prompt-ForInput “Enter the site url”)

##The next block of code sets the credentials being used to create the site
New-SPManagedAccount -Credential (Get-Credential -Message “FIMSPFPoolAccount” -UserName “$Domain$svcFIMPool”)

##A pop up will appear for you to type in the Password of the account that was set as the variable of $svcFIMPool
##You may need to correct the username in the following format DOMAINACCOUNT NAME
##Enter the Password in the window

##The next block of code will create the application pool
New-SPServiceApplicationPool -Name FIMSPFPool -Account $svcFIMPool

##This next block of code This creates a Web application that uses classic mode windows authentication
New-SPWebApplication -Name “FIM” -Url $site -Port 80 -SecureSocketsLayer:$false -ApplicationPool “FIMSPFPool” -ApplicationPoolAccount (Get-SPManagedAccount $($svcFIMPool)) -AuthenticationMethod “Kerberos” -DatabaseName “FIM_SPF_Content”

##This block of code creates the creates the SP Site
New-SPSite -Name “FIM” -Url $Site -CompatibilityLevel 14 -Template “STS#0″ -OwnerAlias $FarmAdminUser

##This next block of code sets Secondary Site Administrator
Set-SPSite –Identity $Site –SecondaryOwnerAlias “$Domain$SecFarmAdmin”


##This block of code disables server side view state which is required for FIM
$contentService = [Microsoft.SharePoint.Administration.SPWebService]::ContentService
$contentService.ViewStateOnServer = $false

##This last block of code disables self-service upgrade to 2013 Experience mode
#2013 Experience mode is not supported by FIM
$SPSite = SPSite(“http://FIMPortal“)
$SPSite.AllowSelfServiceUpgrade = $false

DataGridView ??????????????????

こんにちは、Visual Studio サポートチームです。

今回は、Windows フォーム アプリケーション上でタッチ操作をした場合に、意図せぬ動作となる現象とその回避方法をご紹介します。

Windows フォーム アプリケーションでよく使われるコントロールの 1 つに、DataGridView コントロールがあります。.NET Framework 2.0 から登場したこのコントロールは、データを表形式で表示でき、セル内の値の編集、行や列の追加や削除が簡単にできる非常に柔軟性の高いコントロールのため、アプリケーションの規模を問わず幅広く利用されています。

今回は、この DataGridView コントロール上でフリック操作によるスクロールをした場合の現象です。タッチ ジェスチャには様々なものがありますが、フリックとは 1 本または複数の指で移動したい方向に画面を素早くなぞるジェスチャのことで、マウスでのスクロールと似ています。下図のような動作です。


DataGridView コントロールに複数のデータを表示させるとき、スクロール バーを用いることができますが、フリック操作により単一ビュー内で移動することができ、たとえば表内に収まらないセル等を表示できます。

しかしながら、このフリック操作による縦方向のスクロールで、スクロール バーと表示内容が一致しない場合があります。

たとえば、要素数が 30 個の場合、スクロール バーが下端まで移動すれば、30 個目の最下端セルが表示されますが、本現象の場合、スクロール バーが下端まで移動しても最下端のセルが表示されません。上端に移動させた場合も同様に、最上端のセルが表示されません。

- 上方向にスクロールした場合

・正常時                                           ・現象発生時


 - 下方向にスクロールした場合

・正常時                                           ・現象発生時



 - 原因
この現象は、DataGridView コントロールにおける不具合によって必要なメッセージが送信されないため、表示領域とコントロールの座標との整合性が取れなくなり発生します。タッチ操作に起因するので、マウスによるスクロールでは発生しません。


- 回避方法 
アプリケーション側でウィンドウ メッセージを取得し、操作することによって回避することが可能です。

具体的には、縦スクロールした場合に発生する WM_VSCROLL メッセージを捕捉し、その通知コードが SB_THUMBPOSITION であれば、SB_THUMBTRACK の通知コードをもつ WM_VSCROLL メッセージをポストします。

WM_VSCROLL message


1. ウィンドウ メッセージを受信するために、DataGridView コントロールを継承した独自の DataGridView コントロールを作成します。 (下記回避コード例では
MyDataGridView に相当)
2. 独自の DataGridView コントロールにてウィンドウ プロシージャをオーバーライドし、WM_VSCROLL メッセージを取得します。
3. WM_VSCROLL メッセージ取得後、SB_THUMBTRACK の通知コードをもつWM_VSCROLL メッセージをポストするデリゲートを非同期で実行します。
4. 標準の DataGridView コントロールの代わりに、独自の DataGridView コントロールを使用します。


- 回避コード例 (C#)
private const int WM_VSCROLL = 0×0115;
private const int SB_THUMBPOSITION = 0×0004;
private const int SB_THUMBTRACK = 0×0005;
private static extern int PostMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);

public class MyDataGridView : DataGridView
       // メッセージを処理します。
       protected override void WndProc(ref Message m)
           base.WndProc(ref m);

           if (m.Msg == WM_VSCROLL) 
              if (LoWord((long)m.WParam) == LoWord((long)SB_THUMBPOSITION))
                  BeginInvoke((Action<IntPtr, IntPtr>)((WParam, LParam) =>
                      // SB_THUMBPOSITION を SB_THUMBTRACK に変更します。
                      IntPtr testWParam = new IntPtr(SB_THUMBTRACK);
                      // WM_VSCROLL メッセージを再送します。
                      PostMessage(this.Handle, WM_VSCROLL, testWParam, LParam);
                  }), m.WParam, m.LParam);


上記回避方法については、お客様において十分にご確認、ご検証くださいますようお願いします。なお、DataGridView コントロールの仕様変更および .NET Framework のバージョン アップ等に伴い、動作が変更される可能性がありますので、ご注意ください。





Updating documentation landing page

The Service Bus team has been hard at work the last few months delivering updates with the Azure SDK for .NET 2.4 and working on Event Hubs (my favorite Azure service).  We have also been updating our documentation landing page and expanding our community engagement efforts. 

On the documentation front we’re using the following guidelines to tune our Service Bus Documentation Landing Page experience.  This is really the starting point for users of Service Bus and we plan to keep it updated more frequently and make it a destination. 

A concise message: The pun is intended here.  Flexible messaging in the cloud – this is the core of what Service Bus is. 

Scenario Based Experience: There are four core scenarios highlighted at the top of this page built from what we see our customers do repeatedly with Service Bus.  These are pages where all the reference information needed to accomplish the scenario will be available: from background architectural principles to hands on examples and videos.  These pages will grow and change based on feedback and the evolving Azure service offerings. 

Simplicity of layout and content: Our emphasis on the two areas of Explore and Build reflect our desire focus interest and effort nto learning and implementation with the range of Service Bus features including Event Hubs, Queues, Topics, and Relay.

Consistency of experience with a focus on all languages: Azure is a platform, not a traditional operating system.  As a pure cloud offering Azure is available to any operating system or language and our focus going forward will be on highlighting the importance of languages other than the .NET family.  To this end each language tab now includes resources relevant to that particular language in addition to Service Bus examples. 

More changes are on
their way and constructive feedback is always welcome and appreciated.  Leave a comment or email the team with suggestions.