Does Django require an IDE an does ASP.NET require Visual Studio? - asp.net

I wasn't sure how to ask, but from my limited understanding and experience, interpreted languages like Python and PHP, are quicker to build and implement changes because you can do so using, well, notepad if you need to and fix something quickly.
From what I know about asp.net, you can do the same, but with a simple text editor it is very complicated to do so and using Visual Studio is just about the only way to be productive with .net. I just remember LOTS of xml files produced automatically by Visual Studio based upon Linq, or a BLL, or whatever the current technology is (no slam there intended). I'd throw the Java stack in the same category as .NET for the purposes of this question. I like Visual Studio but I don't like how I have to use it to recompile the whole project each time I change something in my model or controller (I'm sure that is an exaggeration but I don't know.)
Are these statements accurate?

The need to recompile your code while using Visual Studio is due to the design of the programming language used - not due to Visual Studio. Java is the same, whether or not you are using NetBeans, Eclipse, or NotePad.
An IDE is typically not required, but as you pointed out, it makes life easier. I started out using vim to program in Python - but now use Eclipse.
Django comes with built-in command line tools to help you build your initial project, but in theory, you could manually create these files.

If you're comfortable using notepad to do your PHP work, then you wouldn't need an IDE to do Django.
That said, there are many IDEs for Django (and PHP) that can make the process easier for some.

Related

Gendarme vs FxCop

Gendarme and FxCop look very similar and seem to tackle the same problem. Which would you suggest for a small team of developers (3-5) mainly working on web application with lots of business logic? Why?
Gendarme is indeed the Mono equivalent of FxCop. Given that Microsoft is planning to ship a considerable set of Code Analysis rules with most versions of the next Visual Studio, you might want to use FxCop and stick with that. The integrated version of FxCop (called Code Analysis) is the simplest to use if your Visual Studio version supports it (Visual Studio 2010 Premium and Ultimate).
There is a Visual Studio add-in which allows you to run FxCop from inside Visual Studio Professional as well. You need to download FxCop 10 separately (it's part of the Windows Platform SDK). Do note that the Visual Studio integrated version comes with a few additional rules, so the output may differ.
As Gendarme doesn't integrate directly into Visual Studio (though you can make it part of the build process) and you won't see many people using Visual Studio use Gendarme. Mostly because it isn't too well known.
In the end I'd use FxCop from a convenience perspective. It's integrated into the version of Visual Studio I use by default and it's well known in the developer community.
But if you're not using Visual Studio Premium or Ultimate, then you can pick either or even both. Just keep in mind that if you choose both, you'll probably be receiving a number of duplicate messages or even conflicting messages as the creators of these different tools don't always agree.
If you don't mind investing some money, then, as niaher suggests, Resharper or Coderush are very useful additions (I wouldn't call them replacements, as they don't run outside of the IDE (in the continuous integration build for example)) as they provide direct feedback as you're writing the code. Often even without having to compile it. And they often provide the ability to "apply the fix" without you having to figure out exactly what to do.
An alternative or a good complement to FxCop/Gendarme would be to use the commercial tool NDepend. With this tool one can write Code Rule over LINQ Queries (namely CQLinq). Disclaimer: I am one of the developers of the tool
More than 200 code rules are proposed by default, these include design, architecture, code quality, code evolution, naming conventions, dead code, .NET Fx usage...
CQLinq is dedicated to write code rules that can be verified live in Visual Studio, or that can be verified during build process and reported in an HTML/javascript report.
The strength of CQLinq over FxCop or Gendarme, is that it is straightforward to write a code rule, and get immediately results. Facilities are proposed to browse matched code elements. Concretely this looks like that:

controlling versions in asp.net

How to control versioning in asp.net projects?
We are a five member team and looks to use same solution file in asp.net.
I heard of using vss or tortoise svn..
how to use visual source safe or tortoise svn tool or any other tools which has better performance for version controlling.. what are the requirements to set up version controlling.?
thank you
This is a HUGE question! It sounds like you are just learning the very basics of version control. You should start by understanding the basic concepts, then choosing a tool that is relatively easy to setup and learn.
Check out these other StackOverflow posts as a starting point:
Learning Version Control, and learning it well
Learning version control with git first or via SVN?
Do some test projects and try each system before you make a decision:
Do things like:
Setup it up.
Check out a file.
Check in a file.
Do a diff on two versions of a file.
Rollback a file to an earlier version.
This is great work for an intern. Once you start using source control, you'll wonder how you ever managed without it.

What should a .NET developer know about MSBuild?

95% of my time I program ASP.NET (MVC) web sites.
Should I care about MSBuild?
We use MSBuild with CruiseControl.Net to manage the builds of most of our big ASP.NET projects. For every commit of one member of the team, a build is launched. It helps us detect
quickely incompatibilities before moving a feature to "staging" or "production".
I think it is really usefull when working with a team on the same ASP.NET project or if you are working alone on a big project.
That depends on your development environment.
If you have other folks that do deployment of your systems, and they take care of the build and deployment environment, then MSBuild probably won't be necessary for your work.
On the other hand, if you need to configure the build script to understand special situations that your code comes up with, then you will definitely need to understand MSBuild scripts.
Even for a one-man shop, it's a useful tool to know, especially if you are configuring a continuous integration server like Hudson.
No. Until you have to.
Its not absolutely necessary to know MS Build, but it is useful to know.
It might not be needed for all kind of projects, but it is extremely useful when you are working on a huge code base with automated custom build solution/ nightly build/developer builds so on and so forth.
It's unlikely, unless you choose to use it, or you start to make use of Team Foundation Server's Team Build.
Your development processes need to get to a certain complexity before automated builds really deliver their true value and/or if you find need for automatic deployment (including database changes if applicable).
The coming Visual Studio 2010 is going to make it far easier to use, but for now it retains a fairly steep learning curve which you can avoid by using alternatives, or commercial products (e.g. Visual Build Pro, Final Builder etc).
The nice thing is that it is part of the .Net framework, so it's already available as long as you have the framework installed (which it probably is).
So, in short, not really. It's something very useful and powerful though, setting up deployments using MSBuild can be very, very useful.
What should a developer know about MsBuild?
Every developer should know it exists and it's basic capabilities. If know it exists you won't duplicate its features and will know what it can do for you, when you need it.
Minimum:
As an exercise, build your project through the command line: msbuild myproj.sln
Know the role of continuous integration
A little more than minimum:
Hack your csproj (or vbproj) with a message task, so it outputs something during clean.
All done. When you need to know more, you'll figure it out.

ASP.NET - Source control tool for .NET 3.5

I am going to develop my first application (4 members team).I am not aware of source control tool ( Visual
source safe,Tortoise SVN).
My .NET version is 3.5. What is the best source control tool ?
Is CruiseControl a source control tool ?
Definitely avoid Visual Source Safe.
Subversion is probably a safe choice, but you will have to elaborate about your situation (E.g. how big is your team?) to get more specific advice.
Another no vote for Visual Source Safe here.
Might be an idea to get familiar with subversion as - just as others mentioned - it's widely adopted, so might be useful in the future and simply works..oh and it's free too!
TortoiseSVN integrates into the windows explorer and is both easy to use and well documented so I would give it a try.
If it's a small project of yours and you don't want to worry about hosting, I would recommend signing up for a free account at something like beanstalk, to keep it safe, without any hassle.
But if it's your first ever project, it might just give you too many additional things to learn about, so you might want to put it aside for a while.
Try GIT, it's much lighter weight than svn
http://sourceforge.net/projects/gitextensions/
you can use a local repository for just checking in your own work (to keep a history, or to keep a working version before changing everything) Or you can connect to a central repository for enterprise source control.
The company where I work used to use the SVN, Tortoise, Ankh stack but we're using Git now. Plus I use it at home on my on play projects.
(quated part is no more important since you edited your post about team size)
If you are doing some small project on
your own, maybe you shouldn't use code
versioning at all because you probably
don't need it. Code versioning helps
you with central code storage,
multi-person development code merging
(several people working on the same
file and then commit changes) and code
branching to name the most important
ones.
If I were you, and I would be the only
person developing something simple, I
wouldn't use it, because it would also
be a bit of a time-overkill.
But otherwise source control doesn't address technology like .Net framework version. Code control only stores files (with history) and is able to merge text files. Written in whatever language possible.
If you are part of a team I'd suggest using Subversion + TortoiseSVN + AnkhSVN
And No, CruiseControl is not a code versioning system. It's a continuous integration system.
If you have a pure Windows environment then VisualSVN server is a Windows version of SVN server and installs easily and cleanly. You can setup security using Windows usernames and passwords, or SVN usernames and passwords.
You can then use Tortoise to provide integration in Explorer and VisualSVN to provide Visual Studio integration (there's a small cost for VisualSVN) or you could try AnkhSVN if all you want is VS integration and don't want to spend any money. Personally I prefer VisualSVN's integration.
Running a GIT server under Windows is, umm, frankly a pain in the ass, and not a route I'd recommend for beginners. VS integration is also fraught with pain.
As with everyone else I'd say avoid SourceSafe like the plague.
CruiseControl is not a source control system, it's an automated build server. It monitors source control servers looking for changes, then checks everything out, compiles it and runs it through your unit tests, so people know if they've broken the build. Once you have source control up and running it's the next big step towards a better build environment.
Before we start talking about source control, I would like you to consider your actual need for it, if this is to be your first .NET application. Is this your actual first attempt of writing some .NET 3.5 code? If so, I doubt that you need to worry about source control just yet. I would say it's not just a little bit overkill for the first learning projects.
On the other hand, if this is to be your first application that you'll actually sell to someone, it's a completely different matter.
I currently use VisualSVN, an add-in to Visual Studio that lets you do check-in, check-out etc from within the environment. Along with it, I use the free SVN repository service at XP-Dev. It works well for me =)
Your choice of a versioning system does not have to do anything with the .NET version you are using.
I'd vote for Subversion / Tortoise SVN. It's rock-solid, has lots of handy features, widely adopted and free.

Can you create a setup.exe in qt to install your app on a client computer

I have created a desktop app and now I need to install in on a client's computer.
However, the client would like to have a wizard to install. Like Visual Studio setup project allows you to add an installer.
Does Qt allow you to create an installer or do I need to use a 3rd party installer like InstallShield or Wise?
You should use the Qt Installer Framework :
http://doc.qt.io/qtinstallerframework/ifw-overview.html
I use Inno and like it a lot. I've tried a few others and this one worked well for me. (and free)
You definitely need a third party installer. A few good ones have already been mentioned. If you decide to go with a paid solution bitrock's installer is a perfect choice and they are also Qt centric and their main business is around Qt.
As an open source alternative I would suggest NSIS
If you only target Windows, you can use WiX (Windows Installer XML), which can be integrated into Visual Studio and MSBuild, so relatively easy to use. It's free and produces valid MSI files, which may be a requirement anyway.
If you rather need a simple wizard setup, give InnoSetup a try.
I think better to use a third party software like installshield. They are optimized for the packaging purpose and provide much customizable options.
If you have Visual Studio already, you can continue to use a setup project to distribute your application. The tools are built in. This is the technology that WiX "replaced" (more on that later), and it's what I do. It's not an ideal solution, but it gets me an MSI, which is how Windows software should be installed these days. Using InstallShield or something might be better, but to be honest I've never had a good experience with any third party installers. This is why I just stuck with the less-than-ideal setup project; it beats spending a lot on expensive, ugly and often frustrating third party installer creation tools. In short, it's a very pragmatic solution, and pragmatic solutions make sense.
As for WiX: I really don't recommend it at all. It seems like a great idea, but after a few months I found myself switching back to the setup projects. Even though he's been using WiX for a year more than I have been using setup projects, our WiX expert takes twice as long to get anything done. (He's a terrific programmer, too, just a bit blinded by open source.) You end up with thousands of copied text lines that you need to maintain. With a couple different projects, it becomes an unmaintainable mess.
I would not suggest attempting to build an installer in Qt yourself. In addition to having to get a lot of behavior just right, as a Qt application it will require the Qt libraries. Unless you statically link them, which is possible with the commercial edition (not LGPL) but difficult and not recommended. Plus then you'd be including two copies of the Qt libraries in your download.
Qt itself seems to use the nullsoft installer. That alone should tell you building your own is not a good idea. :)

Resources