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 6 years ago.
Improve this question
Well, I know it's a preview, and I know it says that it's not yet ready for production, and yet I dare ask the question.
I need to start building a pretty big application, which is planned to go live at around sep-oct 2010.
Lets say I will not release the application to production until the stable version of symfony 2.0 will be released - is it a good idea (well, I'll settle for a viable idea) for me to start building the application using the 2.0 version ?
How big is the chance I will need to rewrite/replace code I've written due to core changes in the framework ?
Thanks.
Edit: the other option right now, is to use symfony 1.4.
I have thought and tried Zend Framework, but I refuse to re-invent each and every module, which will cost me a lot of programming hours (if not days/weeks).
From Fabien's presentation of Symfony 2 at symfony live: use symfony 1.4 for your next project.
From Symfony 2 github page: things WILL change.
Now consider the following:
symfony 1.4 will be supported until late 2012, that's 2 years after your project's release
Symfony 2 does not have code generation, forms, unit tests, etc so everything that you'll do to cover up these fields, you'll have to redo when the official ways are coming (that answers your second question)
so as everyone already said here, go for 1.4
symfony 1.3 or 1.4 is the right choice for now. 1.3 if you've used symfony 1.0 before, 1.4 if not. I am personally not a fan of the from sub-framework in symfony 1.1+ for many reasons, but you may find it entirely agreeable. That's a personal choice, then.
symfony 2.0 is not stable, and many of the features it is introducing are not those which would really interest a developer, I feel, at this stage at least. sf2.0 is however a impressive exercise in making the next generation of web frameworks; but, not in making the sites you make more feature-rich or easier to develop. It may make them faster and more elegant under the hood, but this is not necessarily the primary advantage of a framework to a developer. An example of this is dependency injection. It's a further abstraction of the already excellent symfony core code components, and its inclusion only increases my respect for the symfony core team and their advances - but for an end-user it probably leaves many scratching their heads over the advantage.
The main advantage of symfony once you appreciate the basic framework is the community and its plugins, and this I think is the dealbreaker for sf2.0 right now. Yes, I know it is essentially built from 'plugins', but you will lack several crucial plugins I'm sure, and either have to write them yourself or adapt existing to suit. This is the reason you reject Zend Framework.
Still, just my opinion. I've been a symfony 1.0 and 1.1 developer (mostly 1.0) for over 3 years, and it still hasn't let me down.
That's a million dollar question my friend. It's a gamble, plain and simple. I've used a number of php MVC's (cake,zend, and symfony) and they all operate roughly the same way. What's nice about symfony is it's focus on being modular, not reinventing the wheel and it's ease of use.
I can't cite any examples of larger companies using it, however I personally would use it over cakePHP or Zend at this point. I feel like it has a strong community, it's not in danger of being abandoned (at the moment) and I generally enjoy working with the framework. Which, at the end of the day, is usually all that matters.
Like I said, I don't know how well is scales up or out but it's faster than cakePHP or Zend. It's a gamble regardless of which framework you pick, so, good luck.
Unless there is something specific in Symfony 2.0 that you need for your application, I would suggest that you go with 1.4 and work with a stable version from the get-go. From what I understand, Symfony 2.0 might not be out until the very end of the year. Symfony 1.4 will be officially supported until end of 2012, leaving you plenty of time to upgrade/rewrite for 2.0 later, if you wish to do so.
I have tried Symfony 2 for a week now (I'm a full-time symfony developper) and here are the main reasons why you should continue using symfony 1.x before migrating to 2.0:
Twig is unstable. You can't use form_render, form_error, etc. But it's pretty easy using a PHP view!
Get user's culture (locale) is a pain in the a**.
PHP templates are not fun as Twig to code. Example with this translation function:
PHP: <?php echo $view['translator']->trans('text') ?>
TWIG: {% trans 'text' %}
Bad documentation
It seems not so bad like this, but trust me... it takes me so much time to debug those stuff to realize in the end that it was wrong inside Symfony 2 himself.
By the time you release your project, version 2.0 is most likely will not be stable anyway. And consider that version 1.4 has long terms support for 3 years, which you can count on if you are starting up a new project. Other than that, with symfony 2.0, things are not going to be same :) it is going to be so much different than current versions. You might not like it :) or it might not be suitable for your project.
Or you can just use Lithium...you know, it's better than all of the frameworks on the page mentioned... BUT the question IS about v2.0 readiness not about cake or other frameworks (as mentioned by other posts, though I figured I'd get my jab in too).
I personally wanted to use 2.0 on a major project, but will likely turn out not because of fear (always a bad reason).
My point is this. Nothing is stable. Not even 1.4. EVERYTHING in this world is subject to change and there's always patches and fixes for everything. If we didn't use beta/alpha software, ESPECIALLY in an open source community, we'd never progress.
So. It's a risk. The trick is you gotta be good enough to handle any problems that may crop up. I think that's just the name of the game. You're either the type of developer who goes off and installs Wordpress and Drupal and says look at me mommy grown up pants...Or you're the type that goes out and is on the cutting (or bleeding) edge and sucks it up and gets it done. Rolls with the bad times and smiles (from ear to ear) during the good.
End of the day it's your job. Don't ever let anyone tell you how to do it. You do it how you want.
Related
We have a Symfony 1.4 application and want to upgrade to Symfony 4. Is it possible or do we have to reprogram the application?
We asked a software company near us and they told us that we have to reprogram the application.
Symfony 1 is a completely different codebase using different concepts both inside the framework (or application) and with some libraries. For example it uses Propel (Active Record-approach) rather than Doctrine (Data Mapper-approach) for mapping php-objects to a database. The difference between Symfony 2 to 4 is considerably smaller, because they share the same underlying codebase and are therefore closer to each other. Upgrading can still be a lot of work because of deprecations (changed and removed parts of the code), but overall the upgrade process can be done inside the same application. Besides that, you can choose the newest version available and I would argue, if you are starting now/soon, even Symfony 5 beta would be a good candidate.
Basically, if you want to upgrade Symfony 1 you will do a migration to a new system and it will not make much difference if you move to for example Zend Framework 3/Laminas vs. Symfony 4. At least you can directly "upgrade" from Symfony 1 to 4, instead of gradually upgrading from over versions 2/3. It will require a whole lot of manual work, though. Essentially you are migrating between different applications. The Symfony docs have some general advice on how to start a migration project like this: https://symfony.com/doc/current/migration
Basically the approach would be to wrap a new application around the old one (a concept commonly called strangler application) and then move functionality to the new application, e.g. route for route, and falling back to the old application when the new functionality does not yet exist. The main reason for choosing an older version of Symfony, say 3.4, would be restrictions on for example the shared PHP version being used. There are other ways around it, but that would mean substantially more work.
Symfony Framework developer here:
Symfony does provide upgrade steps between versions. e.g:
https://github.com/symfony/symfony/blob/2.1/UPGRADE-2.1.md
But upgrading from 1.4 to 4 is BIG and will require tons of work.
I agree: writing the whole app from scratch will be faster from my experience.
Upgrading can take years for stable outcome (depending on your application size of course)
Have a look here:
https://symfony.com/doc/current/setup/upgrade_major.html
The difference between Symfony 1 and 4 might be to important, therefore you might consider starting a new project and take some of your previous code for a nicer and cleaner project.
Upgrading from 1.4 to 4 is a miracle .
Even if you can upgrade to the version 2 and then 3 untill here it's
could be nice , but the version 4 is totally different , so i can
advice you to rewrite your code directly instead of wasting time
updgrading from version to the upper one.
Disclaimer: I wrote and maintain an open-source tool that handles automated instant migrations called Rector.
Since 2018 these migrations are much easier with help of abstract syntax tree (AST). This technology allows to change one pattern in unlimited amount of files at speed of readfile/printfile.
E.g. 1000 controller from Symfony 1 to Symfony 5 will takes similar amount of time as 1 controller. All you need to do is write migration rules. Some of them are ready in Rector, e.g. Symfony 2.8 via Symfony 5 - see Rector sets on Github.
You can learn more about migration of old Symfony Applications
Upgrade symfony 2.8 or php 5.4 first?
How to Upgrade Symfony 2.8 to 3.4
How we Upgraded Pehapkari.cz from Symfony 4 to 5 in 25 days
For anyone still interested in this task, migrating a Symfony 1.x app to a modern Symfony 4.x and up (including Symfony 5.x), we faced exactly this same task with our company and I found this GitHub project that details how to do it using the Strangler Fig design pattern and the Legacy Route Loader approach that Symfony suggests on their website:
https://github.com/dkusmierek/symfony_migration_example
I can vouch that this DOES work, although there are some tweaks here and there you will need to make to make it work for your specific environment. But it should be enough to get you 90% of the way there.
I'm embarking on a project to develop a desktop application but my expertise have been in the web application development realm. I was about to refresh my knowledge on Swing programming when I learned on JavaFX which seems to be a much better alternative. At least version 2.0 seems to fit that bill. My dilemma is that there are no books out on the topic. I was wondering if reading up on 1.3 first would be of help? Or is the syntax too, architecture, etc too different? I understand that there was something called JavaFX Script which is now gone in lieu of a Java API which is a bit why I'm wondering if reading up on 1.3 might be a futile effort?
Does anyone have any recommendations on learning resources other that JavaFX api, sample applications and such?
Obviously the syntax has changed, but if you already know Java, coding with JavaFX 2.0 will look familiar.
The one take away from existing books, is that most of the framework, controls, shapes, and effects, etc., from JavaFX 1.3 was ported over to JavaFX 2.0. So the basic knowledge of the framework can be gleaned from one of the older books. That would help you in at least knowing what component to use and then allow you to research it further to see how it now works in JavaFX 2.0.
There is also a lot of helpful documents at javafx.com. New books will be out within the next six months or so and may be available on-line sooner than that.
One time I saw an asp.net question on StackFlow, and I just saw that:
71,722 questions tagged for asp.net, 13.7k followers
see https://stackoverflow.com/questions/tagged/asp.net
For Ruby on Rails,
36,434 questions tagged ruby-on-rails, 9.4k followers
https://stackoverflow.com/questions/tagged/ruby-on-rails
So is asp.net close to 40% to 100% the popularity of Ruby on Rails, and how does it compared to Ruby on Rails really? (good to use, easy, elegant, stable, lots of gems or plugins, lot of gems or plugins that has documentation and overview?)
For the programming standpoint, I was thinking that, if asp.net is released every 6 months or 9 months, with a clear cut version, with stable and detailed documentation, then it is actually easier for the programmers because we don't get the "this gem work with Rails 3.0.0 but not with 3.0.6, but you can use this gem, which works for Rails 2.3.11 and up but if you have an older project using 2.3.5, then it won't work. Or it works for Rails 2.3 but not for 3.0, so let's find something else, or we haven't using this gem but it hasn't been developed or debugged for 5 months and don't know if it works 100% for Rails 3.0 or not and there are 32 issues on GitHub, do we need to use something else? This gem depends on 5 other gems and has 0 documentation, 0 API spec, 0 overview, 10 lines of installation instructions, and there are 40 files with 3,200 lines of code -- you ask the author on GitHub for documentation, overview, or API spec, or to add it to GitHub, and his answer: read the code. Is that true for this programming aspect?
In general, what libraries you will find for ASP.Net, will work with forward compatibility. Microsoft is much more reluctant to introduce backward compatibility problems than the Rails(or even Ruby) team. That being said, there is not a clear cut framework for plugins for ASP.Net. They all generally have different install instructions and such that must be carried out manually.
My personal opinion:
Ruby provides more elegant code, but I've often seen that doing anything "outside the box" with Rails is less than elegant. I use ASP.Net because of this, and I like C# more as a language than PHP. I prefer the statically(ish)-typed nature of C# for web applications, whereas I use Ruby and PHP commonly for scripting and for small programs/web applications which require little logic. Many people may tell you the exact opposite of this, it is just a matter of opinion
ASP.net is more popular on account of (1)Bring a Microsoft Product (2)Great Intellisense in development environment (3)Lots of support and communities. Both products are otherwise good. It just depends on what you are comfortable with.
I want to throw together a .net website as an interface to a subsystem I manage.
I'm planning to use ASP.net (on .net 2.0) because this is the shop's standard.
I would like to use an ORM because I was playing with Django a little bit ago and realize the time saver and code simplifier it was. I realize I may not get the time saving aspect because of the setup but I think it should make maintenance easier.
Can someone recommend a stable, very easy to learn/setup ORM product that works with ASP.NET 2.0. I prefer open source, but as long as the product is free it's fine.
Because learning something is dependent on the learner I want to share that I'm an experienced developer. I use a lot of languages and generally learn quickly with good material.
I'd recommend Castle Active Record.
It's built ontop of NHibernate, which is a pretty popular one, but Castle's AR is faster to get off the ground with in my opinion.
I used it on my last ASP.NET project so can vouch for usefulness there. :)
Edit - Here's a quick link to "Getting started".
I recommend NHibernate. It is full featured, very mature and (in my experience) quite stable. Take a look at the summer of nhibernate screencasts (also free) and you'll have enough knowledge to get up and running in no time!
This question is similar to my earlier question.
I have used ASP .Net in Visual Studio 2005 about 4 years ago. How long would it take to get back up to speed with the latest versions?
That depends on how much you "used" it. An experienced developer should have no trouble updating his knowledge of the 3.0 to 3.5 Framework changes and language specific changes. The largest introduction, I'd say since then has been LINQ, giving the ability to query data from the language level rather than SQL.
But if you're not an experience developer and don't have a good foundation in the previous version, most of what you'll be learning will be the Framework 3.0 and VS2005.
So, ultimately, if you're just going from VS2005 to 2008, it shouldn't be much trouble at all.
Not very long. The major addition to VS 2008 is support for Linq, but you don't have to use this (or any of the new features).
The IDE is extremely similar to VS 2005.
Essentially, 2005 targets the 3.0 framework, and 2008 target the 3.5 framework, but these are both just expansions of the 2.0 framework, and not new versions (unlike the change from 1.1 to 2.0).
If you were already proficient in it earlier, then you'll be able to jump into it very quickly again. The core concepts haven't changed much, so you should feel right at home.
If you were able to produce and application back then, you can probably still build exactly the same application now.
As has already been stated, .NET v3.5 is merely v2.0 with extra bells and whistles, like LINQ and AJAX. These are tools in a broader toolkit, and there is no requirement that you must use any/all of them.
So start where you left off. Refresh yourself, and once you are back in the swing of things, have a look through some of the latest enhancements, and pick out one or two that you think will be useful to you. One step at a time!
Everyone else is correct that it should be easy. I'd just add that the ListView control is one of the additions, so be sure to check that one out.
It depends on what you want to use ASP.NET for.
If you live in the HTTP Request/Response world, it will take time. Most of that time will be spent trying to shift documentations which completely ignore the Requrest/Respone world in favor of ViewState and other similar items.
If you want to go ViewState way, not too long, since Microsoft's website is overflowing with tutorials on it.
Take a look at some of the starter kits like Kigg, DinnerNow, and DropThings . You'll get an idea of MVC, WCF and LINQ. Ignore that sinking feeling and get to work learning!