Is there documentation for Team Build 2010 Activites? - visual-studio-2010

As most of you know TFS Team Build 2010 is Windows Workflow based. It comes with a handful of custom Activities out of the box. Is there any documentation available for these activities?
For example Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildAgent is one of the activities that has basically only one property called Result which I'm assuming takes a variable name that receives the agent name. But how does it determine which agent to select? which variables/arguments does it use to receive input/output? I'm sure if I ask around I can figure out how this specific Activity works, but what about the other 50 activities? I have been unsuccessful in finding documentation on these Microsoft provided activities to date.

There is currently no documentation on these activities. I have seen some previews on a book on Team Build that will arrive soon (keep an eye on this blog) and the VS ALM rangers who will bring their guidance on codeplex during the beginning of CY11.

See Team Foundation Build Activities on MSDN for documentation on all the included build activities.
The GetBuildAgent activity can only be used within an AgentScope activity. It returns the IBuildAgent object of the build agent that it is running on.
William's book on Inside the Microsoft Build Engine: Using MSBuild and Team Foundation Build will also cover these build activities in more detail.

Beyond the built-in activities, I immediately found a need to implement custom activities. Some Custom Activity examples are:
Checking in/out a file in the build process
Updating Version properties (to support ClickOnce deployment)
Updating deployment folder html file to support Version updates
I found an article by Jakob Ehn very helpful in navigating through this process.
Ewald Hofman has a very thorough guide to help you get more out of customizing Team Build. It acts as a great reference.

Related

Telerik Data Access generate classes automatically

Until the recent release I was happily using Telerik Data Access in a database first way:
Created the database schema in external DB designer
Generated a fluent model in Visual Studio
Whenever I did a database change I either re-ran the generation or updated models via visual designer depending on the magnitude of the change
After the last release the templates I used for the generation are gone (as is the visual designer) and any attempt at Googling the solution takes me to a Telerik documentation page saying the info is deprecated.
I'm working with large existing databases (100+ tables) and there's no way I'm coding the models by hand.
What are the current options for auto generating the models?
I got a reply on Telerik forums. Simply said there's nothing I can do now and have to wait til/if they develop a solution. For all that are interested, please vote on the feature request.
Here's the reply:
Thank you for your feedback.
We have already created a new feature request (http://feedback.telerik.com/Project/114/Feedback/Details/163155-generation-of-fluent-models-with-data-access-q2-2015-and-higher) to create a code generating tool to create your fluent models based on your database schema. You are welcome to cast your support vote for the item.
I cannot give you any time frame when we will be able to ship such tool, but I will make sure to notify you as soon as we have a public release.
Regards,
Viktor Zhivkov
Telerik
The feature is still not available. But maybe this is an alternative to being stuck with VisualStudio 2013.
Owners of VisualStudio Enterprise have another option. They can modify the code generation templates and generate the fluent metadata and context code from an UML class diagram.
I invested in checking the MSDN documentation and created a VS extension which I open-sourced.
Please check https://github.com/bdongus/UMLExtensions for details. Feel free contribute.

CRM 2011 Online Plugin Uploader to support CI

I'm involved in developing a sandboxed Microsoft Dynamics CRM 2011 Online plugin and have a set of tests that I can drive from a xUnit front end on my local machine given that I right-click the Package and select the Deploy option (and resort to using the plugin loader sample when that doesn't work).
I'd like to be able to automate the running of my tests on my CI rig, where I'll need it to upload a fresh binary as part of each run.
We've looked at http://pluginregcrm2011.codeplex.com/ but it has bugs that prevent it working for Online and in short looks like it's no longer being maintained and I'm not keen to take ownership of what should be a fundamental tool that a platform/ecosystem should just have.
Is anyone using that tool or another plugin uploader non-interactively? Am I missing something?
I know I'm late with my answer and I`m pretty sure that you already have found a solution which is working for you.
However I felt the same pain and I have hacked a small application which could be used to simply update the plugin assembly, without doing any configuration work.
PluginAssemblyLoader -f "C:\MyPlugin.dll" -c "Url=http://crmserver/org;"
Please see http://msdyncrm-contrib.github.io/PluginAssemblyLoader
There isn't an easy OOB experience with this but the CRM 2011 Developer Toolkit just uses a set of MSBuild targets that you can call yourself. It's just MSBuild, so you could hook it into your CI build if required. If you install or just extract the Developer Toolkit MSI in the SDK you'll find the following two files in there...
Microsoft.CrmdeveloperTools.CrmClient.dll
Microsoft.CrmdeveloperTools.CrmClient.targets
As an aside it would be nice if MS would open source this as the current implementation uses predominantly sealed and internal classes within the custom tasks.

Configure VS 2010 Help for a specific subject

Using VS2008, you could set Document Explorer to limit your search to specific subjects using the Technology dropdown, which made for finding info on a specific subject very easy, as it was limited to a subset of available subject. How is the accomplished in the new VS2010 help?
The VS2010 help at the moment, is very hazy. When I search for Task, or task, or c# task. re the new Task library in .net, it returns a whole bundle of irrelevancy...
Any ideas.
Apparently the Document Explorer is not compatible with VS 2010. There is an extension called H3Viewer developed by a third party which apparently provides similar functionality.
Info stolen from here:
http://www.codeproject.com/Messages/3449925/Re-VS2010-documentation-in.aspx

Is it possible/advisable to register a MS CRM plugin WITHOUT using the registration tool provided by microsoft

Basically I am looking at doing remote deployment of custom plugin and workflow to an IFD MS CRM deployment. This means that the tool provided by Microsoft cannot be used.
Does anyone do this?
Is it advisable or not?
What resources are available?
I've done a lot of google-ing and reading and it seems like everyone is using the deployment tool.
Absolutely. There are a series of entities that you need to set up to do this. If I'm not mistaken, the SDK includes the source for a plugin registration tool... you can look at that to see how it's done, and you'd just need to update it to work with IFD.

Redmine best practices [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
What tips and "standards" do you use in your Redmine project management process?
Do you have a standard wiki insert template you could share or a standard way to work a project using bugs features tasks and support issues?
Do you let issues and updates get emailed into Redmine?
Do you use the forums?
Do you use SVN repository?
Do you use Mylyn in eclipse to work the task lists?
I'm trying to drag our dept. into some web based PM instead of emailed Word docs of vague requirements followed by Word docs explaining how to QA and Deploy that all get lost in a pile of competing updates and projects so that by the time I have to fix something, no one can find any documentation on how it works.
I develop and maintain internal applications for a family of manufacturing companies. As of the time of this comment, I'm the only developer/analyst on the IT team. During the worst of the recession my project demands exploded. As such my project AND issue backlog is quite unwieldy. We are currently in the process of restructuring to expand the team.
Here's how I use Redmine to keep my head straight (to the extent that is possible), my users at bay, and hopefully prevent too much hand-holding of new staff in the future.
I use Subversion for source control, with TortoiseSVN and the aptly named Tortoise-Redmine plugin. Refreshing the Repository on the Redmine project after a commit links the issue, which shows the revision on the issue, and updates my stakeholders via email notification.
I treat the project description as a means of communicating the project's purpose, scope, and lifecycle stage to those who are not involved. That way my users know what I've got on my plate, and what's still on the buffet that I'm eyeballing from a distance.
I use specific role names for my permission sets that indicate more than a set of permissions -- again, as a means of documentation. My roles include the following: Project Manager, Project Team Member, Owner, Primary User, Secondary User, Observer, Overlord (for my bosses...both fun and undeniably correct).
I use the Wiki and Documents for documentation, depending on which I feel is appropriate.
Versions are pretty much useless to me, so instead of using that for planned releases, I use it to group related issues into sprints.
I use Eric Davis's fabulous Stuff-To-Do plugin to organize/re-organize the aforementioned sprints before mass-editing the Target Versions on my issues. This also lets my stakeholders know what I'm working on and how I've prioritized their interests (for better or worse).
To encourage user interaction, I added links to the Redmine project into my applications' Help menus. The "About" box also contains a link to the Redmine project.
Future Plans
I hope at some point to finish my Visual Studio extension for Redmine integration.
Build a code library to loosely couple my application with its Redmine project: automate bug submission, alert subscribing stakeholders from system tray, reusable interactive Help menu driven by Redmine's REST API, etc. (Maybe automate portions of documentation with the Wiki?)
I'm a freelance Ruby and Redmine web developer who runs a development business of one (me). So my Redmine is setup to be pretty lightweight and customer focused. My Redmine also serves double duty for hosting my Open Source projects.
I do allow new issues and updates to be emailed and it works great for email connected users (or those who are always on their iPhones).
I've been using the repository view with git repositories and it's working great. With every checkin I reference the issue with #nnn so the actual issue page will show all the commits to implement the feature.
I found the forums are underused. I think if there was some email integration, they would be more useful.
We have found useful the following practices:
1) Hide "Issue" and "Support" tracker, and file everything as a bug:
time-saver for developers, testers, management;
if some activities are to be billed as "extra" or "new feature" or anything else, quick meetings are arranged to assess them.
2) milestones & versions
I love this, you can easily track down the status of each release and at any time you can download an older package, i.e. to test a bug filed by client.
3) "save" function on "issues" tab: another big time-saver, I have different queries saved for many day-to-day reporting tasks and that's all I need.
4) versioning integration, i.e. using "#123" in comments creates a link to corresponding issue: simply clever!
We use Redmine extensively on our system. We have even set up a "Sales" project for our sales team to use as a CRM. We have a heap of custom fields in this project, and it replaces SugarCRM which we were using before.
Within our system, we have projects for Server and Client software. Server project is broken up into submodules, based on how I have structured the system and sub-repositories, since Redmine likes a seperate repo per project.
We use, as others note, #nnn codes in commit messages to reference tickets. What is cool is that it needn't be a ticket in the same project. Thus, a sales ticket can be blocked by a bug issue, or a support request.
We have just started using Documents for agenda/minutes of meetings. We use Versions to group into releases, on both client and server.
To try to use Redmine Time Tracker plugin to track time, but I always forget to click start or end. We get daily emails about issues that haven't been touched in a while (Redmine Whining, I think), and that have due dates in the past or near future (Advanced Reminder).
Support emails go directly into our Support project, and if the email importing was a bit more robust (sometimes it doesn't create new tickets properly if the Project: line is included in the email), we would have website inquiries automatically generate Sales tickets. As it is, we just have to monitor Support tickets, and move them to Sales if applicable.
Things I would like to be able to do:
Have relationships between our system and redmine, so that tickets can be associated with a user or company in our system. Also, so that we can generate a new company from a Sales ticket at the relevant point. This just requires me to do some work.
Have a relationship between our error tracking software (sentry) and redmine, so that server errors generate a redmine ticket. Again, solvable with current technology.
Have a desktop client to redmine. The server is within our LAN, but being able to have a more flexible way to access the data other than the web page would be great. It's not that there is anything I can't really do in the redmine web interface, but something like Things.app is so much nicer to work in.
Have our support documentation all within redmine, and then generated out onto a public-facing server. That way, our support staff can maintain the documentation, edit in a nice way, and deploy changes out to doc-server.
Redmine has been fantastic for us so far. We use it as a multi-tenant ticketing/agile prioritization queue, and have tied it to SVN as well. In particular:
Installing/maintaining via SVN has been a breeze (I've migrated us from 1.1 to 1.2 to 1.3 to 1.4 via the use of svn switch https//.../branches/1.3-stable . commands followed by the rake migrate commands with only occasional gem installations needed in between).
Backups of the database and stored files is a one-line script execution
We love the Time Tracker and Spent Time plugins. I would kill for a Mac OS X time tracking fat client for some of our office users, but that's beside the point :)
We don't use the Forums much, but heavily use Activity and Roadmap. Tying issues to specific versions is a godsend.
We also have Client/Server distinctions, but use the target version to tie the tickets to specify which goes where (and have open ended NEXT CLIENT RELEASE/NEXT SERVER RELEASE) so as to distinguish between while being worked on.
We mix metaphors for statuses - we use our lists first grouped by these ("Immediate", "Rejected", "Blocked", "Working", "On Deck" "The List", "Waiting For Build", "Released To Test", "Verified", "Released to Production", "Closed", "Cancelled).
Then, within each group above, we have this sorted list of Priorities: ("Immediate", "Prioritize Me", "Design And Size Me", "P1"…"P5", "P-Watch List"). This plus the above allow for easy workflow all from the issues area.
For the basic issues list, we do sort by "Priority", "Parent Task", then "Updated Date" - need that middle one so that Redmine indents nicely should there be a child task in the same grouping.
We use checkin commits to tie commits to issues (i.e., svn ci -m "This fixes #1733 #2.5, holy smoke what a weird foo bug. It is now bacon and unicorns.") - and have it move that issue to "Waiting For Build" (That used to be "Resolved", but I got tired of explaining that "Resolved" did not mean someone can expect to see it released yet).
I think I will have to go investigate the Redmine-stuff-to-do plugin though. +1 Question.
My company works with software and hardware developers of international origin. Before I joined the company, email was used with MS Word documents to relay our issues and bugs with software or hardware to request a fix. This process was impossible to track and maintain any kind of process. I implemented RedMine as a means to track the software and hardware bugs and it's been working very well since. There is a major language barrier with my situation. Thankfully RedMine can display in Sipmlified Chinese language and feedback has shown that this is OK so far from my developers.
Status
- When I find a software or hardware issue, Status is "New"
- When my software/hardware developers have seen this issue and they are working on it, they change status to "In Progress." They can use the % done if they wish from 0 - 50. I have them set % Done to 50 when they feel they have resolved the issue.
- I determine if the issue is fixed, and I change Status to "Resolved" and % done to 100%. This allows me to filter out issues < or equal to 50% to find issues that are still open.
Priority
- Low, Normal, High, Urgent, Immediate all translates well into Chinese.
Due Date
- I use this to tell me when the fix was originally uploaded by my software developers. It may take me 4-6 days to test something and close the issue. I like my Gannt chart to reflect the responsiveness of my software team, not how long it took me to approve the fix.
Category
- This always reflects the version of software or hardware where I found the issue. I use this to see which version of software had the most amount of bugs, and to make sure newer versions of software do not suffer from regression.
I have everyone included on the RedMine watchers list for all bugs. The email comes across as (New), (Resolved), or (In Progress) so my supervisors, and the supervisors and head engineers of the teams involved can all see the email and quickly read what progress is currently being made. Most of the other people involved never login to RedMine, I'm typically the only one. The emails serve perfectly to give instant updates to everyone whose only concern is whether or not progress is being made.
As you mentioned sending Word documents back and forward with your QA - I know this feeling, been there, done that.
The main issue for me was: QA people don't like to add issues in any bug tracker, they note them down in an editor next to them during testing.
We are using Redmine now with a nice addon - Usersnap (Disclaimer: We built the tool to solve this problem for ourselves.
Usersnap is great for web developers - add it to your web project and you will get screenshots directly attached to Redmine tickets - including meta information about the used browser, operating system and so on.
Our QAs/customers can enter bugs now directly in the web application and the devs get easier to reproduce bug reports into Redmine.
We are using the Roadmap section as a clear way to display:
bugs
features (that would be references to your word document, or link to html requirement pages)
reconciliations (differences between production values and test values)
and so on...
That is the main point of consolidation for us. The rest is used in relation with that (for instance, the 'announce' section is used to define the main milestone/release dates used in the roadmap)
In addition to the other comments I recommend the use of the "Stuff To Do"-Plugin (written by Eric Davis I think :)
Using that plugin allows you to drag-and-drop sort the order of issues across multiple projects.
https://projects.littlestreamsoftware.com/projects/show/redmine-stuff-to-do
We use Versions as a way to define sprints, so each Version is a sprint with the Roadmap view giving a clear illustration of progress. Issues in sprints are marked as 'ready for review' when completed and then closed when QA has verified.
We use a Version as a backlog for any issues that fall out of scope or lose their priority etc.
We have been using Redmine for about a year now and it has evolved on its own in many ways. We use versions to group issues together for a release, and categories to group issues by discipline.
Each issue goes through a workflow of new > in progress > resolved. Then the tester will close the issue when happy.
We would love to update the way we use Redmine, there seems to be so many great plugins, but we find so many of them are broken or won't install.
We use the wiki comprehensively for developer documentation.

Resources