Cutting edge technologies for .NET web application? [closed] - c#

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
If you would want to build the most expensive possible web application what would you use?
Without buying Microsoft products except VS2010 and SQL Server database.
Does the value increase lie in the technologies that you use and in architectural patterns applied?
If so, what to use among .NET technologies in all application layers to increase the website value?
I am asking this because I have business opportunity and I have no money to invest thus I want to cover my partner's investment with technology contribution.
Thanks a lot.

IMHO I would not try to increase my website value by investing into expensive technologies :-)
I think you should put the working hours together it tooks to build this website and multiply this with a factor, which corresponds to your value.

I think you would be on your way using ASP.NET MVC development (Possibly MVC3 with EF 4.0 as ORM) using VWD Express 2010 and Sql Server Express (If you are hosting on your own, else the hosting company will give you Sql Server Db) now then then move on to Sql Server 2008 and visual studio after you start making money and the website hits increase. It may also be possible to continue using the same if you think the performance is alright.
Of course this is a simplistic answer, Mariusz is right as well.

Bob Muglia of Team Silverlight posted a blog entry after Microsoft's PDC conference. In regards to rich web applications, Microsoft has dubbed Silverlight its technology of choice (i.e. to compete with Flash). However, with the emergence of HTML 5, Microsoft may be switching its decision.
What does this all mean? Silverlight / HTML5 are Microsoft's technologies of choice for rich web applications. This does not mean that ASP.NET (including MVC) loses its value, but as users' demand for richer, more interactive web applications continues to increase, I would invest more in the tools that will help me with SL and HTML 5.
And this does not change the value add of Visual Studio / SQL Server.

Cutting edges are the first thing to get blunted.
I would go further that Mariusz and say that actually, while there are marketing advantages just in being able to talk about the cutting-edge tech that you use, in terms of the long-term value (whether to a customer or an investor), the use of cutting-edge technology is something that has to be justified, as much as it is a selling point.
Firstly, some cutting-edge tech requires the use of someone else's software. Even if it's open-source you are now dependant upon that other supplier. If it's proprietary, you are even more dependant (the possibility of forking off a custom version that suits just you has gone - not something you'd want to do with any software, but at least there is the possibility if you have the source).
At the same time as that issue, if it's licensed for a fee, then this adds to the TCO of you system in a way that doesn't benefit you (i.e. if each installation has third-party software that costs X dollars to set up, that's X dollars you have to include in your price that you never get any value from as a vendor).
Secondly, today's cutting edge technology can be tomorrow's fish-and-chip wrapper*. Indeed, one can say with absolute certainty that some of it will, while some of it becomes a common part of many people's toolkits, and some of it finds a niche in which it remains important while never becoming a tech that a very large number of people use.
That's a safe prediction. The tricky prediction is which will do which. The factors affecting this are a mixture of technological, psychological, social, political and marketing factors in a competitive landscape where it's hard to judge which of the current players will dominate and there's nothing to say that something new will kill all of what's there.
Now, none of this means that you should shy away from the cutting edge. None of it means that you should shy away from using third-party tech (whether proprietary or open). It does mean that you should be sure you are getting value out of it. If you use what's been tried and tested for the last ten years, the chances of it still being just as reliable (and perhaps further improved) in five year's time is much greater than if you use something that is six-months old.
The way to turn cutting edge technologies into a competitive advantage is not to use them, but to use them to do something that you couldn't do, or couldn't do as well (reliably, cheaply, quickly, efficiently all count as "well") as you could otherwise. Even here, if you can think of a good way to turn older tech to the use that someone else is putting newer tech, you may be able to compete with a cheaper and more dependable product.
It is also important to stay aware of tech relevant to your field that you choose not to use - the flip-side of it being hard to predict what will survive and grow is that tech you decided not to use might become tech that you later do want, or even need, to use.
In the end, all technical decisions become both assets and liabilities to future development and the value to customers and investors. You can't expect the tech to sell itself, you can only make sound technical decisions, so that the people who sell the tech (whether that is someone else, or you in a different role) have an easier job when talking up the assets.
*In days of less heavily regulated hygiene practices, it used to be common in Britain and Ireland to wrap fish and chips in old newspapers. I'm not sure how well the idiom about today's news being tomorrow's fish and chips translates to readers in the rest of the world.

Related

Conceptual Query -- C# 4.0, ASPX.NET, GUI [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
I am looking for honest / constructive feedback.
I hear a lot of my peers who have been using .NET for a while now, say how easily they built their GUI interfaces. On closer inspection they have used 3rd party tools such as Infragistics.
As a new .NET programmer (certified I may add), I wanted to know if anyone has actually created interfaces using nothing but what ever happens to be available by default with the framework...
I am guessing it shouldn't be too difficult to create a good, aethestic looking GUI without using 3rd party addons.
Yes We've done it (windows).
Depends on where you put the emphasis in your guess. No its not TOO difficult, but it's definitely not easy, unless your requirements are truly trivial, as opposed to apparently trivial.
All depends on what you need / want to do. My advice don't tell your boss, this will be easy, well not unless you want help getting out of the door for the last time.
For instance take a straight textbox.
They want to enter currency in it.
Multiple rounding algorithms.
Enter raw value display formatted, Currency symbol, thousand
separators.
Optional pounds or pence.
Optional blank or zero
Optional treatment of negatives.
Optional display formatting of negatives.
Alignment on decimal point.
Auto change of font on resizing.
And break none of the standard behaviours.
Trust me not simple at all. Especially if you do something Infragistics did not, and go for a good developer interface as well as the end user behaviours.
Not trying to put you off. It's challenging and rewarding, but when you have the entire application stuck behind some irritating bug in the UI, bosses lose patience real quick and you haven't got that get out of jail free card in shrugging and saying that's how X works.
NB just buying a suite won't fix all these problems, you can spend a lot of time producing a totally crap UI with them as well, just you don't have to write the code...
The answer to that is a lot of hard work. :(
Can your current suite be upgraded?
If you have the source could it be fixed, if you had the source and it's been twiddled with, are those "improvements" interfering?
Needs some hard-headed realistic analysis this. Which components are broke? How much are they used? How much of the extra behaviour in the suite do you really need.
Most important, how good is your separation of concerns in the current code, and how comprehensive both unit tests and automation tests.
Would compatibility mode sort it out?
Need to get to a point where the number of questions doesn't significantly out weigh the number of answers.
I've been where you are though it was another suite in another environment. The people looking for the cheap, quick and painless way of dealing with a mess like this were hugely disappointed, but it can be attacked in parts as long as everybody takes a heavy dose of pragmatism.
As a for instance,
Someone had bought a windows component that looked like a html link, and was heavily dependent on File associations and API calls. It was very visible and all over the place, I knocked up a much better and far less fragile one in a few days, swapped it in, a lot of perceived problems disappeared, confidence increased, and the remaining problems started to look less horrible.
Think of it like going into triage mode on bugs at the end of a struggling release.

Too many frameworks for java web. Scared and Confused :( [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
I am an experienced Java developer who is trying to learn web development with Java presently. I also had web development experience with ASP.NET (c#) and PHP. I know what basic concepts (JSP, Servlet, Bean) and looking for a framework to go.
My question is not "What is the best framework for Java" or something similar.
After reading many threads on here and searching on Google for many hours I feel scared and confused. There are so many frameworks and endless combinations. I'm about to change my mind to do this in .net or even PHP.
Is Java really suitable for very small teams (1 or 2 members) to develop web applications?
Is Java really suitable for developing web 2.0 applications?
Isn't .NET and PHP are far less confusing in this context.
If choose a framework and after 6 months I decide to use another, is it possible to migrate easily?
It just feels doesn't right to spend a same effort that I spent to learn Java to a framework that anytime can be changed or become useless. Am I wrong?
Is Java really suitable for very small
teams (1 or 2 members) to develop web
applications?
Of course it is, as long as those one or two team members know Java well. This is a ridiculous question that depends on how you'd like to define "suitable". I'll err on the side of conservative and interpret "suitable" as "possible".
Is Java really suitable for developing
web 2.0 applications?
Are you asking if JavaFX is suitable, or can the web 2.0 UI technology be Flex or something else? I haven't used JavaFX myself, but I think Java back ends can co-exist very nicely with web 2.0 front ends. Services are services.
Aren't .NET and PHP far less confusing in this context?
Your wording needs some work. There, I've fixed it. Depends on how well you know .NET or PHP. PHP is arguably "less engineered" and more straightforward, but every web app isn't a web CRUD app. .NET can be as engineered as Java, but it has the perceived virtue of using features that are part of the framework. At least everything is from Microsoft. Maybe you're confused because there's more choice with Java.
If choose a framework and after 6
months I decide to use another, is it
possible to migrate easily?
It depends on the framework and how well you layer your application. I would say that if you layer your code properly things should be modifiable. But frameworks tend to be glue code, so if you depend heavily on the framework it'll be hard to extract it no matter which one you choose.
It just feels doesn't right to spend a
same effort that I spent to learn Java
to a framework that anytime can be
changed or become useless. Am I wrong?
Anything can change and become useless. Microsoft can decide to re-write their Enterprise Framework 4.0 in such a way that it's not backwards compatible. I don't believe it's a language flaw - Java isn't the only one that's prey to this scenario.
You're right - you're always at risk when you take on a dependency. You're also at risk when you write and maintain everything yourself. You need to choose well to minimize risk, but you can never eliminate it entirely.
My recommendation? Choose Spring and sleep at night. It's a terrific framework that's hung in there for eight years and counting, still going strong. It has a great web MVC framework and lots more. The idioms it encourages will make your Java apps better: more layered, easier to maintain, possible to play nicely with other frameworks, minimizing your risk. They're owned by VMWare now, so they aren't going anywhere.
I think you'll find quite a few varied answers. I'm a .NET developer, I personally love to use .NET, ASP.NET and ASP.NET MVC. If you are comfortable and know Java well, why not stick with what you know? You're right that there are a myriad of framework choices, and this is true for pretty much all the platforms.
Java is suited for both small and large teams. Having a good source control solution in place will benefit any team, so make sure you consider how you are managing your source when working in a team.
The whole Web 2.0 isn't really fixated on a specific server-side technology. The broad concepts of Web 2.0 (even though it's just a magic term) is that of building rich, interactive applications. You could have a Java backend, a .NET backend, and PHP backend, a Python backend, really the choice is entirely up to you. Can they provide the same sort of services to calling clients? I think they can.
PHP and .NET benefit from huge development communities (not saying Java doesn't), and there are a whole host of projects going on with this platforms. Taking .NET as the example, you can extend it, you can build on it, heck you can even pull bits out and replace it with your own. I wouldn't say that you can't do that in Java, it's just that it would seem (to me) to be easier with .NET.
Migration is a tricky beast, you've got to be mindful of how your using the technology, and if you are doing something particularly special, how well would that translate using another technology. If you stick with a familiar design philosophy (such as MVC), you'll find it easier than say migrating from an JSP straight to ASP.NET MVC, etc.
Computing software moves at an amazing pace, and we all have to keep up or get left behind. You've got to ask yourself, are you making this platform decision for personal or business reasons? If it's for personal reasons, do you feel that you are likely to enjoy developing this in future, is it for personal growth and development? Where do you see yourself taking it? If it's for business, can you see what sort of investment you are making in this technology? Are there likely to be any winds of change which would make you question your choices at this stage?
Sorry if that's all cryptic, I hope it helps.
I don't think there is anything wrong with trying to stick with what you have already known. But there are many web frameworks out there that can help you deliver a product much faster. You mentioned ASP.NET and php but there is also RoR which is very popular and quick to get going. Not to mention that a lot of these languages have web frameworks that speed things up even more. I would start looking at these vs going JSP or some other Java approach.
But this is just my opinion.
I suggest you to use frameworks that use POJOs. With spring, wicket and hibernate/ibatis you will be OK for a long long time.
My opinions:
answers
1: yes
2: what really is a web 2.0 application? (yes)
3: no idea
4: will hurt you few days, but will certainly be possible.
5: depends what frameworks you decide to use. (yes)
"DON'T PANIC" -The Hitchhiker's Guide to the Galaxy
I have significant experience building web apps in Java, .NET, and Rails. PHP, not so much. So here's my very opinionated opinion:
Web development frameworks in Java (there are a bunch, but look at Spring) are mature and easy to learn. So if you want to run with Java, you're definitely not doing anything dumb, regardless of your team size, or the "web 2.0"ishness of your project. It's all good.
That said, here are some things to think about if you want to explore other options anyway:
C# is a way better programming language than Java, and I used to be a Java fanboy. They're very similar in many respects, and the transition is easy, but C# just fixes so many of the pain points in Java, and just holds together a lot better. I know you're not asking about languages, but if you're considering different platforms, it's definitely a factor.
Until recently, Web development was a real pain in .NET, because ASP.NET with web forms was pretty awful for non-trivial projects. There is a relatively new MVC platform released by Microsoft. It's nice, easy to work with, and has a growing community. On the other hand, it's practically your only .NET option (aside from Monorail, which has a shrinking community and a lot of bugs).
.NET isn't strictly tied to Windows thanks to Mono, but there's definitely a Windows skew to the community and libraries, and the Mono project is always a bit behind. You'll have to decide if that's relevant to you.
Rails is a blast. A lot of things that are complicated in other frameworks are trivial in Rails. It's certainly not without its issues, but for getting a solidly-architected product running in very little time, it's tough to beat.
Unless you have a very good reason to use java for web development, don't. Statistcally speaking, PHP is king in web development. You will also find many more frameworks and much better support for web development.
If you want to take a step away then try python, ruby, or CGI. They are all decent backends that work just as well in most area's that PHP does.
The main thing here is to go with what you know. Unless it's java.
Very few still use Java for web development. PHP is the winner in this sense because of the community and the immense choice of fully-featured applications available for free. Enterprise level apps are easier to implement using .NET, due to the new features in C# and due to the existence of SharePoint. Python is also used by many, including Google and YouTube. Ruby has its fans due to the Ruby on Rails platform and its language elegance.
I have many acquaintances working exclusively in Java, and get paid very well, but they practically don't touch the Web part.
My opinion is very subjective.

Senior WinForms developer with no ASP experience - legitimate chance at a Senior ASP.NET position? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I would like to know from those in hiring roles and in senior ASP.NET roles, would you seriously consider a person like myself for a senior ASP.NET role?
A bit about myself: I am seriously considering a switch from WinForms to ASP.NET. There just do not seem to be many positions for desktop application developers anymore. It's becoming a niche field. In the pursuit of greater opportunities, I am trying to repackage myself as an ASP.NET developer. Unfortunately, there is the obvious lack of professional experience that is a gap on the resume. Seriously, the only real issue with losing my senior status is the paycut involved. I couldn't care less about the title, but sadly, we all have bills.
I could argue that there is a lot more to software development that knowing the intricacies of web development vs desktop-- there are issues of designing reusable code, design patterns, C# language features, database experience (another place where my experience is light), class design, professional maturity, and so on.. But I fear that these arguments will fall on deaf ears, especially in these times, when there are already so many experienced ASP.NET developers already out of work. I can sling together a few simple web pages that hit a database and show the data, but this is far from a professional web site, I'm afraid.
Edit:
10 years update - Screw Microsoft and ASP.NET. You Suck!!! I left Microsoft stack shortly after this and my salary went up by 40%
Well I hire ASP.NET and WinForms coders and I wouldn't rule you out.
Interestingly, in the UK, Web coders tend to earn a lot more than WinForms coders so a strange reversal of your situation.
ASP.NET/Web coding has it's own challenges, especially the stateless design which is fairly alien to most Desktop coders so I'd spend some time getting to understand what you're letting yourself into, maybe knock up a couple of side project which you can put as links in your CV and give you something to discuss in the interview.
I'm interested to know why you are so keen to get into ASP.NET coding though - WinForms is still very popular, especially in Game Tools coding. You can make a decent living and work on a lot of interesting stuff.
Note - controversial but after interviewing a LOT of ASP.NET coders, I found the standard to be very hit and miss, whereas WinForms coders tend to be good solid coders so I suspect you're a decent coder which is ALWAYS a bonus on any team :)
You are a senior developer, who is unfamiliar with ASP.net. So, you don't currently qualify as a senior ASP.net developer, as Senior implies familiar with the intricacies and peculiarities of the platform in which you work. Companies pay senior developers more because they do not have to spend cycles learning the basics of their development platform.
Fortunately the solution isn't too difficult. Just start writing code at home in asp.net. As a Senior .net developer you should be able to catch on very quickly. Put out a product or site to use as a portfolio and to show that you have gained experience in the ASP.net platform. And when you get to your spiffy new Senior ASP.net position, your company won't put undo pressure on you because you don't have the knowledge coming in that they expected from a senior developer.
I think the odds are stacked against you but that doesn't mean you can't make the transition with a little effort.
The first thing you must do is find ways to convey to the potential employers that you can handle ASP.NET development. Have you ever worked with HTML, CSS, or JavaScript? Have you at least consumed Web services? Maybe you could buy one of those ASP.NET beginner books and work through the examples at home.
Next, elaborate on the similarities between your current job and that of an ASP.NET developer. You have likely used similar controls. You have likely followed similar high level design/development concepts. You have likely used the same tools. You have likely worked with complex SQL queries.
Take these things and target your resume / cover letter towards the posted job. Don't exaggerate or lie, just word it such that it is clear that while you haven't worked as a Web developer, you have certainly had enough exposure to handle the transition.
The only other thing I can suggest is patience. Other candidates will have more Web experience and you can't overcome that. You might even need to take a pay cut to make the transition.
Best of luck to you.
Well, I think it depends on a number of factors. Firstly, do you actually know ASP.NET? I mean more than "I can do the samples" -- I mean what's your actual level of proficiency? I would expect someone with your story who may not have had job responsibility in that area to have (extensive) personal experience (e.g., "I didn't do that at work, but for my personal web site bla bla bla"). Are you conversant with the frameworks, 3rd party addons, etc? If so, and you had deep experience elsewhere, I think you have a great shot at landing that type of job.
If you're coming in completely cold, honestly I don't think your chances are good...especially in this market.
The final thing I'd add is that it depends on the type and size of company. A small company hiring a single senior engineer for that slot may have more heartburn about your lack of commercial experience (I know I would), whereas a larger organization looking to build out a team would likely be less concerned.
I would say this transition is a manouver for many. Web programming is very different where you need to love style sheets, HTML and JavaScript preferably since your school time, let alone JS is enough to annoy an orthodox OOprogrammer. Someone wrote above, finding a good web developer can be hit and miss and he's absolutely right!! Web developers groom skills with a different mindset starting from HTML and styles and at some point in their career they realize the need to know C#, JAVA or SQL, the opposite direction you want to travel:)
In my opinion, you as a classic programmer may want to dig deep into SOA, Systems programming, multithreading stuff or even a OLAP or Reports developer. However, if these are not an option then you might bridge Web Developmet gap with some new stuff like jQuery instead of plain JS and ASP.Net MVC framework in lieu of tradition ASP.Net Web Forms programming and try to use some vendor controls like Telerik or Infragistics to get started, hopefully you will find transition lot smoother but still I have doubts if Web programming can keep you involved in long term given your background. All the best!!
This is an interesting question ...
Being a senior Winforms developer, shows you know a large part of .Net, and if you also know how the web works (HTML, JS, GET, POST, Headers, Cookies, etc) and also know ASP.Net fundamentals (page lifecycle, controls, authentication, sessions, etc ...) then you would get a fair change for a senior ASP.Net developer position.

What language do I use for my project? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I'm going to advise a company on a project soon, and I'm not too sure about what programming language I should advise.
It's a fairly straightforward (desktop based) application with a central datasource on the network, for storing and editing parts that make up a machine. The machine needs to be configured in the application, and with this configuration production documents (manuals, software, bill of material) are generated. (e.g. if part A and B are added to the configured machine, then variation X on chapter 5 of the manual has to be used, if that makes sense)
There's a few non-standard components like a tree with radio & checkboxes, and it has to have some sort of version control in it. It needs a WYSIWYG editor to edit chapters of manuals. It doesn't necessarily have to run on platforms other than Windows because it will only be used on the company network and everybody runs windows.
I was thinking Java because of it's huge numbers of useful libraries and free IDE's. I'm a Java programmer myself so I'm not very familiar with other programming languages. Any thoughts on what language I should use, and why? I believe there's a bit of VB/VBA and Delphi knowledge present in the company (it's not an IT company and I'm not likely to program it myself).
Thanks heaps!
From what your describe of your application and environment, nothing can beat Delphi!
It's the ideal case for Delphi to shine:
- native desktop application with fastest performances and development combined.
- plethora of excellent (often free) components; you'll probably find your tree
- extremely powerful yet simple for DB applications
- very active and helpful community
See also why I recommended it for another SO user.
I think if you have Delphi knowledge in your company : it is a very good choice for Desktop application and as avar says : you can find a lot's of good components here Torry's Delphi Pages.
I recommend this article
for desktop applications ( plus with database/win32 things) i'd recommend delphi. u can find many good components availabe .
You probably want to choose the language that your team has the most experience with. I personally am into Delphi, and it sounds like this might be a good choice for what you describe. Delphi is highly suited for Desktop apps talking to a database. However if your team (those writing and maintain the app) are more experienced with Java / C# / VB then you should go with that.
Well the scenario you describe is not very language specific, so
here are a few hints:
generally, java is absolutely ok but:
In a windows world, you can live easier with .net languages,
because of direct access to COM/activex for combining documentation snippets
in adobe or Word
since there's some vb knowledge about in the company, maybe the task of
maintaining the software becomes cheaper.
I would suggest c#, because via mono, you can go Linux where and if necessary.
well, that's my 2 cents.
Depends. On many things. What language are you familiar with? What database do you use (MS SQL has some advantages when used with a .NET language, but can also be used with java, or ...)?
The libraries are (at least for me) not a main decision point since there are a lot libraries for other languages too.
If you do not program yourself, ask the developer doing the job. Projects have other marks than technology such as time used and money spent. If you choose a language the developer is familiar with, it's more likely to be in time and in cost.
Your question is somehow far too open to give an exact answer. But maybe this helps you to think about it.
You should use whichever language is:
1) Most appropriate for the project
For example: If your project requires real-time processing, use a language that is conducive to performing that task.
2) You (and your team) is most comfortable with.
You would need to discuss with your team whether any languages that you currently know between you all are appropriate (keeping point 1 in mind). If none are appropriate, which language (with point 1 in mind) will all be most comfortable with in learning, developing and supporting (maintaining) throughout the life-time of your project.
This sounds like very curt advice, but I believe it's crucially important. If your project is to succeed, you need a language that you can "live" with, and will work with you rather than against you. If you were a wood-worker, you could use a hammer to put screws into a piece of wood, but wouldn't you be much more comfortable using a screwdriver?
Of the tagged languages, avoid asp.net as it's a desktop application. Other than that all the other languages would do a good job. It would come down to personal preference (more importantly the personal preference of the developer).
I'm a Java programmer myself so I'm
not very familiar with other
programming languages.
If you're going to write the software you should use Java. You're already familiar with it and your familiarity can help you delight your customer.
If you aren't writing it you need to find out who is and take their experience into consideration. Having them learn a new language just because you don't know what they are familiar with is not exactly a good way to go.
Java would work, C# would work (I would personally pic C#), it really just depends on the experience you have available.
What is this about the "non-standard" components? If there are 3rd party controls they want to use that might dictate the language/platform to work with. There are lots of free controls and examples in Java and C# as well and extending the standard Java / .NET controls might even work better that going with the 3rd party controls.
Sounds like you need to know more about the application and some other things that are out there before you can really be advising somebody else on what to do.
Well, there is a lot of wisdom with using what you know (Java).
However, just to counter the "because of it's huge numbers of useful libraries and free IDE's" - .NET also has a huge library base, and free IDEs (including the Express editions of Visual Studio). For .NET, C# would be a "closer" language to Java than VB.
I reckon you'll end up with Java, though (through familiarity - not always a bad thing).
When we build client side systems we use .Net (C# usually). We do Java on the back end, but it sounds like you may not have a traditional back end. For all the libraries and frameworks that are available for Java the vast majority of high quality UI components are in the .Net space these days.
When you are managing the development and someone else is doing the implementation and maintenance then I'd suggest to negotiate the programming language with them.
When you have to do the maintenance then focus on languages that you know.
If you do all/most of the work, just use what language you are familiar with, when you don't have enough time to learn a new language on the way. Especially if the application is important and needs to be pretty bug free. (although there is never a "last bug" as we all know) ;-)
The amount of 3rd party libraries is not a good criterion because this doesn't reflect their quality (maybe most stuff is crap) and many libraries means also a big chance to select the wrong one.
Don't forget to check if the chosen language is capable of doing the job. (Speed, platform constraints, memory footprint, ...)
I think it doesn't really matter that much in which programming language and environment you program, as long as you get to know it thoroughly. C++, Java and C# all have good libraries and all have their strengths and weaknesses. The important thing is that you know the peculiarities of the language, the development environment, the debugger, a good profiler, the standard libraries, the best third party libraries, etc... Moreover, after a while you can reuse your own code as well. For example, you mention an advanced tree widget. In our company, we have our own tree (in C++) which we can finetune as we like.

Best way to recruit a virtual team to a "garage" software project? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I have a working prototype for a killer app implemented in C# for Windows Mobile. It needs to be packaged into a commodity and efficiently sold. Possibly also converted to a web-centric platform.
Now I'd like to assemble a community of seasoned, possibly semi-retired IT professionals. They should be willing to work for fun and free, with an eye to future profits. I realize not many people have the option to risk their time on something like this, but - hey - on a global scale there should be more than one.
I've googled variants of the above, but no dice. And I don't really see SourceForge et al as venues for recruiting, but more as the place where you MIGHT put your code base when the project is under way. I'm not well versed in Open Source, and I'm not sure I want to "open the kimono" on the source until there's been some modicum of vetting process (goes both ways, of course).
So, rephrasing the question: what is the best site for recruiting people to a project like this?
Honestly, you may want to go with a social networking site like LinkedIn.
Your best bet on a risky project like this is to work with people you already know, and who already know you. If there are some bonds of trust in place already, you'll have a vastly greater chance of success, and a lot fewer unexpected personnel problems. Extending this to a 2nd degree contact (someone who knows someone you know) is a good next step.
Only if you really have no other options should you start pulling in people you've got no prior connection with, unless a) you're famous, or b) you want to start paying them and go through a more intense vetting (hiring) process.
Posting here probably helps, too :)
I wouldn't work for free for anyone unless they were already a close friend. Too many ways to get screwed.
To write a commercial application asking others to contribute without getting paid - even if you would give them a profit later on - to me that looks difficult.
I think you'd be better off to release a first version, perhaps with some limits, of your software for instance on XDA-developers. If it gets popular, you will have many free beta-testers out there and probably a lot of "skinners" who would probably contribute free-of-charge for the grafical user-interface. At this stage, you will probably get to know other developers at XDA who could help out with some stuff. In the beginning you could ask for donations and if you get some, you know that you have a software that people would be prepared to pay for. Then later on you could release a "Professional version" with more features that you could charge for.
just my 2 cents
I'm not well versed in Open Source, and I'm not sure I want to "open the kimono" on the source until there's been some modicum of vetting process (goes both ways, of course).
The best open source projects tend to be the ones that are developed with the mindset that nobody else will ever join your project. Start out with something simple that you can code yourself and then start putting the word out once you have a decent prototype (and treat every user as a potential volunteer). You may also consider recruiting anybody already in your network (friends, coworkers, etc) as they'd theoretically be more apt to join such a project.
It will be pretty difficult for you to get someone to commit to a project with a promising but early codebase. It will be even more difficult for you to recruit people with no codebase and no money.
I'm speaking mostly about the open source world, but I'd imagine that this would apply to a small shareware app as well. With that said, I'd recommend giving producing open source software a read if you want to learn more about the open source process.
To expand on ceejayoz's answer:
Even if you're friends, it's a heckuva way to get screwed. Things get said, promised, and discussed over beer with friends. Later, when there's something to lose (codebase, cash, clients, options) suddenly people have different recollections about who was going to get what.
Even if it's your bestest buddy, write down the details of your agreement. The more complicated the agreement, the more necessary it is for each of you to have a lawyer look at it.
The potential problems multiply with strangers. One of my bosses was also general counsel and she once said "If you don't trust the person, it's impossible to write a contract that will ensure their compliance".
It sounds like you're a developer and that's what you want to continue doing. If that's the case, I would recommend a joint venture.
That is, partner with someone who has the marketing skills that you need to get your product out to a wide range of people.
As far as places to look for those types of people, I would start at jvnotifypro.com and branch out from there looking for other sites similar to it. I believe at that site they have a few posts that mention some of those other sites.
Depending on your marketing budget, you could also go the route of paying people to install your program, paying for leads, etc. There's a lot of ways to market a program and to get the best coverage you really have to think outside the box.
Oh, you can also submit software to the sites that support PAD - I think there's an app called AutoSubmitPro that will do this for you. That's a great way to get your software out there a bit so that people know about it.
I agree with Jason. The way I did it in the past was through my existing network augmenting my skill set. Hopefully, it takes off from there!
From my experience the best thing to do is come up with a sales pitch for the other people you want to join the project you will have to sell the idea to them the same way you would sell it to a customer, people have to believe in something if they are going to work for free.
Additionally if you expect a professional to work for free you are going to have to give them a stake in the company...how big a stake all depends on viability of the project and your negotiating skills.

Categories