Web Development Questions

I’m about to dig my fingers into the brave “new” world of web development. I realize it’s not so new anymore, but it’s new to me. I’ve been developing Windows applications using products such as VB and C#. I now want to teach myself how to develop web apps. I’m a software consultant and I work for myself. I have come across a nice little application that would be useful to several of my clients. I am thinking of developing this app with the help of one client and then selling it to others. I need to figure out what development platform to use.

This app will be a basic database application that retrieves and stores information, sends e-mails and waits for responses.

I have seen some great apps written in Adobe Flex and I’ve started their “Flex in a Week” training videos. It seems like this platform would give everything I need such as:

  • relatively easy development
  • access to rich UI components
  • large user community with 3rd party add-ons available
  • support for multiple browsers

The client I’m thinking of working with has said they’re interested in Windows Workflow for this app. I am just getting up to speed on this and it seems like that would make things a bit more difficult for me. In particular, I would need to develop the app in C#.Net or VB.Net (I think). I’ve looked into Silverlight a bit, but it only works on Vista so that wouldn’t be an option for me since many of my clients are still on XP and will be for some time.

I’d love to hear any opinions all of you have on this. If you were creating a brand new web app from scratch what platform would you use and why? What other things do I need to consider?

TIA!!

If you already know VB and C# I would question why you feel like you need to switch to something like flex? Most of the web controls in the framework are pretty similar to the windows controls. I’d say the only thing you need to do is learn CSS and you are ready to go.

On the WW I’d seriously look at why they need to introduce that technology into their stack. Is it a hard core super complex work flow application or is it something you can do with a simple database and a state machine?

I’m looking for a platform that I can develop fairly rich applications in a short period of time. I don’t have months and months of development time to get these apps done. I would need to be able to develop an app in just a few weeks. The VB and C# stuff that I’ve done have been for large applications that took years to develop. The new stuff is going to be quick and dirty little apps that do a very specific job. So, I’m looking for something that has a large number of rich components that I can just plug in. I guess I’m just looking for something that will be quicker to develop in. I also haven’t been doing any web development in those other platforms, so I’m wondering if there’s a better tool for that.

For the workflow stuff, this app isn’t a large, complicated app that would require workflow. I think it’s just a buzzword that they’re excited about and want to start implementing. That’s just a guess on my part, though.

Thanks for your input.

Yeah I know how it goes with the buzzword thing. It gets scary. If you can achieve the same functionality without the complexity of WWF it would be a worthy negotiation to have with them (and will probably save you hours of time pulling your hair out in the middle of the night fighting the quirkyness of a technology that might not be warranted for the solution).

If you are looking for some rich components in .NET you’d probably need to spend some time getting ramped up on AJAX which can have a little bit of a learning curve. Once you know it one can crank out new screens pretty quickly but it takes some tweaking to get it right as you are learning about it. Good luck on the UI. :wink:

What JT said

Overall, the trend is WWF, which means you’ll have better marketability. Yes, takes a bit longer.

Clarify your question of Sliverlight/Vista…

I am not a web-developer so take these with a grain of salt:

  1. Web applications generally follow a multi-tier architecture, the most common being three-tier. As such, it is crucial to make a clear distinction between the subsystems responsible for each tier. Adobe Flex (and similarly SilverLight) are presentation tier technologies, hence while important, they offer little to implement your business logic. Of course, architectural missmatches can (and should) influence your choices of components for each tier.

  2. Application size is not the only requirement that justifies and motivates enactment of workflows for server applications. Systems with dynamic and rapidly evolving requirments can immensely benefit from workflows. While there is a learning curve for using a specific workflow management system, and certainly a cost for deployment of such a system, I suggest you give it some consideration before shying away from it, mostly because implementing many server side functionalities using workflow management systems can be much easier than writing functionally equivalent static code in a general purpose programming language, once you have overcome the initial learning curve.

  3. If productivity and rapid prototyping are your major concerns, you should consider using a dynamically typed language (or a framework based on such a language). Ruby on Rails, might be a good investment. It is open-source, free and is known for its good Ajax support. I think it can also be integrated with Adobe Flex.

Clarify your question of Sliverlight/Vista…

When doing my initial reading of Silverlight, it said that Vista is required. Most of my clients are not on Vista and won’t be for some time, so I assume that this is not a platform that I can use for my development for now. Is my assumption correct?

Thanks to everyone for your replies. My comments in this thread may be a bit confusing to anyone who’s been doing this for a while because this whole environment is brand new to me. For the first time in a long time, I really feel like I don’t know which way is up. There are so many technologies out there that it’s very confusing to someone who’s new to this whole thing. So, to help me out a bit, I would love to hear what platforms I should be using for small web development apps. Let’s assume for the moment that I don’t need any workflow stuff. I just want to develop a small database app for the browser. What should I be learning?

Thank you so much for your time on this.

http://www.microsoft.com/silverlight/resources/install.aspx#sysreq
.

I do most of my development work in ColdFusion. It’s a small player in the market and doesn’t get much respect, but it does what I need it to. It’s ridiculously easy to learn and use.

My projects tend to be small things, like a recent intranet app to query a database, pull some product information, write a packing list, generate a barcode and print the whole thing off. Something of this nature takes me an hour or less to write in CFML.

Thanks very much everyone. I’m going to look into Coldfusion as well as a bunch of other stuff. Seems like I have some reading to do.

Let us know how it goes. I really need to pick up another language, and I’m struggling with which one to choose. I think PHP is probably going to be the one. We’re implementing a lot more open-source software, and this seems like a logical direction for me.

In 5 years when I finally have my head around this stuff, I’ll try to remember to come back to this thread to let you know how it went!

So, here’s my list of things I’m going to try to learn:

refresh my knowledge of HTML, XHTML and CSS
PHP
Javascript
Ajax
Coldfusion
Adobe Flex

I’m surprised ASP.NET hasn’t been mentioned. If you’re already familiar with VB and C# it seems like the easiest way to go. Is there a reason you’re not considering using the visual studio IDE for everything?

Is there a reason you’re not considering using the visual studio IDE for everything?

Not really. I’m just trying to figure out if there’s something better out there. Adobe Flex has an IDE as well and I’m sure others do too.

True, but given that you’re already using VB.NET and C#, you’ve likely already paid for the Visual Studio IDE. And all the actual coding in ASP.NET (besides the presentation layer markup) is either VB or C#.

I 2nd the ASP.Net/Visual Studio recommendation. If you know VB and C# just go with it.

Remember, Windows Forms or Web Forms, you are still writing a database app, just with a different UI.

Don’t get caught up trying to make a fancy web UI with AJAX, flash, or whatever, get your business logic working and go from there.

I would also recommend looking at CSLA from Rocky Lhotka www.lhotka.net. It is a nice framework on which to base your Business Objects. It handles a lot of the low level plumbing for you so you can concentrate on the business problems.

In 5 years when I finally have my head around this stuff, I’ll try to remember to come back to this thread to let you know how it went!

So, here’s my list of things I’m going to try to learn:

refresh my knowledge of HTML, XHTML and CSS
PHP Does anybody have suggesions on a good PHP editor?
Javascript
Ajax
Coldfusion
Adobe Flex