What new technologies should I learn for Web Development? [closed] - language-agnostic

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 4 years ago.
Improve this question
I want to increase my skills in web development. I have already picked up a book on JQuery and Entity Framework. Is their anything else I should read up on?

The MVC Pattern is the best thing going for web dev these days. Ruby on Rails and ASP.NET MVC are both implementations of the pattern. Learning the concepts will be useful on either platform.
Get Firebug if you don't already have it. It will save you a lot of pain and suffering.

Sounds like you've decided on the MS Stack, so I'll stay within that.
If you want to do Internet work, I'd say read up on ASP.net MVC2 Beta (good starting place would be http://haacked.com/archive/2009/11/17/asp.net-mvc-2-beta-released.aspx).
If you want to do internal IT sites, I'd say hit SharePoint. It is built on ASP.net WebForms and seems to be really taking off.
That is how the market SEEMS to be breaking down at the moment, not me saying "you should only do MVC on the web and SharePoint for corporate work". You can use either, I'm just suggesting where I think you'll find the most jobs...
I'd recommend Linq if you haven't worked with it yet. You can get a lot of mileage out of Linq. Linq To Entities (for Entity Framework), Linq To SQL (if you don't like EF), Linq to XML, Linq to Objects, heck even Linq To Flickr.

If you haven't already I'd also get yourself up to speed using an Inversion of Control container. (Castle Windsor for instance).

I would say MVC and pattern, also I don't know in which language you are programming but a cookbook for that language would be good also.

You should pay a visit to the Mix09 website. It has lots of cool videos of new and hot (Microsoft) technologies.
Also, I recommend you have a look at ASP.Net MVC.

Don't forget to take a look at the opensource MVC projects.
Eg.
NerdDinner
A lot more dot net open source projects can be found at that site (codeplex), that contain interesting MVC and other (entity, Silverlight, ...) sources.
And my last tip would be,
It's better to be very good at one programming language, than to have basic knowledge of 3 programming languages :)
Keep learning!

You must have
A good server side platform I will advice "Ruby On Rails"
Strong Javascript knowledge and one good js library Jquery is great
One ORM tool. With rails it is activeRecord. if you choose .Net then Entity FrameWork or Nhibernate is good.
Final and most important point you must have a very good knowledge of Http protocol . I will suggest this book
http://www.amazon.com/HTTP-Definitive-Guide-David-Gourley/dp/1565925092
Be familiar with some enterprise patterns http://martinfowler.com/eaaCatalog/

Related

Technology stack for building a web application [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'm an old C++ / algorithm guy who is making a first attempt at building a web application. I could use the community's help in making correct architectural / tech stack decisions. Here's what we're trying to do:
There is a simple relational model for the data. Most of the application is simple CRUD, with a high usability and variety of UI controls needed to match a fairly complex workflow a company follows. Often data from multiple tables need to be displayed / edited in one page - think of an editable dashboard that takes full advantage of large monitors (grids, drag-drop, tree displays of data, etc.). There is a bit of server-side text processing to be done as well, with Python being the company's processing language of choice.
The company wants to use open source where possible but wants the best UI controls/widgets and will pay for a commercial UI package. They want to make sure there is a good-sized community of developers who use all the technologies involved so they never have trouble finding someone else to maintain/enhance the app once it has been built. There will be under a dozen concurrent users.
I've read various questions/answers here, done some research on my own, and talked with a few colleagues who build web apps in an effort to decide on a proper technology stack for this application. Here is what I've come up with:
Sencha ExtJS for the UI
JSON for data transmission
Django as the web application framework on the server
Apache as the web server
MySQL as the RDBMS
Linux as the O/S
Github for the development repository
Webfaction for the app hosting (full shell access, long-run process support, Linux/Apache/MySQL/Django support, etc.)
Authentication via username/password in database
I'd love to get this tech stack validated by a few experienced people. If you've built high-usability CRUD-style web apps, please let me know what you think of my intended choices, and also please let me know if I am leaving anything important out.
Thanks!
Ron
It will come down to what you are comfortable with as you go along -- don't lock in your combination too early. I believe you've listed a very usable stack. I don't have any experience with Sencha ExtJS, but the rest is solid stuff. Django is a beautiful thing, and even if you don't have Python experience it is really easy (and fun!) to learn.
But as you go you will find some things don't feel right just because of your background, or because of the way it fits with other pieces of your stack, and may find something more suited to your situation.
I've actually come to the conclusion that these days, the pieces available for a web stack are so well evolved and so well explored that you (almost) can't go wrong -- what is far more important is the application design. People tend to get wrapped up in technology decisions and lose focus on the app itself.

How to choose the right web application framework?

http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks
Since we are ambitiously aiming to be big, scalability is important, and so are globalization features. Since we are starting out without funding, price/performance and cost of licences/hardware is important. We definitely want to bring AJAX well present in the web interface. But apart from these, there's no further criteria I can come up with.
I'm most experienced with C#/ASP.net, PHP and Java, in that order, but don't turn down other languages (Ruby, Python, Scala, etc.).
How can we determine from the jungle of frameworks the one that suits best our goal?
What other questions should we be asking ourselves?
Reference material: articles, book recommendations, websites, etc.?
For me, the most important things to consider were:
Fantastic lead developers who I trust to keep working on the project.
Googling a question brings a lot of good answers.
Most importantly, I have to like the way the code flows.
Edit: Also they have to be anal about coding standards. If there is inconsistency, I get very annoyed.
Those 3 points brought me to Symfony. It is always using the latest cutting edge features of the latest PHP version. Symfony 2.0 is using namespaces before any other framework.
Two of your points were:
i18n - there is great support for it (helps that the company behind it is French, so i18n is a first class citizen).
Scales - Yahoo Answers and Vimeo use Symfony and contribute back code. If those guys can scale Symfony to 100 million users, you can too :)
It all depends on the type of project you will be developing.
Are you building a web application or a heavy content website or something else?
You also mix up programming languages with frameworks. The frameworks for PHP that I know are: CakePHP, CodeIgnitor, Zend and Symfony. For an out-of-the-box heavy content website I would suggest Drupal or Expression Engine.
It seems you won't be developing yourself. In that case I would determine the cost and availability of programmers and how widely the framework is supported and by who it is backed. The Zend framework is backed by the guys behind PHP, while CodeIgnitor is backed by the guys behind Expression Engine. Drupal has professional support packages,...
IMHO, for something that will have a lot of users, go for a compiled language.
If you don't try it, you will not know. So, I'd say do a small project in each of the frameworks you are seriously thinking about. I would prepare myself to do a lot of testing if it's something I'll be maintaining for some years. It's better to start off on the right foor than to get half way through a project only to realize you took the wrong path. There may be some requirements that end your search. For example, your servers' OS, a framework feature, or scalability. If you lay out your software plans and requirements, you probably will have very little left to choose from - unless your project really is quite generic or simple.

New web development framework? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have tons of experience with both Rails and Django. I now have some spare time to do some learning. Which emerging web development framework I should learn? Thanks!
To be honest: Just pick one. There is no right way to learn such stuff. The web is evolving in a chaotic way, what is good today might be bad tomorrow.
And no one can give you the answer as everyone has different experiences and preferences.
May advice would be: Pick one you have heard of and evaluate it against those you already know. What are the weaknesses, what are the strengths? What are advantages and disadvantages for you as programmer if you use it? If this involves to learn a new language, even better. Maybe this language follows other concepts/paradigms. It will "widen your horizon".
In the end, what makes you a good programmer is not, that you know as much frameworks, languages, whatever as possible, but that you understand the concepts and that you can apply them easily to the new/unknown.
To get to know which frameworks are available in general, this is not the right places to ask IMHO (-> Wikipedia).
Nobody than you can decide what you should learn, it heavily depends on your background and interests. You don't have to be afraid of learning something "wrong". Every bit of knowledge is useful in the end and will contribute to your overall understanding of the techniques.
asp.net mvc.
Will get you some perspective from the strongly typed world...
Here are two "low-level" frameworks, that I found really interesting to do stuff with:
web.py, which claims to be the "Pythonic" way of doing web related stuff in Python (has even a positive quote from Guido van Rossum)
Node.js, that uses Google Chrome's V8 JavaScript engine for serverside JavaScript
Both are "low level" in the sense that they don't provide as much features as Django or Rails but leave you with a maximum of freedom to code your way in the respective language.
I would recommend ZK if you're interested in AJAX frameworks.
Take a look at the Agile Platform by OutSystems.
You can download the free version at http://www.outsystems.com/download and follow the interactive tutorials.
Cheers
Michel
Disclaimer: I work at OutSystems
You don't say anything about what language, but for something really different, you could try Nitrogen or Erlyweb written in Erlang. I am not saying these will be the "next" frameworks, but they sure should be!
Zend seems to be the choice in the PHP world. Not that I'd recommend anyone to learn PHP, mind you...
If you want to try something that is oriented towards building the kind of complex interactive applications that would be a nightmare to build in Rails or Django, my recommendation is Seaside
Zend PHP framework.
Php is the most used programming language on the internet and ZEND framework is the most mature framework for PHP.
Instead of looking at yet another server-side framework, how about a client-side framework? Web development is gradually moving towards the client. Being able to build web apps that run in offline mode will be a required skill before you know it.
Try building a web app with dojo or extjs, using the server only for hosting index.html, a bunch of js files, and a few web services. Make the entire page generation happen in javascript. For bonus points, skip server-side logic entirely, and build an app that stores data locally, using the server only as a static file store.

Becoming a Web Designer: CMS, or by hand [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I'm biting the bullet and becoming a Web Designer, there are just too many good opportunities out there. I'm a professional SW engineer, so I want approach this correctly. So far I'm fairly good at HTML/CSS/Javascript all completely by hand. I'm also good with jQuery and Django with mySql. I've made some cool sites but it takes TOO LONG if I want to do this for many sites.
Here is my question: Do I learn a CMS really well and use it (and be stuck with it) or do I spend that time developing some reusable HTML/CSS templates and do everything by hand?
So far my CMS experience is that there is overhead setting it up, and it you want a lot of customization you're doing CSS anyway.
If I go the CMS route -- which one?
What is the "best method" for Web Dev? I intend on creating a very diverse array of sites as well...
Thanks!!!
The future of web publishing is clearly in Content Management Systems for everything larger than a small personal site. People are not buying sites anymore for which they have to pay a professional every time a paragraph needs changing.
Make sure you know your HTML, CSS, and Javascript, but get familiar with one or more CMS's on the market, preferably one of the big ones that get you a big community, and the advantage of a widely known standard that it is easy to find people for. Learn how to customize it, how to build templates for it quickly and effectively.
One of the biggest flagships in enterprise-level CMS'es is certainly Drupal. From personal experience, I also know Joomla, but I'm not sure whether I'd recommend it to get started with - it tends to be a bit dirty on the code side sometimes. WordPress is successfully used as a CMS by many.
Look around on SO what systems people are happy with; if you want to get to know the concept of a certain CMS check out openSourceCMS who provide live demos of many CMS'es. There are also very robust commercial products out there that are better maintained than the open source projects.
There isn't a single correct answer for this IMHO. Basically, it comes down to:
Use the best tool for the job.
The best thing you can do for yourself is learn about what tools are available, and what they are capable of. Try to match each one to a scenario you think might be particularly suitable for a given solution.
You will find that if you invest a lot of time in learning something like Python / Django you will be able to create just about any site you can imagine, but then you might find that if all your client requires is a simple, mostly static company info site that something like Drupal might be more appropriate.
The baseline technologies like (X)HTML, JavaScript, CSS and SQL are used across all of them, so knowing these tools well in a generic context is also extremely valuable.
A truly well-equipped toolbelt is invaluable.
If you need a little number of pages, without any dynamics, render your site with your favorite language and numerous templates to html files and don't deal with anything but www-server.
Once you need a rather big site - use a tool which you already know well. (I using django and happy with it).
When a site is really huge - make your own CMS. But at first have a practice with tool like django. Until you know how it works - try not to deal with big projects at all.
I can advice to use statically typed language for anything, but i'm sure that you know benefits and caveats.
Python and Django is suitable almost for anything.
I am a Web Designer and recently I began using Wordpress. I've found it great so far, once I have my site ready in xHTML and CSS it only takes me a couple of hours to make the content editable.
I have also created about 3-5 themes my self, I've found creating Child Themes and using Themes like Twenty Ten as a parent, so I can use their functions etc.
I would highly suggest that you look into wordpress, especially if you want to speed up the process for creating websites.
Those two choices aren't mutually exclusive.
You should build reusable code regardless of which option you choose. With a CMS, there will already have some design decisions made for you of course, but I find myself building APIs and interfaces using Drupal all the time. In fact it's a measurement of quality.
There are also some frameworks that you might like too that will let you custom build and increase productivity. See The Zend PHP framework, Ruby on Rails, Kohana, Nanoc and the 960 CSS/HTML grid. You could say they are the best of both worlds!
If you are going to implement web sites for the general public, I'll go with Joomla. I managed to implement 9 websites in one year with this CMS. In my opinion, it is important to know PHP, HTML, CSS and Javascript pretty well before using Joomla (which you seem to know), or any other open source CMS for that matter. This way, you will be able to customize all aspects of the website (both frontend and backend) with ease. For example, when I don't find a plugin which does what I need, I just create the plugin myself.
However, if your aim is more on Web Applications rather than web sites, I'd go with ASP.NET and ExtJS, which seems to be today's trend for web applications since you will be combining the power of ASP.NET with the power of AJAX (ExtJs).
IMO, Python is more targeted for very large and complex projects (look at Google or Amazon).

What is your experience using the TIBCO General Interface? [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
It looks interesting and I've played around with it some --- but the development IDE in a web browser seems to be nightmare eventually.
Does anyone have experience using it and what are your thoughts?
We evaluated GI a few months ago for a project but didn't end up selecting it.
The IDE-in-a-browser (which is itself build with GI) actually works surprisingly well, though there are some features you normally expect from an editor that it lacks, most notably (and irritatingly) an Undo command. It's also impossible to do things like subdocument includes (practically a necessity for team development) from the IDE, though you can do them manually in the underlying XML and the IDE will respect them.
In the end the main reason we didn't go with it was that it was difficult to make the resulting web application look as good as the designers really wanted. It was relatively easy to build functionality, but the components were very restrictive in look and feel. The way GI renders its own document model to HTML involves a lot of style attributes which makes skinning in CSS all but impossible. It seems to prefer making web applications that look like applications, instead of web applications that look like websites.
So it would probably be great for building intranet type applications where look and feel isn't a huge issue, but I probably wouldn't use it to make a public facing site.
By the way for those that don't know, TIBCO GI is a completely separate product from the rest of TIBCO's SOA business integration stuff - General Interface was a separate company that was acquired by TIBCO a couple of years ago.
From a coworker who used to work at TIBCO:
TIBCO is a complicated, hard to use system because it's used for complicated, hard to solve problems.
Kieron does a good job of summarizing GI. It's really for enterprise web applications, not consumer-y widgets. The overhead of loading the entire GI framework and waiting a second or two for it to load doesn;t seem like much if you're firing up a call center or an employee provisioning application you're going to use for the next few hours. But, it seems like forever if you're waiting for a widget to load into an existing web page. And, even though, GI supports some nice functional and performance QA tools, they really are overkill unless you're working on something important and complex. So, if all you want is to toss a sexy looking datepicker on screen, use something else for sure.
Yup, couldn't agree more. I have developed a few applications with TIBCO GI and integrated it with TIBCO CIM. I work for TIBCO and GI is something I have been working with quite heavily doing some complicated stuff. Whilst doing it, I came across the odd sides of GI, things you sometimes can't explain but are just the way they are, working with JavaScript and dealing with multithreading issues can be a nightmare etc. It's good to create something quick without being too fussy about the sexiness of the application hence good for internal apps but not for consumers unless you want to get lost in a jungle of crazy CSS styling. The XML Mapping utility is a great feature saving you lots of time to implement SOA applications. The other good part is that deployment is really easy - GI apps use a combination of XML, XSLT, X-Path and JavaScript. In GI 3.8 there are also a couple of testing tools. Unfortunately, development inside GI's editor is slow and painful, so I recommend using an external editor like Notepad++.
you dont need to run tibco-GI from a web-browser, but you need to run the Programfile GI_Builder.exe which is an ActiveX application. just double-click on it and run-it.