You are here

Feed aggregator

Discovering SSRS Report Parameters using PowerShell

MSDN Blogs - 1 hour 23 min ago

We can use PowerShell to discover many SSRS properties, including the different parameters available in a report. This blog post is based on SQL Server 2014 and PowerShell V5.

Here is an example:

[caption id="attachment_2904" align="aligncenter" width="783"] SSRS parameters in SSDT Preview[/caption]

This particular report utilizes different variations of parameters. To review, here are the available data types for SSRS report parameters:

[caption id="attachment_2905" align="aligncenter" width="215"] SSRS Parameter Data Types[/caption]

In the example above, Customer ID is an integer. Order Date From and To are dates. Online Flag is a boolean. Min Total Due is a float. Status is a multi-value text.

Additional properties can be found in the Report Parameter window, including whether the parameter is nullable, if it's multivalued, or if it's visible or hidden, etc.


[caption id="attachment_2907" align="aligncenter" width="214"] SSRS Parameters Additional Properties[/caption]

In the SSRS parameter window side bar, you will also find options to see available values or default values for a parameter:

[caption id="attachment_2908" align="aligncenter" width="860"] SSRS Available Values for Parameters[/caption]

To do this in PowerShell, the first thing to do is to add the assembly that will allow us to create the ReportViewer object. Note that the version and public key token are specified, so check the version you have on your machine to ensure the accuracy.

# Add assembly
Add-Type -AssemblyName "Microsoft.ReportViewer.WinForms, Version=, Culture=neutral, PublicKeyToken=89845dcd8080cc91"


Next we need to create a report viewer object:

# Create report viewer object
$rv = New-Object Microsoft.Reporting.WinForms.ReportViewer


Once we have the report viewer object, we can set the Report Server URL and the report we want to use:

# Report Server Properties
$rv.ServerReport.ReportServerUrl = "http://localhost/ReportServer"
$rv.ServerReport.ReportPath = "/Sales Reports/Sales Report"


To get a list of all the discoverable parameters and their values, we can simply use the ServerReport.GetParameters() method:
# Get parameters

This will give us a result like this for every parameter in our report:

[caption id="attachment_2911" align="aligncenter" width="646"] SSRS Parameters in PowerShell using ServerReport.GetParameters()[/caption]

However if you want it to be more readable or formatted, we can target only the specific parameters we want to see, and display them in a more easily digestible manner. To do this, we can pipe the parameters to a Foreach-Object cmdlet, and utilize a PowerShell PSCustomObject to save our selected fields and their formatted values. In the example below, I also extract the valid values for each parameter, if they exist, and concatenate them into a single string

$rv.ServerReport.GetParameters() |
ForEach-Object {
$param = $_
$validValues = ""
if ($param.ValidValues -ne $null)
$validValues = [string]::Join(",", ($param.ValidValues |
ForEach-Object {$_.Value}))

$item = [PSCustomObject] @{
ParamName = $param.Name
DataType = $param.DataType
Nullable = $param.Nullable
MultiValue = $param.MultiValue
ValidValues = $validValues

#display current object
} |
Format-Table -AutoSize

Result will look like this:

[caption id="attachment_2898" align="aligncenter" width="860"] Discovering SSRS Report Parameters using PowerShell[/caption]

This is just the start. You can use this script to discover parameters for multiple reports in a folder, and email you (or your report developers) of a comprehensive list for those reports.

Pretty neat!

What is cool about the Surface Pro 4?

MSDN Blogs - 1 hour 36 min ago

Did you hear the recent announcements about the new Windows devices from Microsoft?  The Surface Book, the Surface Pro 4, the new Microsoft Band, and the brand spanking new Lumia's - it feels like Christmas has come early!  As i reviewed the new devices i started to evaluate what the Surface Pro 4 could do for me and why a small business might want to get their hand on this cool new device. 

So here are my top 5 cool features of the new Surface Pro 4 for small business.

Speedy Business owners are busy people with an ever growing and ever more demanding workload.  The Surface Pro 4 is powered by Windows 10 and turns from a tablet into a full powered laptop while running all of your desktop software.  No more faffing between devices - this has the power to do it all.  If you are into your speeds and feeds then the Surface Pro 4 has improved processing power with an Intel® Core™ i7 processor and up to 16GB RAM - basically its fast and powerful! All day...All night The battery lasts up to 9 hours so you can work uninterrupted. Play videos, run multiple applications, take photos, make notes - whatever your day requires it is at your fingertips. So pretty Sleek, sexy and snappy!  It has a beautiful magnesium shell, sports a 12.3" HD touchscreen display and has the popular continuous kickstand offering multiple viewing angles - on the train, in the coffee shop or chilling out on the sofa with a pizza - it adapts to fit to how and where you need to use the device. It wont weigh you down Just 766 grams - almost equivalent to a loaf of bread! it is the lightest Surface yet - but don't put it in the toaster! Windows and Office are best mates You will get the best version of Windows which is always up to date as well as the seamless integration with familiar Office apps that keep you productive wherever.  Find out more about the Surface Pro 4 and what it can bring to you and your business.

E-brožúra "Vývoj paralelnej WCF služby v jazyku C#"

MSDN Blogs - 2 hours 5 min ago

V MSDN knižnici bezplatných kníh je nová e-kniha "Vývoj paralelnej WCF služby v jazyku C#" od MVP Jána Hanáka z cyklu „Visual Studio 2015: Hotové riešenia“ zameraná na vývoj distribuovanej WCF služby v jazyku C#. Hlavná časť vytvorenej WCF služby je implementovaná sekvenčne aj paralelne s dôrazom na správne určenie nárastu výkonnosti paralelnej funkcionality WCF služby voči sekvenčnej implementácii tejto služby. WCF služba má zavedený riadený paralelizmus, a to s využitím objektov a programových konštrukcií knižnice Task Parallel Library (TPL). Príložené príklady sú vytvorené v Microsoft Visual Studio 2015 Community Edition.

V e-knihe nájdete kapitoly:
  Moderné paradigmy vývoja počítačových programov
  Paradigma distribuovaného a servisne orientovaného (SOA) programovania s technológiou WCF
  Praktický vývoj WCF-služieb v jazyku C# 6.0 na platforme .NET 4.6
   - Vývoj sekvenčnej WCF-služby v jazyku C# 6.0
   - Vývoj paralelnej WCF-služby v jazyku C# 6.0
   - Softvérové metriky sekvenčnej WCF-služby a paralelnej WCF-služby

Sťahujte, čítajte, skúšajte!


Moving into the next generation of the Microsoft MVP Award

MSDN Blogs - 3 hours 52 sec ago

For more than 20 years, MVPs have played a vital role in the advancement and adoption of our technologies. First, to all of the MVPs out there, I want to say THANK YOU! We could not do what we do without you. Through candid, trusted conversations with Microsoft engineers, MVPs not only provide early feedback on what’s coming next, but also often inspire new ideas and features based on real-time experiences in today’s fast-changing ecosystem.

Over the years, I’ve been fortunate to have spoken with many MVPs. I am always impressed by the eagerness to learn that all MVPs seem to share, as well as the common desire MVPs have to share knowledge with others. MVPs design, build and innovate across multiple platforms, devices and technologies, creating holistic solutions and helping others do the same. That agility and openness is part of the fabric of today’s cloud-first, mobile-first world.

In the same way that we have listened to invaluable feedback about our products, we have also heard feedback about the MVP program itself. We’ve heard that the MVP program has had limitations in recognizing the breadth of work MVPs do and that the range of product teams MVPs want to communicate with is limited and that doing more with our field teams in local geographies is important.  I am pleased to announce that we are taking steps to act on this feedback and evolve the MVP program to support these objectives.  

Moving forward, we are shifting the MVP Award structure to encompass the broad array of community contributions across technologies. For our Developer and IT Pro oriented MVPs, we’re moving from 36 areas of technical expertise to a set of 10 broader categories that encompass a combined set of 90 technology areas—including open source technologies. This will enable much broader contribution recognition for these MVPs, coupled with a durable award title and will also eliminate the limitation of awarding MVP status in only one area.  Please click here to see the full overview of the new program.

This structure is designed to keep the program aligned with Microsoft’s biggest priorities and, at the same time, allow us all to be agile with the pace of innovation and change in the market. With much better insight and recognition of the wide range of contributions you make, we expect our product and local field teams to capitalize on this enhanced visibility and have broader and deeper connections with MVPs. In addition, we are making investments to add more value to the MVP-Microsoft relationship. For example, we will be opening up our Channel 9 online video platform, for the first time, to publishing by MVPs, as MVPs.

We want to create a great MVP Award experience for everyone and, as always, are eager to hear what the community thinks. I am very excited about what the future holds as we, as a community, work even more closely together to empower every person and every organization on the planet to achieve more.


MVP Award About to Get Even Better!

MSDN Blogs - 4 hours 8 min ago

Exciting news for the MVP community today! Steve Guggenheimer (Guggs), corporate vice president of Microsoft's Developer eXperience & Evangelism (DX) group, talks about changes to the award and what MVPs mean to Microsoft in his blog. Check it out here.

Exploring your Microsoft Dynamics NAV Data with Power BI

MSDN Blogs - 4 hours 30 min ago

Microsoft Dynamics NAV is a business management solution for small to medium organizations. It offers customers a full solution for their business with greater control over their financials and business processes. The Power BI content pack provides out-of-box reports for Dynamics NAV users, such as sales and profit, opportunities pipeline, profitability and more. These metrics are organized on a dashboard that can be fully customized, allowing you to easily connect and immediately start exploring your data.

This post will explain how the Power BI content pack can help you explore your Microsoft Dynamics NAV data. For additional details on how to get started, please see the Microsoft Dynamics NAV content pack for Power BI help page.

After connecting with your Microsoft Dynamics NAV credentials, your data will begin loading into Power BI and you will be notified when the dashboard is ready. In addition to the out-of-the box dashboard there are 7 reports built on top of the dataset.  To begin exploring the reports select one of the tiles on the dashboard. For example, if you select the tile that shows Sales This Month it will drill into the Sales report.

Each report includes a set of visuals with different insights. For additional information you can hover over any of the items, or select a particular value to cross filter other visuals on the page. The Sales report provides insights such as the sales amount by customer group and product. On this report you can select a specific salesperson from the salesperson name slicer to filter the data for that person.

Any of the visualizations from the reports can be pinned to the dashboard by hovering over it and selecting the pin icon. In each of the reports you can switch to edit mode where you can edit or add additional visuals to your reports.

After the initial import, the dashboard and the reports continue to update daily. You can control the refresh schedule by selecting the dataset. With the Microsoft Dynamics NAV content pack for Power BI, you have an initial set of metrics and insights enabling you to explore your data even further.

We’re always interested in hearing your feedback – please contact us at to let the team know how your experience was and if there’s anything we can do better. We look forward to hearing from you!

Social BI Guest Blog - Buzzlogix: The Future of Business Engagement on Social Media

MSDN Blogs - 4 hours 45 min ago
The following is a guest post by Buzzlogix, creators of a social media management, monitoring, and engagement platform. Buzzlogix has multiplied the capabilities of its social BI analysis tools by integrating the Microsoft Translator API into its platform; it is able to automatically convert foreign language posts into a single language for analysis.

It's near impossible to keep up with the millions of posts, tweets and messages your customers and prospects are sending out every second. How can a business keep up? We, at Buzzlogix, was founded by Scott Sims and Niko Makris. We discovered businesses were missing out on key opportunities to listen and engage with their audience. The light bulb moment went off and we hit the ground running to change how businesses can use social media.

"We make social listening, engagement, and publishing easy and within reach," says Sims.

We asked ourselves in 2014, "Why isn't there an easier and more efficient way to track all social media platforms, listen and respond faster."

We've all had an issue with a business so we tweeted to them the problem...and they didn't respond! Businesses aren't listening!

"We saw there was not a good, unified solution for the mid-market without paying an arm and a leg," Sims concluded.

Buzzlogix was born.

Buzzlogix is your digital set of "headphones" you virtually plug into a social network and see:

  • What others are saying about YOUR brand
  • Prospects who need and search for your solution and but haven't found you.
  • What your competitors are doing.

It doesn't just stop at traditional social media platforms, our technology taps into over 50 Million sources including: blogs, forums, news and discussion posts.

We knew were taking on some heavy-hitters such as Hootsuite and Buffer, but our competitors don't provide anything close to what Buzzlogix's technology gathers.

"Most of the solutions on the market lack the social listening and the deep learning functionality," says Sims.

The technology to tap into over 50 million social networks, gather relevant data about your ideal customer (including demographics and even purchasing behavior) is a massive money and time saver for any business.

Imagine your business getting automated notifications for:

  • Mentions of your brand,
  • Buzzwords from potential customers
  • Complaints about your competitor you can fulfill.

You can respond in mere seconds.

Social media suddenly becomes more than just a tool to shout your message.

From the Buzzlogix dashboard, you easily can hear in your customer's words what their needs, wants and desires are. This guides your marketing team. Tracking keywords prospects post helps your sales team. Responding in seconds to your customer helps your brand overall.

We realized we post to social networks for one reason: To Be Heard. When you show you heard and engaged with them, not as a faceless business, but a caring listener, you've just won a lifelong customer.

Recently, we joined the Microsoft Bizspark program early on and are excited to be using the Bing Search API and the Microsoft Translator API within the Buzzlogix technology.

Bizspark tools have helped get our Buzzlogix team out of our heads and out into the world. It's put them way ahead of their competitors in less than 2 years. We can now leverage language detection and translation services for over 50 languages right inside our application with Microsoft Translator API. Our customers love the option to be able to translate social media comments and posts back into their native language. This helps social media teams pull insights from markets all over the world

This is the future for social media in businesses. Your business won't need to bang your head against the wall wondering what to post. In a couple clicks, you can see what your customers want to know and what they need.

Our Buzzlogix technology brings the "social" aspect BACK into social media with our three step approach: Listening, Analyzing, and Engaging.

It's automated on one user interface and simple to plug into your team right away.

Customers and prospects simply want to be heard and engaged with and Buzzlogix makes it easier than anyone else.

We plan to release our product for commercial use in the 1Q of 2016. For more information visit (

HoloLens Developers : Are you ready?

MSDN Blogs - 5 hours 58 min ago

Hopefully by now you have recovered from all the excitement around the Microsoft hardware announcements yesterday. Personally I am looking forward to the Windows Continuum experience on the new Lumia phones. Here is a quick video by The Verge doing a hands on demo.


However, I was surprised that most of my friends were more interested in HoloLens. I think the technology is super cool, but I am probably not going to get my hands on one atleast this year. I would rather focus on the toys I can get :) Xbox games, Lumia, Surface 4, Surface BOOK! (my coworkers are telling me to stop drooling at this point....)

However, I did want to share the link the Developer Registration portal for those of you who are interested. There is an application process, and devices are slated to ship in Q1 of 2016. If you can think of some cool new experiences to build with the HoloLens kit, then please submit an application with as much details about your idea and application. The more details you share, the better chances you have of getting accepted. Good Luck!

September updates to Azure RemoteApp

MSDN Blogs - 6 hours 14 min ago

Within the month of September 2015, we released the following new features and capabilities for Azure RemoteApp:

  • Infopath added to the Microsoft Office 365 template and gallery image. 
  • Windows client. was updated, includes end user feedback dialog (shown randomly to a subset of users) in order for user to provide connection specific feedback/response.
  • iOS client was updated to version 8.1.13 which included fixes to improve error messaging for Azure RemoteApp, and an issue where ARA users credentials were expiring earlier than expected.
  • Office 2016 is not supported in Azure RemoteApp yet, we are completing final testing and will have new images published when ready.
  • Quick links for previous monthly updates for March, April, May, JuneJuly, and August for Azure RemoteApp.

The following documentation was released and updated 


  • Microsoft Ignite Roadshow is a 12 city worldwide tour that starts in November and we’ll be there speaking on Azure RemoteApp, since the May 2015 Chicago Ignite event was such an overall success Microsoft decided to take it on the road as a roadshow in 12 cities, the locations are: Dallas, New York, Toronto, Singapore, Sao Paulo, Los Angeles, Mexico City, Dubai, Bangalore, London, Copenhagen, and Hong Kong.  Check here for dates and further information.
  • Members of the Product Group will be in Toronto October 26-27th, New York October 28-30th, Houston November 2-5th 2015 attending customer events.
  • We’ll be presenting two sessions at Ignite Australia the week of November 17th, the sessions are, “Fundamentals of Azure RemoteApp management and administration” and “Advanced Azure RemoteApp deployment and configuration”
  • Meet the Product Group, if you or your organization would like an in-person meeting with us at any of the locations mentioned above let us know so we can coordinate logistics.  Email us at with “Customer meeting request:  <name of organization>” in the email title along reasons for the visit and discussion topics. 

Related resources:

Thank you from the entire Remote Desktop (Azure RemoteApp) team!

Remove ‘Server’ and ‘X-Powered-By’ headers from your Azure Mobile Apps

MSDN Blogs - 6 hours 51 min ago
function CopyCode(elemName) { var obj = document.getElementById(elemName); window.clipboardData.setData("Text", obj.innerText); }

Knowing the server type and what it is running can be information that an attacker may leverage.  This article explains how you can remove the subject headers.

Azure Mobile Apps are really Azure Web Apps.  You can configure the headers by altering the Web.Config just like you would with a standard ASP.Net application!


Here is an example of the headers returned from a simple Azure Mobile App (replace contosomobileapp with the name of your Mobile app):

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 422
Content-Type: application/json; charset=utf-8
Expires: 0
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=df41f72d5dafaca237feeeb4df546bb62b24197ead56d3e53c2496c1f90fe094;Path=/;
Date: Wed, 07 Oct 2015 13:13:57 GMT


Open the site Web.Config in your Visual Studio project and find the <system.webServer> section

Add these two sections inside this section:

Copy Code: <security> <requestFiltering removeServerHeader ="true"></requestFiltering> </security> <httpProtocol> <customHeaders> <remove name="X-Powered-By"/> </customHeaders> </httpProtocol>

So the final Web.Config section will look something like this:

(you can ignore the squiggle under removeServerHeader)

Now right mouse click on the Web.Config in your Solution Explorer view and choose publish:


The headers are removed:

HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 422
Content-Type: application/json; charset=utf-8
Expires: 0
Set-Cookie: ARRAffinity=df41f72d5dafaca237feeeb4df546bb62b24197ead56d3e53c2496c1f90fe094;Path=/;
Date: Wed, 07 Oct 2015 13:19:07 GMT


As you can see Azure Mobile Apps are really Azure Web Sites with some additional code to access and present data.  You can easily configure your Azure Mobile App using the Web.Config like you would for an ASP.Net app deployed on Azure Web Sites.

Let me know if this was a help to you!

How do we change permissions on a share as fast as Explorer does it?

MSDN Blogs - 7 hours 52 sec ago

A customer wanted to know what they could do to speed up changing permissions on a share.

We have a large share (over 50,000 files in over 5000 folders). If we have four or five users with access to the share, and we add one more user, it takes around two minutes. If we have a hundred users and add one more, it takes around seven minutes. Here's the code we are using to add a user:

// Get the current ACL on the directory. var info = new DirectoryInfo(sharePath); var security = info.GetAccessControl(AccessControlSections.Access); // Create a new rule that grants the user read access. var rule = new FileSystemAccessRule(user, FileSystemRights.Read | FileSystemRight.Synchronize, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.None, AccesControlType.Allow); // Add the rule to the existing ACL. security.AddAccessRule(rule); security.SetAccessRuleProtection(true, false); // Set the modified ACL back on the directory. info.SetAccessControl(security);

What can we do get this code to perform as well as Explorer?

One suggestion was to create a security group that encompasses the people who have access to the share. The job of controlling who has access to the share is now delegated to the security group. When you need to grant Bob access to the share, you merely add Bob to the security group. When you decide that Bob no longer has access, you remove him from the group.

The customer liaison replied, "The customer cannot use this workaround. How can they improve their code so it is as fast as Explorer?"

We were unable to figure out exactly why the customer refused to use security groups. Whenever we asked, the customer merely changed the subject and asked how to get their code to be as fast as Explorer.

I stepped in and pointed out the obvious:

The customer's code is not doing what they claim they are doing. They claim to be changing share permissions, but the code is actually changing directory permissions.

To change share permissions, use Get­Named­Security­Info to read the existing permissions on the share and Set­Named­Security­Info to change the permissions. There doesn't appear to be a BCL class for doing this, so you may need to pinvoke to the underlying Win32 functions, then use Object­Security.Set­Security­Descriptor­Binary­Form to convert it into something you can manipulate more easily.

That was the last we heard from the customer, so it's not clear whether they gave up and decided that we weren't being helpful, or whether the tap on the shoulder was enough to clue them in to why their comparison was a false one. I don't know whether they took any of our advice to put the security information in a security group, but I suspect they didn't.

Manage Dynamics CRM data and settings with PowerShell!

MSDN Blogs - 7 hours 30 min ago
Hey everyone, I have a new exciting project to share with the community. Kenichiro   and I recently released a scripted PowerShell module (PSM1) called Microsoft.Xrm.Data.Poweshell .  This PowerShell module enables admins to query and manipulate Dynamics CRM Data. It supports On-Prem and Online and primarily targets releases CRM 2013 and greater, however I have been able to connect to CRM 2011 for basic operations. So, what can you do with this PowerShell module? Query, Create, Update,...(read more)

TACO: 由 Microsoft 開發的 Apache Cordova 開發工具

MSDN Blogs - 11 hours 5 min ago

2013 年 5 月份時,Microsoft 宣佈了在 Visual Studio 上做了一個支援 Apache Cordova 的開發工具,經過一年多不斷地改良,這個工具不但直接內建在 Visual Studio 2015 的安裝功能清單中、微軟也開發了許多 Cordova plugin 來簡化應用程式連結 Microsoft 服務的開發,也做了結合在 Mac 上建置 / 在 Visual Studio 中偵錯的遠端工具,而最近也將這些開發成果,重新包裝並開源成一組跨平台的套件:TACO - Tools for Apache COrdova,可以透過 npm -g install taco-cli 的指令安裝。

TACO 這組套件主要是以 TypeScript 寫成,並且主要是命令列工具(完全相容於 Apache Cordova 官方的 Cordova CLI),用來產生 Cordova 專案(透過 cordova-cli)設定及建置專案、以及執行測試建置好的應用程式,而在最新的 Visual Studio 整合的 Apache Cordova 開發工具中也直接整合 TACO,所以產生的專案結構是一致的,而 Visual Studio 中與 Apache Cordova 開發相關的操作也是透過 TACO 來完成的,所以如果在團隊合作開發 Cordova 專案時,不論開發人員是使用 Visual Studio + PC 還是使用 Mac,都可以順利地共享專案檔案結構。

而若是在 PC 上使用 Visual Studio 2015 (當然也可以用 Visual Studio Code + TACO)開發 Cordova 專案時,若想要建置 iOS 應用程式,這時得找一台 Mac 電腦,裝好 Xcode 等 iOS 開發工具,然後透過 npm 執行 npm -g install remotebuild 安裝 TACO 的遠端建置工具。

完裝完畢後,在命令列下執行 remotebuild certificates generate 來產生憑證以及安全 PIN 碼,這是為了與遠端的 PC/Visual Studio/TACO 在連接時做認證使用,執行後會產生這樣的訊息:

你可以看到上面顯示了 PIN 碼來認證,然後別忘了執行 remotebuild start 來啟動建置伺服器,讓遠端的 PC/VisualStudio/TACO 來連線。

回到 Visual Studio(如果是使用 Visual Studio),在 Apache Cordova 開發工具的設定選項中,於遠端代理程式裡設定主機名稱以及 PIN 碼:

這樣設定完成後,就可以在 Visual Studio 中,將 Cordova 專案(透過 Mac)建置成 iOS 應用程式來偵錯及模擬測試。

關於 Apache Cordova 專案的開發詳細介紹,可以參考 TechDays Taiwan 2015 由章立民老師所主講的課程。

TACO: 由 Microsoft 開發的 Apache Cordova 開發工具

MSDN Blogs - 11 hours 5 min ago

2013 年 5 月份時,Microsoft 宣佈了在 Visual Studio 上做了一個支援 Apache Cordova 的開發工具,經過一年多不斷地改良,這個工具不但直接內建在 Visual Studio 2015 的安裝功能清單中、微軟也開發了許多 Cordova plugin 來簡化應用程式連結 Microsoft 服務的開發,也做了結合在 Mac 上建置 / 在 Visual Studio 中偵錯的遠端工具,而最近也將這些開發成果,重新包裝並開源成一組跨平台的套件:TACO - Tools for Apache COrdova,可以透過 npm -g install taco-cli 的指令安裝。

TACO 這組套件主要是以 TypeScript 寫成,並且主要是命令列工具(完全相容於 Apache Cordova 官方的 Cordova CLI),用來產生 Cordova 專案(透過 cordova-cli)設定及建置專案、以及執行測試建置好的應用程式,而在最新的 Visual Studio 整合的 Apache Cordova 開發工具中也直接整合 TACO,所以產生的專案結構是一致的,而 Visual Studio 中與 Apache Cordova 開發相關的操作也是透過 TACO 來完成的,所以如果在團隊合作開發 Cordova 專案時,不論開發人員是使用 Visual Studio + PC 還是使用 Mac,都可以順利地共享專案檔案結構。

而若是在 PC 上使用 Visual Studio 2015 (當然也可以用 Visual Studio Code + TACO)開發 Cordova 專案時,若想要建置 iOS 應用程式,這時得找一台 Mac 電腦,裝好 Xcode 等 iOS 開發工具,然後透過 npm 執行 npm -g install remotebuild 安裝 TACO 的遠端建置工具。

完裝完畢後,在命令列下執行 remotebuild certificates generate 來產生憑證以及安全 PIN 碼,這是為了與遠端的 PC/Visual Studio/TACO 在連接時做認證使用,執行後會產生這樣的訊息:

你可以看到上面顯示了 PIN 碼來認證,然後別忘了執行 remotebuild start 來啟動建置伺服器,讓遠端的 PC/VisualStudio/TACO 來連線。

回到 Visual Studio(如果是使用 Visual Studio),在 Apache Cordova 開發工具的設定選項中,於遠端代理程式裡設定主機名稱以及 PIN 碼:

這樣設定完成後,就可以在 Visual Studio 中,將 Cordova 專案(透過 Mac)建置成 iOS 應用程式來偵錯及模擬測試。

關於 Apache Cordova 專案的開發詳細介紹,可以參考 TechDays Taiwan 2015 由章立民老師所主講的課程。


SQL Server Data Tools – SQLaři nehrajte v týmu druhé housle!

MSDN Blogs - 11 hours 13 min ago
Databázoví vývojáři a administrátoři mnohdy téměř závidí svým čistě vývojářským kolegům kteří pracují v C#, Javě či jiném jazyku komfortní IDE které jim usnadňuje práci od plánování přes vývoj, správu zdrojových kódů, testování, buildy až po nasazení a monitoring aplikací. Aby se IT odborníkům...(read more)

Importing JSON files into SQL Server using OPENROWSET (BULK)

MSDN Blogs - 11 hours 16 min ago
Importing JSON files in SQL Server

Currently you can find many JSON documents stored in files. Sensors generate information that are stored in files, applications log information in JSON files, etc. One important thing that you would need to do is to read JSON stored in files, load them in SQL Server, and analyze them. In this post we will see how you can import JSON files in SQL Server.

Importing files using OPENROWSET(BULK)

OPENROWSET (BULK) is a table value function that can read data from any file on the local drive or network if Sql Server has read access to that location. It returns a table with a single column (i.e. BulkColumn) that contains content of the file. In general case you can use various options with OPENROWSET (BULK) function, such as separators etc., but in the simplest case you can directly load entire content of a file as a single character large object (i.e. SINGLE_CLOB in OPENROWSET “terminology”) and load content of that cell in any table or variable. An example of OPENROWSET (BULK) function that reads content of JSON file and return it to user as a query result is shown in the following example:

SELECT BulkColumn

OPENJSON( BULK) will read content of the file and return it via BulkColumn. You can also load content of file in some local variable or table, as it is shown in the following example:

SELECT @json = BulkColumn

SELECT BulkColumn
INTO #temp


Importing JSON content

In this post I will show you how to import content of JSON file directly into SQL Server tables using OPENROWSET(BULK). I will use the fact that JSON is regular text so it can be imported as any other text format. Therefore, I can leverage existing functions that work with text and in this case import text from a file. In this example I will use JSON file containing books taken from:

Instead of reading entire JSON text, I want to parse it and return either books in the file, or their properties. In the simplest example we can read JSON objects from the file:

SELECT value




OPENROWSET will read single text value from a file, return it as a BulkColumn, and pass it to the applied OPENJSON function. OPENJSON will iterate through the array of JSON objects in the BulkColumn array and return one book formatted as JSON in each row:


{"id" : "978-0641723445","cat" : ["book","hardcover"],"name" : "The Lightning Thief", …

{"id" : "978-1423103349","cat" : ["book","paperback"],"name" : "The Sea of Monsters", …

{"id" : "978-1857995879","cat" : ["book","paperback"],"name" : "Sophie's World : The Greek …

{"id" : "978-1933988177","cat" : ["book","paperback"],"name" : "Lucene in Action, Second …


With new OPENJSON function we can parse that JSON content and transform it to a table or result set. In this example we will load content, parse loaded JSON and return five fields as columns:

SELECT book.*



                          WITH( id nvarchar(100), name nvarchar(100), price float,

                          pages_i int, author nvarchar(100)) AS book


OPENROWSET(BULK) will read content of the file and we can pass that content to OPENJSON function with defined schema. OPENJSON will match properties in JSON objects using column names (e.g. price property will be returned as a price column and converted to float type). Results in this case would look like:







The Lightning Thief



Rick Riordan


The Sea of Monsters



Rick Riordan


Sophie's World : The Greek Philosophers



Jostein Gaarder


Lucene in Action, Second Edition



Michael McCandless


Now we can either return this table to the user, or load it into another table.

Loading data from Azure File Storage

You can use the same approach to read JSON files from any file that can be accessed by SQL Server. As an example, Azure File Storage supports SMB protocol, so you can map your local virtual drive to the Azure File storage share using the following procedure:

  1. Create file storage account (e.g. mystorage), file share (e.g. sharejson), and folder using Azure portal or Azure PowerShell SDK. Upload some JSON file in the file storage share.
  2. Create firewall outbound rule in Windows Firewall on your computer that allows port 445. Note that this port might be blocked by your internet provider. If you are getting DNS error (error 53) in the following step then you have not opened that port
  3. Mount Azure File Storage share as local drive (e.g. t: ) using the following command:

net use [drive letter] \\[storage name]\[share name] /u:[storage account name] [storage account access key]

                Example that I have used is:

net use t: \\\sharejson /u:myaccont hb5qy6eXLqIdBj0LvGMHdrTiygkjhHDvWjUZg3Gu7bubKLg==

              Storage account key and primary or secondary access key can be found in the Keys section in Settings.

  1. Now you should be able to access your JSON file via share name, e.g.:


OPENROWSET(BULK N't:\books\books.json', SINGLE_CLOB) AS json

            CROSS APPLY OPENJSON(BulkColumn)

                          WITH( id nvarchar(100), name nvarchar(100), price float,

                                pages_i int, author nvarchar(100)) AS book


Loading set of files into SQL Server

We can use the same approach to load a set of JSON files from the file system into local variables (we will assume that files are named as book<index>.json):

declare @i int = 1

declare @json AS nvarchar(MAX)



SET @file = 'C:\JSON\Books\book' + cast(@i as varchar(5)) + '.json';

SELECT @json = BulkColumn FROM OPENROWSET (BULK (@file), SINGLE_CLOB) as j

SELECT * FROM OPENJSON(@json) as json

set @i = @i +1;


As you can see, with OPENROWSET(BULK) function you can easily import files into SQL Server.

Redefining Learning Conference - Live Stream Details Now Available

MSDN Blogs - 11 hours 41 min ago

On Friday the 9th October, we are thrilled to be hosting the next in the series of global Redefining Learning Conferences in London. The Redefining Learning Conference is a stage for inspired teachers and school leaders to share their vision and thought leadership in education and technology with their peers.

In collaboration with Microsoft Showcase Schools, this series of events helps to foster a deep understanding of how schools can use technology to reach their goals to transform the teaching and learning environment.

More specifically, the London event has a simple goal. This goal is to showcase the innovative use of Microsoft technology to improve the educational experience in the classroom and draws upon the voices of inspiring school leaders, Microsoft Innovative Educators and active and informed students. It's going to be an inspirational day for all!

The conference is currently full, although we will be live streaming 2 key sessions during the day (Register today). These sessions will be streamed in full and will allow you to ask questions and interact directly with speakers, via a moderator, on the day.

Details of the 2 sessions are as follows:

Session 1 - Opening Keynote: (Registration Details)

  • "A Microsoft in Education Welcome to Showcase Schools" – Mark Sparvell, Sr. Partners in Learning Manager, Microsoft
    • Welcoming UK Showcase Schools to the program and conference
    • The power of learning from each other as fellow practitioners and RE-defining Learning together
  • "Redefining Learning Conferences and beyond" – Michael Atalla, Director of Product Marketing, Microsoft
    • How the Redefining Learning Conference started and where it is going
    • The importance of Showcase Schools this year to shaping our products to better meet the needs of students, teachers, and school leaders

Session 2: "Teach Meet Show and Tell/Student Panel" (Registration Details)

  • Students and Teachers from Showcase Schools share their favourite uses of technology and answer questions

In addition to tuning in for the live stream, you can also follow all the action on the day via Twitter (#RedefineLearn). With over 130 delegates attending from over 30 Showcase Schools there is going to be some lively conversations and sharing of valuable content, for sure.

We hope you can join us via the Live Stream and look forward to your thoughts and feedback via Twitter throughout the day.

Capture Win32 applications into a provisioning package using ScanState tool

MSDN Blogs - 12 hours 35 min ago

Hi guys,

Today I’m gonna cover how to capture Win32 applications into a PPKG using ScanState tool (available in USMT of Windows 10 ADK).

The standard way to capture Win32 applications using ScanState tool is to run the following command:

scanstate /apps /ppkg c:\Temp\win32apps.ppkg /l:c:\Temp\win32_scan.log

But by default ScanState tool, using the /apps option, will capture all the applications located under the following folders:

  1. C:\Windows
  2. C:\Program Files
  3. C:\Program Files (x86)
  4. C:\ProgramData
  5. C:\Users

This might capture way too much data into the provisioning package so we need to limit the captured data to a specific scope. Let’s go through the different steps to execute that.

Create an external media containing ScanState tool

To run ScanState tool on a reference Windows 10 machine, you need to create a removable media containing ScanState. To do so, copy the content of the following folders into a external USB drive. from a computer where USMT (of Windows 10 ADK) is installed.

  • "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\windows setup\adm64\sources"
  • "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\User State Migration Tool\adm64"

In my lab, I copied those folders content in a USB drive under “D:\scanstate_amd64”

  Restrict data captured by ScanState tool

To limit our capture to specific applications, we first need to use an application discovery template provided by USMT. That template is called “MigApp.xml” and is located in the USMT installation path.

That file contains a detection method for most of the popular applications. You can see in the below picture the detection information for Adobe Reader 9.0.

Using that application detection file with ScanState tool, you can generate a configuration file which contains all the detected applications.

Run the following command to generate the configuration file:

scanstate.exe /i:d:\scanstate_amd64\migapp.xml /genconfig:C:\Temp\installed-app.xml /l:C:\Temp\scanstate.log

That command line will create a new configuration file containing information about detected installed applications on your reference Windows 10 machine. Here’s an example of output file:

Before using that configuration file to execute the Win32 applications capture on the reference computer, you need to modify the [migrate=”yes”] setting of each application, whether we want or not to capture that application.

Once the configuration has been modified to only include the Win32 applications that we want to capture, run the following command line to capture selected Win32 applications into a provisioning package.

scanstate /apps /ppkg c:\Temp\win32apps.ppkg /l:c:\Temp\win32_scan.log /config:C:\Temp\installed-app.xml

This will generate a provisioning package in the output folder.

Here’s you can see the size difference between an unfiltered and filtered capture.

10/16 開催 「開発エキスパートに学ぶ! C# と Visual Studio の今と未来」セミナー

MSDN Blogs - Tue, 10/06/2015 - 23:57
現場の開発生産性を高めるために、C# と Visual Studio は進化し続けています。 本セミナーでは、弊社エバンジェリストと開発現場のエキスパートによる C# と Visual Studio の今と未来を解りやすく解説します。無料セミナーとなっておりますので、C#とVisual Studioの開発スキルを習得できます。ぜひ奮ってご参加ください。 ■ 参加申込はこちら ■ 開催日:2015年10月16日 (金) ■ 開始予定時間:13:00 (受付開始時間 12:30) ■ 終了予定時間:16:40 ■ 開催場所:日本マイクロソフト品川本社 31 階セミナールーム C/D JR 品川駅港南口よりスカイウェイにて直結徒歩 3 分、京浜急行品川駅より徒歩 6 分 108-0075 東京都 港区 港南 2-16-3 品川グランドセントラルタワー ■ 参加費: 無料 ■ セミナーの内容】 13:00-13:10 開会あいさつ 13:10-13:50 「C# の今と未来」        MIcrosoft MVP for .NET 岩永信之 13...(read more)

KMS Server 如何啟動 Windows 10 ?

MSDN Blogs - Tue, 10/06/2015 - 23:27


隨著Windows 10發佈後企業客戶常在詢問,現有的KMS Server該如何啟動Windows 10 KMS Client?


1. 安裝Hotfix。

· 如果現有的KMS Server是Windows 2012/2012R2,請安裝

· 如果現有的KMS Server是Windows 2008 R2,請安裝 (此Hotfix最近才發佈)

2. 在此Server上輸入Windows 10 KMS Server Key。

3. 向微軟完成產品啟動。


Subscribe to Randy Riness @ SPSCC aggregator
Drupal 7 Appliance - Powered by TurnKey Linux