GUI Generator??

Posts   
1  /  2
 
    
jaskey avatar
jaskey
User
Posts: 23
Joined: 09-Jul-2006
# Posted on: 02-Aug-2006 16:57:06   

Does anyone know of a good GUI code generator that can generate basic CRUD interfaces to underlying SQL tables in ASP .NET 2.0? I have found a couple but have not been able to get any to work... before I start coding myself I figured that everyone on this forum might be exposed to software like this... my schema will have both natural/artificial keys and constraints on the tables.

Of course there is nothing that sits on top of LLBL Generated code... maybe I should approach it that way instead... GUI for entity/collections....hmmmm.

If anyone has any knowledge of software down this route that they have found helpful, please let me know... thank you.

j

BertS
User
Posts: 89
Joined: 28-Jul-2005
# Posted on: 02-Aug-2006 17:26:28   

Frans is working at GUI-templates for LLBLGen, so if you can be patient wink I suppose they are not far away now.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 02-Aug-2006 20:34:31   

They're indeed planned, though no date is set yet.

Frans Bouma | Lead developer LLBLGen Pro
pilotboba
User
Posts: 434
Joined: 05-Aug-2005
# Posted on: 03-Aug-2006 17:00:23   

jaskey wrote:

Does anyone know of a good GUI code generator that can generate basic CRUD interfaces to underlying SQL tables in ASP .NET 2.0? I have found a couple but have not been able to get any to work... before I start coding myself I figured that everyone on this forum might be exposed to software like this... my schema will have both natural/artificial keys and constraints on the tables.

I don't know of anything that creates just the GUI layer, cause you need BL and DAL to have a working app.

Deklairt has the business framework prototyper which gives you a UI. I think the new versino does this for ASP.Net.

Iron Speed also will create the full three layer apps. This is strictly an ASP.Net UI/App tool.

But, as I said, both of the above also create their own DAL and BL components and wouldn't be simple to tie into LLBLGen DAL.

BOb

Cadmium avatar
Cadmium
User
Posts: 153
Joined: 19-Sep-2003
# Posted on: 03-Aug-2006 17:33:59   

I'm working on a crud site generator. It's written for ASP.NET v1 (and LLBLGen 1) for the moment though. If there's any interest I may release what I have.

pilotboba
User
Posts: 434
Joined: 05-Aug-2005
# Posted on: 07-Aug-2006 21:07:15   

I just saw a chanel9 video this weekend about a tool called BLINQ. It creates a web site with all the crud forms. I uses LINQ for the data acess. But, it is pretty slick. I would guess it wouldn't be to hard to modify to use LLBLGen entities/queries instead of LINQ queries.

BOb

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 08-Aug-2006 11:29:23   

Looking at the site that's been generated by blinq, I have little hopes it will succeed. Imagine you have 100 entities in your system. the menus will be a bit erm.... long I think wink

Generating a 'start site' is a thing we're looking into, but it will take some time before we'll have a solution which works. Writing a couple of templates isn't the problem, what's the holy grail in these apps is: how to formulate the meta-data which describes the FUNCTIONALITY per form.

Ideally, you want to describe for example the order-entering form as a form which shows the customer the order is for (not all fields, just a couple), and the order enter fields, other orders of the customer (for example last 10) and perhaps some other things. You then need a set of rules to make an order valid and you then fill a couple of entities and save it.

So it's a combination of workflow, screen functionality based on what's available in data form, and then a connection between which part of the functionality fills which data element or better: is connected with which data-element.

I'm not sure if that can even be done in a more efficient way than by simply writing the code in C# or VB.NET (as the 'description of the functionality wink ). What COULD be done though is getting such a raw framework up and running and from then on let you alter it, like Ruby on rails does.

One thing .NET hasn't what ruby does is that .net is strongly typed and requires a compiler. So changing the generated stuff is dangerous, while in ruby changing the generated stuff makes the rest adapt to your changes.

that's also why I think MS will lose the battle with ruby on rails with blinq. But perhaps they target a different group, not sure.

Frans Bouma | Lead developer LLBLGen Pro
Kris
User
Posts: 79
Joined: 27-Oct-2005
# Posted on: 09-Aug-2006 08:06:03   
Cadmium avatar
Cadmium
User
Posts: 153
Joined: 19-Sep-2003
# Posted on: 09-Aug-2006 20:37:31   

I can tell you from my 3 weeks of heavy work that it is not easy, even for a basic site generator. I ended up writting a custom gui that's kicked off by a task performer that lets you specify certain behaviors of the site (which entities show up as menu items, which fields show up in search, drill down items, etc). I'm using the custom properties to store these settings, which works ok... most of the time.

The generated code (full vs2k3 solution + projects simple_smile ) is littered with strategic user code regions for custom development.

Add to that all of the support pages and code (login page? logout? forgot password)? Even a trivial site is very non trivial to pull off.

mfreidge
User
Posts: 4
Joined: 14-Dec-2006
# Posted on: 19-Dec-2006 01:33:50   

Otis wrote:

They're indeed planned, though no date is set yet.

LLBLGen Pro is a well recommended BL generator/ORM , but without GUI(in particular ASp.NET) Generator I have to look for alternative solutions, such as EntitySpaces and Alachisoft TierGenerator. Adding GUI templates will be a big selling point for your product.

And that thus means that a tool with templates which give you some gui 'screens' will help you to some degree.

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 19-Dec-2006 08:13:33   

Correct, though to some degree. Generating screens which really aren't that usable isn't something worth having, as it might look like it's great but the application generated isn't what it would have been if you would have written the gui by hand. You see: a good gui is build from functionality specs, not from which entities you have in the db.

And btw, do these two tools you mentioned have gui templates which give you quality forms you can release to your customer / client? I don't think they do. That's not strange, as the best you can get from a set of entities is a collection of CRUD screens which have additional info / features based on relations / nullable fields, pk fields etc.

However, a quality UI groups entities together on a single screen, has additional controls which make life easier for the user. You can't get that info from entities alone, you need to have a different set of meta-data to be able to generate these forms.

Frans Bouma | Lead developer LLBLGen Pro
mfreidge
User
Posts: 4
Joined: 14-Dec-2006
# Posted on: 20-Dec-2006 02:46:15   

I agree that quality UI requeres additional coding. But generated GUI code is good as a starting point. In my case I need to port existing quite big thick client application to ASP.NET.

By the way, entityspaces demo looks quite good: http://www.entityspaces.net/thedemo/Employees_admin.aspx

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 20-Dec-2006 09:48:14   

(edit: reworded my remark at the bottom as it could be misunderstood)

mfreidge wrote:

I agree that quality UI requeres additional coding. But generated GUI code is good as a starting point. In my case I need to port existing quite big thick client application to ASP.NET.

Ok, something like the scaffolding Ruby On Rails uses? This gives an interesting problem though. We were debating this internally yesterday, and to do it RIGHT is not that easy as it might sound. It's EASY to create a bunch of tables and generate CRUD screens. It's just a bit of work, but it's never complex.

Are these screens really useful? I don't think they will, but what about controls? It might be that an editor control for example for an entity (or a dynamic one) would be better as you can then place that control on a page which gives much more freedom.

Having a bunch of screens as a starting point is OK at first, but to maintain your work thoughout the project because things change (tables change, relations change etc.) is hard in that case. A control can be more flexible in this. We couldn't come to a conclusion just yet what would be best, though full scale pages is IMHO not the way to go as these are hard to maintain when things change and you have to re-generate your code: in general you don't want to migrate your own code if things change.

By the way, entityspaces demo looks quite good:

Oh these, yes I saw these some time ago. This is a typical crud screen with a simple UI. It can be helpful to get CRUD screens for a database, but for a full application... I'm not so sure.

(edit: reworded this a bit) But I'll tell you what. Every year with christmas I code something silly, be it a screensaver or other crap no-one will ever use. Instead of doing that again this year, I'll spend my time on something worth using: gui templates. As we already have a working layout in .asp pages for the webgui, it's pretty straight forward so I'll try (so no real promise) to come up with something after christmas, ok? simple_smile

(edited above paragraph abit as I saw it was misunderstood because I forgot an important sentence: I didn't mean that gui templates would be crap no-one will ever use, I meant that the OTHER code I wrote on christmas was always crap no-one would ever use but that I now would spend time on things worth using).

Frans Bouma | Lead developer LLBLGen Pro
Posts: 94
Joined: 26-Feb-2006
# Posted on: 20-Dec-2006 12:00:11   

But I'll tell you what. Every year with christmas I code something silly, be it a screensaver or other crap no-one will ever use. As we already have a working layout in .asp pages for the webgui, it's pretty straight forward so I'll try (so no real promise) to come up with something after christmas, ok?

Oh come on Frans don't let this issue get absurd... I think you are already on the right track with the idea of controls... I think a good approach would be to generate ASP.net user/server controls with integrated validation logic (field sizes, null able etc) which are themeable and plugable into a master page skeleton with a ready build infrastructure (authorization, authentication, caching, auditing, logging) where one could integrate those "modules"...

Have you seen the WCSF Project (http://www.codeplex.com/websf) the p&p team cooks up?? they are using so called modules...If you ask me the first time I see a clearly architectured ASP.net application besides the monorail approach!

regards

Adrian

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 20-Dec-2006 12:18:59   

adrianporger wrote:

But I'll tell you what. Every year with christmas I code something silly, be it a screensaver or other crap no-one will ever use. As we already have a working layout in .asp pages for the webgui, it's pretty straight forward so I'll try (so no real promise) to come up with something after christmas, ok?

Oh come on Frans don't let this issue get absurd...

It wasn't meant as a sarcastic remark, but a serious remark. I see I did make a mistake in the sentence, it indeed is worded very ambiguistic and can be misunderstood pretty easily. My appologies for that, also to mfreidge.

Our schedule is pretty packed so there's little time to branch out in another project. So I just said that instead of creating something silly this year, I'd better spend my time on something people can use: gui templates. simple_smile (but again: I don't know if I get things finished).

I think you are already on the right track with the idea of controls... I think a good approach would be to generate ASP.net user/server controls with integrated validation logic (field sizes, null able etc) which are themeable and plugable into a master page skeleton with a ready build infrastructure (authorization, authentication, caching, auditing, logging) where one could integrate those "modules"...

Well, let's be honest: I'm not going to implement more than just the screens working with the data-access logic. No authentication/authorization / caching / auditing etc. If people want to add that, be my guest simple_smile .

I indeed was thinking of a master page, controls, theming support (which is straight forward and doesn't take any extra effort). Let's start small. It's also won't be a big supported project, just a thing people can use to get started, as in general people should grab the templates and use the templates as teh base for their project.

Have you seen the WCSF Project (http://www.codeplex.com/websf) the p&p team cooks up?? they are using so called modules...If you ask me the first time I see a clearly architectured ASP.net application besides the monorail approach!

I haven't looked into it but it looks complex simple_smile (according to their website). To be honest, I can't spend a lot of time on templates right now as there are other things with higher priority on our list (currently the .lgp project merger for teams working with llblgen pro and making changes in parallel (versioning simple_smile ) and of course v2.1.

So it won't be a big asp.net framework, it will be a simple set of templates, generating a simple ui. At least that's what I have in mind. The UI is already created, I just have to create the templates. Again, I will spend time on this this christmas, but I won't promise a turn-key app generator on wednesday as that's not possible.

What we'll do after v2.1, which direction we'll go into with LLBLGen Pro, isn't fully decided yet, one direction we're looking at is more UI oriented approaches as our designer and code generator is very powerful, but as UI development today is a moving target, it's hard to predict what's required for a developer to get really productive.

Of course, after v2.1, Linq support is added, and Entity framework support to the designer, but for the rest, we'll decide later what we'll do and one thing we could do is add ui generation to the llblgen pro featureset, but it could also be that we take a different approach in this or take llblgen pro in a more different direction.

All without losing any of the currently well known features of course. simple_smile

A framework like WCSF can be very helpful in this. Of course this then pushes that framework onto people but at the same time it won't re-invent a wheel already created somewhere else. For this particular small first step, it's too much, for future directions, it can be a great resource.

Btw,

If you ask me the first time I see a clearly architectured ASP.net application besides the monorail approach!

So you haven't looked at the HnD (http://www.llblgen.com/hnd) sourcecode? wink

Frans Bouma | Lead developer LLBLGen Pro
Posts: 94
Joined: 26-Feb-2006
# Posted on: 20-Dec-2006 13:27:44   

If you ask me the first time I see a clearly architectured ASP.net application besides the monorail approach!

So you haven't looked at the HnD (http://www.llblgen.com/hnd) sourcecode?

.. come on it uses SelfService and the UI is directly aware(references) of the DAL ..

sunglasses

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 20-Dec-2006 13:39:22   

adrianporger wrote:

If you ask me the first time I see a clearly architectured ASP.net application besides the monorail approach!

So you haven't looked at the HnD (http://www.llblgen.com/hnd) sourcecode?

.. come on it uses SelfService and the UI is directly aware(references) of the DAL .. sunglasses

heh no, it uses a BL. It uses selfservicing but doesn't utilize lazy loading so it could also be an adapter framework.

Don't fall in the frameworkitis trap: an over engineered framework doesn't mean it's a good framework. A framework which gets you get your job done is.

Frans Bouma | Lead developer LLBLGen Pro
Posts: 94
Joined: 26-Feb-2006
# Posted on: 20-Dec-2006 14:01:25   

Frans of course you are right.... There is nothing to say against the use of SelfService etc. This way I produced a lot of apps running quite well!

But actually like an artist I am searching striving for ideal things... and as the word "ideal" describes it there will never be an ideal architecture but I believe it is possible to approximate ideal architecture in some kind of context... (enough philosophy here)

In fact I think (Contract First Design, Loosely Coupling via Dependency Injection / Micro Kernel, Unit Testing, Code Generation like LLBL, Separation of Design and Logic , Interoperability / Open Standards) will lead too "better" apps and are not only a concatenation of buzzwords of the last 5 years IT history!?

I mean what do you think was the biggest step in IT business after the pradimg shift from procedural to OO-programming?? I mean it´s been 10 years now...

KristianP
User
Posts: 32
Joined: 23-Feb-2005
# Posted on: 20-Dec-2006 20:41:14   

To kind of give an overview of how I handled this, I have a Maintainable attribute that I apply to my manager classes that I want to automatically support basic CRUD functions. I have a custom tree-view control that loads the assembly and looks for all classes that have this attribute (note, the attribute contains a few propertes, such as display name, allowed roles, allow delete, etc.) and adds nodes to the tree. I have a IBusinessService (BusinessService concrete) class that my managers inherit from that contains common behavior such as SaveCollection, FetchCollection, Delete, CreateCollection, etc.).

So...I have a usercontrol that contains a grid and save, load, delete buttons that can work with an interface of type IBusinessService. To handle loading foreignkey dropdowns and column names, I take advantage of the LLBL entity custom properties.

All is all, this framework has worked very nicely. smile

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 21-Dec-2006 11:36:15   

Kristian, that sounds like a heck of a great system! simple_smile .

Frans Bouma | Lead developer LLBLGen Pro
Kris
User
Posts: 79
Joined: 27-Oct-2005
# Posted on: 21-Dec-2006 11:54:12   

Kristian,

Any screenshots of your GUIGen?

KristianP
User
Posts: 32
Joined: 23-Feb-2005
# Posted on: 21-Dec-2006 16:13:42   

Kris wrote:

Kristian,

Any screenshots of your GUIGen?

There isn't really a gui generator, but a framework allowing all this to glue together. If you are talking about a screen shot of what my screen looks like when the app is running, then I could certainly send you something. If you have any questions or want to bounce some ideas of me about the framework, let me know. If you have ever wonder "What is the point of using an interface since it contains no behavior?", my solution will definetly give you one of those "A-HA" moments. smile

Chester
Support Team
Posts: 223
Joined: 15-Jul-2005
# Posted on: 24-Dec-2006 00:20:04   

What I like about GUI generators is that they allow you to give a client something to see VERY quickly after creating a data model and then generating your database. It's a helpful prototyping tool IMHO. The danger of them I believe is that, as with all things in life, temporary measures have a tendency to become permanent. stuck_out_tongue_winking_eye

I don't think we'll ever get to the point where we are generating applications from simple models. I do think we'll get to the place where sophisticated models and tools to support them - including UI, workflow and business rule definition - allows us to create applications that can evolve at runtime.

Check out the himalia project for an example of this:

http://www.himalia.net/

Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 24-Dec-2006 17:12:30   

Chester wrote:

What I like about GUI generators is that they allow you to give a client something to see VERY quickly after creating a data model and then generating your database. It's a helpful prototyping tool IMHO. The danger of them I believe is that, as with all things in life, temporary measures have a tendency to become permanent. stuck_out_tongue_winking_eye

Oh so true simple_smile

I don't think we'll ever get to the point where we are generating applications from simple models. I do think we'll get to the place where sophisticated models and tools to support them - including UI, workflow and business rule definition - allows us to create applications that can evolve at runtime.

Check out the himalia project for an example of this:

http://www.himalia.net/

Himalaia is indeed something towards which I think some software engineers will grow to. though that requires also complex tooling simple_smile

Back to topic: I've started today with the first code, and it's a bit give/take here and there. I decided it will be an example how to use .lpt templates to generate gui's for generated code. This set of templates will generate a proper asp.net 2.0 C# gui, complete with masterpage, user controls and the like, and can be used as the first step to get your own gui templates started, or can be used as an example how to build gui templates with llblgen pro.

The thing is that there are just too many tradeoffs to make already to make a ui toolkit beyond basic CRUD screens. The main thing is scalability. It's easy to generate screens for Northwind. It's harder to create screens for any db out there and thus also for db's with for example 100,000 customers in the customer table. simple_smile You then don't want a combobox with customers in the add new order page wink .

I'll go for the combobox variant first, people who want to extend this template set, can of course alter the template and add a picker form.

I'm pretty sure I won't finish it tomorrow (first christmas day), simply because I'm not going to work longer than 2 hours on this on christmas, and second because it's more work than you might think. So I hope to have something by Dec 31st, which you then can extend to your own needs.

It will use adapter first, 3 tiers, and will be C#. I'll release what I have on dec 31st or earlier.

Frans Bouma | Lead developer LLBLGen Pro
Otis avatar
Otis
LLBLGen Pro Team
Posts: 39588
Joined: 17-Aug-2003
# Posted on: 27-Dec-2006 11:11:18   

Ok, I made it 2 tiers, as it was much much simpler to do simple_smile . I've currently running the templates to create an add entity screen for the entities (and of course the menu fluff), and because I've done this with an LLBLGenproDatasourcecontrol2 and a formview, it's easy to extend it to edit and single entity select. I hope to have it all wrapped up by the end of the week.

Funny note: I still have hardly any code in the GUI. It's mostly HTML simple_smile

Frans Bouma | Lead developer LLBLGen Pro
1  /  2