Well got the announcement today that I will be moving to a more .net development career. I am going to have to drop quite a bit that I am working on now and immediately start learning ASP. I am somewhat familiar with C#. Have used XNA and just plain ole c# to mod games and help some teams but have never built anything from scratch.
I learn the best through game projects and I have a little time so i am going to build a old school pen and paper gaming platform. It is basically going to resemble a pen and paper game with automated processes to allow single player. It will also have a GM section for building campaigns. Should be a fun way to learn the language. It will all be web based and to be honest with what I have seen so far i am surprised more games are not built with C# and ASP. Looks liek it is time for some to pave the way
anyways any sites, links, info you got will be helpful. Also I am not sure what game system I am going to use. Was thinking either the D20 system for both Fantasy and Modern games or the Paladium system for Rifts and Paladium Fantasy.
"Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius -- and a lot of courage -- to move in the opposite direction." - Albert Einstein
The reason more games have not been made with it is because ASP.NET Web Forms (original ASP.NET that has been around since .NET 1.0) does not play well with client-side code. The ASP.NET engine largely self-manages its controls with automated Javascript, and custom client-side coding can sometimes inadvertently break that. Also, many of the actual HTML elements are not made by the developer themselves, but rather they are also created automatically by ASP.NET, thus complicating ID names and knowing what part of the code to take control of in the DOM. This is all because Javascript was pretty much out of style when .NET 1.0 came about in 2001. It had been dismissed as a kiddy language for adding annoying snowfall effects to webpages. AJAX changed all of that around 2004/2005, and ASP.NET Web Forms has been struggling to integrate better with it. As of the latest release of ASP.NET, ASP.NET 4.0, many things have been changed to better allow client-side developers to write custom code, and ASP.NET AJAX (an AJAX extension released to work from the ground up with the ASP.NET architecture, first introduced as an addon slightly after the ASP.NET 2.0 release) has seen many updates to make it more flexible. However, ASP.NET Web Forms rely on craploads of boilerplate Javascript still, and it can be a minefield to add your own JS to it.
ASP.NET MVC was created as a reaction to both the growing trend of custom and complex client-side applications being developed, as well as to address the desire to follow along with more current trends, such as ORM frameworks and the MVC pattern. It also allows for developers to treat web development much the same as traditional desktop or server development is done, with unit testing, automated build scripts, etc. But what makes it very attractive to web game developers is that it gives the developer total control over the underlying HTML. Basically gone are ASP.NET Server Controls that spit out hundreds of lines of boilerplate HTML and Javascript. Gone is the increasingly heavy weight of Web Forms's built-in state management system, which can be a large burden to the bandwidth of mobile-accessible sites being built today. Instead they cherry-picked some of the best, most time-saving features of ASP.NET and added them on top of a totally new architecture that looks much more like Ruby on Rails than old Web Forms.
This is starting to get a bit long, but I guess I just wanted to say that I think ASP.NET MVC may work much better for your experience and for what you want to do, at least outside of work. I am not sure what the requirements on your job are going to be, so maybe they are going to require you to use Web Forms, but if possible I think you may want to go MVC. I am working on learning a bit more about it while also working on Windows Phone 7 development, so it is a bit slow going right now. I am still trying to get used to the tenet of "Convention over Configuration", which makes some things seem to work for no reason and without explanation. However, once I wrap my head around it, I think it will be worth the effort.
EDIT: And unfortunately, there are not a ton of free ASP.NET hosts because the software to run the servers is not free. There are a few that rely on advertising to make up cost, but they often offer very little in the way of resources.
wow thanks for that info. Why do so many companies (especially medical billing and such) rely on .net for their websites? Especially since it sounds like such a mess. I am assuming its the VB and C# architecture that it brings to the table but is there more than that?
Well, .NET is still the most advanced web development platform ever made. It is also the fastest web platform available today in terms of performance. There are also a host of other reasons, such as the support that a huge corporate backer can provide to their developer base. Microsoft has rigorous certification programs so that developers can become "Microsoft Certified Solution Developers" and up from there (I think that is the bottom level), so companies can be ensured that who they hire will be able to do the job. Also, there are deals for both small developer houses (such as WebSiteSpark) all the way up to huge server software breaks for large-scale companies hosting ASP.NET sites on server clusters. Visual Studio can also be purchased in volume through "Team Edition", "Enterprise Edition", etc. So the costs don't always bloat up to be all that large, and some break-downs even show cost of adoption being close to open-source solutions in some cases due to cost of support from those providers, additional staff requirements, etc.
I could go on and on, but I don't want it to sound like an ad. ASP.NET, and really .NET in general is just a platform I have been interested in and working with for years (much longer than my involvement in PHP, which has really only been in the past 2 years). Basically, .NET's success lies largely in the framework, APIs and runtimes themselves, along with the free and heavily-discounted software and tools they offer. Also, the community is extremely strong and well-defined by Microsoft (probably the strongest developer ecosystem out there, really only coming close by Java), with strong, certified teachers, developers, community organizers, and other important figures recognized by Microsoft. This level of community definition and direction has really been what has propelled .NET (and Java as well) to the position it has.
makes sense, thanks for that. As I am learning this I am developing a new look to ASP and how it works. I assumed it was heavy client side and much of the C# runs on the client for less refreshing but so far what i have went through every click of the button is refresh. Is most or all of the C# server side then?
I know, right? In 2001 the web development scene was very different. Not as many people could effectively create low-level web apps, so ASP.NET (remember ASP and ASP.NET are two totally different things!) was aimed at helping Windows Forms developers seamlessly move to web development. That is why it emulates .NET-style events, state, etc.
And yes, all C# in ASP.NET and MVC is server-side. The browser has nothing to be able to run the C#. The only client-side C# is in Silverlight, where the user has a plugin that runs a compact .NET runtime to run C#.