TFS 2010 API Resources - tfs-sdk

Does anyone have any good resources for working with the TFS 2010 API? I specifically looking at how to create, read, update and delete work items.

Please see the Team Foundation Server 2010 SDK on MSDN Code Gallery. More content will be coming on-line for the RTM release, but you should find enough there to get you started. Contact me know if you have any questions.

Shai Ratan's blog has a huge wealth of examples. They're 2008 but 99% still relevant.
www.tfsexamples.com has 2008 examples, but still relevant
WorkItemManager class from a TFS OS project I'm currently working on called Spruce, which is ASP.NET MVC 3 front end for TFS workitems. The class illustrates a large portion of what you need, although no deleting examples. WorkItemSummary in that class is simply a scaled down WorkItem object.
BacklogItemHandler from the Scrum Dashboard project on codeplex also has a lot of good examples of how to use the API.

Related

Unable to find required project

Hi I installed the SDK for azure sphere properly and as I was looking for any trail projects i got some in Github. but as explained in that I need proper template in visual studio to start a project coding. but i'm only able to access two project templates where as i can see there are 5 templates on Azure sphere. so hoping to get any reason or solution to get them.This is what im getting as of now
What im actually looking for
Unfortunately, Microsoft removed most of the Azure Sphere Templates. As you've found there are only a couple templates left. The strategy they are following now is to provide examples on their GitHub project here: https://github.com/Azure/azure-sphere-samples
I think this approach is a good one, because they can update projects on GitHub at any time. With the previous approach they had to wait for a SDK release to update the templates.

Using Winnovative in SharePoint workflow

Hopefully someone can tell me what I am doing wrong here. I have a SharePoint 2010 workflow I am coding in Visual Studio, and I was trying to emulate what is being done here, but as soon as I hit this line:
PdfConverter pdfConverter = new PdfConverter();
My workflow errors out.
I have Phil's book (workflow's in action) which contains an old version of the winnovative dll in one of his code samples, and thinking that might be the issue, I downloaded the newest version from winnovative's site, updated the using line at the top from:
using Winnovative.WnvHtmlConvert;
to simply:
using Winnovative;
as per the developer documentation that came with this newer version, and still no luck. Is there something else I need to do that I'm missing when using this with SharePoint? When utilizing an XSL style sheet for some transforms I had to deploy the xsl to the templates via my project utilizing the sharepoint mapped folder from within Visual Studio. Is something similar required for the winnovative dll to be utilized as well, so that the functions within the dll can be accessed? Do I need to do regsvr32 on the sharepoint server to utilize (something that literally just occurred to me as I'm writing this post), or is adding the reference in visual studio and compiling my code enough? Sorry, not the world's greatest developer, so some insight would be HUGELY appreciated. Thank you in advance for your time.
I figured it out. Following the breadcrumbs of my questions, I found out the dll needed to be deployed to the GAC. Once I did that it worked. This has been a big learning experience, but at least now I know. Thanks for looking.

Setting up a Database Diagram in VS2012 & SSDT?

I'm working myself through this book called Head First C#.NET as I want to get into programming.
Basically the book was written for VS2010, but since my employer has bought me a MSDN License, I decided to go for VS2012 instead.
One of the assignments in the book is to create a local database, and make a database diagram for it. Unfortunately, this functionality has been removed from VS itself from VS2012 and upwards.
I've already googled it, and read that this was replaced by SSDT. Hence, I installed SSDT but I'm still not able to view and/or create a Database Diagram.
Is the "Diagram" functionality completely deprecated from 2012 and should I be looking at something complete different to get what I want / need?
According to this post, there is no diagram support in SSDT.

Have Microsoft rewritten Windows Workflow Foundation in .NET 4.0?

I heard from a friend that Microsoft rewrote all the Windows Workflow Foundation (WF) again and changed everything was in .Net 3.5.
Is that true?
And what about what we learned about WF in 3.0 and 3.5?
According to this article:
http://visualstudiomagazine.com/articles/2009/01/01/windows-workflow-changes-direction.aspx
Windows Workflow Foundation 4.0 is a "bottom-up rewrite with entirely new thinking...WF 3.0/3.5 will remain part of the framework and will run side by side with WF 4.0. This lets you manage the transition at a time that fits your organization's broader goals."
...which is code for, "We know we just screwed up your programming model, but we have a long term strategy, so we hope you will forgive us."
The article goes on to say that
The gains are enormous: custom
activities take center stage, and
authoring them is much simpler;
workflows are entirely declarative;
and there are three workflow flow
styles that you can combine
seamlessly. It's possible that you
could see a 10-fold improvement in the
time required to create and debug
workflows, in addition to 10- to
100-fold runtime performance
improvements.
The change is not without its detractors. In this article at DotNetKicks, the author states that "Microsoft is seriously damaging the Dot Net developer community and adoption in the industry with these half baked product releases and abrupt about-faces after shipping."
Which is why I generally wait for the 2.0 or 3.0 version of Microsoft technologies, although I made an exception for ASP.NET MVC.
We found the workflow product to be difficult to wrap your head around when it came time to pass data in and out. Scott Allen had a series of articles that did a good job describing the process, but still this was not at an easy task.
That's what the word on the street is. And on the internet. 3.0 and 3.5 will be deprecated, but still available.
Is this change not in Visual Studio 2010 beta 1? Download it, find out, and tell Microsoft what you think of it.

Software/Platform to Share Specs

What are the software/ Wiki you use to write and share your specs about the developers, testers and management?
Do you use Wiki system, and if so, what Wiki software you use?
Or do you use Sharepoint to manage and version the specs? One problem with SharePoint 2003 as specs platform is that it's very hard to collaborate among different people.
For backward compatibility sake, I would also like to have the platform able to import Microsoft Word seamlessly. And it would certainly help if the interface is similar to Microsoft Word.
Any idea?
I've used Confluence at a number of places, it's a pretty powerful wiki and very good for creating specifications that can be shared amongst various parties. See:
http://www.atlassian.com/software/confluence/
There's some more information here on the advantages of using Confluence:
https://stackoverflow.com/questions/170352/confluence-experiences
EDIT: I've updated this to deal with the Microsoft Word import feature you mentioned. Confluence supports this through the Office Connector here:
http://www.atlassian.com/software/confluence/plugins/office-connector.jsp
There's also a Sharepoint connector:
http://www.atlassian.com/software/confluence/plugins/sharepoint-connector.jsp
plus a whole bunch of plugins:
http://www.atlassian.com/software/confluence/plugins/sharepoint-connector.jsp
Some of these are user contributed also. I can't recommend Confluence enough as a commercial wiki.
I've also used JSPWiki, which is open source. it's ok but not as good as confluence, see:
http://www.jspwiki.org/
You could try Google docs - I have successfully used this in the past. It supports import / export to MS Word, and it has great support for multiple user - see http://www.brighthub.com/internet/google/articles/8236.aspx.
It supports versioning, allows you to chat with other people who are currently working on the document, and shows you a list of all the changes others have made to the document (without needing to close / reopen the document).
If you want corporate support, Google also provides that - see Google Apps for business.
We use SharePoint -- it's not ideal, but it does a decent job. If I were you, I would seriously look at getting off SharePoint 2003 and on to MOSS (SharePoint 2007). It's not perfect, but it's substantially better. Here's a little bit on using MOSS as a wiki. I think in general wiki's are a good tool for getting people up to speed on your system. We used to pass around "getting started documents" and now we have all that type of stuff in our developer portal.
Per John's comment, I looked up this feature comparison. I have to go back and look at what features I'm using that are not in WSS -- I might be paying for licenses I don't need! :)
We use email. I know it isn't elaborate, but it is easy to use. Everyone has it installed and there are no licensing issues. All spec changes are sent to an super set email distro indicating the updates and the location on the network share where the spec can be found.
We use Alfresco, in its Community version, from both its Share and Explorer web interfaces.
Quite useful, with a document library, wiki, forum and calendar.
We curently host about 1.8 Go consisting mainly in docs, versionned and sometimes automatically converted to PDF (by creating an automatic content rule).
FTP, WebDav and network share are also used to access to the same repository.
You could take a look at Microsoft Groove - the collaboration software that Microsoft bought a few years back.
It's bundled free with premium versions of Microsoft Office.
You can customize the workspace with discussion boards and can fairly seamlessly store collaboratively-edited Office documents.
We use MediaWiki for dos & specs. Wiki definitely wins anything like Microsoft Word or SharePoint - it allows you to develop a documentation in "first refer, then describe" = "divide and rule" way. Perfect for developers - they used to think the same way. The process of developing a documentation is almost ideal: you start from TOC and drill down until you write the document for every link you put earlier.
MediaWiki is quite customizable - there are lots of extensions there. The most necessary ones are:
Source code highlighter - CSO_Source
Our own templates integrating wiki with class reference.
Others are InterWiki, FileProtocolLinks, YouTube (we use customized version of it to display HD video), ReCaptcha, SpecialDeleteOldRevisions, Maintenance.
Some integration examples are here.
And we use Google issue tracker to track the issues. Its main advantages:
Imput usability: the process of adding\changing the issue is really convenient there. Earlier we tried Track Studio - the same actions require 2-3 times more time there, so it died fast simply because most of us hated to use it.
Customizable grids. See the examples. Really helpful.
Atom\RSS support. So everyone knows what's going on.
There is a Gurtle tool integrating it with TortoiseSVN. Really helpful.
Its main disadvantage is that it can't be closed from the public access. This makes it simply unusable in many cases.
If you want a UI similar to Word, why not use Word with SharePoint 2007? You're on 2003 so the experience is there. Upgrade to SharePoint 2007 and you can have the collaboration, Word features, document sharing, and so on.
This is the kind of thing Microsoft wants people to use Office for, so there's a ton of doco out there about how to configure your SharePoint and Office environment to support collaboration.
There is something that Google do in this direction and it looks really cool: wave.google.com. It would be a great step in collaboration and worth to wait it.
Here we use Google Docs it makes the documents available to everyone write or read only, public or private among people that have or not Google accounts, it also can import Word docs, not to mention that it runs directly into the browser so it has high availability with zero cost and zero setup, also its computer/OS agnostic, we have a nice experience with it.
Also perhaps you should take a look at Basecamp or Backpack at 37Signals, any of then might also fit your bill.
We use DocBook for all of our specifications (and other customer-facing documentation). DocBook is an XML format that lets you easily generate documents in just about any format, including PDF, which is how we distribute things to clients to get them signed off. We can divide a document into files (by section) and commit everything to our source control system (Subversion). Because it is all XML (i.e. text-based), Subversion's automatic merging and conflict resolution works great if two people work on the same file. We have a set of stylesheets that all of our documents use, so all documents share the exact same style/format, with no extra work on our part.
And if you don't like editing XML files directly, there are GUI front-ends that provide a reasonably WYSIWYG-like experience. I believe that most people in my office use XMLMind. Still, we happen to all be technical people so if we had to write XML directly it wouldn't be an issue.
As a sidenote, we also put out release notes. We have some XSLT that lets us write documents like this:
<bugs>
<bug id="1234" component="web">JavaScript error when clicking the Kick Me button</bug>
</bugs>
We then have a script that runs through our Subversion repository doing an svn log from the previous release tag to the current release tag, and some Bugzilla integration to automatically generate release notes on-the-fly.
(also, for most internal-only documentation, we use MediaWiki, which is also a great way to collaborate.)
We use OnTime. It was originally only used for defect tracking, but we've started using it to track features as well. These can be used to document the feature as it evolves during development. Features can be grouped together into sprints or releases, and time can be tracked against each feature. If you are using SCRUM, you can also plot burn-down charts for each sprint. It also has wiki functionality.