Speech: To cloud or not to cloud -fundamental

Microsoft Imagine” was held on the 16th of October, 2016 at Leading University . The event was organized by “Microsoft Student Partner(MSP) Community”. A total of approx 100 students were participated on the event.

Since most of the students were unknown with the cloud platform so before diving into the Azure specific session I took a cloud fundamental session. In that session I discuss what cloud is, what are the benefits they will get after moving on cloud, what are the cloud terminology developers use regularly etc.

lu-1

There was a QA part at the end of each session where I answer some interesting questions. Questions like how IoT fits with cloud, is it safe to store data in cloud etc.

lu-2

Slide that I covered during the event can be found below:

Speech: Microsoft Azure Overview

Microsoft Imagine” was held on the 16th of October, 2016 at Leading University . The event was organized by “Microsoft Student Partner(MSP) Community”. A total of approx 100 students were participated on the event.

“Microsoft Azure Overview” was the first technical session in this event. In this session I gave them a high level overview of azure, what they can do with it and how they can get up to speed with azure in a short time.

lu-3

Azure offer various services to accomplish different scenario, one of them is Azure App Service. Developer uses App Service when they want to focus on building unique features for their app and need the infrastructure to just work.

azure-app-service

There was a QA part at the end of the session where I answer Azure specific questions.

lu-4lu-5

Some of the students were keen to know how Machine learning service actually works, how this service could help them in their research.

machine

Slide that I covered during the event can be found below:

Asp.Net Corephilia took place in Dhaka

Asp.Net Corephilia” was held on 24th September, 2016 at NewsCred. The event was organized by “Asp.Net Bangladesh“.  A total of 40 developers were participated on the event. This is the first dedicated event on Asp.Net Core.

Asp.Net Corephilia attendee

Asp.Net Corephilia attendee

The event was mainly conducted by Bangladeshi MVP’s, along with them some local developers also get chance to present their view. There were a total of 4 sessions on Asp.Net Core.

The event was inaugurated by Shahriar Hossain, the organizer of this event. The event had drawn a very good response from the community. NewsCred was the venue sponsor and hifipublic was the proud media sponsor of this event.

Asp.Net Corephilia attendees

Asp.Net Corephilia attendees

Middleware are software components that are assembled into an application pipeline to handle requests and responses. Middleware becomes one of the great things which made Asp.Net Core easily extensible. Although there are enough pre-built-in middleware available today for use, its also possible to write custom middleware. One of the featured session of this event was “Middleware in Asp.Net Core“, which was covered by me.

Shahriar hossain taking session on Asp.Net Core

Shahriar hossain taking session on Asp.Net Core

Slide that I have covered during the event can be found below:

Facebook event page can be found here.

Introducing Microsoft Bot Framework in Azure

“Microsoft Developers Conference – 2016” was held on the 3rd of September, 2016 at Leads Training and Consulting Ltd. The event was organized by “Microsoft Technical Community – Bangladesh”. A total of 80 developers were participated on the event.

The event was conducted by Bangladeshi MVP’s. There were a total of 6 session on different topic like Microservices, Azure Service Fabric, Microsft Bot Framework, Asp.Net Core, Windows Platform Development and Sharepoint.

The event was inaugurated by the CIO, Mr. Papias Hawlader of LEADS Group. The event had drawn a very good response from the community.

One of the featured session of this event was the Microsoft Bot Framework with Azure  which was covered by me.

The panel of speakers included Shahriar Hossain , Mahedee Hasan, Swagata Prateek, Atis Diponkar and Rahat Yasir.

Slide that I covered during the event can be download from here.

Check out the video of that session here.

Facebook event page :  https://www.facebook.com/events/1656181424655247/1658264587780264

Asp.Net Core at Microsoft Developers Conference 2016

“Microsoft Developers Conference – 2016” was held on the 3rd of September, 2016 at Leads Training and Consulting Ltd. The event was organized by “Microsoft Technical Community – Bangladesh”. A total of 80 developers were participated on the event.

The event was conducted by Bangladeshi MVP’s. There were a total of 6 session on different topic like Microservices, Azure Service Fabric, Microsft Bot Framework, Asp.Net Core, Windows Platform Development and Sharepoint.

The event was inaugurated by the CIO, Mr. Papias Hawlader of LEADS Group. The event had drawn a very good response from the community.

One of the featured session of this event was the Asp.Net Core in Azure which was covered by me.

14207711_10210814684190097_5604712688542961348_o

The panel of speakers included Shahriar Hossain , Mahedee Hasan, Swagata Prateek, Atis Diponkar and Rahat Yasir.

Slide that I covered during the event is shown below:

Check out the video of that session here.

Facebook event page :https://www.facebook.com/events/1656181424655247/1658264587780264

Tuple gets more powerful with C# 7.0

Lately I was taking some developers interview and one of the question that I asked them was “How they can return multiple values of different type from a method“. Most of them came up with the answer of “ref” and “out” keyword, some also said they will wrap the result to a temporary object and they will return that object to the caller. While all of these answers are technically correct (although ref/out not works with async method), I realize that most of the developers are not aware of Tuple, a data structure that were introduced back on .Net 4.0

I talked with some of my colleague and they said they found it ridiculously bulkyYes, It was little bit bulky, BUT NOT ANYMORE with the release of C# 7.0

I will show the new lightweight syntax at the the end of this post. Feel free to jump on that section directly if you are already familiar with what Tuple actually is, how it works and so on.

 Here goes the code snippet:


public static Tuple<string, string, int> OldWay_UserInfo()
{
string firstName = "Shahriar";
string lastName = "Hossain";
int yearsOfExpertise = 4;
Tuple<string, string, int> userInfo = new Tuple<string, string, int>(firstName, lastName, yearsOfExpertise);
//or
//var userInfo = Tuple.Create(firstName, lastName, yearsOfExpertise);
return userInfo;
}

view raw

TupleCreation_1

hosted with ❤ by GitHub

As you can see from the code snippet the method OldWay_UserInfo returns a Tuple that ultimately returns two string and a int value. You can create Tuple in two ways. Using constructors for your type’s corresponding argument (line 6, TupleCreation_1) or using the static Tuple.Create method (line 8, TupleCreation_1).

Retrieving the result of Tuple is done by accessing the read only property (Item1, Item2, Item3, … Item8).


public static void Main(string[] args)
{
var x = OldWay_UserInfo();
Console.WriteLine("{0} {1} {2}", x.Item1, x.Item2, x.Item3);
}

view raw

TupleUsages_1

hosted with ❤ by GitHub

Note:

A tuple is an ordered, immutable, fixed size of heterogeneous objects. That mean the order of items strictly follows the order used at the time of its creation. Plus the size of the tuple was set at time of its creation. You can not add or remove items on the fly.

A single tuples could have a max 8 items. If I ever need to pass more then that I can always wrap the extra information inside a new tuple and pass that as the last argument (TRest) of my first tuple i.e. If you want to create a tuple with more items, you have to go for nested Tuples ( Tuple<T1, T2, …, TRest>). In fact, you could even put a third tuple inside the second and so on.


public static Tuple<int, int, int, int, int, int, int, Tuple<Tuple<int, int>>> OldWay_TupleCreation()
{
Tuple<int, int> twoTuple = new Tuple<int, int>(9, 10);
var tempTumple = Tuple.Create(1, 2, 3, 4, 5, 6, 7, twoTuple);
return tempTumple;
}

view raw

TupleCreation_2

hosted with ❤ by GitHub

Accessing the last element (8th element) is little ticker.  I have to call the Rest property.

Tuple gets better with C# 7.0

With the release of C# 7.0, the usages of Tuple gets simpler then ever. I will re-write the first tuple example with the latest syntax. Lets not waste any time. Here is the new elegant snippet :


public (string, string, int) CoolWay_UserInfo()
{
string firstName = "Shahriar";
string lastName = "Hossain";
int yearsOfExpertise = 4;
return (firstName, lastName, yearsOfExpertise);
}

view raw

TupleCreation_3

hosted with ❤ by GitHub

Don’t sweat to understand the underlying details. To me, it feels like, its basically syntactical sugar on top of the existing work. I can still access data with the read only property (Item1, Item2, Item3, … Item8) like I did before.

Calling Item1, Item2, …. etc does not make much sense often.  Simply because these names aren’t very descriptive. Sometime you might want to call them with more meaningful name, with the latest release you can achieve it like this:


public (string fName, string lName, int experience) CoolWay_UserInfo()
{
string firstName = "Shahriar";
string lastName = "Hossain";
int yearsOfExpertise = 4;
return (firstName, lastName, yearsOfExpertise);
}

view raw

TupleCreation_4

hosted with ❤ by GitHub

This approach is good when I have zero or few params in the method signature. If I have good number of param in the method signature then I prefer to use the below style:


public (string, string, int) CoolWay_UserInfo(param1, param2, param3…..)
{
string firstName = "Shahriar";
string lastName = "Hossain";
int yearsOfExpertise = 4;
return (fName: firstName, lName: lastName, experience: yearsOfExpertise);
}

view raw

TupleCreation_5

hosted with ❤ by GitHub

Here I am specifying element names directly in tuple literals (line 6, TupleCreation_5)

Caution:

Tuples rely on a set of underlying types which aren’t included in Visual Studio “15” Preview 4. Current work around is to install the nuget package System.ValueTuple

Tuple_1

Wrapping Up:

Tuples can be very handy for developers,  you can just return a Tuple and have a nice method signature without having to create a new POCO.

I am now Azure MVP

The story started long ago, long before I had passed the secondary school. I used to work for peperonity, world’s largest mobile site building service provider. I was not their paid employee, but I used to do community work for them. In order to help the people of peperonity community, I came up with the idea of two unique sites –  ask.help and free.tutorial which turned out to be the best service providing sites in their community in the year 2008.

After getting a recognition from peperonity community I was inspired to do more community works and engaged myself in community works for many organizations. However it turns out that joining the Microsoft Student Partner(MSP) Program was one of the best things I did at that time. Being an MSP I was responsible of sharing my technical knowledge with the academic community by arranging events, giving presentations and initiating projects. Soon I became the MSP lead in my campus. During that period I had participated in Imagine Cup and ended up being the runners up team in Bangladesh. At that time, I had also written my first ebook named “Microsoft Silverlight for Windows Phone” for which I got immense response from the community. In September 2014, three years after joining MSP, I ended my journey as an MSP.

Journey from MSP to MVP

If you see closely, you will see that the alphabet ‘S‘ in MSP is only two alphabets before the alphabet ‘V‘. To make the S into V was a dream for me, a burning desire to get to the next level. So, with a little knowledge of Azure I started this group to bring all the azure enthusiasts under the same hood in Bangladesh. Over time I learnt a lot from other community members and also started sharing my knowledge with others. I wrote blog posts, arranged several events, podcasts and then on the very first day of January 2016 I got mail from MVP panel.

1

I am now Azure MVP 😀

It turns out that was right about MVP. To become an MVP you need to have an intense appetite for technology, a passion to evangelize, a burning desire to convey it, a love of writing and speaking about it. I did try from the bottom of my heart to do all these and today I am awarded with the most prestigious award Most Valuable Professional (MVP) by Microsoft.

MVP_Logo

 

 

 

I would like to remember few people who helped me on the way. Avishek Ahmed is the key person who kicks the passion inside me for technology. He was probably the best mentor I  could ever get in my life.

Photo : Me with Avishek Ahmed

Photo : Me with Avishek Ahmed

And then there is Tanzim Saqib who kept pinging me to embrace new technologies. I still remember the day when Tanzim vai first told me to focus on cloud.

Tanzim Saqib

Photo : Tanzim Saqib

There is one more person who motivated me with his excellent effort and he is Swagata Prateek. The young, not too tall, funny guy who keeps motivating me to work. He never said me to do anything in the face actually, but his community works inspire me a lot.

Swagata Prateek

Photo : Swagata Prateek

This award wouldn’t have been possible without the support  from other community members. They helped me to arrange events, find sponsors, helped me with ideas, with feedback on articles and so on. Ashraf AlamMonjurul Habib, Shahriar Galib, Sk TajbirHasanuzzaman Shuvo are only a few of them. Special thanks to my beloved girl Anika Sayara.

If you are passionate with Microsoft products, I think you should check out this article. So. this is it. Thank You Microsoft and Happy New Year!