Uncategorized

Access to VSTS Releases by C# in preview version

Posted on Updated on


vstsde

This post describes somes lines of code which permit you to access VSTS platform (Visual Studio Team Service), we describe fundamntal steps permit to access new objects and services, we begin by decsribing packages that you have to download from NUGET in order to develop access layers.

The benefits of this post is to identify easily list of packages and class that you have known, in order access datas, without forget that we are in preview version.

Firslty begin by adding theses packages, we remarks that we add Microsoft.VisualStudio.Services.Release.Client package with preview version.

Below full list of packages that you have download :

-Microsoft.AspNet.WebApi.Client with version =5.2.2
-Microsoft.AspNet.WebApi.Core with version =5.2.2
-Microsoft.IdentityModel.Clients.ActiveDirectory with version =3.13.5
-Microsoft.TeamFoundation.DistributedTask.Common.Contracts with version =15.120.0-preview
-Microsoft.TeamFoundationServer.Client with version =15.120.0-preview
-Microsoft.TeamFoundationServer.ExtendedClient with version =15.120.0-preview
-Microsoft.Tpl.Dataflow with version =4.5.24
-Microsoft.VisualStudio.Services.Client with version =15.120.0-preview
-Microsoft.VisualStudio.Services.InteractiveClient with version =15.120.0-preview
-Microsoft.VisualStudio.Services.Release.Client with version =15.120.0-preview
-Newtonsoft.Json with version =8.0.3
-System.IdentityModel.Tokens.Jwt with version =4.0.2.206221351
-WindowsAzure.ServiceBus with version =3.3.2

Below source code permit you to create release definition, we define VssClientCredentials object permit to ensure connection to your VSTS, so you need to register your login and your token.

If you wish to get token, go to security panel of your VSTS, and create basic token with retency of 90 days.

token

We create VssClientCredentials with credentials, for etablish connection with VSTS we define VssConnection object based on credentials.

ReleaseHttpClient is the service permit you to access releases. based on ReleaseHttpClientBase abstract class.

ReleaseHttpClientBase permit you to create, delete, update, modify your definitions.

In this sample we create definition of release.

 VssClientCredentials credentialsDestination = new VssClientCredentials
                            (new VssBasicCredential(ConfigurationManager.AppSettings["loginForMigration"],
                                                            ConfigurationManager.AppSettings["tokenForMigration"]));

            using (VssConnection connectionDestination = new VssConnection(serverUrlDestination, credentialsDestination))
            {
                using (var releaseHttpClient = connectionDestination.GetClient())
                {
                    try
                    {
                        
                        Task releaseDefinitionTask = releaseHttpClient.CreateReleaseDefinitionAsync(releaseDefinition, projectName);
                        releaseDefinitionTask.Wait();
                        
                    }
                    catch (Exception ex)
                    {
                        throw ex;
                    }
                }
            }

After describing call of CreateReleaseDefinitionAsync, we speak about business rules that definition have to respect.

Constraints on VSTS :

  • Definition must have Id.
  • Definition must have Name unique.
  • On each environment of your release you have to define RetentionPolicy with three properties DaysToKeep, RetainBuild and ReleasesToKeep.
  • We three types of agents, in order to stay coherent with TFS platform, we use AgentDeploymentInput type as agent.

Remarks : In the future evolutions we preconise to use Deployment group, so replace AgentBasedDeployPhase type with MachineGroupBasedDeployPhase type.

 foreach (var environment in definition.Environments)
 {
                environment.RetentionPolicy = new EnvironmentRetentionPolicy
                {
                    DaysToKeep = daysToKeep,
                    RetainBuild = true,
                    ReleasesToKeep = releasesToKeep
                };

                var agentDeploymentInput = new AgentDeploymentInput
                {
                };

                if (agentName == AgentNameDefaultConstant)
                {
                    agentDeploymentInput.QueueId = 1;
                }

                DeployPhase deployPhase = new AgentBasedDeployPhase
                {
                    Name = deployPhaseName,
                    Rank = deployPhaseRank,
                    DeploymentInput = agentDeploymentInput
                };

                environment.DeployPhases.Add(deployPhase);

                // Adjust tasks of step
                if (environment.DeployStep != null &&
                    environment.DeployStep.Tasks.Any())
                {
                    deployPhase.WorkflowTasks = .....;
                }
}

All tasks are contained on DeployPhase object.

GC.Collect

Advertisements

Document your extension TFS before publish – Markdown

Posted on Updated on


This post is here in order to help you to improve quality on published extension on market place, because we have lot of extensions without documentation, so it’s very hard to use theses, we can add documentation easily by defining markdown.
We have set of steps to follow in order to document.

1. Create your markdown file , add readme.md to your library, if you have one extension library with set of task, suggest you to have one mardown for all tasks.

Remarks: Your file don’t need to be copied in content, let default options.

readme

Below samples of common syntax of markdown :

# This is an H1
## This is an H2
###### This is an H6
*Italic characters*
_Italic characters_
**bold characters**
__bold characters__
~~strikethrough text~~
This is [an example](http://www.amayestech.com/) inline link.

You can also install markdown extension in order to modify easily :

extensionmd

After installing Markdown Editor, can view the design of my code, view small symbol M on my file.

extensionmdEditor

complete doc here : https://code.visualstudio.com/docs/languages/markdown

2. Register your readme.md file into manifeste extension by adding section of code below

register

3. For this sample we add images in readme.md, theses images must be copied to directory img (content / do not copy)
and registered into manifeste extension

registerimg

Now after packaging and publishing actions, if we go to market place manager, we can view documentation of your extension.

 

Package and publish your extension TFS 2015 VNEXT

Posted on Updated on


In order apeak about solution , we explain just that we have two aspects to setup, packaging and publishing, we begin with our sample with packaging.

  • PACKAGING View

For the packaging we follow steps below in order to construct our package, the result of this step is vsix file.

1. Setup Node.js

2. Install vset tool with this command : npm install vset –save-dev

vnext12

3. Run Node.js command prompt tool (C:\Windows\System32\cmd.exe /k “C:\Program Files (x86)\nodejs\nodevars.bat”)

4. Locate you on directory of your extension

5. Run vset package command

vnext13

Your vsix is generated into your root irectory

vnext13

For information you can inspect content of your extension, by unzip your vsix

vnext15

  • PUBLISHING View

Before publish our extension it’s possible to visit differents extension avaiable on the cloud, it’s possible to download and install on premise version of tfs, in order to reuse.

We choose to publish our expansion on the market place on Azure

We follow theses steps, firstly we create a publisher, secondly

1. Go to https://marketplace.visualstudio.com/manage/publishers/
2. Choose to create a publisher by completing a unique Id

vnext10
After that
vnext9
3. Upload your extension by drag and drop your vsix
vnext11

4. Correct and adapt your manifest information

vnext16

5. Now it’s ok and my vsix is downloaded

vnext17

6. Share my extension on my account azure, an it’s possible to update my version on clickin on update button
vnext18

vnext19

7. Go to admin tfs section, and selection extension tab, clck on my extension target

vnext19

vnext20

8. On Build VNEXT find my created extension

vnext21

Create your extension TFS 2015 VNEXT

Posted on Updated on


Start by downloading a template project, you have two project templates, one dedicated to the integration part, another dedicated to the realization of custom build or release tasks.

In this post we will realize an extension that will aim to start an application pool, without managing this specify.

For the part back we will combine our extension with a shell script.

Begin with open Explorer Visual Studio extensions,

Install the following template :

vnext1

Below is a detail on the different of your solution.

Most of these directories will be deleted in the second time.

vnext2

Now we will start developing our own extension,

First, delete the files that we use nothing:

  1. Remove the test directory
  2. Remove typings directory
  3. Delete the file app.ts
  1. Add directory Sample
  2. Create a powershell file Sample.ps1
  3. Create a task manifest file task.json
  4. Create logo into directory

Below the output of created project

vnext3

  1. Edit the task.json by defining your layout based on controls and groups concepts, inputs are your controls typed with type propecty, and are grouped into groups, by using group property (Below sample of grouping, we have three groups)

vnext5

Below the task.json file after modify

vnext4

We have another section related to call code behind, for our project, code behind is powersell, it can be another type

  1. Implement your Code behind and match with your layout arguments

Ensure that arguments ps1 match with json arguments, in execution section on your json, ensure that you have referenced your target file.

 

vnext6.png

  1. For debugging after implementing, open your ps ise, you can find-it in C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe

Ensure that you have right of debugging by executing this script, and just click F5

vnext7

  1. Register your extension in the manifeste

vnext8.png

GC.Collect

MCT Summit

Posted on


The 2016 MCT Summit in Sydney Australia invites Microsoft Certified Trainers from Australia, New Zealand and beyond to a two-day event co-hosted by the MCT community and Microsoft. MCT events are your best opportunity to interact with your peers and engage directly with Microsoft. Come learn about the future of Microsoft learning, the MCT Program, how to teach a specific course or technology, or how to become a better trainer

Microsoft’s Worldwide MCT/MCP Program Manager, Patrick Thomas will be here from Microsoft Corporation, Redmond, USA as well as Chee Sing Chen, Microsoft Asia Pacific Learning Experiences Director will be in attendance and you will have the ability to find out more about Microsoft’s MCT Program Strategy and Vision.

Registration is now open and Agenda details are available HERE

Disclaimer: Microsoft respects your privacy. Review our online Privacy Statement.

If you would prefer to no longer receive this communication, please email MCTPM@Microsoft.com with “UNSUBSCRIBE” in the subject line. To set your contact preferences for other Microsoft communications, see the communications preferences section of the Microsoft Privacy Statement.

Microsoft Corporation
One Microsoft Way
Redmond, WA, USA 98052

Welcome to AEA for Aghilas

Posted on Updated on


Cool I am now part of the AEA committee

Dear Aghilas,

Welcome to the Association of Enterprise Architects (AEA). As a new member, you have joined forces with EA professionals worldwide who are working together to advance the profession of Enterprise Architecture and promote professional excellence.

Your username for the AEA is aghilas.yakoub and your Membership Number is ………

To sign into the AEA website please go to: https://www.globalaea.org

After logging in you will be able to manage your Profile by editing your bio,managing preferences and email subscriptions to blogs and forums.

You will also be able to access content and features, such as blogs, photo gallery, networks, and our AEA community via messaging, connections, groups,chapters, Work Groups, and Forums. You will be able to connect with fellow members, share ideas and expertise.

We hope you enjoy our online community and look forward to your participation!

Association of Enterprise Architects (AEA)

Togaf

Tips

Posted on Updated on


MAILING  SQL SERVER

Below a post aimed to alert you if a volume is exceeded on your SQL Server, for example, the basic transaction data may exceed certain thresholds for that access your agent SQL SERVER, configure it in such a way as to send mails.

Mail Alert

Audit SQL SERVER

You gave rights to a user, you want to know if that user has rights has spread another user, simple to make, use SQL SERVER Audit, create an audit specification

“SERVER_ROLE_MEMBER_CHANGE_GROUP”

You use both nodes Audit (audit and Create output formatting) & Specification (Create the specification)

audit

Link : https://technet.microsoft.com/en-us/library/cc280500(v=sql.105).aspx

For your security management of your database, choose the concept of Role personalized, permission on a schema, add users to your role (Just as it would have been done with the Principal, Identity, Permission, Claims in C # ). Associating the scheme now to the role and not to different users.

Custom Role