Sunday, January 13, 2013

Introduction to Team Foundation Server 2012

Microsoft has recently launched Team Foundation Server 2012 with lots of new features, look and feel wise it has improved a lot and now if you look at Microsoft strategy, they are targeting more product which works touch capable machines. Look at following screen from the TFS 2012 which allows user to move work item very nicely using touch screen capabilities, just like how you move items from your touch screen mobile phone. Just imagine you are with your developer to get a daily status progress of the work item using this touch screen capabilities.


This is one simple example how efficiently you can use this TFS 2012 feature, this you can achieve using even mouse also, but in near future you will see lots of touch capable desktops and laptops, that’s the reason why Microsoft has released its new OS Windows 8 which completely utilizes touch screen capabilities.



Lots and lots of companies now a days are using Agile, all of us are well aware of Agile advantages. When it comes to earlier versions of Team Foundation Server such as 2005, 2008 or 2010, there is a very less support for the Agile.

But with the introduction of TFS2012, there is a lots of improvements, it supports almost all required features of the Agile developments.

The project home page which is configurable and provides lots of options to customize, such you can create a dashboard which shows you Backlog, Burndown chart, sprint details which includes sprint start and end date, efforts spent so far. The representation can be seen in very nice tiles.

Tuesday, December 25, 2012

Unwanted Usage of ‘var’ Keyword in c#

Since the introduction of ‘var’ keyword in C# 3.0, lots of developers started using it very large scale mode. I have done code reviews of lots of projects since the introduction of ‘var’ keyword and the trend of ‘var’ keyword is in usage of lots projects, and one thing what I noticed is that, ‘var’ keyword has made developer’s life much easier.


If you are from a VB 6.0 background, usage of ‘var’ keyword was strictly prohibited only to certain places, developer should not get confused themselves with ‘var’ keyword from VB 6.0 or in JavaScript which both are totally unrelated.

The main purpose behind ‘var’ keyword in C#, is to use it when the type in unknown. For example, I have a method which returns CustomerDetails and it contains information such as Customer ID, CustomerID,CustomerCity,Zip etc. which has different data types.

Usage of ‘var’ keyword at everyplace makes code very difficult for other developers to understand. For example, a developer wants to check employee status with following code, by looking at following code anyone can understand what a developer wants to achieve.







Whereas in following code snippet, developer need to spend at least some additional time to understand the code.






In above example, developer can use known type ‘bool’ instead of ‘var’ which is very easy to understand.This is just one sample example, but imagine, if developer starts using 'var' keyword in entire project for the variable declaration.



One of the point which developer need to understand is that declaration of ‘var’ keyword makes your code incompatible .Net framework 2.0 and below.

It is recommended to use ‘var’ keyword if data type is unknown, you want to take advantage of LINQ or if your class name is big.

Other points related to ‘var’

• ‘var’ is an implicit declaration

• ‘var’ is defined statically

• Compiler define data type by looking at the right side value

• Data type are defined at compile time and not at runtime

Wednesday, July 25, 2012

First Look At Visual Studio 2012


(You will love coding once again…)

Microsoft has released its latest version of Visual Studio 2012, evaluation copy can be freely downloaded from the microsoft site.

Visual Studio 2012 was earlier known as Visual Studio 11. Visual Studio 2012 has great features compares to Visual Studio,2010, look and feel has been changed drastically. Visual Studio icon is changed from to

Let start with the new functionalities introduced in Visual Studio 2012

Start Page
Visual Studio 2012  start page is very nicely designed,lots of new features such as "Quick Launch" ,"Search Work Items" , improved team explorer windows has been introduced.















Recent Project List

Though this was available in earlier version of Visual Studio, remove from the list option is not newly available, you can remove unwanted projects from the “Recent” list by selecting “Remove From List” option. (Right Click on project which you want to remove from the list, select “Remove From List” )

Even you can see the latest Visual Studio GUI in the following screen shot.













Visual Studio Dark Theme
I have seen so many developer, they don’t like default Visual Studio GUI color and they like to code using dark editor, most of them go to Tools→ Options and change default color and fonts.

 
But now you can do this by just changing Visual Experience. Select Tools →Options ,click on General from Environment section. You have option to select “Dark” or “Light”. This is really cool stuff. You can even download themes online.














Visual Studio Installation Engine Improvement
Visual Studio 2012 installation is become very user friendly as compared to previous version of Visual Studio. You can save almost 25 % of installation time and saves about 2.5 GB of the space. There is a lots of improvement in installation engine.























Other Features

Metro Style Application Development

This is the great feature, and only available for Window 8 operating system. To develop metro style application, you need to download and install the Windows 8 Release Preview Evaluation copy which is freely available on the Microsoft site. Once you install Window 8 Release Preview, install Visual Studio 2012 .

Select File →New → Project which will open “New Project” window. Select Visual C# or Visual Basic from the Template (my favorite is Visual C#) and go to Windows Metro style.

Here you have options to select what kind of Metro style applications you want to develop.

(Note: Metro style application is only available for .Net Framework 4.0 and .Net Framework 4.5)

 


Code Clone Detection


This is the new feature introduced in Visual Studio 2012, this helps you to find out similar codes in the project. Normally developers copy existing code from the project to develop new functionality, but with this “copy and paste” tendency, developers introduce lots of bugs.

For example, I have a code in project to fetches employee details and now there a new requirement where apart from employee details, employee department also need to be fetched. As a developer my tendency is to just copy and paste code which fetches employee details and make the changes appropriately to fetch department details. But here I may be introducing new kind of defects, such as mismatch in column names et.

Now as a developer, I want to find out which are all places I have cloned my code. Use close detection from Visual Studio 2012 RC.

In following code, I have copied “GetEmployeeName” code to get “GetEmployeeDepartment”.


















Select code snippet for which you want to find code clones, right click and select “Find Matching Clones in Solution”











You will get following result for the code clones. If you look at above example, though method name has been changed from “GetEmployeeName” to “GetEmployeeDepartment”  still it detects as code clone, indeed this is great feature of Visual Studio 2012.







Sunday, June 24, 2012

Setting up local Storage Emulator database instance for SQL Azure



Once you install Windows Azure SDK on your local environment , you need to do certain changes to your local envirnoment before you use local SQL Azure storage account, SQL Azure storage emulator points to its default instance and if this SQL server instance in not available on you local environment you need to change default instance to your available SQL instance.

Refer following screen shot to change default local SQL Azure storage database.



Once above mentioned command line is executed, new instace will have new database with name "DevelopmentStorageDb201206".



Sunday, June 10, 2012

First Look at Windows 8

Windows 8 is the next version of Windows 7, the main difference between other Microsoft Operating System with Windows 8 is, it supports multiple platforms such as x86,x64 and ARM.


Windows 8 can be installed on desktop,laptops,tablet pcs.


The look and feel is very attractive and once Windows 8 is released, this is going to change complete computing experience.


Windows 8 Release Preview can be downloaded from Microsoft site (http://windows.microsoft.com/en-IN/windows-8/release-preview)


Instead of directly installing on your laptop, you can first install this on Virtual Machine (VMWare, Oracle VirtualBox etc)


I have installed my first Windows 8 Operating System (Build 8400) on my Oracle VirtualBox without any difficulties.


Windows 8 Main View






















User will have different exprience with Windows 8 OS. User need to spend some time to learn this new operating system which has Metro Style Windows 8 Style UI View.


There are lots of new feature which are very new to the Windows 8 OS, such as search.
Some of the New Features of Windows 8 
  • Metro Style  Windows 8 Style UI Application Support
  • New task bar view
  • Support for Sign in using Windows Live account
  • Sync with multile system with same Windows Live account
  • Integration with SkyDrive 
New Task Manager



 There are so many other great features which I will be keep on posting :)

(Note: As per latest update, Microsoft has dropped "Metro" name,and instead it will be called "Windows 8 Style UI")

Saturday, August 8, 2009

Team Foundation Server

Team Foundation Server

Being in a software industry and specially those who are closely working with Microsoft technology no need to explain what is Team Foundation Sever (TFS).
Let me explain in brief what is Team Foundation Server (TFS) and the advantages associated.
Team Foundation Server is a source control, project management tool, bug tracking tool, change management, build automation and so on …
TFS has number of inbuilt functionalities if used in a proper way leads to a project success. TFS enables organizations to manage applications throughout the IT lifecycle.
Source Control
Most of the organization uses Visual Source Safe (VSS) as a source control, TFS is an advanced source control which allows user to manage work items in a systematic way, and e.g., TFS administrator can set a policy while performing check-in and check-out operations.
Following screen shot shows the policy warning if it’s not been satisfied.






TFS can be integrated with Visual Studio; this means it will not allow multiple users to work on a single file with same branch. Most of the time developers use local copy of source code files to develop application, and this created havoc at the time of system integration.
TFS allows user to perform parallel development with the help of branching and merging features. This scenario is mainly useful when team size is between 15-20 members and another team wants to work on same file which is already in development process with other team.
TFS has powerful merge support between files, which will allow user to compare different versions of files to merge in a single file. Changes done in another branch can be easily integrated with main branch.
Following screen shot shows how changes can be merged with main branch using TFS





Comparing files before merge




Reports
TSF helps a lot in a project management, e.g, if there is a backlog in testing/development activity and you want to find out what is the exact reason behind backlog. TFS give you appropriate reports by which you can easily make out the real reason behind backlog.
Following sample reports shows the quality of the application.






Remaining Work Report








Varieties of reports can be generated using TFS such as list of active bugs, bugs which does not have test cases etc. TFS uses SQL Server Reporting Services (SSRS) to generate reports, reports format are configurable can be modified according to user requirements.
SharePoint Integration
Windows SharePoint Services (WSS) also plays an integral part in VSTS .Using built-in features; WSS allows the stakeholders to view information about the project and provides visibility to all without developing custom applications, or learning new techniques – a single point of reporting.

Define System Architect
This functionality is available with Team Suite for Architect where user can define application architect .



This is the only brief overview of Team Foundation Server, entire TSF cannot be covered in the single document since TFS is a very big topic and requires lots of efforts to find new available features.
References :
http://msdn.microsoft.com/en-us/library/ms181233(VS.80).aspx
http://msdn.microsoft.com/en-us/library/ms242904.aspx
http://msdn.microsoft.com/en-us/library/ms181710(VS.80).aspx
http://msdn.microsoft.com/en-us/library/cc487893.aspx
http://msdn.microsoft.com/en-us/library/ms244373(VS.80).aspx
http://en.wikipedia.org/wiki/Team_Foundation_Server





Saturday, June 13, 2009

Cloud Computing

Cloud Computing
Cloud computing is the latest buzzword in the Information Technology (IT). In this article I will try to explain what is cloud computing and the essence of cloud computing.
Definition of cloud:
Before we know what is cloud computing it’s very much essential to know what is a ‘cloud’. Cloud is a web or internet and which can be accessed throughout without any know boundaries over the internet.
What is cloud computing?
Cloud computing is a term used when software is hosted on a cloud. All the required services to run software are provided as a service over internet.
Cloud computing allows you to deploy and access everything from single system to massive amount or IT resources on demand , in real time and at affordable price.
There are number of companies which are currently providing this service. Following are some of the of companies which provide cloud computing facility.
• Microsoft
• Google
• Amazon
• IBM
• Yahoo
Cloud computing helps companies to reduce their cost on software, hardware. Now with the help of cloud computing companies can take help of available infrastructure to host their software with nominal fees.
Cloud computing heavily relies on Virtual Machines(VMs) which can be easily extended based on user demand.
Characteristics of cloud computingInfrastructure management: it manages critical OS updates and management task.
Simplifies capacity planning : additional services can be available on demand. Therefore no need to plan/procure additional expensive hardware or software.
Reduces Cost : cloud computing reduces cost on infrastructure, companies no need to hire IT resources for implementation.
Reduces the cost of running data centers : Companies no need to allocate separate space to have their own datacenter.

HR Policy Helper using Gen AI

  Building an HR Policy Helper Chatbot with AWS Generative AI Services In today's fast-paced work environment, employees often struggle ...