I'm doing some comparison of web frameworks, and would like to compare "Apples to Apples". As far as I know, the most famous web app for such uses is the J2EE Pet Store example:
http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/app-arch/app-arch4.html
I've found at least one implementation in Ruby on Rails:
http://www.anassina.com/projects/railspetstore/
However, all the other links I found appear dead. Does anyone know of other implementations? Or better yet, someplace that collects all of them?
Spring 2.5.6 samples has a JPetStore, written using Spring. I don't know how it compares to the J2EE Pet Store. I don't see it shipping with Spring 3.
You should be aware that the Pet Store is rather long in the tooth. I believe it's based on EJB 1.0; J2EE is 1999 terminology. I'm not sure that it's the "hello world" of framework development.
There was also a controversial benchmark when Microsoft first came out with .NET. They wrote a .NET version of Pet Store and published the results on The Server Side. A firestorm of criticism ensued.
I'm not aware of a zoo for Pet Store implementations.
Related
How are you all? I'm a beginner with the web programming. I am planning to develop my personal e-commerce Bookstore for myself. I've basic knowledge of ReactJS, ExpressJS, Spring MVC, MongoDB, and Mysql. I've already done some basic project in ReactJS, Spring MVC-MySQL and Express-MongoDB like Personal Diary, Cost management system, School management system etc. My future plan is to build a native mobile app for this Bookstore. I am a little bit confused to select the language and framework. I've some question and need experts opinion and suggestion like you.
ReactJS or NextJS(Server Side Rendering), which one will best for the frontend of this Bookstore?
Do I have any possibility to face any problem in SEO in the SPA?
Which Framework and Database will best for building the backend for better performance and lower hosting cost?
By using that backend service, can I use the same API endpoint to build a native app?
Any alternative technology to develop the bookstore?
Thank you all in advance.
-ReactJS has a vibrant and big community, so you would find plenty of support
-As far as i understand type of language for the front-end or SPA's shouldn't affect your SEO
-Java is rock solid, battle tested whereas NodeJs is new and a lot of experiments still going around it. Although it is claimed to be faster and easier to work with.
-Cost ? the cheapest would be PHP Apache shared hosting. Java and or JavaScript will both cost almost the same on platforms like heroku or digital ocean.
-Yes you should be able to build native apps using the same endpoints.
-With what you know do not look for alternate technologies. (What you have is more than enough)
-Moral of the story - If you are alone doing everything, JavaScript can save you a lot of time and effort. (Building web-apps, hybrid mobiles apps and server side APIs, all using JavaScript), however if you choose Java for server side, that knowledge may help you build a native android app and then you will need to learn Swift for a native IOS app and JavaScript anyway for web apps.
Everything boils down to what you are doing and how you are doing it.
All the best!
I'm new to the web framework, but have been using Java/Servlet/JSP for my previous web development because I hate PHP. I'm thinking of starting a new feature laden website that I need to quickly create and been deciding on numerous technologies.
I dabbled in Drupal for a while and found it too restrictive and didn't particularly enjoy constantly trying to find a module that almost do what you want so I'm moving over to a web framework.
I considered ASP .NET or Django. Searching on this site, I found a couple of questions ("[Is there any advantage to Django versus ASP.NET MVC other than platform? closed" and "ASP.NET MVC vs. Django - Which framework should I learn?"), but they don't fit my situation.
In my case, I'm new to Python and have to learn that, but am relatively familiar with C# due to Java/C++/XNA and VB Classic 6.0. In both cases, I have no experience with Django/Python or ASP .NET/SQL Server and have never created a site with either.
My reasons are as follows:
I like the idea of having a full stack from one vendor and not mock around with Linux as it took me forever to setup a proper secure setup of Ubuntu, PHP, MySQL and Apache. I don't want technical oddities of learning gazillion different applications with obscure settings to get it working. This is mostly a concern with Django/Python as I believe MS got their stuff well tied togheter.
Django is designed for newspaper website so it focuses on rapid and efficient development of new features with good design principles. I love the idea of there is only one good way to do it and the Django authors perfectionism. The pitfall of course is since 2005 they are still on version 1.2! Ruby on Rails is far ahead of them considering I saw this video. Yeah, I watched the whole entire 3-hours, but didn't understand much from the RoR demonstration.
ASP .NET is appealing to me because I already know C# and VB Classic 6.0. I'm familiar with Visual Studio and like the fact that it is also tied in to Windows Phone 7/Xbox Live Indie games with XNA. However, if those features are used is another question down the road. However, as mentioned before ASP .NET just seemed streamelined with plenty of documentation and support. Future job prospects also seem more in favor with MS technology.
What does the community here think?
I would like to hear different ideas as I beginning web programmer it is very daunting and I have vasted far too much time figuring this out on my own the hard way. Help would be very much appreciated!
ASP.Net and WISC# stack.
WISC - Windows/IIS/SqlServer/C# :)
if you want an MVC Web Framework use ASP.net MVC , since you come from a Java Background C# wont be a problem for you
Django is a good framework but you have to learn python
I don't like django. The forms, the url schemes, the way they assume everyone use models on schemaful db (I prefer to use mongodb because it's so clean and easy).
I am pretty much fluent in all the major languages. I do prefer python because it's very clean but also strict (aka function signatures requires you to pass in only X variables etc).
I want something developed and mature - this means that stuff like authentication, registration etc should all be developed and ready to use.
Any suggestions?
TLDR: Need new web dev framework. Requirement: Nothing. Preference: Mongodb, python.
By the way forgot to mention that I might be looking for employment in the web dev industry. So if you can recommend something that is common among big companies that would also be a bonus. like scala's lift for foursquare (if I am not wrong) and php for facebook.
Rails. It works with MongoDB via Mongoid and has many authentication solutions. You'll find Ruby very comfortable if you have Python experience.
I'm using Flask for Python, and I love it. I'm using SQLAlchemy for Postgre, but it's super minimalistic, so you can use it with whatever you'd like. I've also heard really good things about Pylons, but don't have any experience with it myself.
Spring Framework. (Java)
For authentication you can use Spring Security
It seems like you aren't very keen on using Java, but if you don't mind a different language on the JVM I'd suggest taking a look at Compojure, a web framework for Clojure. It isn't a scripting language but can offer close to the same development speeds once you get used to 'the-lisp-way' of doing things.
I'm unaware of a fully featured MongoDB interface specifically for Clojure, but CongoMongo and Adia (I can't include more than the one link currently so you'll need to google them yourself, sorry!) might have (atleast part of) what you're looking for. If nothing else, you could probably just use an existing Java library to access MongoDB or use a different database. Give Compojure a try though, its definitely productive!
Also on a completely unrelated note, this happens to be my first answer on SO, so please be gentle with the downvotes :)
Pylons.
It will be very fitting for you
Im a big believer in grails. Built on best of breed technologies like Spring and Hibernate, you can fall back to java if you have too. Takes all the pain out of more traditional Java EE development. Has all the important functionality as plugins, you have access to Spring Security, JMS, everything you need. Is very convenient as the back end to a RIA, easily render you models as json, easily handle xml. Its great.
EDIT -- to address the comment, Grails uses the Groovy language, which is scriptable and has some very groovy features. And it is easy to learn if you are familiar with java. Has closures, lots of syntactic sugar.
The scripting part is actually quite invaluable -- you write groovy scripts and import your grails classes to whip up functionality to augment your app (like quick queries into your db)
I'd like to pick up a new tech for my toolbox - something for rapid prototyping of web apps. Brief requirements:
public access (not hosted on my machine) - like Google's appengine, etc
no tricky configuration necessary to build a simple web app host
DB access (small storage provided) including some kind of SQLish query language
easy front end HTML templating
ability to access as a JSON service
C# or Java,PHP or Python - or a fun new language to learn is OK
free!
An example app, very simple: render an AJAXy editable (add/delete/edit/drag) list of rich-data list items via some template language, so I can quickly mock up a UI for a client. ie. I can do most of the work client-side, but need convenient back end to handle the permanent storage. (In fact I suppose it doesn't even need HTML templating if I can directly access a DB via AJAX calls.)
I realize this is a bit vague but am wondering if anyone has recommendations. A Rails host might be best for this (but probably not free) or maybe App Engine, or some other choice I'm not aware of? I've been doing everything with heavyweight servers (ASP.NET etc) for so long that I'm just not up on the latest...
Thanks - I'll follow up on comments if this isn't clear enough :)
C# or Java,PHP or Python - or a fun new language to learn is OK
How 'bout Javascript? This place hosts server-side Javascript ticking most of your other boxes. So you can use the same language for client- and server-side stuff (which I find very handy). [Caveat: I only played with their service; seemed cool though. I use Javascript on the server-side on IIS and on Tomcat (via Rhino).]
For something bleeding edge - A new version of spring roo was released recently. With it you can create a great web app in 10 minutes. Supports GAE and GWT...
http://www.springsource.org/roo
xataface is a quick way to make a front end for a MySQL database.
It makes it easy to start an app quickly with dynamically created views and then you can change it to something very customized to your needs.
It simply needs a server service with MySQL and PHP.
I have been using Linq-to-SQL. What is a good option for working with mySQL? I have been looking at NHibernate, Entity Framework, etc. Some comparisons (pros, cons) would be helpful
LLBLGen. The current version 2.6 is awesome. The designer is really easy to use, supports entity inheritance, type converters (which also can be used to bridge the gap between different types across RDBMS), validation, auditing, authorization and a ton more. Most importantly though, their documentation is stellar and their support forum is very responsive. The lead developer (who is also on stackoverflow) also answers users questions. I can't say enough about this tool, try it. It is well worth the cost.
The next version is probably going to blow everything else out of the game. In addition to being able to generate their traditional data later, you will be able to gen nHibernate mapping files, entity framework and linq2sql.
Here is a discussion comparing LLBLGen to Entity Framework and to nHibernate (of course it might be biased since it is on their forum).
http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=12811
http://www.llblgen.com/tinyforum/Messages.aspx?ThreadID=14659
Have a look at Mindscape LightSpeed. It includes LINQ querying and a Visual Studio designer that works with MySQL natively. You can update your database or sync changes from your database directly from within the LightSpeed designer also.
Mindscape also publish an open source repository of helpers for asp.net MVC which includes things they have built up to make development with LightSpeed and MVC easier (for example, you'll likely end up wanting a custom ModelBinder for whatever underlying model objects you use - Mindscape provide one that is richer than the default model binder).
There is a free version available to play with:
Mindscape LightSpeed
One of the guys at Mindscape has also written a fairly deep set of blog posts about building up an ASP.NET MVC solution using LightSpeed (although it's probably helpful no matter what you're using :-)
ASP.NET MVC & LightSpeed Blogs Posts
Nhibernate is quite mature and seems be to lighter compared to Entity framework.
Entity Framework works for most things in MySQL. You will notice problems here and there, but chances are they'll all be manageable issues.
Try DbLinq.
It's not a full port of Linq to SQL, but it does the basics.
I haven't used it yet, but there also Linq support in nHibernate now (check the link).
The biggest downside to Entity Framework is the lack of native Lazy Loading. I've used NHibernate and Entity Framework - personally I prefer the richness of NHibernate but Entity Framework is fairly quick and easy to get going and isn't as bad as the rep it sometimes get.
Check out Telerik's OpenAccess ORM. It's free for any free or Open Source database platforms (in your case, MySQL), and provides a slick and easy-to-use GUI. Not to mention that Telerik has great support forums and a huge library of video training.
OpenAccess offers LINQ support, POCO, forward- and reverse-mapping, advanced caching, lazy- and aggressive-loading, no reflection, medium trust, and more. I use it daily (for MS Sql and Oracle data access) and have found it to be a great solution in enterprise scenarios and for my own personal projects.
Try NEntityDb. It allows you query and save data to the database with .NET LINQ Expressions and Fluent API, and eliminate the need for most of the data-access code they usually you need to write.