continuous integration tools for visual studio [duplicate] - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm looking for a lightweight, easy to setup CI server that I can run on my laptop along with Visual Studio & Resharper. I'm obviously looking at all the big names like CruiseControl, TeamCity etc etc but the biggest consideration to me is ease of setup and to a lesser extent memory footprint.
Edit: I'd also like some suggestions for other solutions outside the big 2/3...
Edit: I'm about to accept an answer if no one else has anything to add?

I use TeamCity, and is really, really easy to setup and get it running.
Check the Demos and Documentation. You will have it up and running in less than one hour!

I have just started to use CruiseControl.NET.
With no prior knowlege I was able to get it up and running with a single test project using MSBuild, MSTest and Team Foundation Server (i.e. CodePlex) in a couple of hours. I posted a bunch of links to useful resources here Devsta 2008 Day 0: Source Control and CI
I can't help on memory footprint as my project was pretty small. I can tell you that while it's not doing anything (i.e. most of the time) it is using ~5MB on my system. In fact the Tray Icon notifier that comes with it takes up more memory than the service at about 6MB. That goes up when it does stuff of course.

Hudson (update: Jenkins 1) is extremely easy to set up, and managing jobs (projects) in it is certainly a breeze compared to e.g. CruiseControl. It works great for a solo developer too.
For more, see this answer about using Hudson specifically in a .NET environment.
(1 Background info about Hudson/Jenkins situation: How to choose between Hudson and Jenkins?)

For ease of use, I have found CruiseControl.Net to be very easy. Now when it comes to memory footprint, I'd have to say it does chew up my system. That is that a development box that also hosts CruiseControl.Net is not a good way to go. Unfortunately that is all I had access to when I used it in the past.
I can't speak to the other tools.

I use CI as a Solo Developer.
When I merge my dev branch into my test branch, CI grabs the code, compiles it, modifies the connection string, changes a couple of app settings, and copies it up via Beyond Compare to my test site for people testers to have a look at.

Related

Source Control for Self-Managed Project [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What source control would be recommended to use for a self-managed project? It's a C# WPF project on Visual Studio 2010.
Use Mercurial with it's, probably, best Windows Desktop client TortoiseHG.
If you would like online repository, you can use GoogleCode. For local, fast changes, or some experimental stuff you can use a local one, provided by Mercurial itself, like all standard Distributed revision control system.
If you want good information on the management of Mercurial in general and HG in like a client, you can have look on excelent article from Joel Spolsky:
Hg Init: a Mercurial tutorial
There are also other alteranatives, like Git, for example, but honestly, I find Mercurial much easier to manage and understand and much more suitable for simple personal projects than Git or any other. It perfectly combines, in my opinion, the power of distributed system (with probably less functionality than Git offers, but do you really need all of that functionality??) and simplicity of control, which is the main point on my opinion.
If you do not want to set up your own repo, you may use bitbucket.org.
It is free for private commercial repos and works with bot git and Mercurial.
Personally ? I'd use git / tortoisegit.
I would recommend Team Foundation Service. It's still in preview and it is completely free.
You can subscribe at http://tfspreview.com
It integrates nicely with Visual Studio. You dont't have to install anything or worry about backups.
AnjhSVN (VS Plugin), using TortoiseSVN. You will also need an SVN Server. All three are free.

Moving reporting logic into .NET code: Releasing fixes? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
At this moment, all of our reports are currently written in stored procedures. We want to start moving this away from a SQL platform and rather to focus most of the logic in .NET code. Reasons include the use of our ORM entities, ease of debugging, parallel processing, more unification with business logic, etc.
The problem we face is that by moving our report logic into .NET code, we cannot deploy support fixes as easily as running a script on our production environment. Releasing binaries means that the whole business has to stop using our application, which is almost impossible during office hours.
One solution is to separate each report into a new project and release just that DLL. The problem with this is that we have over 500 reports. Maintaining that will be a nightmare.
Has anyone experienced something similar or have any other solutions to this problem?
Thanks,
Dave
Why not use Reporting Services? It is made for this! You can even train people in the business (non-devs) to create reports for you and publish them. There are so many features that users can just leverage. Authentication/Authorization, subscribe, export (PDF, Excel, Word), etc.
I wouldn't invest in rebuilding Reporting Services if I was you. I always stir away from writing reports as part of you application or in 'code'.
If you really, really want to do this (which I totally think you shouldn't do) then I would develop a separate service that generates reports (on a separate end-point) that you can call from your main application. Put a queue in the middle that stores 'report requests' when you need to update and the requests can be served after a restart.
Other option would be to go with dynamically loading assemblies. Let a filewatcher watch a folder and as soon as there is a new dll load it dynamically. Unloading is more difficult. You could restart the service when it is not so busy to get remove the old reports from memory or you need to create separate appdomains that you can unload.
A lot of options, but again, you will be wasting time by building and testing a custom report framework. I would go for plain SQL, even if you really like C#, this way you can hire a BI person that can just create reports instead of a dev.
I agree with a lot #bart's answer. My first reaction is that this seems like a unneeded reinvention.
However if you do need .net code and and convenience of declarative code, then why not use a DLR based language like iron python?
We've stored iron python in the db and loaded it on demand. Once jitted it's no different than any non dlr based code, deploying fixes was a dream.

when choosing a project methodology such as xp, scrum, crystal which questions should be taken into consideration [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Basically I have to choose a project methodology.
The components are not big (we develop components mainly for SAP connecting), however the team is rather big , dislocated and and very unorganized.
Besides how big is the team
which other questions should be taken into consideration?
Thank you
I've made very good experiences with answering these questions first:
How does the team prioritize work?
(I would recommend putting todos into a sequence building a backlog)
How does the team track what needs to be done?
(I would recommend breaking things down step-by-step into User Stories and track them using a tool like PivotalTracker)
How can you make sure the team is self-organizing?
(Let the team pull work from the backlog, run daily status meetings and a retrospective every couple of weeks)
How can you optimize how fast features get delivered in optimal quality? (This way of thinking should replace the idea of maximizing capacity utilization)
How can you make the work visible? (Visibility builds trust and momentum - you can start collecting metrics and putting up a screen showing all kinds of graphs)
One very useful question to assist in choosing any sort of method is "What projects can this not help me with?" It can be very difficult to obtain an answer; the usual way that supporters of a particular method respond is "of course method X can help you with any project." Thus they are saying either that all projects are the same, which is obviously not the case; or that they don't know what are the limitations of their method, and so will not be able to recognise when their method is not appropriate.
You say your teams are fairly unorganised. One of the best ways of introducing any new method is to provide tools - even very basic tools - that make it easier to follow the standards than not. An example of this was trying to improve the quality of development reports in a very large organisation - we provided a number of word processing templates, that made it easier to write a report using the templates (and hence the standards) than to write the report from scratch.
Personal note on my choice of language: I have worked with software development methods for many years, and to me "methodology" is the study and comparison of different methods. A particular way of, for example, managing a project, is a method, not a methodology.
I guess this really depends on a number of factors, for instance some contracts require you to use PRINCE project management which is rather complex.
If you dont have any external factors regarding the methodology you choose I would just do a bit of research and see which you think fits your team best.
I havent had chance to use Agile yet although I took a course on it and I liked what I heard, it seemed fairly straightforward which is a bonus.
One thing to remember though is you dont have to stick to one methodology if you find something isnt working for you then make changes.
Questions I would consider though would be the length of the project, Size of the team, Are the team each working on individual parts of the project or are there multiple people working on the same area, Time it will take to implement a methodology, Any costs involved?, Any training involved?

.NET Workflow Engine Suggestions [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I came across stateless, a hierarchical state machine framework based on Simple State Machine for Boo, but configured using C# 3.0
It is easy to configure and use, I will probably use it soon.
But I was just wondering if
Anyone used stateless for real projects (If so what is your opinion?)
Are there any other good workflow engines for .NET? (other than WF)
I've been using Stateless and WF for an app that is intended to go into production someday. :) I have detailed my experiences so far on my post here.
Overall, I prefer Stateless because it's simpler for more things that WF. Sure, it's nice to be able to design your workflow graphically, but when you need to implement something more difficult than a sequential workflow (like the state machine workflow), you'll need to work with ExternalDataExchange just to make the right state transitions. It's probably not hard, but considering that and the fact that you need to implement a persistence service to pause a workflow just seemed unappealing to me. I don't have a need to persist a workflow to disk for later execution anyway... so I will be using regular events to deal with this in Stateless. Error handling is easily doable in Stateless (I've been successful with it), but the implementation I've taken is questionable, and is the topic of another discussion (which I'm searching for now on SO!). I might be posting a question regarding this very soon.
Good luck with Stateless. I hope to hear how you've been progressing with it.
For Workflow Foundation, only use it for green project so you can use WF4. Check this out
http://realworldsa.dotnetdevelopersjournal.com/goodbyewindowsworkflowfoundationseeyouin2011.htm
WF 1.0 and 1.5 are not compatible with WF4. So it's not a forward solution.
I personally use http://simplestatemachine.codeplex.com as an alternative to WF. I have used it in one full production system (asp.net based) to handle a pretty complex business license issuance system (handling 350+ different government business licenses).
I haven't tried stateless yet but it looks promising.
Late to the party. We've used Stateless in production now for over a year and a half, no issues. It is a very elegant solution for processing workflows and you quickly integrate the states with your data model. We represent our states with and int in SQL, so you can run the state machine in ASP.Net in process. This is true for long running workflows as well.
If your requirements are basic, a very simple StateMachine I wrote may be of interest.
Please be warned that it does not (at the time of writing) support hierarchical states.
You can find it on NuGet:
nuget install nstate
or check it out on GitHub:
https://github.com/benaston/NState
I hope someone finds it useful.
If you haven't looked at the Windows Workflow Foundation it's probably at least worth doing a bit of reading about it.

How can I use VIM to do .Net Development [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
Visual Studio is the defacto editor, but what are our other options that avoid a heavy UI while still integrating with a C# build chain?
Looking for options which preferably use vi or vim directly, and those which emulate some or all of the functionality of vi and/or vim.
Here is a guide on Vim C# compiling.
In response to the comments -
It sounds like your goal is to have a fully functional IDE that works cross platform for C# development, not necessarily to use VIM. If that's the case, you can use MonoDevelop on all platforms (including Windows, but that's a bit trickier), and since you're probably already using the mono compilers on your other platforms, this might be a nicer option.
I'm not connected with the company in any way, but I've heard very good things about ViEmu. If the price were a little lower, I'd get it myself, because I love the editing power of Vim.
Right now there's now something called OpenIDENet from ContinuousTests https://github.com/continuoustests/OpenIDE
This along with AutoTestNet and EditorEngine provide a seamless Test Driven Development tooling for VIM.
EditorEngine gives AutoTest capabilities & commandline interactions to VIM ( ie. adding references, new projects to a solution etc. )
AutoTest does the heavy lifting by compiling on save; as it watches a directory. It also feeds back when tests fail.
The main page provides a video demonstration & howto for this tooling.
Also on windows NuGet is now available to be used from the commandline too.
I must point out that I do not work for continuoustests or get any money or favor from them, it's just that they produce awesome software for developing with.
MSBuild is a very powerful analog to Ant.
Use msbuild project files to manage your .NET projects, and write a nmake file that calls msbuild.
Map your vi make command to nmake
You can just use :make to do a build
If you are on the latest versions of VS, then the solution files can be built with MSBuild, which is basically a NAnt equivalent.
Otherwise, call csc to compile the files yourself.
I use nant as a build file (very simple and flexible) then call
:set makerpg=nant\ compile.all
Then whenever you wan't to compile just type :mak
This can be extended with custom error formats etc.

Categories