c#


what shall i use VB.net or C# for desktop application


im coming from unix / server / c++ /java background with no GUI experience
i need to build windows GUI application , i need to build it fast i was told that
the .net family is the exact thing for such job .
but there is VB.net and c# what should i choose what is faster and better for such job ?
what will be easier for none teachi user to install and for me to deploy the end product
In terms of what is available, they are exactly the same.
That said, if you come from a C++/Java background, I would recommend C# as there will be a much smaller learning curve, you won't need to learn a whole new syntax.
As far as deployment goes, .NET applications with OneClick (if appropriate) is very easy for non-technical users to use. It boils down to "go to my website and click the install button". From the developers point of view, it's usually not much more difficult than that too. Visual Studio has options for making traditional installation packages too.
The short answer is that it doesn't matter.
In terms of features, the .NET framework provides the Base Class Library, the run-time environment etc. You can use whichever language you choose. You can accomplish the same with VB.NET, C# or any other first-class .NET language.
However, since you come from a C++/Java background, you will probably find the C# syntax more familiar than VB.NET.
There is a quote from Jeremy D. Miller:
VB.Net and C# are essentially Country and Western.
Explains it perfectly, doesn't it?
There is almost a religious war to the matters of VB.NET vs. C#.
They are quite closely equivalent in what they allow you to do and how fast you can do it.
Seeing that you have C++ background, C# will probably look much more familiar, but you will still need to learn. Your learning curve with VB.NET will be much steeper.
To the question of deployment, your users will need to have the respective .NET framework installed. It exists in versions from 1.0 to 3.5 SP1 with 4.0 closing on us.
Windows Server 2003 has .NET 1.1 preinstalled
Vista / Windows Server 2008 have .NET 3.0 preinstalled
Windows 7 has .NET 3.5 preinstalled
These languages are pretty much equivalent for what you want to do. I'd say use C# as your C++ background will allow a shallower learning curve with C# than VB.net.
Pick C# because:
It has the best tool support among all .Net languages.
You are a C++ guy. You'll find its syntax easier to adapt to than that of VB.
VB offers no special advantage over C# as far as a GUI-based desktop apps are concerned.
Since it's far more popular, learning C# will prove way more fruitful to you career-wise.
The languages are almost equivalent. If you use Visual Studio (I recommend doing so, if you need to build the application fast), the GUI design experience will be the same for both languages. Likewise, the installation and deployment procedures don't differ for VB.NET and C#.
So, unless you need some specific feature only supported by one of the languages (like multi-line lambdas in C# or XML literals in VB -- you probably won't need either for a simple GUI application), feel free to choose the one whose syntax is more familiar to you. Since you have a C++/Java background, I guess this means C#.
I would say because of your background, go with C#.
Its true both languages end up doing the same thing and you'll end up being able to read both languages as time goes by. But C# is the way forward, and to the best of my knowledge I would have to say more work opportunities exist for C# developers than those who only know vb.net.
VB.net might be easier to learn if you come from a pure vb6 background, but I've found most web developers with a bit of JS experience can pick up the C# syntax easily enough.
When you think about learning .net, you should get a grasp on the framework, because understanding which framework classes to reuse and when is important to your overall skill as a .net developer.
In terms of capabilities the two are more or less identical - there are some differences but those are not too significant in the general case. In terms of deploying apps to users they're the same - the capabilities are in the framework not the languages.
Consequently there are two ways to look at this:
1) use C# because the syntax is familiar and you won't tie yourself in knots trying to forget to add a ; at the end of a statement
or
2) Use VB.NET because its different so you'll struggle less to work out which environment you're working.
Pragmatically I'd go with C# - there are probably more samples out there in C# than in VB.NET and if you can already cope with swapping between C++ and Java then adding a 3rd similar language probably isn't going to be too stressful.
We do programming in asp.net vb.net but sometimes we find algorithms in C# and we havent had a problem converting them to C#. C# was specifically created for .NET, but I coudlnt tell you why is better. In webforms you can code some pages in one language and other pages in other .net language, and we coded a couple of C# pages in a mostly VB.NET based project. If you have to do a webforms based application you could give a try to both, but if you don't have the need of doing webforms I wouldnt recommend to use them over winforms
In the last asp.net book we read they switched the code examples from VB.NET to C# because now most people uses C# for .NET. We use VB.NET for trivial reasons, since any .NET language shares the Base Class Library, we just want to avoid typing "{", ";" and case sensitiveness

Related Links

Recommended Method to simultaneously run two codeparts within a WPF Event?
Sort a List<StringBuilder>
DataGrid Converter is not called
The name, 'auxWindowsMediaPlayer1.URL' does not exist in the current context
Fastest way to insert data from a column in all DataTables in a DataSet to a List
there is only one method that cannot be called from another project [closed]
How can I check if 3 out of 5 integer are the same
Cross-thread operation not valid: Control 'hScrollBar1' accessed from a thread other than the thread it was created on [duplicate]
Custom Type. Assignment. How to copy instance and assign value part only?
Adding custom validator to MVC Model
Regex captured groups inconsistent with regex success
Entity Framework Handle broken connection by reopening?
IoC and binding to interfaces
How to handle initialization with object that has property change tracking
C# count the number
Adding multiple ORDER BY clauses to an NHibernate query throws exception

Categories

HOME
actionscript-3
classification
max
excel-formula
repository
itunesconnect
mysqli
gap-system
dynamic
arcgis
aggregation-framework
yuv
hibernate-mapping
browserstack
virtualhost
subprocess
google-app-maker
core-data
responsive
k-means
git-branch
angular2-pipe
ng-tags-input
email-client
aws-iot
pumping-lemma
apdu
rollupjs
jopendocument
hierarchical-data
boosting
dynamic-memory-allocation
osgi-bundle
federated
r-factor
ocl
semantic-ui-react
paper-trail-gem
schedule
kubectl
oracle-nosql
eclipse-jdt
kofax
realloc
libconfig
lfe
ninja-forms
ssdp
redbean
vpython
peerjs
apiman
gradlew
chrome-custom-tabs
azure-data-catalog
jenkins-2
try-catch-finally
blackberry
bipartite
rmq
papyrus
universe
x12
recurring
user-profile
window.location
videoview
transbase
syncano
hexagonal-tiles
pdcurses
sicstus-prolog
screen-lock
ultraedit
wingdb
yosemite
redmine-plugins
drawable
pyalgotrade
code-smell
mongoid4
mandelbrot
wordbreaker
pageload
nx
mmo
system.transactions
invalidoperationexception
joomla1.7
flexbuilder
peoplepicker
mismatch
file-processing
lightopenid
nbehave
marathontesting
calendarextender
focus-stealing
authkit
cross-cutting-concerns

Resources

Mobile Apps Dev
Database Users
javascript
java
csharp
php
android
MS Developer
developer works
python
ios
c
html
jquery
RDBMS discuss
Cloud Virtualization
Database Dev&Adm
javascript
java
csharp
php
python
android
jquery
ruby
ios
html
Mobile App
Mobile App
Mobile App