Flex or Silverlight which one is best? - apache-flex

I am working on a video chat applicaton, i am not sure which one is the best for the current market??
please any suggestions??

I am a Silverlight developer myself, but looking at the adoption rate as of today I would not use it for a public app. If you have the skills, definitely go with Flex.

In this case, Flash 10 has the clear advantage as Adobe includes the necessary functionality to build a working video chat application (including video encoding codecs). Adobe has an in-beta (lab) product code-named Stratus which makes connecting two video clients easy for example. Flash also has built-in support for the various streaming protocols needed to efficiently send video to another location.
Here's a web site with a walk-through for example using Flash technologies. There are plenty of other options though that are available for Flash video chat distribution as well from 3rd parties.
That's not to say that it's not possible to build something like this using Silverlight. However, there really isn't the industry behind it as the video camera support in Silverlight is just emerging and in it's first release in Silverlight version 4.0. For now, there's still a LOT of work that must be done to build out the equivalent of what exists in the Flash community (has existed for years). The web camera support in Silverlight has made it simple enough to capture a snapshot from the camera, but not yet a video.

As the former Product Manager for Silverlight and one of the guys that helped craft Adobe compete strategy for Microsoft let me simply say "it depends on each individual"
RE: Ubiquity.
Flash has around 8-18 million installs every day, so whilst the assumption that Flash is on every single machine world-wide? the reality is that an average person is likely to install Flash at least 7 times per person each year so thus it implies mathematically impossible for Flash to be absolutely 90% ubiquitous
In actuality, I sat next to the office who was one of the architects for that methodology and it took 3 goes to get the right "positive" number. So do what you will with that.
Silverlight has around 400million+ installs and is growing actually quite rapidly. It took Flash approx 6 years to reach that number and the acceleration of Flash to go beyond that was largely due to Windows XP baking the runtime into the OEM installs. The fact Flash is no longer installed on Operating systems by default and relies heavily on Hardware OEM deals (cash for installs) this is where it gets a little murky on "sustaining ubiquity".
I'd say Flash isn't 90% ubiquity on clients, i'd say Flash is 90% ubiquity on the web itself, in that i think Adobe are pushing the wrong agenda - it's saturation they have not install sockets.
RE: Skillset
I'd say most on here are correct with a twist. In that it's not so much always about what you know, but it's more about "who else will know what you know" as you're most likely going to have to work with someone on a project sooner or later?
It's really about what your team and you are comfortable in terms of adopting, it also has to do with budgets and time. If you have time to do some personal development and want to explore into either Flash or Silverlight, choose both - you will learn 10x as much (I know Flash, Flex and Silverlight/WPF quite well - 9+ years at this).
However, if you're a .NET developer then understand you're about to invest in not only a language but a complete foreign entity ranging from tools to community dynamics as well. You will need to simply absorb about 6months to 1 year of being a "junior" developer/designer should you wish to adopt either technology.
I'd highly recommend you adopt both though as i honestly wouldn't declare either one just yet an outfront winner. Adobe is making strong gains in attemps to fix a lot of their lazy tooling and ubiquity issues so they may turn this ship around. Microsoft is getting complacent and still has a long ways to entice the design audience, so it's still quite early days for them as well.
RE: Jobs
Monster stats are a b.s stat to track as it is like watching rain fall outside your house and declare that the world is suffering from an influx of rain today... it doesn't answer how long the Flex jobs have been in market for the said advertising, in that is there a skillset shortage? why? is it because the price per hour for a Flex developer doesn't match the said market rate or working conditions etc..
It's a supply/demand argument and I could create spin on both sides of that isle should I choose to.
The reality is there's about 6million .NET developers world wide today, and most of them are slowly turning their heads towards the future in that they aren't quite ready to abandon Microsoft and its tools for a foreign technology. Furthermore, Visual Studio 2010 is about to unload onto the market, so that will create a new wave of excitment behind WPF/Silverlight given it will be a much easier access point to the technology "File-New-Project" vs "download, follow these steps etc"
Windows Phone 7, despite what others may say about iPhone etc will overtake the market again, that i'm sure of. This will also increase the mindshare around the product and stimulate the supply/demand further.
Right now, if you are a designer with both Flash/Flex and .NET skill set, it's definately your market right now as you are in HIGH demand.
- Scott Barnes
Former Silverlight Product Manager and now UX Specialist for both Adobe/Microsoft technologies.

Depends on your programming experience and user audience. If you're a skilled .Net developer, then Silverlight is the best tool for your. But if you want maximum compatibility for your users, you should choose Flex, because it uses the Flash browser plugin.

the winter olympic games and a lot of other major streaming events chose Silverlight over Flash. take that into account: they wouldn't waste their money neither compromise the results. and for latest adoption rates check www.riastats.com

One great thing about Silverlight is that you can reuse existing .NET-Code.

I've been developing in Flex for a while and I absolutely love it. Unless you're a big MS .net shop (and I doubt you'd be asking the question if you were) then I'd recommend Flex. It's more mature, the plug-in has a huge install base and it runs on more platforms.
One consideration is how marketable will your skills be in the future. Flex jobs currently outnumber Silverlight jobs on Monster at a rate of about 4 to 1. Conversely, if you've got to go out and hire folks for the job, you may want to look at Silverlight because there has been a shortage of Flex programmers for a while.

Related

Is there a tool that picks up where 280 North's "Atlas" left off?

Occasionally I go back and watch this video. And then I cry a little bit because 280 North got swallowed up by Motorola and to this day no one really knows exactly what became of them.
I know that there was something called "Greenhouse" for SproutCore that purportedly did something similar. But what with SproutCore's lead developer getting hired by Facebook and SproutCore itself turning into Ember.js, I'm not really sure if Greenhouse ever made it out alive.
So -- are there any tools that pick up where Atlas left off?
tl;dr: There are two choices: Dashcode or Cappucino, where the GUI solution seems to be building your UI in Xcode (Interface Builder) and exporting it to Cappucino. This solution seems to be supported by the core Cappucino team. Atlas and Greenhouse are dead.
The rest of this response consists of quotes and links supporting the above conclusion.
I've got the same question and have done some research.
There are three possible frameworks where such a tool could be possible. Dashcode, Greenhouse and Atlas. Atlas is dead, Greenhouse never seemed to be more than just an experiment.
Dashcode is still being maintained. It is a really good tool, and the only platform I've found that allows building Mobile apps as well as Web Apps at the same time, from the same code base. (A lot of the mobile app builders, like titanium, phonegap, etc, seem to focus only on mobile, not building for both the desktop browser and the mobile device.)
Dashcode is being revved every time Apple releases a new version of Xcode. Further, apple is doing continuous work in this area-- for instance, the iAds Producer is really a super- souped up dashcode. Further, iBooks Author is also very much like dashcode. Both of which are specific tools for specific limited target products, but both have javascript frameworks and at least some GUI support.
Producer is really slick, though its focused on making "flash" like ads with javascript.
Dashcode has not been majorly updated for quite awhile, so it might be on the way out, but it is still a viable tool.
The 280 North guys don't seem to work for motorola anymore (boucher at least works for stripe now) and all work on Atlas has stopped.
The "officially recommended" solution seems to be XcodeCapp Which, near as I can tell, is built into Cappuciono now. "Best of all, the new XcodeCapp application automatically creates an Xcode project out of your Cappuccino project and lets you place UI components with ease." (from over a year ago, when they could have mentioned Atlas.)
Here's some references to it, including a recent saying it had been fixed for Xcode 4.4 (which was released this summer, with 4.5 being the current release.)
https://groups.google.com/forum/#!topic/objectivej/mRMiLTP2Yh8
Also, this next link is to a site with some great tutorials, and they assume you're using Xcode:
http://www.cappuccino-project.org/learn/tutorials/advanced-hello-world-2/
Here's an older blog post about the situation:
http://cappuccino.org/discuss/2011/11/16/cappuccino-0-9-5/
Which contains this in the comments:
"Only the people who own the Atlas project can make any statements about it, and unfortunately we're just not those people. We're the Cappuccino core developers and we manage the open source project Cappuccino. Atlas was a commercial product created by a company that doesn't exist anymore.
That said, don't worry about it, really. The Interface Builder integration is awesome and a very complete solution. And beyond that, you can write apps perfectly fine without any GUI editor at all. Or you could even write your own editor in Cappuccino. You've got a huge amount of possibilities and power at your disposal, so go out and build a cool app."
And also:
"The new way of converting xibs to cibs automatically is the shiny new XcodeCapp application which you will find in /usr/local/narwhal/packages/cappuccino/support/XcodeCapp.app. That either struck us as an intuitive and easy to find path, or we didn't have time to make an easier one. ;)"
Also, this summary by Antoine Mercadal :
"Atlas is a closed source software. It was originally built by the 280N guys, and you may or may not know the history, but the point is Atlas is more likely dead. We, the Cappuccino community, cannot do anything about it, unfortunately. Complaining about Atlas here is like complaining on the W3C website about IE: it doesn't make sense.
I personally paid for the Atlas beta, and I develop all my interfaces (about 30 big cibs) with it. I was also very disappointed by the bad health of Atlas. That's the price you have to paid for using proprietary beta software: shit happens.I spent a week rebuilding all my UI under IB. It was a pain and I drank a lot of coffee during this week, but it actually really worth it. The result is just awesome.
The support of Cappuccino by IB (with XcodeCapp) is now way beyond Atlas has never been. And the future is now guaranteed because XcodeCapp is a part of Cappuccino, nib2cib is a part of Cappuccino, both of them are Open Source, and nobody will never be able to "shut them down".
Atlas was a young product, Cappuccino was also a young product and like every community-based projects, all the actors/tools/members need to be "calibrated" and need to experiment several things. I think it's now done, and that's why we're approaching the 1.0.
This release is awesome, there are tons of fixes and new features, that is what we should talk about in this thread :)"
Nib2Cib has existed since before Atlas. It lets you build your UI in interface builder, and has recently become much better. The latest version of Capp includes a tool that automatically runs the converter for you when you save a xib/nib.

Which is a better platform for starting a small module development business: DotNetNuke or Umbraco?

I am thinking of making some extra revenue on the side by becoming a module developer either for DotNetNuke or Umbraco. I still want to keep my full time job. I wanted to know which market is more promising. I know there are thousands of modules for DNN (just browse snowcovered.com). While DNN is a much bigger market, it seems to be crowded with a lot of competition versus Umbraco which is smaller but it looks like it lacks modules in certain categories. However I don't know if Umbraco is widely used or whether its customers are looking for development work.
I want to approach this by either developing commercial modules or doing custom development work. I am looking at this from revenue potential. Not from technical side (easier to develop for, MVC or not,.. etc)
Any ideas?
If you are a developer for either platform, are you making some good money? Any pitfalls?
Neither, I'd actually suggest Orchard. There are, in fact, pro's and con's to all three, but the best factors for Orchard are:
1) MS supported
2) It's brand new, so there's a LOT of opportunity for modules that haven't already been written
Just my 2c.
I agree with Tony, Orchard has only just come about and realistically the market is currently very small.
We are an Umbraco Gold Partner, so obviously biased towards Umbraco, but what I would say is that currently there are only a few commercial packages for Umbraco and so if you find a niche product, you certainly still have an opportunity to become the first to market and become the market leader for a specific module type. I think in the DNN camp you will find a lot of competition already exists.
Another thought is to write generic base code that can be used across all three and create a commerical package for each platform, then you have the best of all worlds.
Cheers,
Chris
If you want to do custom dev for clients the platform doesn't matter if you do it on the side.
If you want to create a commercial module it's hard to choose DNN as a platform because there is a lot of competition. Not that that's a bad thing but to get your name out there will take some time. I made the choise to do full time Umbraco Dev in 2008 and made a commercial product for Umbraco called CMSImport. It's quite popular so sales is quite allright. I have thought about the idea Chris mentioned to port it to other systems but the downside is that you only sell products if your product is known in the community and it will take a lot of time to get your name out there if you focus on other communities also.
So pick an idea and platform that has a nice userbase (I would not go for Orchard the community is simply not big enough at this moment) and build your product.
Cheers,
Richard
I don't think it really matters which you pick. The hard part is becoming know as a "good X developer" be that Umbraco, DDN, Orchard, Rails, etc.
Its being the name on the peoples lips at the right time that gets the phone ringing. Tech choice can increase your chance (simply with an increased number of sites for example) but it can also increase your competition.
There is plenty to be earned if you can get the work and the best way of doing that is by being recommended, being spotted as being active in the community, producing packages, etc.
We at Offroadcode chose Umbraco about 2 years ago and have had lots of work of it since and have specialised in it. Through engaging with the community we've got to know a lot of our fellow Umbraco developers (including Chris and Richard who have also posted answers) and we've recommended then and had work passed to us on recommendation too. I guess you get back what you put in.
Pete

Corp IT Systems direction. Invest in A or B?

This is more of a general question about which direction would be a better investment for the company.
Our company's core business application is written in Visual FoxPro and is about 9+ years old. The database is huge 15+ gigs and the core logic is complex and to make matters worse the data model is terrible. The two guys that built it and have maintained it all these years are at least in their 50's, so needless to say retirement or possibly death could come within the next decade or so.
This VFP app drives all our core business functions and requires terminal services and citrix to access it from the outside world. Our web apps have to interface with it via ODBC and we are always having performance issues with it. The servers that run this system are also very old, like Win 2000 server and are falling apart.
Recently we have been having meetings about upgrading the systems that run this core app as well as other services like email and file storage. The biggest expense however is buying new server hardware, OS licensing, Terminal Services licensing, Citrix licensing etc to solve some performance and outside access issues we are currently having as well as just generally bringing us to date on our systems.
The price tag is going to be in the $55K to $65K price range. So as a web developer my point of view is that this is a huge waste of money! My solution would be to invest that money in rewriting the core system to run on the web based .Net platform. This would eliminate the need for Terminal Server and Citrix licensing along with the pricey hardware and configuration management to run it on. I don't see the point in investing this kind of money in an antiquated system that should be on it's way out anyways.
I am looking to get some convincing arguments as to why this is a waste of money. Hopefully there is someone here that has faced this type of situation before that can give me some points of view. The hardware upgrade seems to be the easiest road to take because they will just have a consultant come in and do it all. A software development project would take longer, require more resources and possibly cost a little more money.
The short-term rewrite vs. re-hardware argument cannot be won. Hardware and licenses are always cheaper than a rewrite. And hardware plus license seems to involve no risk.
You can't win on ROI argument. Unless the system is trivial and you are a genius, it will always cost $100K or more to rewrite an application that actually does something. Think multiple person years.
You might win the "technical debt" argument. Change is getting more and more complex, risky and expensive. The longer this code is perpetuated, the more risk and cost accumulates.
The real question is "start to fix now?" or "wait until it breaks and suffer later?" And that has no definite $-valued answer.
You can't compete on money, so you have to compete on risk, features, growth, maintainability, adaptability, standards compliance, security, creating unique value for each customer, etc., etc.
"We are now looking at a larger base of customers and more data". That's an argument you might be able to win.
(I'm over 50, I'm not planning on dying any time soon. That argument doesn't win hearts and minds. Unless they're over 80, you can't really use age except as way to get your argument ignored.)
Focus on the cost (and risk) of making changes.
Prove that you have a web-based solution that makes changes less costly and less risky.
Further, dig into what's there and find parts that can be replaced by a web framework. Code you don't write is cheaper to maintain the code you write.
Every project needs a cost-benefit analysis. If a $60,000 one-time investment will resolve all issues for the next 10 years, then it is (probably) far more economical than hiring a team of developers for even one year to build a newer, better system.
On the other hand, if it's already costing $50,000/year in maintenance and this capital cost is just to keep the system alive, and you'll need to spend another $60k in a few years from now, then it warrants a serious consideration with respect to a re-design.
Or you could take the middle road and start wrapping it up in something opaque like a web service, then gradually swapping out components with better (more efficient, more maintainable, etc.) internal components. Lots of companies go this route because it defers the up-front costs of a rewrite; if necessary you can defer IT resources elsewhere.
S.Lott is right, though - it's likely that you won't be able to compete on cost alone. You have to try to quantify the risks associated with these ancient systems - for example, how much it will cost the company to find and train qualified FoxPro developers if the original programmers decide to quit (or, to use the parlance of so many managers I've met, "run over by a bus")...
Just to add some further perspective to this: Before .NET (and for a few years after) I conducted most of my projects exclusively in Delphi. At the time, it really was a great choice for enterprise development. I was actually the person who didn't want to "upgrade." After a while, however, it became apparent to both myself and my higher-ups that this scared people outside the company.
Investors, auditors, everyone - they didn't like the idea that our core IT asset was done in some "obscure" language. Of course, Delphi wasn't/isn't really that obscure; there's a "delphi" tag here on SO with a count of 3340. But let's use SO as our example - here are the current counts:
c# - 57293
.net - 30577
asp.net - 26600
java - 31023
vb.net - 5996
delphi - 3340
foxpro - 69
vfp - 27
Let those numbers sink in for a while. Delphi, my tool of choice at the time, now has less than 10% of the representation of C#, and this made non-techies nervous. Foxpro/VFP is not even at 1%. I can't even remember how many times I had to answer questions like:
What happens if the lead developer (me) quits or gets run over by a bus?
How difficult/costly will it be to hire programmers in that field?
What if the vendor stops supporting it? (This almost happened)
What if we want to get outside help? Consultants? Security audits?
How easy will it be to get it to work with outside products?
Blah blah blah, worry worry worry, was how I felt at the time, and this was a product that wasn't really that obscure. In your case, we're talking about FoxPro here. FoxPro has gotten to be almost like COBOL; sure, it's still around, there are people out there who know it, but who starts a new project in FoxPro today? It's boring, it's downright ghetto. VB6 is starting to become ghetto, and VB/Access effectively replaced FoxPro so many years ago.
I'm obviously being slightly melodramatic here, but if I were you, this is the angle I would be taking. Forget about the short-term economics, forget about the age, and focus on the obscurity of the product. How many genuine, qualified responses do they think they'll get if they put a want-ad out for a FoxPro developer? What kind of pay would they have to offer for a position like that? What would the turnover be like? This may all seem remote if these two developers have been there for 20-odd years, but when you're running a multimillion-dollar business, you ought to know that it's never a good idea to stake your very survival on one or two employees - not if you can help it.
In general supplementing a poor system this tons of hardware is a bad plan, i would probably say that it#s better to rewrite, but it's hard to say without knowing the details.
Bear in mind that a decent rewrite should improve performance, reliability and maintainabilty so the potential savings are large and will only increase year on year, even if the inital investment is a little more.
In order to figure out if it is worthwhile, you have to calculate, in addition to the costs of a rewrite:
Documenting everything the system currently does, and reverse-engineering the requirements.
Writing unit and integration tests for everything that currently exists. This probably doensn't exist already, but should be.
Cost of maintaining the new system. The new system isn't going to eliminate maintenance costs, merely reduce it. How much will you save?
Cost of hardware for the new system. The new system is going to have to run on something.
Licensing costs for any software/etc. that are needed for the new system. Is everything going to be open source? Or are you going to need several Visual Studio Test Editions for your developers and testers?
Cost of hiring new personnel to do the development. In addition to the straight salary costs, there are office costs. The total might be $300,000, for say 3 developers, counting salary, office space, equipment, licenses, health care benefits.
Time horizon for the saving. The saving isn't going to occur immediately. It is going to occur in the future. In the meantime, they have to still pay for the licensing for the current system, because something has to do the job until the new system is put in place.
Cash flow issues. Because of the above, in the short term they are going to need more money to fund the development. The actual costs are higher, because they essentially have to get a loan, raise equity, or have an opportunity cost (they aer going to have to forego some other investment opportunity to pursue the rewrite).
Business risk. There may be a danger that the rewrite might cost more, work worse,
Two important numbers:
Number of "FoxPro" jobs listed in San Francisco's craigslist right now: 2.
Number of ".NET" jobs listed in San Francisco's craigslist right now: 252.
A lot of other points that have been mentioned are valid. However, you can spend as much as you want on hardware, but the fact is that if something breaks and you need help, you are going to have a heck of a time finding more people to help.
Sounds like a good time to start talking about a migration¹ to newer, better-supported technologies. (And in 10 years when .NET is old hat, you can do it all over again :)
[1] And evolve the system, don't rewrite it. I would guess your current system grew very organically based on needs at the time. There's no way that you'll be able to completely replace all of that (at least, not without a couple of years and a few miillion bucks).
As a historical VFP devloper (over 20yrs with Foxpro/VFP, and STILL have people asking me to write / update their systems with VFP, for a variety of reasons), its still very powerful. However, while researching and taking much of my OOP and development experience and working with .Net, I do find some things in .Net much easier, especially the strong type-casting. However, doing a basic report REQUIRES all strong type-casting to the database tables / structures / objects, and in many cases thus far, a PITA to do.
The price tag for a rewrite is always of significant consideration, but so too is the collapse of ANY system... regardless of VFP, VB, Access, or other. I would strongly suggest getting a consulting company in to help in the re-modeling of your system and maybe act as a project manager / mentor to your in-house staff of programmers who may be able to offer their talents even though it may require some training in the new development environment. This way, you can get a good basis of a strong talent in the language, yet keep some costs down by using your own programming staff -- yet you may need to hire supplemental programming staff. The learning curve from VFP to .Net is there, and can still be a head scratcher.
There are a variety of companies out there who were VFP specialists that have subsequently migrated their services to .Net world and may offer a perfect match for your organization having the historic knowledge and professional experience of BOTH worlds. I know they can act as mentors too for the development of such work.
You can only say it is a waste of money after you analyzed the ROI - it will depend heavily on how much does it cost to rewrite the system.
Classic mistake on JOS - "system is a mess, let's rewrite it".
It will be like looking at this old building and seeing a toothpick and wondering why it is there. You figure it isn't needed, and pull it out.
Suddenly the building collapses around your head :)
It might be a better idea to
Consider rewriting parts of the system for better maintainability.
Optimizing the system for better performance.
Abstracting the Foxpro specific parts, so it could be more easily converted to some other technology.
This incremental approach would reduce risk, and provide some short-term improvements.
There is no magic bullet here for the company. The only way to be sure is to take the hit on a new server to get the stability and speed benefits that brings to the existing business-critical software. Then once that is parked for a few years start re-engineering the thing on a different platform like .NET if that's what you want to do. Bearing in mind that you will have to migrate the VFP data into the new database structure at some point.

ASP.NET - Learning .NET Framework 3.0 / 3.5

I would like to learn ASP.NET (Complete .NET Framework 3.0 / 3.5) and not getting time to attend training classes in any training center.
Kindly let me know if you know if there are any other good alternates/options to learn.
Kindly provide the details too.
you can start at http://www.asp.net/get-started/
To really learn any language and supporting platform you need to code, and code a lot. Resources are quite numerous out there, so in this sense I can understand your questions, i.e. what are some recommendations. Below is a list I would consider to get that initial push that will enable you to begin your journey to becoming a solid coder.
1) Microsoft's MSDN, Codeplex, ASP.NET website, and development tools are where I would start. Microsoft offers all the tools needed to build/code in the .NET framework which you can freely download. Their online documentation has really become a solid resource and their examples, along with others, can be found at Codeplex.com. The ASP.NET also has a wealth of resources and a pretty good forum for user discussion and knowledge sharing.
2) SourceForge: Look for Open Source initiatives and become involved in them. At first you will be learning but if dedicated, i.e. you like the project, you will be helping others in short order. An example of a Microsoft ASP.NET Open Source initiative I would recommend is DotNetNuke. The core team members are very nice and the community as a whole very helpful and continually growing. You may even find one day that you are developing and selling your own custom modules for extending DotNetNuke at snowcovered.com - so there is a monetary benefit I've provided for your efforts!
3) Learnvisualstudio.net: I joined this several years back and purchased a life-time membership for very little. This site offers video based training which is not bad. In addition to life-time memberships there are other plans which might suite your needs and all of which are very affordable. BTW, they have had a new series out for a few months on Visual Studio 2010 .NET 4 - "First Impressions Visual Studio 2010 - ASP.NET 4.0". They also offer two video formats; one for desktop programs, i.e. Win Media Player and VLC, and one for mobile devices such as iPhone/iPod Touch.
4) Informit's Books Online or Books24x7.com: As a possible alternative to purchasing books at Borders/Amazon/etc. you might find the option of an electronic bookshelf a valuable resource in which you can load up your own bookshelf with much more technical books that you'll ever need. The all inclusive offerings are about $40/month or $500/yr. They both have a trial period so you can see what each is like since they both have their +/-'s. Consider how much you normally spend on technical books a year for starters and go with a comparable plan (Informit's Books Online has more pricing options, I believe). If you find a book you wish to have in hand, you can purchase it for a reduced member's price. Finally, if you own a mobile device such as a Blackberry, iPhone, etc. you can browse your bookshelf with your device in a format they provide, which is live online and very readable (in contrast with Apple’s safari book bag used to browse downloaded PDF versions of content purchased at Safari’s Books Online - which I find sorta tough to read).
5) Get a nice computer of your own if you can afford it. I like Dell desktops and Lenovo Thinkpad notebooks, and if not sure what manufacturer to go with take a look at reviews by CNET. An investment like this might give you a little added push from behind to learn and you can configure your machine as you wish. Windows 7 is terrific and you can use Virtual PC 2007, which is a free tool you can use to host server and other OS’es if you wish to develop in SharePoint or learn other server based technologies.
My final comment is that not a single one of these resources will mean anything if you believe that just by purchasing something you will learn how to code. This list represents just some random thoughts and it is just a begining. It takes time, dedication, and honesty with yourself about your goals … and expect to be frustrated at times. A good friend who shares similar aspirations as you can make a huge difference when embarking down the path to becoming a good "anything”. It is heavy lifting at times and you’ll want a spotter around when it is so.
Start small and be reasonable with your expectations. Best of luck!
John
I found this publication to be very helpful:
Pro ASP.NET 3.5 in C# (Apress)
I like this author's writing style since it's put in straightfoward, understandable terms. You can download some sample material on the Apress site. Additionally, it looks like used copies can be had for a pretty decent price as well if you check on Amazon.
Hope this helps!
Best way to learn any framework is to write in it.
Best advice I can give is to go the web site start here, and move forward.
Keep writing applications in it and you will learn it.

What is your company's stance regarding (technological) 'innovation'? [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 months ago.
Improve this question
.NET 3.5, .NET 4.0, WPF, Silverlight, ASP.NET MVC - there's really a lot of new Microsoft technology released / on the horizon to try out these days.
(The examples I gave is all Microsoft technology but this can apply to any language or platform). I am curious how this is handled in the company you work for. A few examples:
Do you have a CTO that determines what technology the company uses?
Are development teams free to choose what technology they use? For example: framework version, classic ASP.NET vs ASP.NET MVC, ADO.NET Entity Framework vs Linq2Sql or NHibernate? Or a mix of these?
What new technologies does the company you work for try out and why?
Does your company have dedicated resources (time) to try out WPF or whatever technology, just for research, or do you try things out in your spare time and try to introduce them to your company?
These are just examples to make my question clearer. To summarize, I'd like to know what this process looks likes, who is responsible, who makes the decisions. Does your company jump on the bandwagon, or is it reluctant to try new technologies? And are you comfortable with this situation?
At the company I work for, we still use .NET 2.0 (although we are now slowly switching to .NET 3.5), haven't seriously looked into ASP.NET MVC, haven't tried out WPF at all, etcetera. And, some find it pretty hard to convince people to do. Is it fair to expect otherwise?
At my company, we have an architecture group that determines which technologies are used. People are welcome to read up on alternative technologies and make suggestions, but at the end of the day, it's the architecture group that makes the decisions.
While this may seem restrictive, it does ensure that all of the development groups are using the same or similar technologies, and moving from one group to the next is fairly easy. As well, by having one group do all the research, you ensure that you don't waste time by having multiple groups duplicate the research effort.
Since I work in such a small company and am I typically either the only developer, or the lead developer in a very small group, I can usually convince my boss to use whatever I think would be the best for a given project/situation.
We stick to what we know for our major and key projects within the company.
For any new "mini" projects that come along, we take the hit on the learning curve to try and build them in the latest technologies if at all possible.
This enables us to get up to speed on these things to then comfortably and safely use these technologies in our major projects as we see fit.
Where I work there is an architect team which looks at technologies from a high level and makes recommendations to various actual teams. A subset of the architect team actually takes the technologies and experiments on them and out of the produces
Internal 1 hour overview sessions
Week long boot camps
Whitepapers/Posters
The more important the technology is the more of that list is produced. All of that just feeds to teams, which combined with customer requirements for technology actually make the decision for what that team should use.
I have a mix answer to this question. Where I work, lower level technical managers are usually the ones that chose a certain technology and sometimes even the developers have the freedom to try something new. For example, I really wanted to learn about JavaScript's Prototype while working on a web site. I made the case to my boss, he was reluctant first because nobody else knew it or had used it before, but gave me the go ahead. It was great for me to be able to learn Prototype and take advantage of it's many built in functionality. Other bigger projects come down from higher management and we don't really have much of a choice. Right now, my company is adopting SAP, so everything is moving into that direction. I don't necessarily want to become an SAP expert, but if I want to stay here, I'll need to at least learn how to work with it.
Every company has its own pace for innovation, and it's dependent first on the comfort level of the managers, and second on whether anybody actually does the work to research and propose using new things. When the managers start getting uncomfortable, innovation slows or stops until they get comfortable again. Some innovations they will never be comfortable with.
Keeping this in mind, I'm not sure how to answer your question about whether or not it's fair to expect more innovation than is happening. Certainly it's reasonable for you to want more; equally, once you've hit your organization's speed limit on innovation, it's not likely to change and, if it does change, it will probably take a long, long time.
I've been given rather large amounts of freedom to change things by various managers in my past, and I took advantage of it. I also ran into the limits on a regular basis, and finally dealt with my frustration by starting my own company. (This may be considered a somewhat drastic measure; certainly by doing do you reduce the time you have to research and develop the very things for which you started your company.)
These days I'm developing rather significant applications in Haskell, and I'm pleased as punch. After a year, I'm starting to get the hang of it, and I certainly have several more years ahead of me just learning what I can do with the tools I have now.
I suppose the summary of my response is: if you want to innovate more than those around you, you need to change your peer group.
I think any company that tries new technology for the sake of it, as its bleeding edge and 'innovative' is crazy. To have a formal 'lets play with new technology to try it out department' is just nuts.... unless they're in the business of providing technology consulting to other businesses.
For everyone else technology is there to help the business get things done. Not to help developers line their CV's with cool sounding TLA's.
The company I'm working at the moment is quite large and has a CTO that chooses 'strategic platforms'. But I've have to say, if you can pick a technology, they're probably using it. They're too big to beat everyone down with the corporate stick, but they try. If the technology will work in the project and bring it in on time, then it gets used.
We need solid and proven platforms for our stuff. And, we don't need anything fancy. Therefore we might go for .NET after 5-10 years or so, hope it's ready by then. On the other hand, Java is already mature enough, so we're using it alongside with C++ and some Jython scripting. These decisions are pretty much autonomous (we're a small shop).
I don't mean to mock bleeding edge developers, but whether you need solidity or newest features obviously depends on what you're working on. Many scientists are still happily using Fortran 77.

Resources