Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I work in a small office (only 1 designer, me and plus 1 programmer).

We have a solid background in classic ASP development and some sort of a small proprietary framework/cms based on ASP + MySQL + Javascript written line by line in here and the projects aren't so big until now and we want to step up with something more fast and secure way to develop without reinventing the wheel (again).

I have a little knowledge in PHP and .Net (C#) from some particular projects and personal learning.

We have researched various languages and frameworks, as well as some new (to us) methodologies like TDD and some version control oriented workflows with GIT, etc.

Until now we have thought in PHP with some framework like CodeIgniter or Kohana and ASP.net (C#) with MVC 3, since I can start from some knowledge I already have and maybe adopting GIT as our version control system for the bigger projects.

We need some advice in getting a new set of skills and tools that work the best for us before getting 1 by 1 and trying.

EDIT: What we need to change(maybe)
As you can imagine, we don't have a testing process like TDD or BDD and the testing is done very breafly (We have luck with so little problems after release) nor a real idea of how to use it (need more study and clarification).

We use Dreamweaver most of the time to code and need a more fast and robust development environment with an autocomplete feature like MS Intelisense and nice highlighting (I personally like to write code and have used the notepad to write almost all of my first apps, but in a profitable work with a short deadline we can't go this way. Not that Dreamweaver is bad, but it's too general and lacks some features).

I know that security is a thing to see at the programmer side, but there's plenty of frameworks with features that helps in this case and now we have a very basic and limited set of tools written by us to do this (poor SQL injection protection, etc).

Our "version control" is purely based on a network share and our machines. The final version is always the one in our file server and most of the time, when we have to make some changes, we change the files directly and upload them again. A backup of this share is made each 2 or 3 months.

We are growing up and expect to hire someone soon. Its hard to find a VBScript programmer for ASP and when we find one, the salary is to high for us by now because nobody is learning it in this days and who knows already have a job with a good one.

Final concerns: We've decided to use ASP.Net(C#)/MVC as our primary framework and use CodeIgniter as an alternative to linux servers and other projects. Thinking in joining some MS program for startups and small business to help with some costs.

We're getting Git as our vcs in our private file server for the origin and instances in each develop machine for us to clone, work and push back. We also considering a service like Bitbucket to maintain a copy on the cloud.

If some of you have any more advice or other thoughts about this I'll follow-up.

I would like to thank you all and mark many of the answers as right but I can't. I think this question may be a base of reference for small offices like us to get some points and help on the same decisions.

share

migration rejected from stackoverflow.com Sep 25 '13 at 10:42

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as off-topic by thorsten müller, MichaelT, gnat, GlenH7, Kilian Foth Sep 25 '13 at 10:42

This question appears to be off-topic. The users who voted to close gave these specific reasons:

  • "Questions asking us to recommend a tool, library or favorite off-site resource are off-topic for Programmers as they tend to attract opinionated answers and spam. Instead, describe the problem and what has been done so far to solve it." – thorsten müller, gnat, Kilian Foth
  • "Questions about what language, technology, or project one should take up next are off topic on Programmers, as they can only attract subjective opinions for answers. There are too many individual factors behind the question to create answers that will have lasting value. You may be able to get help in The Whiteboard, our chat room." – MichaelT, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

    
I think we need to know what you like and don't like about what you're doing now. If you're willing to learn a new language + framework, there are lots and lots of options that are basically all reasonable. –  Marcin Dec 15 '11 at 0:02
    
Of couse. I've edited my question to add more info. –  rcdmk Dec 15 '11 at 14:56
    
specify what you are trying to build with 2 people only first, so that answers could be more accurate. –  Emmad Kareem Dec 19 '11 at 11:22
comments disabled on deleted / locked posts

5 Answers

up vote 2 down vote accepted
+50

As I read your question, I think this is a tipping point where you have to do a strategic decision and then decide on how to proceed from there. I would condider consulting the Technology adoption life cycle (wikipedia article) and decide where I would like my team to be there.

enter image description here

Classic asp is outdated. Php using the frameworks you've mentioned or asp.net seem a very good solution if you want to capitalize on what you already have and pivot one step from the "Laggard" position towards the late/early majority. You can capitalize asp and c# know-how and jump to php or asp.net, you will gain many more advantages, one that crossed my mind is the ability to cloud deploy to Azure.

You might want to use the position you are in as an opportunity to jump towards the Early adopters/Early majority and experiment with more modern approaches such as ASP-MVC, Rails, Django, Grails. There will be a huge cultural shock in the first months, but you will discover many things that you are missing (and your competition might not) such as ORM, MVC, Enviromnent with better access to TDD/BDD technologies, tutorials about more modern VCSes (Ruby people use git a lot, I know you can do it with php) etc.

share
    
Thanks for the help. –  rcdmk Dec 19 '11 at 15:40
    
This graphic, perhaps intentionally, does not include Geoffrey Moore's "chasm" between Early Adopters and Early Majority. Moore's influential book "Crossing the Chasm" warned that many technologies are embraced by innovators and early adopters, but that there was then a chasm before majority uptake. 10xfactor.com/colorschemes/colorscheme4/images/static/books/… This is an important consideration for evaluating the risk of adopting relatively new technologies. –  Larry OBrien Dec 19 '11 at 18:33
    
@LarryOBrien You are absolutely right hands down. This is the very reason I decided to "ignore" that part on my analysis. If he decides to go with innovators or early adopters, there is the risk of going with something that will never uptake. But with technologies that the early majority uses this is not an existent risk. All of those mentioned are here to stay and proven (asp-mcv... this site!, Rails: twitter, spofify etc). I purposefully did not say something like... dart (or some years before... silverlight). –  dimitris mistriotis Dec 19 '11 at 22:21
add comment

You might also investigate more recent and robust web technologies, like opa or Ocaml with Ocsigen

See this answer for more.

Once mastered, they will increase your productivity.

share
    
Thanks, We will take a look in that. –  rcdmk Dec 17 '11 at 16:30
    
I've read about that and found they need an exclusive server to run and therefore need to run on a dedicated or semidedicated linux server. For bigger projects its really considerable, but for the majority of our projects, the cost implied its a disvantage. –  rcdmk Dec 17 '11 at 16:50
    
No, you can have the same server running several applications (exactly like with PHP). –  Basile Starynkevitch Dec 17 '11 at 16:58
    
What I mean is that we use shared online hosts (like locaweb.com.br or oulhost.com.br) in most cases. –  rcdmk Dec 17 '11 at 18:28
1  
Consider a cloud friendly solution. Google Application Engine supports Python and Java. –  user1249 Dec 19 '11 at 11:48
show 4 more comments

If you are open to bigger change, you may try build your backend on NoSQL (CouchDB seems a good solution because of CouchApps - you can have part of your backend written inside CouchDB itself, using Javascript). NoSQL is suited well for agile development, since data structure is free from scheme, and you can adapt it on the way with less hassle than using relational DB.

node.js is also a promising way to go, if you are going to serve many requests.

If you plan to scale off even more, look at messaging patterns and things like ZeroMQ / RabbitMQ.

I'd definitely advice to shift to dynamic languages since they allow you much bigger power in translating your ideas into code. Python, Javascript, Ruby and even Smalltalk if you are not afraid (GLASS is nice platform for Smalltalk web apps based on decade-proven Gemstone appication server that is used in big industry applications).

share
    
And if you are going to do thing like Ericsson does (telephone switches that must work with lot of concurrent data and heal from failures) go for Erlang. –  herby Dec 17 '11 at 19:32
    
It's kinda overkill to our projects but it's not an idea to trow appart. I'm considering some NoSQL database (most precisely MongoDB) to some projects in near future. –  rcdmk Dec 20 '11 at 0:00
add comment

What language/framework/workflow sets do you recommend for a small office?

C#/.NET framework 4.0/Workflow foundation +BizSpark

Why?

1-The easiest to start with: - you can find plenty of books and resources online.

2-Very good community: - probably you’ll find your question already answered, and there is good open source communities like codeplex.

3- Good price: - two words I say for small startups with “Microsoft bizspark”

4- Well structured & Rich in feature framework: - support for stuff like MVC, entity framework, easy to use TDD, and good SQL injection protection :)

5- Bizspark: - you’ll get stuff like TFS (a very good source control tool with bug tracking tool and use case tracking) and all Microsoft products for like 400$ a year.

6- Common language specifications : - you can use C# with other VB projects easily.

share
    
Thanks for the help. –  rcdmk Dec 19 '11 at 15:40
add comment

First, I would start migrating off VBScript / ASP -- it is a dead language. I know I would never green light a new ASP-based project on general principle.

Second, for a shop that size you are probably better off moving as much of your services out to the cloud. The overhead of administering things right is just too much at that scale. I would look to something like bitbucket for SCM as they give you unlimited private repositories. For file storage, I would look at any one of the dozens of dropbox-like services. The other thing I would consider adding would be some issue / time tracking -- redmine comes to mind -- as well as some continuous integration to make things as hands off as possible.

As for what framework to use, I think I would avoid pigeon holing my company if at all possible. At that size you really need to work with what the customers want.

share
    
Our main idea is to have a strong code base to develop websites and webapps without having to rely on server components or writing lots of code to do simple tasks and is the main reason we are tending to move from ASP/VBScript. Most of our clients let the platform decision to us and the ones that dont, generally have their own internal windows server. –  rcdmk Dec 17 '11 at 16:55
    
Right, but how long are windows servers going to support classic ASP? –  Wyatt Barnett Dec 17 '11 at 17:07
    
One thing is sure: we'll not continue to use classic ASP. –  rcdmk Dec 17 '11 at 18:19
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.