Wednesday, August 29, 2012

Mirror Mirror on the Wall, what is going to be the strongest programming languages of all?


JavaScript in going to cross its current boundaries of being used only in Web Platforms. It will be used in many more scenarios than what it is being used today.

JavaScript is used in combination with other related technologies like HTML, jQuery, JSON, CSS and AJAX.  So it’s not just JavaScript, but all of the related technologies that will have more important role in the future.
For the rest of the blog, when I say JavaScript, I mean JavaScript and the related technologies.

On what basis I make the statement?

I have been working on the new Microsoft products released this year, and observing the trend. Below are some examples of how things are changing with the new releases.

Windows Applications World:
Traditional Win Form Apps were developed in VB.Net or C# as the programming language. The front end used was Win Forms or XAML/Silverlight. With Windows 8 Metro Style Apps, there is a new alternative. The Apps can be developed in either XAML & C++, XAML  & C# or HTML5  & JavaScript.  JavaScript was so far used only in Web Applications, so this comes as a radical shift. It’s being used in a non-web based platform.

SharePoint Customizations/Apps:
SharePoint Customizations were typically done in C# (very few people used VB.Net).  There was an alternative approach called “No Server Code” development, or “Middle tier approach to SharePoint Development”. This approach used SharePoint Designer, JavaScript, XML/XSLT without requiring any custom code or solution packages to be deployed on the server.  While the approach had its benefits (and I led one of the largest and the best team of SharePoint ‘No Server Code’ developers), its adoption in the industry was limited.

In MOSS 2007, to call the SharePoint Web Services, we initially wrote custom code and later used third party JavaScript libraries like Darren’s SPAPI.js or Marc Anderson’s SPServices.js. 

With SharePoint 2010, the approach got a big push with the inclusion of JavaScript Client Side Object Model(CSOM).  SharePoint 2010 CSOM had some limitations, which have been overcome in SharePoint 2013 CSOM.

SharePoint 2013 also introduces a new way of developing customizations called SharePoint Apps. The Apps use JavaScript CSOM to interact with data stored in SharePoint (though C# or even LAMP can be used for SharePoint apps).   Sandbox Solutions and Farm Solutions are still supported and will continue to be developed in C#.  
SharePoint is a Web Platform, and JavaScript was always used since the beginning.

With SharePoint 2013, JavaScript plays a very important role and the industry is likely to use more of JavaScript than C# for customizations.


Microsoft Office Customizations:

Office Macros were traditionally written in VBA. With Visual Studio Tools for Office(VSTO), we saw VB.Net being adopted. VB.Net was more widely used than C# in the Office Customization space as VB.Net is the logical upgrade path for VBA Code and also VBA developers.

The Office 2013 Apps (also referred as Agaves) are now developed in HTML5 and JavaScript. Yes, you read it right; JavaScript enters the Office 2013 Apps space.

Other factors:

If you choose to develop mobile apps in native code, you need to develop a different app for each of the platforms (Windows Phone, iOS and Android). However, if you develop a browser based application, it can be viewed on the Mobile Browsers for all the modern mobile devices and tablets. So mobility is a big driver for JavaScript emergence.

Web Services:

JSON is lightweight and has performance benefits (compared to XML) when transmitted over the wire.  The modern web services return data in JSON format, not XML (e.g Facebook API) . Some like built-in SharePoint Web services return data in both the formats, and let the consumer decide.

Mirror Mirror on the Wall, which is going to be the strongest programming languages of all?
The writing is on the wall. JavaScript and related technologies are going to play an increasingly important role (compared to what they do today) in the future of application development on Microsoft and other platforms.  As the Win 8 Apps or Office 2013 Apps examples show, JavaScript is no longer restricted to web development. It is becoming omnipresent. It is emerging the strongest programming language. 

What is my advice?
If you are in the Software industry, and don’t know JavaScript and the related technologies that I earlier mentioned, prioritize learning these skills over everything else. You will be doing yourself a lot of good. It’s my advice to students, fresher's and experienced software developers.

What if what Vinay Bhatia says does not turn out to be true?
Standard Disclaimer: It’s based on my observations and my personal opinions, and if it does not turn out to be true, don’t sue me. However, a few years down the line,  if my advice helps you move ahead of the competition, do let me know and buy me a drink.

What about other non-Microsoft platforms?
I work in the Microsoft Technologies space, and my views are based on the changes that I am seeing in the way we develop in Microsoft technologies.  If you work in non-Microsoft space, do let me know your views by leaving a comment.

Tuesday, August 07, 2012

Visual Studio 2012 for SharePoint 2010/2013

Lot of developers are still using Visual Studio 2010 for SharePoint 2010 Development , and not taking advantages of the new features in Visual Studio 2012.

Visual Studio 2012 has a number of new features which will improve the productivity of SharePoint 2010 and 2013 Development teams.

For example, there is a new list  and content type designer in Visual Studio. Earlier, the same required writing CAML/XML with hand. The new designer  UI makes it much easier.

Visual web parts can now be created as a Sandbox Solution. The same was also possible earlier using Power Tools, but Visual Studio 2012 has it built in.

For a complete list of new features in Visual Studio 2010 for SharePoint Developers, visit the MSDN link:

Visual Studio 2012 can be used for SharePoint 2010 also. There seems to be misconception that the new features are available only for SharePoint 2013. What is being missed is that these features are in Visual Studio, and available to both SharePoint 2010 and SharePoint 2013.

Below are some screenshots of how SharePoint 2010 teams can benefit from the new features in Visual Studio 2012 on a SharePoint 2010 machines. The UI is friendly and self-intuitive. The screenshots should be self-explanatory to those having SharePoint background. Sharing on my blogpost so that you can evaluate using Visual Studio 2012 for your SharePoint 2010 (and 2013) projects.


SharePoint 2010 Visual Web Part Project Template:

Select Sandbox or Farm Option for Visual Web Part:

Adding Site Column, Content Type, List to SharePoint:

Create Content Types:

Content Type Wizard:

Create a New List:

Options while creating a new list:

Add Site Column to List:

Add Content Types to List:

If required, the CAML generated using the UI can then be modified manually.