Intro

Have you ever failed at convincing your colleagues about how great your idea is? Have you felt disappointed because your team didn’t recognize how much productivity they were going to gain by implementing your proposal and didn’t commit to it? Have you ever been at a meeting, talking about something and failing to get the team engaged, then all of a sudden somebody else says the exact same thing and everybody is excited and paying attention?

I’m almost certain that most technology professionals have faced these challenges at some point in their career. Some people are just good at “selling” ideas, but the majority of us have to pay attention and work hard to get better at this.

This article provides 7 tips to help technology professionals become aware and focus on certain areas that will open opportunities to engage others and advance strategic initiatives.

How to make people buy your ideas?

Regardless of how good your intentions are, sometimes is very difficult to make others understand and get on-board with a particular initiative. Why don’t they get it?

This is a very complex area involving not just technical and business expertise, but also a great deal of communication skills and personality traits. It is, however, one area that, if addressed properly, can open many doors in your career.

The 7 points below are some of the simple steps a person can take to at least acquire some awareness and increase the chance of success.

1. Ask yourself: Do they really need it?

This is the first mandatory question. You don’t want to push your agenda without a valid business case first. It will be a waste of resources and time. Be respectful of other people time and money.

2. Ask yourself: Do they understand why they need it?

If there is legitimate business value in your idea, then you must ensure the other side totally understands the message. Don’t assume they will just get it. You may need to take time to prepare several presentations showing different perspectives. Always use language, data and scenarios where the other side can relate to. Show them how this new idea will make their life easier. Show them what benefits they are getting.

3. Identify key influencers and work with them

Is there someone in the team who can help you convince others? This is the charismatic guy, the trusted technical expert nobody dares to challenge, the person who people follow and listen to. If you are able to convince this guy, he will get others on board and will make your job easier.

4. Understand their biggest challenges and genuinely help solve them

It is very important to understand people’s main challenges. They may be saying no to you right now because they are consumed by other pressing issues and don’t have time to consider alternatives and additional work. If you honestly care for them and offer your help without expecting anything in return, at some point those people will recognize you as one of them and will get on your side, validating your ideas and providing new opportunities. Be cautious though, if you are explicitly getting in just to take advantage, or to make them “own” you a favor, soon enough you will be exposed and will not be able to build strong and lasting relationships.

5. Expand your professional network

This is one of the most basic and important things to building a successful career. It applies to this topic, as well as many other areas. Having a solid professional network can offer countless benefits: guidance, opportunities, support, discovery, growth, status, resources. See referenced article below for a more details on this topic.

6. Build and maintain your credibility

When you propose something, people will assess your credibility and track record before seriously considering your idea. It is really important to show commitment and deliver quality solutions on every occasion. Also, don’t be shy to share your success stories and lessons learned. People will be more comfortable listening to somebody they trust with a proven record.

7. Get buy in from “decision makers”

Sometimes the only way to get various teams to agree and collaborate is to ensure the priorities are aligned and everybody shares and owns the workload. This can be accomplished by convincing the top managers about how important or critical the work is, and leveraging their decision-making power to remove additional tasks from the team members and focus on one common goal. Sometimes people say no because they are overwhelmed with current responsibilities. If you take some of those tasks off, and ensure the new work is properly prioritized and balanced, that’s a win-win for everybody.

Summary

Being able to share ideas and influence others is a key part of career advancement. People will recognize, support and follow those who show determination, confidence and a proven record. Whether you want to become a leader or not, being able to convince others about certain approaches and directions may open a significant number of doors and will allow you to tap into the collective knowledge and effort to accomplish bigger and better things. The 7 tips provided in this article intend to bring awareness about common areas that are often overlooked, and can increase the chances of success.

Intro

I have been paying attention to the development of the .NET Core framework and the great features coming out of it. Things like cross-platform compatibility are very appealing and open a whole new window of opportunities to the developer community. I never decided to start experimenting with this until now, and since I saw how easy it was to setup, I decided to share my experience here. In this post I will list the required steps to write a HelloWorld console application using .NET Core framework. It literally took me less than 10 minutes to see “Hello World” in the output window!

6. Restore dependencies and prepare the project for execution

This file should not be touched or checked into source control. Its purpose is to cache the result of analyzing project dependencies, so it is faster the next time. More details abut this file here.

7. Run the program

Execute the following command:

c:\Users\luis.carrazana\Documents\MyProjects\DotNetCore101> dotnet run

The logic should get executed and the “Hellow World” message should be displayed.

That’s it! You have a full .NET Core program running.

Editing the program

The steps above are useful for setting up the minimal required infrastructure to execute .NET Core logic. From this point, you will certainly want to start choosing developer tools that will allow you to write code in a very efficient way.
You can choose any text editor (including Notepad), or you may wanna choose a more robust IDE to make the development workflow more efficient. Coming from a pure .NET background, my immediate choice is the lightweight Visual Studio Code, which offers some nice integrations and can be executed in Windows, Mac and Linux.

So to edit and extend this program, I would manually open Visual Studio Code and load the project folder. However, I learned a very useful tip from Scott Hanselman in one of his training videos: from the command line, type “code .” and it will open Visual Studio Code with the current folder already loaded, ready to go. Pretty neat.

c:\Users\luis.carrazana\Documents\MyProjects\DotNetCore101> code .

Summary

This post described the required steps to provision and execute a quick console application using .NET Core. This framework is currently in Preview mode, and any developer can start using it to write code and run it on any platform. Being a Consultant working for big enterprises, I don’t see myself leveraging this framework for production in the near future. However, it is a good idea to pay attention to the great amount of innovation coming out of it. This is opening up a whole new world for writing great applications.

Intro

This post will provide the steps to rename an Azure subscription.

Why is this needed?

When managing several Azure subscriptions, keeping the default name may not be very desirable because you would like to quickly identify the customer, website, or any other association you have when managing resources and billing.

I recently ran into this issue myself, where I had to create a new subscription for managing the resources and billing for a production website separately from my own development and testing. When creating the subscription, I chose the Pay-As-You-Go type, and I wanted to rename it with the website name. So my naming convention is:”<websitename> Pay-As-You-Go”. This way, I’ll be able to get the exact billing for each production website in my account, and I could even decide to use different credit cards for each one.

The option for renaming a subscription is not available from the Azure portal. This is available from the windows azure account page. I’d be interested to know why Microsoft hasn’t decided to unify this and allow the action from the portal itself, at least for service administrators.

Intro

This post shows the code to compare two text files and determine whether the content is identical or not, as well as listing a line by line comparison. This utility could be useful to verify some scenarios, such as migrations, upgrades.

Comparing two files with PowerShell

The script below takes two files stored in the Desktop, compares their content, and prints a message to determine whether they are identical or not.

Intro

After converting a SharePoint web application to Claims Authentication mode, it is often required to write some code to decode and extract the regular user name in the way of domain\username. This is due to the fact that calling SPContext.Web.CurrentUser.LoginName will now return an encoded string.

E.g: “i:0#.w|mydomain\luis.carrazana”.

A great explanation about how claims are formatted and how to identify the different claim types is provided by my colleague Wictor Wilén here.

In this post I’ll share a method for getting the regular user name without having to manually parse the encoded claim identity, and leveraging SharePoint built-in API. Here, I’m extending an original solution provided by Tobias Zimmergren, in order to address an issue when using HttppContext instead of SPContext.

Context about my scenario

In my case, I was maintaining a custom ASP.NET solution, which was originally built on top of SharePoint 2010. The platform was being upgraded to SharePoint 2013, and the web application was migrated to use claims authentication. The custom ASP.NET components made heavy used of the current logged in user name, which in some cases was retrieved using SPContext.Web.CurrentUser.LoginName and in other cases using HttpContext.Current.Identity.User.Name.

Tobias Zimmergren posted a great solution for getting the user name by leveraging the SharePoint built-in functions. I leveraged this solution in my project, but I faced the following issue:

When HttpContext.Current.Identity.User.Name is used to get the current user name, the encoded formatted string doesn’t contain the claim’s identity identifier. In this case, the encoded claim format for the user name will be something like “0#.w|mydomain\luis.carrazana” instead of “i:0#.w|mydomain\luis.carrazana” (notice how the “i:” is missing from the string). For this reason, the SharePoint built-in function SPClaimProviderManager.IsEncodedClaim will not work as intended.

Please share your comments if you know the reason behind this behavior and a better solution to address it.

Solution

To completely address this scenario and support both SPContex and HttpContext, I updated Tobias’ solution and added another condition in case IsEncodedClaim method doesn’t work as expected. I check if the user name contains the ‘|’ character, in which case the string is converted back to the proper claims format and then decoded.

Summary

When a SharePoint web application is converted to use claims authentication, the current user name is encoded. This articles showed some code to properly use the SharePoint built-in methods for decoding the user name. It also addressed the issue when HttpContext is used, and the encoded string doesn’t contain the identity identifier.

Intro

This article describes what an Azure subscription is and how to create one. It also touches on some of the best practices for managing multiple subscriptions.

What is an Azure Subscription?

An Azure subscription allows you to get access to the Azure cloud services through the Windows Azure Platform Management Portal. It is mostly used for recording resource usage and billing services.

How to create an Azure subscription?

If you are new to Azure, the easiest way to get started is to navigate to http://azure.microsoft.com and click “Start free” button. This will walk you through the process of creating a free trial account with some free credit (as of 08/13/2016 they are offering $200 free credits that expire after a month), and you can continue to purchase credits or use their free services.

If you are already registered in the Azure portal and would like to create additional subscriptions, you can navigate to this link . Similarly, if you are logged into the portal, you can click on the account name on the top right corner and select “View My Bill” from the menu. Here you should be able to manage your existing subscriptions and add new ones.

Some best practices

It is possible for an organization to have several Azure accounts, each one with one subscription. However, it is generally a better approach to have one Azure account with multiple subscriptions, in order to reduce the management complexity.

Use separate subscriptions for different departments, to keep track of usage, spending, and to be able to use different payment methods (very useful for managing cost centers).

Assign different co-admins to each subscriptions to be able to delegate management and billing operations. Ensure granular security and use minimal access strategy.

It is a good idea to create separate subscriptions for DEV/TEST and Production environments. This will allow you to monitor billing and usage for each of this environment separately. Also, you can leverage free services while in DEV/TEST.