Log in

View Full Version : .Net Development (Specifically C# and ASP.NET)



Redbeard
03-12-2009, 02:15 PM
Good morning boxers!

A brief history of myself: I graduated from college in 04 with a BA in Computer science from a small liberal arts college. We did some introductory Java, but I can honestly say ive probably never written a program longer than 100 lines of code or so. I havent done much with programming since then, ive been working IT. I recently created an intranet site for my company using ASP.NET with c# as the back end, and was pleasantly surprised at how easy and fun it was.

I've got some books (yay for work buying me books) about c# development and im interested in picking it up more seriously, both to help me in my current job, but who knows maybe to help me do some freelance programming on the side or whatever.

My question to you guys is this: I am currently using Microsoft VWD Express for the intranet development / maintenance, which allows me to write some c# as well. I know mS also has a Visual c# which looks to be equally nice. However, the way I understand the express licenses, I cant use them for anything I might try to sell. And VS costs like 900 dollars ( i think ) which is not something I can realistically do right now for what might amount to nothing more than a hobby.

So (TLDR's scroll to here, heh) I am looking for a free solution. For the c# coding sharpdevelop has been recommended to me. I dont think it has a nice GUI builder thing but its probably better that i learn how to do it by hand anyways. Do you guys have any other IDE suggestions? And what about the ASP.NET ? I am not sure what i should use for my asp pages.

Anyways, I know a couple of you are coders so would love to hear any thoughts you have.

Thanks for your time.

Freddie
03-12-2009, 02:40 PM
Visual Studio (standard edition) is $248 from Newegg. You only have to buy a "new" license once. From then on you can buy upgrades forever. At least, that has been Microsoft's policy up to now. I've been upgrading my license for more than ten years.

If you look around you might find a way to get it free -- a Microsoft road show or something.

Redbeard
03-12-2009, 03:04 PM
Thats my bad, I only saw the Professional Edition, not the Standard one. 250 is still a big price tag, but much more palatable than 800 dollars (it was 800 not 900).

I am looking now to see what the difference is between Standard / Professional.

Still open to opinions on what any of you are using,

Thanks.

Edit:

According to wikipedia:

Visual Studio Standard
Visual Studio Standard Edition provides an IDE for all supported products and can support the entire MSDN ('http://en.wikipedia.org/wiki/MSDN') library. It supports XML ('http://en.wikipedia.org/wiki/XML') and XSLT ('http://en.wikipedia.org/wiki/XSLT') editing, object ('http://en.wikipedia.org/wiki/Object_%28computing%29') test benches ('http://en.wikipedia.org/wiki/Test_bench'), and can create deployment packages that only use ClickOnce ('http://en.wikipedia.org/wiki/ClickOnce'). However, it does not include tools like Server Explorer or include integration with Microsoft SQL Server ('http://en.wikipedia.org/wiki/Microsoft_SQL_Server'). Visual Studio Standard can only consume Add-Ins for extensibility. Mobile development support was included in Visual Studio 2005 Standard, however, with Visual Studio 2008, it is only available in Professional and higher editions. Remote debugging support is included in Visual Studio 2008 Professional and Team Edition only.

Visual Studio Professional
Visual Studio Professional Edition includes the tools in Visual Studio Standard and augments it with other functionality such as Microsoft SQL Server ('http://en.wikipedia.org/wiki/Microsoft_SQL_Server') integration (which allows databases to be created from within Visual Studio) and a remote debugger (for 2005 Editions) (that allows debugging a remote system from within Visual Studio debugger provided a debugging server is running on the remote system). Visual Studio Professional accepts all three extensibility mechanisms.

Im a noob so im not sure but I dont think those things (in professional) would be important to me. Hm.

emesis
03-12-2009, 03:26 PM
See FAQ #7 in the below:

http://www.microsoft.com/express/support/faq/

"Can I use Express Editions for commercial use?
Yes, there are no licensing restrictions for applications built using Visual Studio Express Editions."



Personally, I use the Professional edition. But I don't have to pay for it personally :-)

If the free product does what you need, stick with that. The Standard editions are a pretty good deal, however. It's a great IDE IMO.

Freddie
03-12-2009, 03:28 PM
Microsoft publishes a 35-page chart comparing the editions but they make it very hard to find. :) It's here:

http://www.microsoft.com/downloads/details.aspx?FamilyID=727BCFB0-B575-47AB-9FD8-4EE067BB3A37&displaylang=en

If you buy the standard edition and decide later you made a mistake, you can upgrade to the pro edition.

I have the professional edition and very rarely use any of the extra features in it. (One feature that I miss hugely, that used to be in the professional edition but has now moved to a more expensive edition, is profiling. ) But I use it for C++/Win32 not C#/.NET so my experience probably isn't applicable.

Redbeard
03-12-2009, 03:40 PM
Wtf emesis I guess I read some misinformation somewhere.

I appreciate both your guys' responses. I think I will just let my IDE grow with my requirements in that case. Program in the free one until I get to a point where I go "you know it would be awesome if i had X which is in the standard edition" and then upgrade at that point.

Hm.

pakmanlt
03-12-2009, 03:49 PM
I personally use the professional version but then again I do not pay for it. I have rarely used the extra features in professional that standard does not have in 15 years of software development with Visual Studio. The one feature I have used is the integrated database tool; I often do this type of thing in a another tool. The dev enviroment is nice to have all the stuff integrated but I dont always want to open up dev enviorment to look at data. Therefore the tool that installs for DBA to manage the database tends to be what I use most of the time.

I would like the Enterprise version but I think it is ridicules what they charge for that version.

If I were to buy a version I would buy standard; but I thought as well that the Express version was not limited in any way. I personally do not like the fact that if I want to web develop or do c# development I have to open up another tool if I use the express version. For sometime at home I ran the express version to do some work at home but I quickly got sick of the difference in look in what I became accustomed to seeing. Since Microsoft does allow tools to be installed on more than one computer (provided the user is the same user and can not be used at same time; no multi-boxing coding I guess :( ) I installed my version Visual studio from work on home computer(actually seperate work computer; work and WoW dont mix well)

Talamarr
03-12-2009, 04:18 PM
I agree that the Express Edition is the way to go. I have an MSDN subscription so I've been able to use many different versions and I rarely use any features that aren't in the Express (Team Foundation Server integration is about the only thing I can think of).

Redbeard
03-12-2009, 04:33 PM
Lets turn this thread into a thread of my dumb programming questions lol. This is a really nub question so I apologize in advance.

Im seeing a sql server express edition as well. We also have SQL Server (an older version) in our work environment.

I use the sql server with my intranet page for some employee search type stuff, and that all makes sense.

Say I want to deploy a desktop application though, to somebody not on our network who wouldnt have access to our SQL server. How does that work? So I write "Jon's To Do List" app, say, theoretically. It uses a small database with a couple tables, whatever, created in SQL server. If I want to send this program to you.... you need to have SQL server installed on your machine? Is that right? Im trying to wrap my head around it.

Talamarr
03-12-2009, 06:15 PM
Not a dumb question at all. SQL Server Express is basically a database file that you can copy, move and deploy around. It works and acts like a normal SQL Server database (minus a bunch of advance features of course) but it does NOT require an actual SQL Server instance.

You can use Management Studio to create tables, procs, etc, or use the IDE built into Visual Studio.

And it's FREE.

Talamarr
03-12-2009, 06:17 PM
If I want to send this program to you.... you need to have SQL server installed on your machine? Is that right? Im trying to wrap my head around it.

To answer your question specifically, NO, I would not need to have SQL Server installed on my machine (just the .Net Framework I believe). You just send me the application files (i.e. the .exe, .dll's whatever) and the database file and that's it. The application makes a database connection to the file, not to some server.

maxel
03-12-2009, 06:47 PM
I agree with the sentiments shared on the version of Express to Enterprise. Start free and work up from there. One thing I do miss in the express version is the quick watch feature, but to each their own.

As far as sql connectivity and your question on that front, no an end user will not require SQL server to be installed on their PC. However, they will need to be able to connect to the server hosting the database. So in your case you would develop and application database on the server, and in your program access it via a System.Data.SqlClient.SqlConnection object pointing it to your server, database, and supplying the necessary credentials for access. You would not package your sql database and ship it to a consumer unless that consumer had a SQL server of their own and you built in the capability for your end user to configure how your application will talk to that database.

Let me know if you have any other questions. Always happy to help.

Max

Redbeard
03-12-2009, 06:55 PM
Thanks for the responses, but Max and Tal seem to be giving contradictory answers, so either you guys are talking about two different things, or Im just misunderstanding.

Let me ask the question a different way, then.

I am going to write stand alone applications to send to people. These applications will likely require a database of some kind. I want to ensure that I can send somebody my executable and that theyll be able to run it with nothing else (beyond the .net framework) installed. How do I go about that?

Thanks for any insight, im probably just missing it (too many brain cells fried on WoW).

maxel
03-12-2009, 09:27 PM
Heh sorry for the confusion. Let's try it this way and maybe it will make it more clear. Imagine we have 2 scenarios.

1. We want to create an application that tracks all sales and orders for widgets. So we will create a widget database and a front end interface of some sort. We'll just say a thick client that can be installed on a users computer. Since we have 1 database, all the applications will connect to it for their information and it will be shared across users. Bob from accounting can see Jane from sales latest purchase orders. To do this, we build into our application a data access layer that allows our application to connect to a central database server to retrieve / post data (via a connection string), and does not require anything installed on the client besides the application framework itself.

2. We want to create a custom application to allow users to track their personal finance information. (Think Quicken here) This information should not be accessible to anyone outside of the user and should be stored locally on his or her PC. To do this, we'll need to create a template database as well as a thick client to interact, but this time we're going to ship off the client as well as the database with our installation program. In order for a user to save their information, we'll have to tell the system how it's going to connect to the database and under what context. I believe this is what you are after, in which case, should you go the SQL database route, will require the end user to have a copy of SQL server (express or higher) available to them to host the database files. Having the database files alone will not allow your program to load or access the data. The server acts as the manager between communication layers (Application > Database Server > Data). Typically in this scenario, you wouldn't distribute a SQL database unless you had built it into your requirements. You'd want to use something that is more native to the environment your client or end users have available, things like Access, or a flat file format.

Does that help? If not, try these links.

http://www.developerfusion.com/article/4278/using-adonet-with-sql-server/

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.aspx

Redbeard
03-12-2009, 10:05 PM
Yes thats very helpful Max, thank you. When I was in college one of my cs professors said to us "If any of you go into business programming, 90% of your work will involved databases". Lol I wish I had studied it more back then and I remembered more now.

You're right, #1 is something id work on in my work environment, #2 is something id look to distribute.

I read your links, that'll be helpful when I get to that stage.

So assuming I am working on #2, ill have to look into some way to bundle the software together or something like that,

Appreciate your time.

Jafula
03-13-2009, 07:20 AM
My 2 cents...

If you are going to be distributing applications that do not require a shared central data location, I would suggest investigating SQL Server Compact 3.5

http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

for your database needs. It is free to use and you can redistribute it. I'm not sure that you can redistribute the Express Edition of SQL Server.

SQL Server Compact 3.5 is a free, easy-to-use embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone. As for packaging / deployment; if your app is a simple .NET app with a SQL Compact DB, you should be able to copy and paste installs. You will have to add shortcuts and program file entries yourself. Otherwise Visual Studio has a tool that will let you build simple .msi files but I'm not sure if that comes with the free version.

Happy programming ... how's your lua? :-P

Redbeard
03-13-2009, 10:24 AM
Thanks for the comments Jafula I'll check it out.

I dont know anything about LUA so my LUA is nonexistant i guess? =) If the syntax is anything like Java / c# then I can probably understand whats going on, I just dont know how to do any modding with it.
My 2 cents...

If you are going to be distributing applications that do not require a shared central data location, I would suggest investigating SQL Server Compact 3.5

http://www.microsoft.com/Sqlserver/2005/en/us/compact.aspx

for your database needs. It is free to use and you can redistribute it. I'm not sure that you can redistribute the Express Edition of SQL Server.


SQL Server Compact 3.5 is a free, easy-to-use embedded database engine that lets developers build robust Windows Desktop and mobile applications that run on all Windows platforms including Windows XP, Vista, Pocket PC, and Smartphone. As for packaging / deployment; if your app is a simple .NET app with a SQL Compact DB, you should be able to copy and paste installs. You will have to add shortcuts and program file entries yourself. Otherwise Visual Studio has a tool that will let you build simple .msi files but I'm not sure if that comes with the free version.

Happy programming ... how's your lua? :-P

Rin
03-13-2009, 03:03 PM
Redbeard -

Depending on which school you went to, you may still be flagged as Active on Microsoft's Dreamspark website (www.dreamspark.com)

On Dreamspark, you can get VS 2008 Pro, SQL Server Dev, Windows Server 2008, etc. for free.

^^ Cheers & happy programming!

RobinGBrown
03-13-2009, 05:04 PM
Regarding DB use in smaller applications:

It's worth investigating XML and serialization, the XMLSerializer in the.NET framework is very good for this and means you can hold your data in xml files - very easy to work with, highly portable, and has no DB requirement at all.

I'd recomend the Express editions over any other tool (except the pro edition) because the visual studio IDE is the best there is.

Also, if you've got plenty of disk space try setting up your development box as a virtualPC or VMWare virtual machine - this means you don't end up installing all the development crap on your gaming rig and slowing it down to a crawl... yay for virtualisation!

I have several virtual dev boxes - VB6, C++ express (with game studio SDK), c# express, and VB.net pro