TFS2010 Customer access via internet Website - tfs

Wondering if its possible (technically and licensing) to create a website for a Customer to view reports, report bugs, track progress of products we are creating for them (we are using VS2010 and TFS2010).
Cheers, Nick.

Hopefully one of the MSFT guys will weigh in here, but if I recall, providing access to "real-time" data via a web site is not allowed. Putting static data into a status report is allowed, I believe, as long as the person creating the data has a CAL.
There's an exception to the CAL requirement for creating work items and the subsequent view of those work items. This would allow non CAL-ed users to be able to submit things like bug reports.
From a technical standpoint-- yeah, it is not only possible, but relatively easy to do with the API.

Related

Optimistic locking in PowerBI when embedding reports in edit mode

We are embedding PowerBI reports for out-of-organization users using the PowerBI JavaScript API. When using edit mode, it seems that save conflicts are not handled in any way. The situation is quite rare for us, but nonetheless it should be handled properly. For example:
User A opens a report in edit mode
User B opens the same report, makes an edit, and saves
User A then saves his/her changes after user B, effectively overwriting user B's changes
I would have assumed, that there would be at least an informative message displayed in this kind of situation (e.g. with optimistic locking), but it doesn't seem to be the case.
I am wondering if there is something in the APIs themselves that we are missing?
There is not special locking between 2 customers or clients editing and saving at the same time. you can notice that the save operation is saving the differences done in edit, such that you would get the aggregation of the 2 edits.
Power BI Embedded in these cases acts no different than the PowerBI.com website.
However, in cases where the edits might conflict and cannot be resolved in Power BI automatically, you might get a 400 (Bad Request) response when doing the save operation, with the proper IError object transferred to the application via the JS SDK.

Anonymous contact form iOS app

I currently work at a school and have an idea to create an app that allows students to contact a grown up (for example, the principle) anonymously through an app. The app would quite simply consist of a contact form. I am trying to find out the best, and easiest way to achieve this without setting up servers with a separate API. Does anyone have a suggestion on how to achieve it? Is there any way to set up an e-mail form with a pre set recipient and a built in sender-account? Please guide me in the right direction.
You would need to implement an SMTP client. You can use open source code like skpsmtpmessage
It's likely that their example app could be your solution.
Your biggest problem will be the deployment. You definitely need to pay an $99/y developer account and add all the students device ID's to your account (with a maximum of 100 devices/y) or register all of them as beta tester (I don't know the limitations).
Probably this isn't doable so easily, as it seems you don't have iOS developing experience so far. Maybe you can find something on the app store that works with self hosted databases. But you definitely need to host some kind of webApp/API.
You may want to give Appygram a try to handle the back-end if you are able to set up the contact form itself. While it's a separate hosted API, at least you don't have to build/manage it.
Appygram is a free web service that would allow you to configure all the details such as which adults could be contacted, their point(s) of contact (i.e. email address), and it would process and send all the submissions for you. All your app needs to do is send a form post request.
A nice thing about having this information outside of the iOS app itself is that you can change the contact details on the fly without requiring an update to the iOS app itself. Whether you use Appygram (which, since I contribute to it, I am slightly biased toward!) or something similar, I would say that since this is for students, I would recommend a solution that would allow you to update your configuration without requiring app updates.
Finally, I'd second what Julian said. The challenge here could be with deployment. One possible alternative would be to make this a mobile-friendly web page accessible only via student login or on the school network (or both). Would probably be easier development-wise and wouldn't require installs nor the hurdles that Julian described with device registration, etc. And, Appygram would still work with this setup as well.
Good luck!

MVC beginner - Advice on how to persist a user selection for use throughout the site

I have an application which is centered around data per 'team'. A user belongs to a team and if they log in they only see that team's data.
However, I now have super users who essentially belong to more than one team. These users should be able to log in to the system and then immediately choose which team they are interested in. From then on they will essentially view/create data against that selected team. They should also have the option to go and change what team they are viewing at any time.
I've established that the user would like to be able to have multiple tabs open and be viewing a different team in each tab.
I'm struggling to work out the best way to accomplish this with .NET MVC while keeping it as stateless and testable as possible.
I've been reading up on the different ways to persist data - session state and cookies seem to get a bad rep in MVC. TempData, ViewBag seem to focus on just persisting data for one request.
I wouldn't have thought that this is an uncommon requirement in an application - are there known patterns for dealing with this in MVC which I have missed?
So far I'm trying to create a partial view which I can show on each page to let the user see what team they are viewing the site as, and change it from there.
Any advice is appreciated!
If you want to let your superuser view multiple teams data then you'll want to pass the team information in on the request, on the query string or as something that looks like a restful url:
/blueteam/members
In fact it would be extra work to track this in a stateful manner as you'd have track user, team, and ui element when a superuser can view multiple team data at once.
I'd say passing the information in on every request is a pretty standard approach to your situation.
The tricky part of the stateless approach is decorating all your internal application links with the team information without too much extra work. Relative links can be your friends here. So a link to the bug page for a team might be to simply "bugs", picking up the team name higher in the uri path. If you are creating something that looks like a one page application it's easy enough to store the team info on the client.
If you don't want team members to see data for other team members, you can set up guard functions that check for team membership for certain classes of users before rendering a view.

TFS task with more assignees

What is the best way to store a task for multiple users in TFS 2010 ? I can only assign one for one task.
(for example: when I plan a demo to all developers)
(this is a scrum Msf Agile project, where the task is part of a user story)
I'm sorry to tell you that you can't assign multiple users to a single work item out of the box; At the same time, I do not recommended trying as this, as it does not fit the model in TFS. The conventional / recommended way to handle this type of scenario is to create multiple tasks; one for each developer in this case. You can easily accomplish this by copying a set of tasks using MS Excel. Another option (given the example you used) is to create a "Meeting" work item that has multiple drop-downs - one for each person that would attend meetings like for a demo or a technical review.
Yet another option is to create a custom control to format and store a list of users. This would likely be relatively complex to maintain, as you have to distribute it to each user's machine (it will need to be installed locally), and last I checked you would need 2 versions; one for the Team Explorer user interface and another for the Web Access tool that most people use to create work items from a web page on their TFS server. Future updates to TFS could possibly break your custom control. It is rarely worth the effort. Another downside is the you would likely be limited by how you can use MS Excel to work with the data you store in the field that the custom control works with. If you want to look into this further you can find some examples in the following CodePlex project: http://witcustomcontrols.codeplex.com/
You might consider your true goals in tracking such things as meetings and other items you want to assign multiple people to. Tasks are the heart of tracking progress of user stories in the MSF Agile Template. Tracking meeting attendance does not typically relate directly to a User Story, for example; so it won't typically assist you to determine how much close you are to being "done" with a User Story. If you want to take advantage of the existing reports, then you should organize your tasks so that they roll up as child work items to User Story (or Bug) work items.
Short story: you can't. Work items in the Process Template of Microsoft are designed to target nobody or only one User.
Now you can customize the Process Template to change this.
Take this post for instance, the customization works for group. But I don't recommend you to do so because TFS is basically not designed for that and you may end up disappointed.

fogbugz vs. OTRS

I'm looking for a simple solution for support case management. The final nominees are Fogbugz and the open source OTRS.
Hai ofer,
I have used fogbugz for all my web application test cases... It has good version control which be very useful to graph your cases from the day of first test to the latest version....
Individual logins from admin and users would be best suited for assigning,reopening and closing cases....
FogBugz makes it simple to enter bug reports and other types of cases.
Also a FogBugz user. I use it for:
Integrating with SVN for Bugz update assignment to cases
Have an email inbox set up (cases#xxx/fogbugz.com) to allow end-users to submit email (either via their email client or through automation)
I use their API to allow bug submissions through our UI
Managing my team. I categoriese something as "Design", and it goes to our designer
Along with the excellent filtering of cases which allows you to get a snapshot based on any criteria you can think of. It's also really good at concurrency, so if changes occur on a ticket while you're looking at it, you are notified.

Resources