Editing the Elsa Dashboard & Designer - c#

I'm currently working on a project which aims to deliver a "low-code" solution for integrating workflows. I'm very impressed by Elsa since it already comes with a lot of functionality that I was looking for.
Since the projcet goes into the direction of "low-code" the center of user Interaction will be the Dashboard/Designer.
I was wondering if it's possible to modify the components the designer uses? E.g. I'd like to integrate a Component that let's the user define the Workflow-Name and other input parameters when the "Create Workflow"-Button is clicked or remove existing activites or edit the toolbox in general.
I know that the components that are used by default are defined here
<body>
<elsa-studio-root server-url="#serverUrl" monaco-lib-path="_content/Elsa.Designer.Components.Web/monaco-editor/min">
<elsa-studio-dashboard/>
</elsa-studio-root>
</body>
But I don't know where to find the monaco-lib-path neither if I'm able to edit what I'll find there. I'm very new to ASP.NET and web development in genereal, so I'll be very thankful if somebody can help me.

Currently, there are not that many features to facilitate UI customization, there are some capabilities for customizing activities like their icons as described here.
In Elsa Roadmap V3.0
there's an item to make the dashboard modular & themeable. But until its implementation, you have the option to fork the designer which is developed using stenciljs, and make your desired changes, or even create your UI from scratch and just consume the Elsa API.

Related

Is it possible to read data from Pane control type?

I've started using FlaUI for Automating my thick client .net application. The application is Windows Form based. The start was good and Login Form was identified and I could Login, but after that came the dead end and I found that almost everything in the application is developed as Pane control type.
So, there is grid, table etc. but they all just appear as Pane type when I see the object hierarchy using Inspect.exe or FLAUInspect tools. And nothing really appears in thier property, so it seems that nothing could be read. But before giving up I just wanted to check with experienced audience on this forum if there is really any way to get the data from Pane objects.
Please suggest if there is any way, even that means using other libraries like UIAutomation, TestStack.White, etc.
UPDATE: I now understand little more about this. So, the objects that are there in the pane are developed in syncfusion and devexpress. Is it possible to identify objects developed in syncfusion and devexpress using FlaUI or UIAutomation or TestStack.White, etc ?
I don't know if you have already tried the following steps. Have you add automationId's to your objects in xaml code with:
AutomationProperties.AutomationId="AnyID"
In the testcode, first initialize the main window of the application.
MainWindow = fApplication.GetMainWindow(fAutomation, null)?.AsWindow()
After that you can find your objects by the automationId's, like:
MainWindow .FindFirstDescendant(cf => cf.ByAutomationId(AnyID))
I did it this way, and don't have to know the hierarchy of my application. Maybe this will work?
Most UI Frameworks nowadays fully support UI Automation. So first make sure that you have a recent version of your framework (syncfusion, devexpress). In addition, some frameworks provide settings to enable UI Automation. Like for devexpress, you need to set
ClearAutomationEventsHelper.IsEnabled = false;
at the start of your application to test so it exposes way more things (like tabs) to FlaUI.

Can I dynamically add a user control to a silverlight application without recompiling it?

I have a silverlight application with several menu buttons, each of which opens up a user control in a center "work space" area. It works fine. Now what I'd like to do is make some more user controls, compile them into a dll, and through say, a configuration file, have the silverlight app add a new menu button and make it make one of those new controls appear. The difficult part is, I'd like to be able to do this without recompiling the silverlight app. I'd like another developer to be able to make a user control that does some things, compile it into a dll, and drop it into the silverlight directory with some changes to a config file to get the main app to load it in. Is there a way I could do this?
Since noone else has replied yet:
What you want to do is reflect classes form a third-party dll at runtime. This is possibly too big a subject for SO, and all I can really recommend is looking up examples of it, and maybe the msdn section on it.
You'll also want to look up serialization and deserialization in C# and silverlight (this question might be a good start).
Sorry I can't be more help than that, but hopefully someone more experienced will weigh in with a useful article or some such.
Good luck :)

How to show workflow in a page using asp.net

I am trying to create a workflow for document approval process using WF. I need to show this workflow process in a page as how many stages completed,who was involved in the workflow etc. Can you guys please help me out how to achieve. Please share me if you have any source links.
You can use the WorkflowDesigner to create an image of a workflow and then display that on a web page. But as the WorkflowDesigner is a WPF control doing so in an ASP.NET app is pretty hard.
The idea of trying to produce a bitmap of the WPF is not a bad one. But in general I think what you may be looking at is to create a TrackingParticipant that listens to your workflow events and publishes information somewhere that can later be used to render a web page that suits your needs. So from the TrackingParticipant you could save off each Activity that completes, and then uses some JS based graph library to render this. Not easy, but not impossible either. If your visual needs are not that complicated, this could look more like a report than a flowchart I suppose.
There is a sample of using the TrackingParticipant in the WWF4 samples, VisualWorkflowTracking.

I'm about to start using ASP.NET MVC2 for my web application

I have a pretty big web application that I created last year using ASP.NET webforms. It has two parts: Admin and Client (each one a project inside a single solution). Admin logs in as you would expect and manages the clients. Clients log in and manage themselves. SQL Server back end. It relies heavily on MasterPages and LINQ. It has 2 class libraries, one for my methods (authentication, security, encryption, etc.) and another with dbml files for linq that both admin and client project reference.
Now I really want to convert this to MVC 2. I know I'll have to rewrite the front end (not a problem, looking forward to it). I can reference my current class libraries and modify them as I need. My main concerns are my forms and controls. I'd really like to stay away from the major asp controls and use jquery for everything if possible (especially the presentation layer. I'm just not sure how to go about doing this. I was also told jquery is great for 'parsing and updating the DOM' but I've never done this either and not sure where to start (why do this over LINQ?).
Another issue I struggled with was the size of my main table. It has 109 fields in it, and my customer thinks all of them need to be available on screen (or as many as possible, especially in the grid). I had to break up my entry/edit form into 5 tabs (all web controls). My grids have sorting, grouping, export to excel, etc... I would really like to find a grid that lets you inline edit individual cells when double clicked. Would it be better to use jquery for grids? I can break that large table into relational tables if needed (probably will do that anyway).
Any advice from anyone who's done similar will be greatly appreciated. I just bought the book "Pro ASP.NET MVC 2 Framework, Second Edition" and I have a great jQuery ebook I'm working with.
Thank you guys!
EDIT: Should have mentioned I used Telerik WebControls for my previous web forms project so I'm familiar with them. I had no idea their MVC suite was free (I've paid quite a bit for the webform controls).
For grids I can recommend the free Telerik mvc controls. They have good support for ajax binding paging, sort, edit, parent-child etc.
This combined with a few widgets from jQuery ui (tabs, dialog) should put you on the right track as far as your presentation layer is concerned.
Adding to RedSquare, the Telerik Extensions for ASP.NET MVC are free and open source (under GPLv2). That essentially means the Extensions for free for "free" projects (projects you're not trying to sell). If you're trying to sell and make money from your software, we have a commercial license, too, to support that.
Today, the Extensions for MVC include 8 extensions: Grid, Calendar, DatePicker, Menu, NumericTextBox, PanelBar, TabStrip, and TreeView.
Additionally, 3 new Extensions are available in beta: Editor, ComboBox, and Window. (Official release towards the end of August.)
The goal of the Extensions is to make it easier to build rich MVC Views, similar to what you've done in the past in WebForms. MVC is very different than WebForms, though, so be careful when making the transition to avoid the "traps" of thinking in WebForms mode. For example, there are no PostBacks or ViewState in MVC, so some things require more deliberate code in MVC.
Finally, as a word of caution for "pure" JavaScript components, remember that they do not support any scenario where JavaScript is disable or not executed (common examples: web crawlers, accessible browsers). If accessibility or SEO are concerns, Server + Client UI controls like the Telerik Extensions can be a bonus.
Hope that helps.

How to add context menu to Silverlight tree items?

I want to have context menus attached to tree items in my Silverlight Toolkit tree. How can I do this?
Right click support is only supported via Javascript, so the vendor route is a good way to go.
Curtisk's suggestion of the Telerik control is a good choice, but this can be tricky to implement first time - if you go this route make sure you pay a few extra pounds for their support - the documentation is lousy.
Have you considered any alternatives to context menus? At the moment I am working on project porting a thick client application to Silverlight. We had a lot of right click context in the thick app, and after consulting with Microsoft's UX team and also looking at the examples on Quince UX we decided to implement our context menus in a permanent task based menu on the right hand side of our screen. Implementation is a doodle with binding and, most importantly, our users have received this well :-)
One way is vendor provided.....
Telerik has RADControls for Silverlight, the contextmenu control can be attached to tree views.
http://www.telerik.com/products/silverlight.aspx
and
http://www.telerik.com/products/silverlight/contextmenu.aspx
for more details and demo with tree

Categories