{"id":18,"date":"2009-06-04T15:37:40","date_gmt":"2009-06-04T15:37:40","guid":{"rendered":"http:\/\/www.petesworkshop.com\/blog_wp\/?p=18"},"modified":"2009-06-04T15:37:40","modified_gmt":"2009-06-04T15:37:40","slug":"best-crud-for-i","status":"publish","type":"post","link":"https:\/\/www.petesworkshop.com\/blog_wp\/?p=18","title":{"rendered":"Best CRUD for i"},"content":{"rendered":"<p>Ok.\u00a0 I&#8217;ll cut t the chase:\u00a0 There *aren&#8217;t* any.\u00a0 At least that I can find and that have the features I want.\u00a0 I have tried the following:<\/p>\n<p>Rails &#8211; It is REALLY hard to handle legacy database issues.\u00a0 My particular Achilles heel are the field names with # in them.\u00a0 # is a comment flag in Ruby so naturally it hoses up the code.\u00a0 No way to work around it either.\u00a0 Rails is fast, easy to get up and running but the # issue is a deal breaker.<\/p>\n<p>EGL &#8211; Great code generation and tools for creating CRUD applications quickly.\u00a0 Biggest issue for me is the ease with which you can change databases (I usually develop with MySQL or MSSQL and then deploy to DB2).\u00a0 Also, the RUI requires web services in order to work and web services just add another level of complexity making *quick and easy* CRUD difficult.<\/p>\n<p>jEspresso &#8211; Cool Java based framework.\u00a0 Easy to develop a CRUD app but the UI is a little clunky and I had difficulty in getting things going.\u00a0 This has some promise though.<\/p>\n<p>Roma &#8211; Another cool Java Framework.\u00a0 I just couldn&#8217;t get it all to work.\u00a0 The documentation is lacking and the framework is difficult to get your head around. It does work and like jEspresso, has some promise.<\/p>\n<p>ATK &#8211; A PHP framework that makes CRUD very easy.\u00a0 This is a cool little framework and it has been developed with the i in mind.\u00a0 But, there&#8217;s the rub.\u00a0 It isn&#8217;t as friendly to rapid switching of databases like Rails or other JDBC oriented frameworks are.\u00a0 This IS a cool little framework though.\u00a0 It is PHP5 based and if you plan to ONLY deploy to the i, this is a great way to go.<\/p>\n<p>So, I dropped back to my tried and true Freemarker\/jQuery application development method.\u00a0 I have even given build my own CRUD framework, using Freemarker and jQuery some thought.\u00a0 But, I have LOTS of applications yet to finish. And, without a good CRUD framework to use, I have to hand roll all of them.<\/p>\n<p>Gotta go!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ok.\u00a0 I&#8217;ll cut t the chase:\u00a0 There *aren&#8217;t* any.\u00a0 At least that I can find and that have the features I want.\u00a0 I have tried the following: Rails &#8211; It is REALLY hard to handle legacy database issues.\u00a0 My particular &hellip; <a href=\"https:\/\/www.petesworkshop.com\/blog_wp\/?p=18\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-18","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/posts\/18","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=18"}],"version-history":[{"count":1,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions"}],"predecessor-version":[{"id":19,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=\/wp\/v2\/posts\/18\/revisions\/19"}],"wp:attachment":[{"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=18"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=18"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.petesworkshop.com\/blog_wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=18"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}