Continuous integration with .net and svn [closed] - continuous-integration

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
We're currently not applying the automated building and testing of continous integration in our project. We haven't bothered this far as we're only 2 developers working on it, but even with a team of 2 I still think it would be valuable to use continous integration and get a confirmation that our builds don't break or tests start failing.
We're using .Net with C# and WPF. We have created Python-scripts for building the application - using MSbuild - and for running all tests. Our source is in SVN.
What would be the best approach to apply continous integration with this setup? What tool should we get? It should be one which doesn't require alot of setup. Simple procedures to get started and little maintanance is a must.

Have a look at JetBrains' TeamCity. Free for a small team like yours. Easy to install and minimal fuss. And it looks good. Far better than CruiseControl.NET.
CruiseControl.NET is good too, but definitely requires more work to get setup.

I've been using Hudson (open source software) and found it really flexible. It's more popular in the Java community, but there are MSBuild and MSTest plug-ins available. Hudson also makes it easy to schedule builds or run builds when changes are checked into svn. I found this blog very useful as a starting point.

Cruise Control .NET

Try Cruise (http://www.thoughtworks-studios.com/cruise-release-management) (the re-write of CruiseControl.NET) by Thoughtworks. Its very sexy, much easier to get going and very nice to use. Great feedback too. And its free for teams of less than 10.
Even with two its a great tool to have and once you've done it once its much easier to set up other projects. Having it build, fresh, from SVN when you check in and then tell you everything is ok is a really nice feeling thats easy to get used to.
Allow a good two days though for any build system to wire it all up, thats not installing thats just getting everyhing wired up as it should be. Trick is to do baby steps, get it checking out your code and add more and more layers as you go. Once you have a base set up you can add the other bells and whistles when you get time until after a week or two you have the whole thing singing and dancing. Sounds like a lot of work but its well worth it.

Related

Two developers working concurrently [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I'm a relatively new developer (two years experience, coming from an apprenticeship) and in my workplace we've only ever had one developer working on a project at a time.
We keep our projects in Microsoft Visual Source Safe and check out files as required, and checking back in when we're done.
However, I've been doing some thinking lately and I'm unsure how we'd work on the same project at the same time? Almost everything has dependencies on some core code and certain base classes. Is there anywhere I can go to read up on concurrent development, or are there any 'techniques' I should be researching?
How do team work on projects together? For background information I'm a .NET developer working mostly with VB.NET and webforms, but am moving onto C# MVC.
Edit
I think what I'm really asking here is about the techniques that should be employed as opposed to the software. I've been tinkering with Git a little and can see the benefits of the system over VSS. I was looking more for help with techniques on a project level that can be employed with concurrent development;
Should the development of two sections be completed then merged, or should it be more closely worked on together?
Are there any proven techniques or best practices when it comes to reviewing changes or discussing the next move?
Are there any books or articles I can read on how to produce a project as a team more efficiently etc?
Given you are using a Microsoft Stack, does it not make more sense to update yourself and use TFSOnline as an example. Its far better than its predecessor and everything is fully integrated into your toolset (assuming you use Visual Studio). There are loads of tools out there but everything I use is free inside a MSDN subscription and it plays nicely together. I am not saying others aren't ahead of the game but it makes more sense given what you are doing. Was very surprised to see SourceSafe stil being used.
I never used Visual Source Safe, but most chances are a different source control tool called Git (http://git-scm.com/) will make the concurrency better.
As the project will grow, you will probably have less collisions - just because there are more files to work on.
Try to push back the code more often. No more than 1/day - and hopefully sooner.
Use some kind of SCM(source code management) Wiki,
You can use some kind of program to help you, today the most popular program to this is GIT Wiki Git, but have many others. Do some research and find out what is better for you.

How to do full stack integration testing of web applications [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I'm looking to enhance our current test suites, and continuous integration builds with full stack integration/acceptance testing.
I'm looking into tools like Culerity and Selenium that can execute front end javascript while running user stories. I'm looking for something that can provide coverage of front-end javascript and high level features without sucking up tons of development time maintaining a complex test environment. We're currently using Rspec, Cucumber, and CruiseControl.rb, so easy integration with those tools would be ideal.
Are any of the headless browsers and js-capable test environments to a point where they are worth the trouble of setting up and maintaining? What are the best option you've come across, and pitfalls to avoid?
Thanks.
You sound like you are way further down this road than I am, but I'll comment anyway.
I am working on a JavaScript project (with a Java + MySQL back end) and decided to use Selenium for testing, and to try to achieve as thorough coverage as I could. I also poked around with a few other testing tools, but I can't say I really got to know any of them. None of them appeared, from their web sites, to be very polished or popular compared to Selenium. I am planning to integrate to CruiseControl eventually, but haven't done so yet.
This has been an interesting project and at the end of the day, I am quite happy with Selenium. Selenium plusses:
Test 'scripts' can all be written in Java, no obscure scripting language involved. Among other things, you can easily do things like manipulate and verify the data in your database before and after tests.
Se also supports Perl, C#, etc. I think, although that is of no interest to me.
Selenium IDE is a great tool for quickly understanding how Se works, how locators work, etc. You don't want to actually run tests long-term using the IDE, but it's great for getting your feet wet, and for ongoing figuring things out.
Se seems to work flawlessly with jUnit. Probably TestNG as well, but have not tried that yet, it's on my todo list.
Excellent documentation and web site.
Minuses:
I spent a LOT of time figuring out how to locate elements in all cases. This is partially the 'fault' of the framework I am using (ExtJS), not Selenium.
It seems no matter what you do, Se has timing dependencies - eg. places where you have to inject artificial pauses to make it work.
There are also monitor-size dependencies in my tests. I think this is extremely undesirable but in some places it seems to be unavoidable. Basically, this is because there are many element types that JS doesn't support you clicking on programatically.
Related to #3, in places I am forced to drive the mouse. That means you have to have a dedicated test PC. Which is no big deal, but doesn't seem right.
Tests are slow - mainly due to the time it takes Se to invoke Firefox. No doubt this is partially my environment, and I suspect I could do lots of things to improve this. However, it is really noticeable and not obvious why. It takes about 10 minutes to run about 40 tests.
Support forum is very spotty. Well, you get what you pay for. But time and again I found someone had posted about my problem, and the post was ignored or else an invalid solution was offered with no follow-up when the OP pointed out that the suggestion was bogus.
HTH, cheers.

TeamCity Alternatives [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
I write a lot of little projects, and I'd like to use something like TeamCity for my build server(s). My problem with just using TeamCity itself is that the Professional version of only seems to allow for, at most, 20 projects. And since these projects are generally not-sellable, the price tag for the Enterprise edition is a bit much.
The projects are written in various languages, both managed and unmanaged and for various platforms (user- and kernel-land in both Windows and *nix).
The features that I'm looking for:
To be able to manage projects for the multiple platforms that I support.
Integration with Subversion repositories.
For the Windows projects, I'd really like to just be able to point the software at my solution file (and not have to resort to building a series of commands that invoke cl or similar). (Bonus points)
Could someone suggest an alternative that would also work?
Update: Hudson looks pretty great. I just installed it on an Ubuntu box, is there a nice way for it to build my Windows projects? TeamCity does that whole build-agent thing, is there something similar with Hudson?
Thanks Again!
Team City has an Open Source licensing option if that is what you mean by non-sellable. If not, look at Hudson.
EDIT: Here are the instructions for running a slave on Windows.
You can try Hudson or Crusie Control. We are moving from CC.Net to Hudson.
We use CruiseControl.NET. It's a bit hard to configure comparing to TeamCity (you'll need to edit XML config, which is error-prone), but has a lot of features.
It can work with SVN (and many other VCSs), detect changes and start build automatically, you can set it up to run tests, display coverage analysis etc.
And it supports many build engines, such as NAnt and MSBuild (which is used in Visual Studio for its solutions). Note that for VC++ projects to build you'll need to deploy Windows SDK on your build machine.
It is also very simple to write plugins if necessary.
To answer the "Update:" portion of the question, yes, Hudson supports build agents:
"Hudson supports the "master/slave" mode, where the workload of building projects are delegated to multiple "slave" nodes, allowing single Hudson installation to host a large number of projects, or provide different environments needed for builds/tests."
-- http://wiki.hudson-ci.org/display/HUDSON/Distributed+builds
CruiseControl is quite nice. For .net, check CruiseControl.net. For Ruby, CruiseControl.rb
You can try jenkins.
Which support 100

FogBugz On Demand + online source control at low/no cost? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I have a project in the free hosted FogBugz On Demand (FOD) product right now. This is great for feature/issue tracking. But I've been working from a codebase that is solely on my development machine. I'd like to collaborate with another guy who is thousands of miles from me. So we need a source control solution (SCM)!
I use Visual Studio (2005, but can upgrade to later versions as needed).
I am aware that FogBugz can integrate with a number of source control systems.
So now the question is: which online SCM products can integrate well with FOD and VS? And which ones do so well at low or no cost, for a small code repository. And where might I find a proven recipe for putting this together.
I'm open to other solutions which provide the same functionality. Please don't suggest Trac - I regard it highly, but I want the features of FOB (especially the evidence based scheduling) in my issue tracking solution. So really, I need to combine FOB + VS + some online SCM product into a low or no cost solution for two coders to collaborate on.
Well, the obvious solution is to go with the product designed with FogBugz on Demand in mind:
Kiln, from Fog Creek
It is in beta right now, and I don't know what the waiting times to get into beta are like with it, but it might be worth a look for you.
I'm currently working with another developer and I have an SVN server set up at home. I've got it hooked up to WebSVN so that we can access it through port 80 and all works like a charm. We've got it hooked into FogBugz on Demand.
You should be able to use a service like DynDNS (or similar) to keep them linked if you don't have a static IP address. I've got a static IP which alleviates this need, but it's free and allows access to my SVN repo from the office or to the other developer I'm working with.
I can't speak for online services though... I haven't used any of them. I know this isn't strictly the answer you're looking for, but thought I'd throw it out there because of the fact that it would be free.
If you don't get into Kiln beta (or don't want the extra cost once it's out of beta), you should try mercurial.
I'm not sure how good the VS integration is, but I've heard it's getting better.
You can host a mercurial server at bitbucket.org for not much money, which now has (untested by me) Fogbugz integration (http://www.bitbucket.org/help/service-integration/)
http://beanstalkapp.com/
They seem to offer Subversion hosting for a small project like yours for $15/month. Not sure if that qualifies for 'low' cost, but if the source code you are developing means anything to you (which I assume it would!) $15 a month seems pretty cheap for a reliable source repository.
I don't work for or represent that company, just something I found when looking for subversion hosting.

Software for managing medium sized projects [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
So, at my current job we're usually 1-3 developers, 1-2 art directors and 1 project manager on each project, with the smallest ones just being one of each and the larger ones being three developers and two art directors.
I'm looking for a software, combination of softwares or some type of service that will allow us to manage our projects individually, it's important that we're able to manage several projects at once within one system/piece of software (without going through a too complicated setup process for each project) since we usually have 2-3 ongoing projects in parallel.
We need to be able to integrate with SVN, Track bugs/features/request, Put up milestones and some type of agile management a´la SCRUM would be nice.
Preferably it should be able to run on Windows (without to much hassle, ever tried to put up Apache+Python+Svn+Trac on the same Windows 2003 server and get them all to run together? not fun.) since we mostly do .NET development and most of our servers run Windows 2003.
Since you seem to have a maximum of six people working in a single room - I'd give serious consideration to not using software at all.
A whiteboard & cork board for each project, plus a whole lot of index cards / stickies can go a long, long way towards meeting the project management needs of one or two small projects.
(Failing that - I've found basecamp a fairly lightweight tool for small projects - although it doesn't do any sort of source control integration. I've also heard good things about the latest FogBugz - but I've had such bad personal experiences of earlier versions I've not tried it yet myself)
http://www.project-open.org/ covers your requirements and is available for Windows. However it is targeted at larger organizations (>20 employees), so that you might find it overkill for a group of 6.
I personally use BaseCamp for my company and have had great luck with it!
Edit oops, I didn't notice the SVN requirement, BaseCamp can help with the other stuff.
You might want to try out Mantis (www.mantisbt.org). It is a little cumbersome at first, but with a little bit of customization, it will work for you. It has SVN integration, and a bunch of other stuff which I haven't used yet... :|... such as Mobile support, Wiki support, etc.
And it's OSS (Open Source Software). Written in PHP, works with MySQL, or PostgreSQL. Just check it out, it's good.
http://www.mantisbt.org/
Atlassian's Jira Studio sounds like exactly what you need. It's hosted, so there's nothing to install.
If you want something that is quick and easy to work with that integrates well with Windows I would suggest Microsoft Office Groove. I have been using it on my current project and it also easily allows you to start new projects and add members.
It is not the best solution in the world, but it is included with Office '07 and it has tools to help with project management, bug reporting, calendar, meeting summaries, etc.
The one major problem I have found with it is that version control is not included by default. From what I understand you have to setup a SharePoint server to have version control in Groove, but I have not done this yet and have been hoping that my backups will work fine.
+1 for starting out with a whiteboard, stickies and whatever other office supplies you can think of. Being able to visualize the state of your project in a big visible wall can be really useful, more so than software-based tracking, IMHO.
You need to make sure the team is committed to keeping it up-to-date, though.

Resources