Quantcast
Channel: MSDN Blogs
Viewing all 29128 articles
Browse latest View live

dadsadsaddaddasdadsa


dakjdajdjai

dkfdjaifj

Lift & Shift your SSIS Package Execution to the Cloud on Azure today!

$
0
0
Hi all,
Do you want to simply take your on-premises SSIS packages and run it on a fully managed services on Azure? Wait no more! We have now released the public preview of ADF V2, which has the capability for executing SSIS packages on Azure.
please check out these announcement blogs for details.
For more information on how to deploy and use it, please check out below links
Executing SSIS Packages on Azure Overview
Documentation for deploying SSIS packages to Azure (including the PSH for provisioning)
To learn about the SSIS Integration Runtime (IR) concept on ADF V2
To understand the SSIS on ADF V2 Pricing
Thanks
Jimmy

Utilising Azure Notebooks for learning new programming languages (like Python)

$
0
0


Guest post by Sidak Pasricha Microsoft Student Partner at UCL

image

About Me

Hello! My name is Sidak and I’m pursuing Computer Science Engineering at UCL. My interest areas mainly include Artificial Intelligence, Robotics and Video Game Development but I am open to any other technologies as I enjoy learning new skills and languages. One of my many ambitions is to successfully create video games that incorporate AI to provide a richer user experience and involvement.

My LinkedIn profile can be found at: https://www.linkedin.com/in/sidak-pasricha/

Learning a new programming language:

How does one learn a new programming language? Is it by spending hours reading and highlighting textbook pages, looking up video tutorials or by frying our devices with multiple windows and browser tabs full of code? I try to learn a new language by doing all of the above at the same time (yes, my mom gave up on organizing my desk a long time ago). I always wished there was some way of saving my head from all that unnecessary movement from book to screen to… you get the point. This is where Azure notebooks comes in. Imagine an interactive book on your screen that has text, videos, graphics and allows you to type and run code. Isn’t that synonymous for convenience?

What are Azure Notebooks?

image

Azure Notebooks is a free service from Microsoft which allows interactive teaching/learning by incorporating Jupyter Notebooks software. This allows the creation of interactive documents by using a cell-based system where there are different types of cells – each with their own properties, like code cells that allow the execution of the typed code, showing the results at the footer of the cell (Click here for a demo). Currently there is support for F#, Python (py2, py3, py3.6) and R programming languages. One noteworthy feature is that its all browser based - there is no need for downloading any prerequisites on your device.

Click here to get started with Azure Notebooks. Simply log-in and start learning or teaching from the 21st century notebook.

Quick Fact: If you download a notebook file and try to open it on your browser it will show you a JSON file, showing the functionality of Notebooks as each cell is segregated in the hierarchy and its formatting properties are visible. If you see symbols like “*” or “#” next to the text, don’t worry - Notebooks use these symbols to specify formatting styles. “#” denotes Header 1 style, “##” denotes Header 2 style etc.

Learning Python with Azure Notebooks:

Once logged in, click “View All” next to the “Libraries” heading to see a page similar to this:

clip_image002

Image 1: The Libraries Page

This is where your libraries will be stored (Don’t worry if you have no libraries yet). For this guide, we have been provided with a basic Python Course available here. It should open a page that looks similar to this:

clip_image004

Image 2: The Python Course Library

Make sure you clone the library into your own account. To do this, click the “Clone” button next to the “Share” button and give it the appropriate Library name and URL. You can also choose to make it public or private as per your discretion. Click “Clone” once done and wait for a bit. Your new Library will automatically open and now you can go ahead with learning Python by clicking through the files one by one.

Since the files help you get familiar with the Notebooks too, I didn’t feel for the need of an advanced tutorial on how to proceed with Notebooks. In programming, getting in there and practicing is proven to be the best approach.

Why Python?

1. Beginner Friendly – I know a bit of java and know enough python to compare to java with. Looking back at how frustrating it was till I got into the habit of adding a “;” (semi-colon) at the end of every statement or miss a bracket and freak out during compilation, python offers a much easier and manageable syntax (way of writing code) which is complimented by its similarity with the English language.

Java

Python

To output “Hello World”

System.out.print(“Hello World);

print(“Hello World”)

To define a new method/ function.

This outputs “Hello World when called”

public void function(){

System.out.print(“Hello World);

}

def function:

print(“Hello World”);

Table 1: Difference between Java and Python. Clearly Python is much simpler and therefore, faster

2. Fastest Growing Programming Language – According to StackOverflow, the most renown forum for programming discussion, Python is the fastest growing programming language as can be seen from the graph below. This is mainly due to its varied applications ranging from web development to artificial intelligence to scientific modelling to game development.

clip_image006

Image 3: Python's increasing growth and popularity (Courtesy of Stack Overflow)

3. Used to create revolutionary software – Due to the fact that Python is a frequently updated open-source language, there are a lot of code libraries with convenient functions that can facilitate the creation of imaginative ideas. Many popular frameworks are Python-based too.

Why Azure Notebooks?

1. Flexibility to Learn how you want – Whether you’re the video person, the book person or the multiple windows person. You can feel comfortable instantly with the way it facilitates learning (do a bit of the course above and you’ll agree). Since programming is all about practice, the fact that there are spaces to write and execute codes without even needing to download large, complex IDEs is the cherry on top. This also helps you focus on one place, definitely good for studying effectively. I’ve tried doing video-based courses while I had multiple windows open to practice on and a supplementary book and I definitely learnt more through notebooks in much less time.

2. Cross Platform Compatibility – Your entire workspace in one window on your beloved smartphone or tablet? Its possible. As no downloads are needed, you can practically run it on any platform – I used to conveniently continue learning on the way to my university. Learning is best done uninterrupted.

clip_image008

Image 4: Using Azure Notebooks on my Android Phone

3. There is an abundance of tutorials made for Jupyter Notebooks on the web for various courses like Data Science.

image

4. It offers a terminal which adds to the flexibility factor in case there is a need to import external packages using pip or you can install these directly within the Notebook using !Pip see https://blogs.msdn.microsoft.com/uk_faculty_connection/2017/09/20/installing-python-packages-to-azure-notebooks/. This is barely needed as most packages are already included within the Azure platform.

image

image

5. The notebook can be exported into various formats like PDF or HTML that can be embedded in websites, increasing their portability. Or simply cloned directly from Notebooks,azure.com this also allows simpler circulation and submission of homework.

6. On the fly debugging - While coding software, I can run the code and realise it has major errors. Since you can run one cell at a time in Notebooks and variable values are retained through cells, one can detect errors in less time with definitely lower amounts of frustration by making the program in parts with clearer segregation than line breaks.

image

7. Its FREE! and preconfigured and managed so I do not need to worry about setting anything up

Resources

Azure Notebooks https://notebooks.azure.com/

Getting Started with Python Notebooks https://notebooks.azure.com/eric/libraries/DEV236x

Python for Data Science Notebooks https://notebooks.azure.com/rheartpython/libraries/PythonDS101 

Python Data Science Handbook https://notebooks.azure.com/jakevdp/libraries/PythonDataScienceHandbook

Building an Assignment Bot with Microsoft Bot Framework

$
0
0

Guest blog by Wang (Leonard) Ge Microsoft Student Partner at Imperial College London

image

About me

Hello! My name is Leonard I’m a 2nd year student, studying Computer Science Engineering at Imperial College London My interest areas mainly include front end development, Here is my LinkedIn profile https://www.linkedin.com/in/wang-ge and my GitHub: https://github.com/524119574

Introduction

With the advancement of the artificial intelligence, bot is becoming more and more important in our life, even Mark Zuckerberg built his own bot in 2016 called Jarvis (https://www.facebook.com/notes/mark-zuckerberg/building-jarvis/10154361492931634 /) to manage his home (which is super cool!). While Mark’s Jarvis can only interact with the users in Facebook Messenger, we can create a bot that can interact with the users in multiple channels including: Facebook Messenger, Slack, Telegram and more. To do that we will be using the Microsoft bot framework.

So the Challenge

As university students we have a lot of assignments that we need to hand in on time, so building a bot to record all these assignments and their corresponding deadlines seem to be a great choice. So our bot will be having the following functionalities:

1. Add names of the assignments and deadlines to the bot

2. Show all the assignments that are in our record

3. Remind the user when the deadline is close(we will remind the user one hour before the deadline in our tutorial, we can change it to other arbitrary time if we want)

clip_image002

As above, we want our bot to be able to add the assignment to its record.

clip_image004

And the bot will also remind us when the deadline is near.

The bot will also be able to show us all the deadline when we tell the bot to ‘show all’. OK, now let’s start to implement it.

The full bot logic can be found on GitHub: https://github.com/524119574/assignment_bot but I will show you how I went about building the bot and making it available on various channels below

Setup the Development Environment

We’ll be using Node.js as our programming language in the development of this bot, so firstly we need to create a folder, add some skeleton files and download the bot framework emulator(https://github.com/Microsoft/BotFramework-Emulator/releases/tag/v3.5.31, download the .exe file if you are using windows) for local testing.

mkdir assignment_bot && cd assignment_bot

So first let’s create a folder called ‘assignment_bot’ and open this folder. We can do this in command line by:

Or you can right click and create a new folder and called it ‘assignment_bot’. And enter the folder.

Run the following command:

npm init

And follow the prompt from the screen to create our ‘package.json’ which is a generic file for any Node.js application.

Then type in the following command:

npm install --save restify botbuilder

This command let us install two packages: Restify and Bot-Builder from the npm and save these dependencies on package.json. Restify is a package that used to build REST API and in our case, the bot framework will be in the form of a REST API which different channels (Facebook Messenger, Slack, etc.) can talk to. Bot-builder package is the Bot framework Node.js SDK which encapsulates the lower level logic.

In the ‘assignment_bot’ folder we create a file called ‘app.js’ which will be storing our bot logic(as this is just our first bot, we’ll only use one file for the bot logic).

Bot Logic

In the bot framework we type in our basic logic:

image

And the bot will just send “Hello! My name is assignment bot” when you say something to him, use:

node app.js

To run our bot locally, and open the bot emulator to test our bot

clip_image011

Type in the http://localhost:3978/api/messages and leave the other fields blank. And if you test it, the following result should appear:

clip_image013

In order to manage the conversation more easily, we introduce the concept of dialogs, which are simply reusable chunks of interactions between the bot and the users. The following code will create a dialog called “addAssignment” for our user:

image

The above 4 steps corresponding to the following flow chart.

image

First step, we are going to prompt our user for the name of the assignment as follows:

image

The above code is the first step in our dialog, after the user responds, the answer will be passed to the second function as the ‘result’ parameter. Then we ask our user for the due date of the assignment:

image

After that, we ask the user to confirm their result:

image

Finally, we confirm the user that all the details have been properly stored and the notification is set:

image

OK, so now the dialog ‘add assignment’ is done, we will start to work on the other feature of the bot, namely show the user all the assignments that are in our record. And We’ll create a new dialog for this feature:

image

Good! We have built our bot and all the desired functionality, now it’s the time to deploy it and connect it to the channels.

Deploy the Bot

In order for others to use our bot we need to deploy it to the cloud, and in our case we will be using the Azure Cloud Service. Our first step is to go to azure [portal](https://portal.azure.com) to register our bot. You might be asked to login to the portal, and you can simply use your Microsoft account to log in. And after login, below interface should appear:

clip_image023

In the left-hand menu bar, select the ‘new’ button

clip_image025

In the new pop-up menu, select ‘Data + Analytics’ and you will see the ‘Bot Service’ and click it.

clip_image027

Click ‘Sign up for a new subscription’ and fill in the information in the newly-open tab.

clip_image029

After providing the necessary information, let’s go back to the Azure Portal and choose the bot service again and this time we are prompted to enter the app name, hosting plan, etc.

We will call our bot ‘assignmentBot’, tick the ‘pin to dashboard’ and hit create.

Then we are asked to select our bot template:

clip_image031

Choose “NodeJS” and Basic to start our template.

Then you will be asked to create an appID and an appSecret, copy the appID and appSecret to the Azure and start the template. And you will see a screen like this:

clip_image033

And we click the big “open online code editor button”, we can develop locally as well, but as we have already implemented the logic locally, we will just use the online code editor.

clip_image035

The online editor looks like above which is somewhat similar to the Visual Studio Code that I used locally.

Copy and paste our bot logic to the online editor and we are done. Then we go to the bot portal (https://dev.botframework.com/bots):

clip_image037

And we click:

clip_image039

to test our bot online to see if everything works as expected:

clip_image041

After some testing we find that our bot does work as we expected, so now it’s time to connect our bot to different channels. We can see different channels in the “add a channel” part of the bot portal, we can choose the channel that we want to add our bot to.(The icons of Facebook, Slack, email are not shown because I have already added the bot to these channels, but you should see them if you haven’t)

clip_image043

If we want to add our bot to the slack channel, we should fill in the following credentials:

clip_image045

If you don’t know how to get these credentials, you can click the “Where do I find my Slack access credentials” and there is a detailed guide on how to do that in the slack website. After our bot is connected to Slack, we can interact with the bot in the slack:

clip_image047

We can do the same things for Facebook Messenger, Email and all the other channels. We are required to enter some credentials such as appID and appSecret, other details such as how the channel is actually connected to our bot and how does the bot actually communicate with different channels has been encapsulated by the bot framework.

Final thoughts

Bot framework is a very useful framework that enables us to reuse the same logic in different channels, and if you want to build a bot and haven’t try the bot framework, I’d highly recommend you to give it a try.

The assignment bot that we built in this tutorial is very basic, there are many more logic that can be added to the app.js to make it much more user friendly and robust. For example, we can check the user input due date to see if the due date is later than the current time, we can only display the due date that haven’t passed in our ‘show all command’, we can also implement the ‘delete’ command to delete certain record.

Give the bot a try

If you want to try the live assignment bot you can go to the following link:

The full bot logic can be found on Github: https://github.com/524119574/assignment_bot

Telegram: https://telegram.me/assignments_bot

Facebook: https://www.messenger.com/t/330226437441804

Slack: https://slack.com/oauth/authorize?scope=bot&client_id=204082547206.254714261845&redirect_uri=https%3a%2f%2fslack.botframework.com%2fHome%2fauth&state=assignmentBot

Azure アカウントの削除について

$
0
0

いつも大変お世話になります。Microsoft Azure サポート チームです。

Azure アカウントの削除について本記事で以下についてご案内をさせていただきます。
ご参考になりましたら幸いです。

 

  • 本記事の目的
  • Azure アカウントとは
  • Azure アカウントの削除について
  • Azure アカウントの削除方法

 

本記事の目的


本記事では、Azure アカウントの削除についてご案内いたします。
Azure をご利用のお客様から、「登録した Azure アカウントを削除したい」とのご要望をいただくことがございます。
本記事が少しでもお客様のお役に立つことができれば幸いです。

Azure アカウントとは


Azure アカウントとは、Azure にサインアップされた際に登録されるアカウントのことを指します。
Azure のサインアップ・サブスクリプションの購入は Microsoft アカウント・組織アカウントにて実施いただけます。
つまり、その際の Microsoft アカウントや組織アカウントが Azure アカウントとして登録されます。

Azure アカウントの削除について


誠に恐れ入りますが Azure アカウントの削除をおこなう対応については、現時点ではご用意がございません。
この点について何卒ご了承をいただけますと幸いです。
これを踏まえ、現時点において弊社では Azure アカウントの削除を以下のように定義いたしております。

  • Azure アカウントに紐づくサブスクリプションの削除
  • Azure アカウントに紐づくクレジットカード情報の削除
  • 元の Microsoft アカウント・組織アカウントの削除

それぞれの詳細について後述でご案内をさせていただきます。

Azure アカウントの削除方法


上記いたしました Azure アカウントの削除方法について、詳細手順をご案内いたします。

 

1. Azure アカウントに紐づくサブスクリプションの削除

まずは、Azure アカウントに紐づくサブスクリプションを削除します。
サブスクリプションの削除は、アカウントポータル (https://account.azure.com) と Azure ポータル (https://portal.azure.com) の両方から行っていただくことができます。
以下に両手順をご案内いたします。
どちらかでご実施をいただけましたら幸いです。

以下の操作完了後、サブスクリプション内のサービスおよび課金が停止されることとなります。
サブスクリプション内のデーターは削除後からおよそ90日間経過後に完全削除されます。

 

<アカウントポータルでサブスクリプションを削除する方法>

  1. 以下の URL にアクセスをする
    https://account.azure.com/Subscriptions
  2. 該当サブスクリプションのアカウント管理者でサインインをする
    ※ アカウント管理者でサインインをしてください。
    ※ アカウント管理者は、以下ページの「「サブスクリプションのアカウント管理者を確認する」 次の手順に従います。」の手順でご確認いただけます。
    https://docs.microsoft.com/ja-jp/azure/billing/billing-add-change-azure-subscription-administrator
  3. サブスクリプションの一覧ページで、該当のサブスクリプションをクリックする
  4. サブスクリプションの概要ページで、画面右から [解約] をクリックする
  5. 解約確認ページで、[はい、サブスクリプションをキャンセルします。] を選択し、[キャンセルの理由] を選択し、適宜詳細を入力する
  6. 右下の [レ] をクリックする

 

<Azure ポータルでサブスクリプションを削除する方法>

  1. 以下の URL にアクセスをする
    https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade
  2. 該当サブスクリプションのアカウント管理者、かつサービス管理者でサインインをする
    ※ アカウント管理者の権限のみでは、サブスクリプションの一覧ページでサブスクリプションが表示されません。
    ※ サービス管理者の権限のみでは、サブスクリプションの削除が行えません。
    ※ アカウント管理者、かつサービス管理者の権限を持つアカウントでサインインをしてください。
    ※ アカウント管理者は、以下ページの「「サブスクリプションのアカウント管理者を確認する」 次の手順に従います。」の手順でご確認いただけます。
    https://docs.microsoft.com/ja-jp/azure/billing/billing-add-change-azure-subscription-administrator
    ※ サービス管理者は、以下ページの「Azure サブスクリプションのサービス管理者を変更する」の途中までの手順でご確認いただけます。
    https://docs.microsoft.com/ja-jp/azure/billing/billing-add-change-azure-subscription-administrator
    ※ サービス管理者を変更する場合は、以下ページの「Azure サブスクリプションのサービス管理者を変更する」の手順で変更していただけます。
    https://docs.microsoft.com/ja-jp/azure/billing/billing-add-change-azure-subscription-administrator
  3. サブスクリプションの一覧ページで、該当のサブスクリプションをクリックする
  4. サブスクリプションの概要ページで [サブスクリプションの取り消し] をクリックする
  5. キャンセル確認ページで、[サブスクリプション名の入力] に該当サブスクリプション名を入力し、[キャンセルの理由] を選択し、適宜詳細を入力する

    注)
    サブスクリプション名は青枠部分に表示されます。
  6. 画面下の [サブスクリプションの取り消し] をクリックする

 

2. Azure アカウントに紐づくクレジットカード情報の削除

Azure アカウントに紐づくクレジットカード情報の削除は、弊社にておこなわせていただきます。
以下情報を記載のうえ、弊社へお問い合わせをいただきますようお願いいたします。

  • 対象の Azure アカウント (メールアドレス形式)
  • 対象のクレジットカード種別 (VISA、Master、AMEX など)
  • クレジットカード番号下 4 桁
    ※ 個人情報保護のため、クレジットカード全桁の送付は決してなさらないようご注意をお願いいたします。
  • 弊社での上記クレジットカードの削除実施にご同意いただける旨の一文
    ※ 例)「このクレジットカードの削除に同意いたします」

上記お問い合わせをいただきましてから、弊社にてご要望のクレジットカード情報の削除を実施させていただきます。
この処理には 3 営業日ほどお時間をいただく可能性がございます。
また、クレジットカードへの請求が残っている場合は、請求が完了するまで削除できませんのでご注意ください。
あらかじめご了承をいただけますと幸いです。

 

3. 元の Microsoft アカウント・組織アカウントの削除

Azure アカウントの元になった Microsoft アカウント・組織アカウントを削除する手順についてご案内いたします。

Microsoft アカウント・組織アカウントを削除された場合、Azure 以外にご利用いただいている Microsoft 製品 (Office 365、X-box など) の紐づけも解除されます。
また、該当アカウントにて Azure ポータルにアクセス不可となります。
これらについてご留意のうえ対応いただくようお願いいたします。

  • Microsoft アカウントの削除
    Microsoft アカウントの削除は以下の公開情報にそってご実施ください。
    本ページ内の「Microsoft アカウントを削除するにはどうすればよいですか?」をご参照ください。よくある質問
    https://www.microsoft.com/ja-jp/msaccount/faq.aspx 
  • 組織アカウント (Office 365 の場合) の削除
    組織アカウント (Office 365 の場合) の削除は以下の公開情報にそってご実施ください。
    本ページ内の「Office 365 から 1 人または複数のユーザーを削除する」をご参照ください。組織からユーザーを削除する
    https://support.office.com/ja-jp/article/8B-d5155593-3bac-4d8d-9d8b-f4513a81479e 
  • 組織アカウント (Azure Active Directory の場合) の削除
    組織アカウント (Azure Active Directory の場合) の削除は以下の公開情報にそってご実施ください。
    本ページ内の「Azure AD からユーザーを削除する」をご参照ください。クイック スタート: Azure Active Directory に新しいユーザーを追加する
    https://docs.microsoft.com/ja-jp/azure/active-directory/add-users-azure-active-directory

 

なお、Microsoft アカウントに関する詳細な内容につきましては、専用のお問い合わせ先をご用意させていただいております。
詳細をご確認いただく場合は、以下のサイトにてご相談ください。

Title : Microsoft アカウント お問い合わせ先
URL : http://www.microsoft.com/ja-jp/msaccount/contact.aspx

 

 

以上の通りご案内いたします。
引き続き弊社製品・サービスについてお客様のお役に立てる情報のご案内に努めさせていただきます。
よろしくお願いします。

Git and Visual Studio 2017 part 15 : Revise local commits

$
0
0

In previous article, I explained how to undo the commit you shared with others by using “revise”. In this article, I show you how to revise local commits before sharing with others. I couldn’t find a way to make this happen in Visual Studio 2017 though.

Revise commits in Git

If I simply want to change commit comment or add additional items into previously created commit, run commit command with --amend option. However, when I want to split the commit into multiple commits or combine multiple commits into one, or if I want to change commit comment of old commit, what can I do? I can use “rebase” to do it.

Rebase is explained in part 6 and that is to take changes from another branch to current branch as new base. But it has another usage, too. Let’s do it!

Combines multiple commits into one commit (squash)

1. Run ‘git log --oneline --graph --all’ to see current commit history.

image

2. To simplify the log, let’s reset back to old commit. Run ‘git reset --hard 3127d2f’ and ‘git branch -D dev’. Now I am at the commit right after added README.md.

3. Run ‘echo “Change 1” >>README.md’ and ‘git commit -am “Change 1”’.

4. Do the same for Change 2 and Change 3. Run ‘git log --oneline --graph --all’ to see history.

image

5. Let’s combine last three commits into one before I share them to others. Run ‘git rebase -i 3127d2f’. It may sound wired as you rebase to same branch. But the -i option give you an opportunity to revise your commits. In this case, I replay three commits from 3127d2f by revising them.

image

6. Change them like below. This means I take the first one as it is, then combine (squash) last two commits into the first commit.

image

7. Once I saved the change, git opens another editor window to let me write commit message. Change the comment as you want and save it.

image

8. Run ‘git log --oneline --graph --all’ to see the history.

image

Remove or change commits order

1. Run ‘git reset --hard b8c51a9’ to reset it, and ‘git rebase -i 3127d2f’ to restart rebasing.

2. Edit it like below. This will remove “Change 2” and reverse first and third commits.

image

3. Then you see conflict error. Run ‘git mergetool’ to resolve the conflict. I took both this time so that all lines remain.

image

4. Run ‘git rebase --continue’ to continue the rebase. Git opens editor to let me write commit comment. As I don’t have any intention to change it, I simply close the editor. Now it starts applying another commit and encounter conflict again. Resolve it by ‘git mergetool’. This time, I took both to keep all comment lines.

image

image

5. Run ‘git rebase --continue’. Again, it opens the editor to let me specify commit comments. This time I changed it. Save and close.

image

image

6. Run ‘git log --oneline --graph --all’. You see commits are revised. As these are new commits from Git point of view, they have different SHA1 hash.

image

Split the commit into multiple

Finally, lets split a single commit into multiple.

1. Run ‘git rebase -i 3127d2f’ to start rebasing again. This time, change it like below. To keep it simple, I split Change 3 commit and drop the last one. Save and close.

image

2. Git stops rebasing as I specify “edit”. Now it is time to split commits. As I only modify README.md, I use ‘git commit -p’ to decide which line to commit.

3. Now you are at right after commit 41a2065 is done. Let’s move back one HEAD back so that I can re-do the commit content. Run ‘git reset HEAD~1’, then run ‘git log --oneline’ and ‘git status’ to see current situation. I see many comments but simply put, I am on commit 3127d2f and README.md is not staged yet.

image

4. If I stage README.md as it is, nothing changed. Run ‘git add -p README.md’. This called patch mode and you can have granular control. Right now, Git considers three comment lines into single hunk.

image

5. Type “e” and enter which lets you manually change it.

image

6. Change it like this, so that it only contains “Change 1”.

image

7. Run ‘git status’ to see you have same file in staged and not staged area.

image

8. Run ‘git commit -m “Change 1”’. Repeat it two more time to create three commits like before.

image

9. Once you complete splitting the commit, run ‘git rebase --continue’, as we are in the middle of rebasing.

image

10. Run ‘git log --online --gpaph --all’. Now the first commit splits into three commits and removed the last commit “Change 1 after Change 3”.

image

Revise interactive options

As the comment above says, there are several options. See here for more detail.

Revise commits in VS

Visual Studio 2017 doesn’t seem to have interactive rebase capability at the moment..

Summary

At first, this was a bit confusing, but knowing the capability, you can commit locally more relaxing as we can tweak it later. DO NOT PUSH until you are ready Smile!

By the way, Visual Studio Code has several capabilities which Visual Studio 2017 doesn’t have. One of such capability is to patch commit, so that you can simply select lines from a file and add to staging area. If you are interested in Git and Visual Studio Code, then I will consider writing it in the future.

Ken


blogpost_lfkpb

Distributed Availability Groups extended

$
0
0

SQL Server 2016 supports distributed availability groups (AG) as additional HA feature of the engine. Today we want to show how this feature can be used to transfer near-real-time productive data around the globe.

Based on Jürgens Blog about SQL Server 2016 Distributed Availability Groups we set up a Primary AG with the SAP Database (e.g. PRD) as the only database. Furthermore did we setup two additional servers with SQL Server 2016 as a single node cluster (just for demonstration purposes, a two node cluster would work as well). The one cluster will act as a distribution server, that takes the data from the productive system and distributes it to the global locations, our second one-node cluster (target). This picture illustrates how the complete setup will look like:

The availability mode is synchronous in the Primary AG and between the Primary and the Distribution AG. From there the data is send to the far-far-away location (Target AG) in the asynchronous mode. The distribution system is either located in the same or a very close data center as the primary AG to be able to use the synchronous mode. With this setup we get an synchronous like replication to the target, even if the complete primary system goes up in flames, the distribution system will still be able to sync the data to the Target AG.

We have three separate AGs (Primary, Distribution, Target) which are connected with two distributed AGs, the first over the Primary and the Distribution AG and the second over the Distribution and the target AG. With this kind of setup one can replicate multiple system over one distributor to the target AG like this picture is showing:

How do we set it up ? As a prerequisite we have the PRD database from the PRIMARY server restored on all other servers (SECONDARY, DISTRIBUTION, TARGET) in recover mode, so that we can easily setup the AGs. As the SQL Server Management Studio 17 is not supporting distributed AGs in all details, we have to set it up with a script. On a high level the script executes these steps:

  • connect to the PRIMARY server, create and configure an AlwaysOn endpoint (AO_Endpoint)
  • connect to the SECONDARY server, create and configure an AlwaysOn endpoint (AO_Endpoint)
  • connect to the DISTRIBUTION server, create and configure an AlwaysOn endpoint (AO_Endpoint)
  • connect to the TARGET server, create and configure an AlwaysOn endpoint (AO_Endpoint)

  • connect to the DISTRIBUTION server, create and configure a one-node AG (AG_PRD_DISTRIBUTOR) with a TCP/IP listener
  • connect to the TARGET server, create and configure a one-node AG (AG_PRD_TARGET) with a TCP/IP listener
  • connect to the PRIMARY server, create and configure a two-node AG (AG_PRD_MAIN) with a TCP/IP listener

  • still on the PRIMARY create a distributed AG (DAG_PRD_MAIN) over the main AG (AG_PRD_MAIN) and the AG of the DISTRIBUTION server (AG_PRD_DISTRIBUTOR)
  • connect to the DISTRIBUTION server and join the distributed AG (DAG_PRD_MAIN) from the PRIMARY
  • then create a distributed AG (DAG_DISTRIBUTOR_TARGET) over the AG of the TARGET server (AG_PRD_TARGET) and the AG of the DISTRIBUTION server (AG_PRD_DISTRIBUTOR)
  • connect to the TARGET server and join the distributed AG (DAG_DISTRIBUTOR_TARGET) with the DISTRIBUTION server
  • change the status of the DB to readable on the target

You will find the full script at the end as an attachment.

To test the scenario we started the SGEN transaction on the underlying PRD SAP System that is connected to the Primary AG. We used just one application server with 20 Dialog work processes to generate all the report loads of the system. SGEN used up to 15 work processes at the same time:

Measuring the throughput that is flowing through the DAGs we used the Windows Performance Monitor tool on one of the systems.  One can see that the primary is sending an average of 1.8 MB/Sec to the Secondary (red block). The first DAG to the distributor (green) and the data flow to the target (blue) are showing nearly the same value, so there is throughput penalty by using distributed AGs in a system.

If you want to measure the overall travel time of a change, you can setup an easy test. Prerequisite for this is, that the target database is setup as a readable secondary, so that we can connect against the DB. On the target system we are start the SQL Server Management Studio, open a new query and run the following script:


USE PRD
WHILE NOT EXISTS(SELECT name FROM sys.objects WHERE name = N'DAGTEST')
WAITFOR DELAY N'00:00:01'

PRINT SYSDATETIME()


This script checks if a table named DAGTEST exists in the PRD database and waits a second if it can't be found. Once it can be found it prints out the current time. On the primary AG we now open a query that creates the table:


CREATE TABLE DAGTEST (f1 INT)
PRINT SYSDATETIME()
-- Later we can drop the table again
-- DROP TABLE DAGTEST


This script just creates the table DAGTEST and then prints out the current time. Once the table is created the changes will be transferred over the distributor to the target. On the target the still running script detects the freshly created table and prints out the current time as well. By comparing the time from the primary script and the target script we can determine to overall travel time of changes through the system.

Full Script to setup the DAGs:
DAGScript

Connect(); 2017

$
0
0

Neben der BUILD Konferenz ist die Connect(); die zweite wichtige Konferenz für Cloud & Software Entwicklungsthemen bei Microsoft.

Die Connect(); 2017 wird von 15. bis 17 November stattfinden - nehmen Sie online Teil und erfahren Sie direkt vom Microsoft Azure und Visual Studio Produktteam die neuesten Entwicklungen und Industrietrends.

"Save the Date" für Ihren Kalender.

NAV Development Preview – October Update

$
0
0

Welcome to another update for the Developer Preview, the October update. As usual, we've fixed a lot of issues reported by you, for more information view the list of fixed issues, In addition to that we're announcing the following changes.

To get an updated image jump directly to the Azure Gallery signup at http://aka.ms/navdeveloperpreview.

Web client add-ins
It is now possible to develop JavaScript control add-ins in AL. The new AL type controladdin serves both as a replacement for the old XML manifest as well as an interface for bidirectional JavaScript-to-AL communication. The following sample implements a control add-in in 42 lines of code:

Dictionary and List

This update also adds two new, highly requested AL types: List and Dictionary. For the first time in AL, you will be able to work with strongly typed lists and dictionaries.
At the moment, these types can only be used with simple types i.e. you can have a List of [Integer], but not a 'List of [Blob]'. The list of supported types is fairly long, but the main point is that if you can use it as the return type of a procedure, you can use it in a list.

ForEach is back

We've added support for iterating over expressions of enumerable types in AL using the foreach statement. At the moment, you can use the foreach statement to iterate over expressions of type List, XmlNodeList, XmlAttributeCollection and JsonArray.

New translation syntax

We've added support for the new Label syntax which will prepare you for using the new translation process which decouples translation from development. You will be able to specify a default translation in code with some attributes and then in the next update, we'll provide you with generating a standard format translation file which is widely supported for translating. When the translation file comes back translated,  you package it with the extension and you have a multilanguage extension!
We encourage you to start transitioning to this new syntax so that when we update the compiler to have the generation you're ready. You cannot use Caption and CaptionML at the same time (the same goes for the rest of the cases). The syntax is as follows:

Installation and Upgrade

When you want to convert from Extensions V1 to Extensions V2, you must first convert the source code using the Txt2Al tool. Then you must complete any development to adhere to the AL syntax. When your code is ready, then you need to write upgrade code to restore and modify the data from Extension V1 tables and then build your Extension V2. The next step is to uninstall the Extension V1. Finally, you must publish the Extension V2 and run the upgrade. For more information, see the documentation here: Converting Extensions V1 to Extensions V2, Upgrading Extensions V2, and How to: Publish and Install an Extension V2.

Designer

The Designer is now only available on on-prem or developer sandboxes with the Dynamics 365 Extension Mgt (Role ID: D365 EXTENSION MGT) permission enabled. If the permission is not enabled, you will not be able to use the Designer.

News on the Azure VM

  • After Azure deployment says succeeded, open the landing page in a browser and wait for the installation to complete (press view installation status to monitor).
  • When connecting to the Remote Desktop, you will find a shortcut to the navcontainerhelper, which contains a number of cmdlets which makes working with Nav Containers easier (documentation pending).
  • If you need to sign extensions you need to run Get-NavSipCryptoProvider and install VS2017 Community edition (c:demoinstall-VS2017Community) before you can use signtool inside the Azure VM.
  • You can create C/SIDE Development Containers using NavContainerHelper and use Convert-ModifiedObjectsToAl to convert modified objects in a container to AL.

As usual we encourage you to let us know how you like working with these additions and keep submitting suggestions and bugs. You can see all the filed bugs on our GitHub issues list (https://github.com/Microsoft/AL/issues). To get an updated image jump directly to the Azure Gallery signup at http://aka.ms/navdeveloperpreview.

For a list of our previous blog posts, see the links at the end of this post.

/NAV

Our earlier blog posts:

NAV Development Tools Preview - September Update

NAV Development Tools Preview - August Update

NAV Development Tools Preview - July Update

NAV Development Tools Preview - June Update

NAV Development Tools Preview - April Update

NAV Development Tools Preview - March Update

NAV Development Tools Preview - February Update

NAV Development Tools Preview - January Update

Announcing the Preview of Modern Development Tools for Dynamics NAV

Azure の請求書をメールで送信する機能について

$
0
0

いつも大変お世話になります。Microsoft Azure サポート チームです。

本記事で、弊社によくお問い合わせをいただきます Azure の請求書をメールで送信する機能について、その注意点をご案内させていただきます。
本情報が少しでもお客様のお役に立つものとなりましたら幸いです。

 

  • Azure の請求書をメールで送信する機能について
  • ご注意事項
  • Azure の請求書が発行されたことをメールで通知する機能について

 

Azure の請求書をメールで送信する機能について


以下公開情報でご案内をさせていただいている Azure の請求書をメールで送信する機能は、サポート プランの請求書ではご利用いただけません。
この点について本記事でご案内をさせていただきます。

Azure の請求書と毎日の使用状況データをダウンロードまたは表示する
https://docs.microsoft.com/ja-jp/azure/billing/billing-download-azure-invoice-daily-usage-date
※ 「メールで請求書を入手する (.pdf)」に記載されている機能についてです。

ご注意事項


上記の機能とは別に、Azure の請求書が発行されたことをメールで通知する機能がございます。
請求書をメールで送信するわけではなく、発行されたことを通知する機能となります。
※ 後述でご案内をさせていただきます。

この機能はサポート プランでもご利用をいただけます。

この Azure の請求書が発行されたことを通知するメールは以下のようなフォーマットで届きます。

これは Azure の請求書が発行されたことを通知するメールの例ですが、サポート プランの請求書が発行されたことを通知するメールも同フォーマットになります。

同フォーマットでお送りしていることから、サポート プランの請求書が発行されたことを通知するメール内にも以下の記載が含まれてしまっております。

弊社サービスのご利用におきまして混乱を招きまして誠に申し訳ございません。
サポート プランの請求書が発行されたことを通知するメール内に含まれる上記記載の「こちら」のリンクをクリックしていただきましても、サポート プランにつきましては請求書をメールで送信する機能はご利用いただけませんのでご注意くださいますと幸いです。

Azure の請求書が発行されたことをメールで通知する機能について


Azure の請求書が発行されたことを通知するメールは、以下に設定されているメールアドレスに届きます。

  1. 以下の URL にアクセスをする
    https://account.azure.com/Profile/
  2. 対象 Azure サブスクリプションのアカウント管理者 (Azure アカウント) でサインインをする
  3. [詳細の編集] をクリックする
  4. [連絡先の電子メール] に設定されているメールアドレスを確認する

    ※ [連絡先の電子メール] にご登録いただけるメールアドレスは 1 つまでとなります。複数名で通知メールを確認されたい場合は、グループアドレスのご利用についてご検討ください。

 

 

以上の通りご案内いたします。
引き続き弊社製品・サービスについてお客様のお役に立てる情報のご案内に努めさせていただきます。
よろしくお願いします。

Great MSDN Blogs for Testers Using VSTS

MIEE Spotlight- Ryan van Graan

$
0
0


 

Today's MIEE Spotlight looks at the great work of Computer Science teacher, Ryan van Graan from Trinity School of John Whitgift. Ryan uses Office 365 and Microsoft tools extensively in the classroom to enhance the teaching and learning in his classroom.

Due to Ryan's expertise in using technology, he has spoken at BETT on using mobile technology to enhance learning and also supports local Primary and Secondary schools on how to best utilise technology for teaching and learning. Across Ryan's school, Office 365 is integral in creating an easy and manageable work flow for the teachers. They are able to collaborate and share documents together at the touch of a button.

In the classroom Ryan teaches Computer Programming through the use of Kodu Game Lab, Visual Studio and Project Spark. Combining these with Office 365 enables Ryan to have a truly collaborative classroom experience for his students.

You can follow Ryan on Twitter @MrvanGraan to keep up to date with the innovative work he is doing .


Interact with the Sway below to hear more about Ryan's development and classroom practices in his own words!

Follow in the footsteps of our fantastic MIEE's and learn more about how Microsoft can transform your classroom with the Microsoft Educator Community.


Video-Tutorial zu Minecraft – Teil 1

$
0
0

Sie möchten die Minecraft Education Edition im Unterricht einsetzen? In unseren Video-Tutorials erklären wir die Basics Schritt für Schritt! Teil 1: Die Einstellungen

Video-Tutorial zu Minecraft - Teil 1

Sie möchten die #MinecraftEducationEdition im Unterricht einsetzen? In unseren Video-Tutorials erklären wir die Basics Schritt für Schritt! Teil 1: Die Einstellungen

Posted by Microsoft Bildung on Thursday, October 12, 2017

Schulen können jetzt von einem besonders vorteilhaften Angebot profitieren: Zu jedem neu gekauften Windows-10-Gerät erhalten sie die Minecraft Education Edition kostenfrei für ein Jahr. Mehr zur Minecraft Education Edition und zu den Details der Aktion finden Sie hier.

TFVC Source Code Control in Visual Studio Code

$
0
0

In this post, Premier Developer consultant Wael Kdouh demonstrates how to integrate Visual Studio Code with your source control environment using Team Foundation Version Control.


In this post I will be walking you through the Team Foundation Version Control (TFVC) support within Visual Studio Code. I will assume that you are running on a windows machine and thus I will be using the TF executable that comes with Visual Studio 2017 (there is also a free, standalone "Visual Studio Team Explorer 2017" version that contains TF.exe). If you are running on a Mac OS or Linux  you can use the Team Explorer Everywhere Command Line Client (TECLC). Regardless of which OS you are running on you should expect the same experience.

Read the rest on Wael’s blog here.

Announcing availability of BizTalk Server 2013 R2 Cumulative Update 7

New vswhere: now with more properties!

$
0
0

The latest release of vswhere not outputs additional properties as requested, along with catalog properties and a way to disambiguate nested properties - not that there are any currently. You can specify the nested properties followed by a property name like "properties/nickname". Delimiters supported are "_", "/", and "." to fit with the text, JSON, and XML formats. You can use any delimiter with any format, however.

The default output for an instance now looks like:

[
  {
    "instanceId": "890353f3",
    "installDate": "2017-09-16T01:24:28Z",
    "installationName": "VisualStudio/15.4.0+27004.2002",
    "installationPath": "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise",
    "installationVersion": "15.4.27004.2002",
    "productId": "Microsoft.VisualStudio.Product.Enterprise",
    "productPath": "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe",
    "isPrerelease": false,
    "displayName": "Visual Studio Enterprise 2017",
    "description": "Microsoft DevOps solution for productivity and coordination across teams of any size",
    "channelId": "VisualStudio.15.Release",
    "channelPath": "C:\Users\heaths\AppData\Local\Microsoft\VisualStudio\Packages\_Channels\4CB340F5\catalog.json",
    "channelUri": "https://aka.ms/vs/15/release/channel",
    "enginePath": "C:\Program Files (x86)\Microsoft Visual Studio\Installer\resources\app\ServiceHub\Services\Microsoft.VisualStudio.Setup.Service",
    "releaseNotes": "https://go.microsoft.com/fwlink/?LinkId=660692#15.4.0",
    "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=660708",
    "catalog": {
      "buildBranch": "d15svc",
      "buildVersion": "15.4.27004.2002",
      "id": "VisualStudio/15.4.0+27004.2002",
      "localBuild": "build-lab",
      "manifestName": "VisualStudio",
      "manifestType": "installer",
      "productDisplayVersion": "15.4.0",
      "productLine": "Dev15",
      "productLineVersion": "2017",
      "productMilestone": "RTW",
      "productMilestoneIsPreRelease": "False",
      "productName": "Visual Studio",
      "productPatchVersion": "0",
      "productPreReleaseMilestoneSuffix": "6.0",
      "productRelease": "RTW",
      "productSemanticVersion": "15.4.0+27004.2002"
    },
    "properties": {
      "campaignId": "844478574.1505524861",
      "channelManifestId": "VisualStudio.15.Release/15.4.0+27004.2002",
      "nickname": "",
      "setupEngineFilePath": "C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installershell.exe"
    }
  }
]

Most of the properties are provided through the ISetupPropertyStore. This interface is implemented by ISetupInstance objects, and provided by ISetupInstance2::GetProperties for custom properties. Starting with Visual Studio 2017 Update 3, you can also get catalog properties by calling IUnknown::QueryInterface on an ISetupInstance object for ISetupInstanceCatalog, which also provides an ISetupPropertyStore from ISetupInstanceCatalog::GetProperties. As we add new features that require persisting properties, they will automatically be exposed.

BizTalk Server 2013 R2 Cumulative Update 7

$
0
0
Viewing all 29128 articles
Browse latest View live


Latest Images

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