ASP.NET MVC4 Query By Example Open Source Suggestions - sql-server

We're currently building a new application and part of the functionality we want to include for users is the ability to build ad-hoc querys through the web UI for reporting purposes.
e.g. The user may select the Entity1 report.
They are then able to select the criteria through the UI
pseudo example:
((Entity1.Type = 'this' OR Entity1.Type = 'something else') AND Entity1.CreatedDate > '01-01'2012')
Does anyone know if there is a good solution available (open source or paid) as this seems like it might be a lot of work to implement a bespoke solution.
Further to this we are using Entity Framework v4.1 magical unicorn edition.

If you build a UI that gives results in a structured form (e.g. {entityType.property}{operation}{value}) then it should be fairly straightforward to dynamically build an expression for this.

I decided to use http://devtools.korzh.com/query-builder-aspnet/ as it has saved me a lot of development time.

Related

Oracle ADF components experience

I just saw nice little demo about Oracle ADF Rich components: http://download.oracle.com/otn_hosted_doc/jdeveloper/11gdemos/adffaces/adffaces.html.
Looks really cool, nice and easy but of course its just a demo :). I would like to ask if someone actually uses it for a production app, how they compare to popular open source alternatives like RichFaces or IceFaces etc.
How about a deployment to a different server than weblogic?
We use ADF Faces. It is quite good. They have all the basic components(input text, output text, input file, date pickers, tables, etc) and some advanced components(graphs, tree,tree tables, etc). The layout components are also good and will suffice for most use cases.
But as with any JSF component, ADF Faces Components are hard to modify. For instance, if you want to add, say, a placeholder text, on an input text then you need to resort to fragile hacks.
I would recommend ADF Faces for enterprise apps where the ability to alter and fine tune UI components is not as important as fast and low cost development.
Also, ADF Faces isn't just a component framework. It is a full ViewController framework. Check out their Task Flows and you will be amazed.
We also use ADF Framework for our current product where we migrate our existing form based product to the new framework.
The major benefit that I'd like to point out in ADF is the way they promote declarative programming. I have to admit being a strong java developer, I have the tendency to go and add my own programmatic handling, but for someone who is used to forms, they will find it easy to learn the basics.
A strong feature that I also like to point is the way they clearly defined the MVC architecture. Model = BC, Controller = TaskFlow, View = well this one is obvious. Kudos to ADF the way they designed the taskflows as you get to have a visual representation or better put, a story of your design as well as your logic.
I am not sure about using a different server as ADF along with JDeveloper gives quite a load of features which allows you to configure directly to your server and be able to test on your intergrated server as well, with this I mean more on the security side as well as authentication piece of it. So even if you are able to migrate all the libraries needed, you might still be missing out in some of the other technologies that can be easily integrated with a weblogic server. (such as webcenter, soa etc.)

Best reporting solution on top of SQL Server?

I'm looking to build a reporting portal on top of our database which is SQL Server 2008 R2.
It's been suggested that I use SSRS, and I've played around with it for a few hours. I found it very easy to point it to a table and have it generate a table/graphs for you. It could all be done in a few minutes, and that's great.
I had a hard time customizing the report to make it look nice. I thought it was like using Word to design a website, the customization was pretty limited. I have experience in web development using ASP.NET with jQuery, and I'm currently thinking that I could make the portal much faster if I could use my experience with those technologies.
I'd like to get advice on which path is best for my project.
Queries to the db are fairly simple, but not trivial. I have no problem building the data and business layers myself by using Linq-to-Sql.
I do not need print support
I need an emailing system that sends out reports every day, which I can also build myself (it doesn't need to let users subscribe to reports)
Don't need the flexibility of having users create their own reports. This is only for 2-3 different reports.
I enjoy the development experience using web technologies and feel comfortable building a pleasant user experience with jQuery and plugins. I fear that using SSRS, I would be limited to something ugly and not "fun" to use.
I want this project to be up in 2-3 weeks. I can't afford to re-invent the wheel for everything, but I also don't want to spend most of my time asking questions like "how do I make a fade-in effect in ssrs?"
How easy is it to customize the UI? Are there good examples online of what can be achieved? Does SSRS have some advantage that I could hardly get by writing my custom solution? I'm thinking in terms of application performance and overall functionality.
Thanks for your input.
I have built custom web interface to a suite of SSRS reports. You can easily do this, and submit the gathered report parameters to Reporting Services, and have it render the generated report to a web page, all as if the user had used the SSRS interface to begin with.
Some comments i would make:
let SSRS handle the reporting side of things. It has all the power and features you could need. And its free. And tested. And extensible. And renders to multiple (printable) formats.
you could maybe look at buying a set of controls designed to be used with SSRS to get even nicer chart output
you can build your own (parameter gathering & report triggering) interface within three weeks, but the schedule will be tight
you can't use jQuery within the rendered reports. A lot of the HTML within the rendered report is hardcoded template type code (styles etc are embedded into the report rather than linking to an external file)
you don't need jQuery fade-in panels to make your reports pretty :)
So, as you know SSRS allows web and winforms output, printing, and all that. But your users will undoubtedly end up bugging your for PDF and Excel exporting, which is also built-in.
It's also a lot easier to edit the reports without having to alter your app and as you mentioned it has the emailing built in.
SSRS is quite powerful if you play around with the grouping and parameterization. The designer is a little clunky as you make more complicated reports, but I've always been able to design what I want. I've not used Crystal Reports but presumably it's even more powerful but it is another thing to learn and obtain.
I use 2 main reporting tools (Business Objects and SSRS) and also Microsoft Access. I can honestly say that I prefer SSRS for 95% of the work I do. The users really like all the drill through options you can do. For example lets say you have a chart showing widgets sold, you can click on that bar of the bar graph and have it drill to a report showing a breakdown of which widgets were sold.
This ability of going from a “high level” to low level detail is really powerful to the users. As for looks, I quite like the default controls that ship with report builder 3.0, they have come a long way and just look what is around the corner with project crescent
http://blogs.msdn.com/b/sqlrsteamblog/archive/2010/11/09/a-glimpse-at-project-crescent.aspx
I know it's probably not a WEB-BASED technology but I would definitely give Crystal Reports a try. Specially considering your time constraints...

Creating web forms from a database schema

I'm wondering if there are any applications, preferably freeware, that can take a database configuration, and, with as little hassle as possible, create web forms for inserting data easily.
I'm finding it hard to express exactly what it is I'm after. Maybe I can talk a bit about what I need.
I have a configuration database that, at least usually, contains "the truth" about the servers in our system. It contains stuff like zone names, hostnames, different configuration items, etc, over multiple tables. Right now we're using simple INSERTs directly when adding new servers or other stuff, handling the keys and IDs ourselves. The crux is, they don't want us to develop a simple web form thingy to handle this, instead they want a tool that can generate the web form thingy. Did that make sense?
I'm not sure if anything like this exists or is reliable, but, I thought that if anyone knew, it's this community. Thanks!
As many have already stated, it depends on what technology you're working with:
.Net 3.5 - Dynamic Data or Subsonic's Scaffolding control
.Net 2.0 - Subsonic's Scaffolding control
PHP - CakePHP
Ruby - Rail's Scaffolding component
"with as little hassle as possible"
have you checked things like PHP/MySQL Web Database Application Code Generator 10.02 ?
or phpmyedit ?
seems to me that what everybody else proposed so far requires a fair amount of coding...
Also, have a look at phprunner. It is not free, but looking at the screenshots, it seems to fit your requirements.
ASP.NET has Dynamic Data, that I think fits your description.
There's also SubSonic. Both are free and open source.
Tried Dynamic Data?
Besides ASP.NET dynamic data, you could also have a look at SubSonic
With PHP, if you have the ability to name the tables and columns as you see fit, you could try CakePHP framework, and specifically the scaffolding feature. With scaffolding turned on, the code will create CRUD forms from the schema for you.
Here's the link for learning about SubSonic & Scaffolding http://www.subsonicproject.com/web-forms-controls/the-scaffold/
, enjoy ;)
One more link from the SubSonic forums http://monk.thelonio.us/post/Scaffold-Enhancements-in-SubSonic-21.aspx
You can try Adminer Editor
Adminer Editor is both easy-to-use and user-friendly database editing tool written in PHP. It is suitable for common users, as it provides high-level data manipulation.

Anyone know of a simple WPF/Silverlight data access framework?

Does anyone know of a simple WPF or Silverlight framework which enables you to e.g. define some database tables in e.g. SQL Server compact database and then the framework automatically creates the Window classes etc. which allows a user to login and edit that data?
I'm not looking for a complicated MVVM pattern example, it can be hard coded, it should just save the developer the time of creating all the CRUD code and forms and authorization necessary for users to edit the data. The developer could define 10 database tables, run the code generation, and then be pretty much 80% finished with any simple database application he wanted to make.
All of that would be generic code so I would think some framework like this would exist or someone would be working on some open source project like this already.
Does anyone know of a framework or tool like this?
It's not Silverlight, but ASP.NET Dynamic Data sounds like it would do what you're asking. It provides a web-based front end for editing database tables.
I've used it for a small project and you can literally have it up and running with CRUD functionality within an hour.
maybe you should take a look at the Sculpture project. There might be something you are looking for.
Since you cannot have direct connection to a database server with Silverlight, you should look at a .NET data access framework using the regular .NET Framework thru a Web Service.

Dynamic data for winforms

i have played around with dynamic data website. is there something similar for winforms.
if there isn't anything out there for doing the same with winforms than the question would be why not? we have a massive ERP application that we want to migrate from AS400 to .Net
Winform application. my initial thoughts were to have all the maintenances be as simple as Dynamic Data Website project.
I would think that WPF would be a better starting point then WinForms, as it has support for style to say how item of data are displayed.
Dynamic Data makes it easy to edit your DB on the web. For desktop (and web) apps take a look at the new Microsoft LightSwitch:
http://msdn.microsoft.com/en-us/lightswitch/gg441300
LightSwitch doesn't use Windows Forms. Rather it creates a Silverlight App that can run both on the desktop and the web. Pretty cool.
Dynamic data is using the routing functionality of the MVC framework. In Windows forms we don't have this approach of fetching data with URLs from a server.
I am not sure how this model could fit into Windows forms.
I think it's pretty hard to create something like dynamic data for Windows Forms.
My biggest concern is here, once you created that Framework, how do you configure it? I mean if you want to change 1 form to be a bit different than the others :-)
I think its better to generate Forms for the various tables in the Database context, using a powerful Grid control from one of the big vendors. And then you can configure those.
Remember this is a different approach then the dynamic data one, where no code is generated before compile time
I think the reason you don't see something like this in winform applications is because it's much easier to store a HTML page inside a database and then display it on the screen formatted properly when using a web application because your browser knows how to format the HTML.
You would have to, stored in the database, know where each label and field would go on the form in some sort of co-ordinates fashion (or you could use a layout 3rd party control) but the amount of work that would take might be tedious to do properly.
The dynamic data website I worked on did not take input from the user. It only displayed different web pages to the user and allowed the admin person to easily make changes to the content. If you wanted a user to beable to save data then that would even be more complex because you have to worry about validation, required fields, etc.
If you have lots of users that need to see different information based on their access level then I would just suggest having a table in the database that tells the system whether or not they should see the field on the form. Then use a 3rd party layout panel to format the visible fields.
my 2 cents
As much as Dynamic Data looks simple and cheap enough to access a database it wouldn't work for an ERP system anyways. Business systems are more than moving data between database and the user interface, they require business rule actions when saving data and while retrieving the may require some massaging to ensure meaningful presentation of storage optimized data.
If you still like to pursue this option it would be very easy to create an application that is build on top of Entity Framework.
I'm not aware of a Dynamic-Data-alike, but (having written one before, years ago, for ASP) I don't actually think it would be that hard, particularly with WPF and its templating support.
Actually if you were really clever you could probably 'borrow' the backend from Dynamic Data, and just reimplement the UI as WPF.
Would make a fun little project actually.
Alternative answer: Use Microsoft Access. No really.
Alternative answer #2: So why not just use Dynamic Data then?

Resources