Tuesday, June 18, 2013

Team Foundation Server 2010, Team Foundation Server 2012 and Team Foundation Service supports OData

Yes! The title means it, literally!

Now we could connect and query Team Foundation Server and Team Foundation Service work items and many more using OData! Using OData means we are using URLs to directly query.

OData quick background

OData has been around and it’s one of the cool openness initiatives from Microsoft. Originally named as Astoria, then WCF Data Service, now it’s called OData.

It’s simply a specification and libraries to produce data to be visible as URL, and also the consumer of the URLs.

The official website for OData is: http://www.odata.org/

In there, you’ll find numerous library supports for many platforms/OS, also as the server (OData producer) and the client (also called OData consumer). These producer and consumer really fits the nature of OData as web services, therefore it can be seen as open web API to access data.

These are current libraries and OS supports:

client_server_odata_797D144E

What about the real customers/users of OData? There are many producers today, and one of them is the famous Nerd Dinner. I call it famous, because it’s often used as samples of OData usages from Microsoft.

There was Netflix, but Netflix has ceased OData support. Here’s the announcement: http://developer.netflix.com/blog/read/Changes_to_the_Public_API_Program

The use of OData in Team Foundation Server and Team Foundation Service

To use OData on both TFS (the server and the service, what have you), we need to have library supports in the form of Nuget package and also tooling support.

The tooling support is available to download at: http://www.microsoft.com/en-us/download/details.aspx?id=39373

I will not dive into the detail of how to set up OData for TFS, as there are resources from Microsoft to have!

To get started, let’s visit this Brian Keller blog entry: http://blogs.msdn.com/b/briankel/archive/2013/01/07/odata-service-for-team-foundation-server-v2.aspx

This is the official Technet Wiki: http://social.technet.microsoft.com/wiki/contents/articles/15039.odata-service-for-team-foundation-server-v2.aspx

This is the video explanation from Brian Keller: http://channel9.msdn.com/Blogs/briankel/OData-Service-for-Team-Foundation-Server-2010

TFS on the cloud has provided simple OData documentation: https://tfsodata.visualstudio.com/

Now, download the “OData Service for Team Foundation Server v2” libraries for Visual Studio at this link: http://www.microsoft.com/en-us/download/details.aspx?id=36230

Then you'll set to have OData for TFS!

In the libraries above, you’ll see OData for TFS in action as Windows Store app:

7462.image_thumb_302BC854

Enjoy and happy coding!

Wednesday, May 22, 2013

Speaking for MUGI at University of Mercu Buana

Another speaking opportunity comes! This time an invitation was from University of Mercu Buana. They asked me to provide an introduction to SQL Server 2012.

Again, my main focus is Visual F# but I’m happy to talk about other topic as well.

The schedule was on May 18, 2013 and the venue was at Mosque auditorium inside Mercu Buana surroundings. This is cool, as far as I remember I was never invited to speak in a mosque.

The speaking went quite well, although the audiences were having many background and some of them were non IT.

speaking_mercubuana_may18

This provides a real challenge for me as well, to provide a speaking but with explanations as simple enough to be understood by most audiences.

The slides for this speaking is available on my SkyDrive, and I will release the slide to MUGI.

This is my Skydrive slide link: http://sdrv.ms/160RW5R

See you at the next speaking! :)

Thursday, April 18, 2013

My Indonesian KB article about Visual Studio 2012 Update 1 installation has been published for April 2013

Hi again, all!

Busy month again for March 2013! I have been contributing KB articles for you, my dear blog readers and my MUGI community readers!

Thanks to Min Seop, Clarisse Ng, now my KB articles in Indonesia has been published!

The topic is now “How to download and install Visual Studio 2012 Update 1 offline”. And the title in Indonesian is: “Bagaimana cara menginstal Visual Studio 2012 Update 1 secara offline”.

The URL is: http://support.microsoft.com/kb/2838372/id-id

Now, any updates to Visual Studio 2012 will be delivered as “Update” instead of Service Pack. These updates may contain new features, not just bug fixes.

The complete list and overview of Visual Studio 2012 Update 1 is available at: http://support.microsoft.com/kb/2797915

Friday, April 5, 2013

My Microsoft KnowledgeBase (KB) articles have been published for April 2013

Hi all!

March 2013 was quite a busy month. Not just continually writing my blog post on F# series, but I also have volunteered to contribute article for Microsoft Technet Knowledge Base.

Thanks to Lilian and Min Seop from Microsoft, my article is available to be read from April 1st, 2013.

Here’s the link:

  1. How to implement interface in F#
  2. Introduction to F#’s pattern matching

Please visit those links and read it. If you have suggestions and critics, write to me, guys!

Wednesday, March 6, 2013

Reasons to use F# from Brian Mc Namara and Eriawan

Hi there!

I found very precious blog entry of Brian Mc Namara, a team member of F# team at Microsoft.

His blog was originally located at Windows Live Spaces and then transferred to Wordpress.

Now the URL of his Wordpress blog is: http://lorgonblog.wordpress.com/

Brian’s blog is very inspirational, and it’s one of my source of knowledge about F#. One of my favorite entry is “Nine reasons to use F#”.

Here are his reasons:

  1. Units of measure.  If you’re working in domains that use numbers to represent physical quantities like kilograms, meters, and seconds (or pixels versus inches, or dollars versus euros, or …) you can use the F# type system to ensure that the dimensional analysis works out.  Nearly everyone who uses this feature has a “wow” experience where the compiler finds an unexpected bug (it happened for me when working on the 2008 ICFP programming contest).  In certain domains, this kind of static typechecking is a really killer feature. You can learn more about F# units here, here, or here.
  2. Functional programming with .NET.  If you need to author a component that’s especially amenable to functional programming techniques (like game AIs, statistical modeling, symbolic computing, …), and you need to interoperate with SQL, Excel, or XBox, or run in the browser with Silverlight, or run in the cloud with Azure, or do WCF, WPF, or WinForms, or easily talk to your existing C#/VB/C++/COM code, then F# is where it’s at. The .NET platform has great reach and integration with a variety of technologies, and F# extends the platform by providing a way to do first-class functional programming and get seamless integration with all these technologies.
  3. Explorative programming with the REPL.  The F# Interactive tool window makes it easy to execute small bits of code on the fly.  When working with large data sets or mathematical models, this makes it easy to explore the data, play “what-if” games, and directly interact with the data/models in a very “live” way.  When coupled with libraries for data visualization, this enables some really cool stuff.
  4. Asynchronous and parallel programming.  I’ve blogged recently about F#’s unique programming model for writing non-blocking code for asynchronous I/O.  The async programming model also extends to parallelizing CPU intensive work, and F#’s library also makes is straightforward to react to events, use lightweight agents, or run code on the GPU.  (There’s actually tons of content on the web on these topics; in the previous sentence, I just sprinkled in some links to Don’s blog.)  Multi-core is here, and F#’s language constructs and libraries are very well-suited to parallel programming (not to mention some intrinsic advantages of the functional programming style).
  5. Embedded domain-specific languages (EDSLs).  A variety of F# features (including ability to define new operators, currying and function application syntax, quotations, type inference and overall lightweight syntax) make F# a good language for creating EDSLs.  Some examples include FsUnit for unit testing, FAKE for authoring build scripts, FParsec for parsing, and WebSharper for web applications.
  6. Scripting.  Every so often, I need to write a script, but I use perl and batch files infrequently enough that I’m always forgetting the syntax of those.  Nowadays I use F# for a number of scripting tasks, both in the sense of “FSI is the new perl” and for tiny tasks (e.g. if I can’t recall the ascii value of character ‘A’, I just type “int ‘A’;;” into the F# Interactive window).  I know at least a couple folks using .fsx files where previously they would have used batch files or perl scripts.  For me, F# is the first “software engineering” language I know that’s also a good “scripting language”.
  7. A practical language for academia.  Back when I was a college undergrad, the first real programming language I learned in school was Pascal.  (Yes, this was back before C#, or even Java; I’m an old man.)  In university, it seems there’s been a tension between teaching more ‘pure’ and ‘CS-y’ languages and teaching more pragmatic languages (e.g. that you can likely use for gainful employment when you get out of school).  This is still a topic of much debate, but I think we’re in a much better state now, with languages including Java, C#, Scala, Python, and F#, then we were a decade or two ago; there are now a variety of languages that are decent both as “good introductory CS languages” and “useful real-world languages”.
  8. Expand your mind and career.  I think there are a fair number of folks that use C# or VB in their day job, who would like to learn more about functional programming, but find that diving head-first into Haskell is too difficult or time-consuming.  F# provides an avenue to go more gently into the waters of functional programming, leveraging one’s existing .NET and Visual Studio familiarity.  A lot of folks who are just trying F# as a hobby have reported that they’ve learned new strategies/algorithms that they can apply back in their day job (e.g. using C#), hurray.
  9. Fun!  I’m constantly hearing from people how much they enjoy using F#.  Who doesn’t love being able to get a job done and have fun doing it?

I also would like to have his reasons as mine. And I will add my own reasons:

  1. The most succinct programming language on .NET. Yes, anybody might argue F# is not the most succinct, but as far as I know no other programming languages on top of .NET has the succinctness of F#!
  2. Your code is less buggy thanks to the succinctness of F#.
  3. Train you to have functional mindset while not abandoning you OOP and imperative mindset. This is important, as F# is still compatible and interop well with C# and VB.

Any other reasons to add? I also welcome suggestions

Monday, January 28, 2013

Speaking for MUGI at STMIK Tangerang

Hi there!

It’s my nature to share knowledge especially sharing knowledge of my interest on software development, especially .NET. Also being part of MUGI, I enjoyed giving speech as much as I can in my spare time.

This time, I was invited by STMIK Tangerang as part of MUGI goes to campus program. It’s also my honor to represent MUGI, because I have had many knowledge outside my software development interest thanks to MUGI.

The schedule was on January 26, 2013. My topic was ASP.NET 4. I went there with Wakhid Nusa Bakti and Aji Prasetio Wibowo. Aji was giving speaking of Windows 8 topic.

POSTER1_speaking_stmik_21511AED

The audience at that time was quite enthusiastic, especially at Q & A sessions after I gave speaking!

speak_stmik1_7DD47687

And here, Aji, Wakhid and me sitting as speaker panels: (while I was giving demo)

speaking_aspnet_20490543

The presentation was full of coding demo, and I also gave copies of MSDN video tutorials for the audiences. There’s also demo in F#, not just in C# to show that F# can be used to code for ASP.NET as well.

See you at the next sharing!

Friday, December 28, 2012

Using Team Explorer Everywhere 2012 Update 1 in Eclipse 4.2 (a.k.a. Eclipse Juno)

Hi there!

In my everyday jobs doing software development tasks (including coding, testing and also managing software requirements), I often use tools to help me. The tools that involves software development teams doing their job to develop software from start to end and also developing future versions of it are often called ALM tools, or Application Lifecycle Management tools.

Before I get down to discussing Team Explorer Everywhere, let me bring you the ALM tools available currently.

These are mature ALM tools currently on market today: (starting from the order of release)

  1. IBM Rational Collaborative Lifecycle Management products (yes, they are more than one product under this name)
  2. Borland StarTeam for SCM and version control, Caliber for requirement management
  3. JIRA (for issue/bug tracking and work item management) and Confluence (for team collaboration) by Atlassian
  4. Microsoft Visual Studio Team Foundation Server 2012 with Visual Studio Team Foundation Server 2012 Test Agent

IBM Rational doesn’t have integrated version just like Microsoft has.

Also the offering from Atlassian doesn’t have version controls, although it can be connected to Git or Mercurial. For more info on Atlassian offering, visit this: http://www.atlassian.com/software

The ALM from IBM consists:

  1. Rational Requirement Composer (replaces Rational Requisite Pro)
  2. Rational Team Concert (will replace Rational ClearCase and ClearQuest)
  3. Rational Software Architect (to design business process diagram and other UML, will replace Rational Rose)
  4. Rational Quality Manager

For the latest update on IBM Rational ALM offering, visit http://www-142.ibm.com/software/products/us/en/category/SW860

Currently, Rational ClearCase has its own repository infrastructure, not just database. It’s different from Microsoft Visual Studio TFS approach, whereas you can backup the repository by backing up database and setting that TFS used.

I mentioned Microsoft Visual Studio TFS 2012 in the last, because I consider this version can match the maturity of IBM Rational offerings. TFS 2010 can match the IBM Rational, but the requirement management isn’t intuitive enough.

Also even in TFS 2012 I can’t generate or at least make requirement traceability matrix like IBM Rational can.

Those tools above is not interoperable, you have to choose upfront and plan it carefully. Currently, Microsoft supports not just Visual Studio, but Eclipse is also supported for Eclipse 3.5 and 4.2 (Juno).

What about Rational? Currently I can’t find Rational tools from IBM to support VS 2010 or VS 2012. Or if you can correct me, my dear blog reader? I welcome corrections and suggestions!

Using TFS with Visual Studio is easy, using Visual Studio Professional or above edition will have Team Explorer installed, just like this:

VS2012_ultimate_TeamExplorer_1F98A8B8

It can also connect to Microsoft Visual Studio Team Foundation Service (or simply TFS in the cloud) easily.

But what about Eclipse?

eclipse_juno_j2ee_77B19559

For more info about Juno: http://www.eclipse.org/juno/

The TFS integration tool for Eclipse is freely available to download from Microsoft and it’s fully supported!

The name of the product is Microsoft Visual Studio Team Explorer Everywhere 2012 Update 1. I know, it’s quite mouthful.

Here’s the link to download:

http://www.microsoft.com/en-us/download/details.aspx?id=30661

TeamExplorerEverywhere_2012_Update1_Download_5D6D1836

Any files to download in Microsoft’s download page is free, and it can be a free trial software. But Team Explorer Everywhere is absolutely free and it’s a full working product, not a trial.

But if you want to set up automatically from Eclipse, you can set the Eclipse “Install software” setting to point to Microsoft’s Team Explorer Everywhere download URL.

The detail step by step is also available from the download site, but I’m capturing it for you:

install_teamexplorer_everywhere_2012_from_updatesite_460DD9F9

The display will look like this:

install_after_add_teamexplorer_site_2EEF32F0

Choose it, and install it.

After installing, Eclipse will have a new Team Explorer Everywhere perspective. Open the perspective.

teamexplorer_after_install_301F9203

Now you can connect to your own TFS server or connect to Team Foundation Service.

I have used it to connect to my account on Team Foundation Service, the looks is quite similar to Visual Studio Team Explorer:

choose_teamproject_eclipse_66E8FED5

Now the source control explorer:

teamexplorer_sourcecontrolexplorer_3529CD81

Done! But sadly enough, it has no toolbar like the one in VS Team Explorer.

In the future, I will bring more deep conversations and also deep tutorial about ALM using Microsoft Team Foundation Server, after finishing my blog on F#!