|
I'd like a visual workflow designer technology framework. It would provide a mechanism for specifying and managing application workflow issues, something that I haven't seen addressed at all, integrating an existing drawing package, like Visio, with VS's IDE. For example, the programmer should be able to specify the workflow in a point-of-sale system (an example only!)
It would be nifty to integrate the workflow with an existing drawing package like Visio, using flowcharting objects, etc. (I've done a lot of Visio integration in the past). The framework would provide the programmer the ability to:
1. prototype a workflow through an interpreter provided by the framework, reading the information off the diagram(s);
2. translate the diagram to C#/C++ code for the release version (or a compacted data file--XML?--What's with the XML bandwaggon, anyways???);
3. tight integration with Visio--double click on a graphic object and drill down to additional workflow specification and/or switch over to the "code-behind";
4. and the holy grail--reverse engineer a workflow when the programmer makes changes to the program! (OK, probably totally out of scope).
Comments? All in favor? All opposed?
Marc
Help! I'm an AI running around in someone's f*cked up universe simulator. Sensitivity and ethnic diversity means celebrating difference, not hiding from it. - Christian Graus Every line of code is a liability - Taka Muraoka Microsoft deliberately adds arbitrary layers of complexity to make it difficult to deliver Windows features on non-Windows platforms--Microsoft's "Halloween files"
|
|
|
|
|
hehe. Sounds like Webmethods to me
It's not a bad idea
Mark Conger
Sonork:100.28396
|
|
|
|
|
|
Interesting, but:
How does this fit with an app framework?
What if people can't afford Visio?
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
What Marc is describing is a application framework targeted at a true business solution. It's just a very narrow scope. In reality I have one application like thi now that I deperately need to rewrite because the idiots who did wrote 18 separate VB6 apps with little or no documentation or consistency.
Mark
Mark Conger
Sonork:100.28396
|
|
|
|
|
Sorry, I want to get some samples C# and .NET
About C#
|
|
|
|
|
do you have seen Microsoft's biztalk orchestation?
Federico
|
|
|
|
|
Sorry, Mark, my comment has nothing to do with the current discussion.
Just wondering if you deleted some of your articles. I was considering deleting some of my articles (those I am not proud of ) from Code Project, but decided not to.
Click here to see my articles and software tools
|
|
|
|
|
I removed the 4 CPP Script Framework articles, as the project moved off of CP. I'll be posting articles about the development effort as real articles instead of "project articles".
And yeah, there's a few articles I'm not very proud of either. But I might consider deleting them when my article count is around 100.
Marc
STL, a liability factory - Anonymously A doable project is one that is small enough to be done quickly and big enough to be interesting - Ken Orr
Latest AAL Article
My blog
|
|
|
|
|
I always loved to have a tight integration between visio and visual studio. I noticed that there was a link between the UML features of visio and visual studio.
That can be used to create the classes. The flowcharts can than be used to add the code in the function. However I think this kind of things can also be done with UML
Greetings....
|
|
|
|
|
Sorry if I am asking the wrong question.
What kinda of methodologies you guys plan to use? Ex: Agile methodologies like Extreme Programming, Feature Driven Development etc...
Never take a problem to your boss unless you have a solution. This signature was created by "Code Project Quoter".
|
|
|
|
|
Kant wrote:
What kinda of methodologies you guys plan to use?
An interesting question. What drives it?
Personally, I tend to follow Feature Driven Development and Aspect Oriented Software Design methodologies. This is heavily influenced by the type of clients I have (and respectively, THEIR clients). From the Extreme Programming perspective, I like the ideas of unit and process testing (especially the build the test before writing the code), but I find that in practice they lead to a lot of wasted effort. Especially pair programming. Which is also impossible in this project for obvious reasons, unless we used something like GoToMyPC.com. Hmmmm.
Marc
Help! I'm an AI running around in someone's f*cked up universe simulator. Sensitivity and ethnic diversity means celebrating difference, not hiding from it. - Christian Graus Every line of code is a liability - Taka Muraoka Microsoft deliberately adds arbitrary layers of complexity to make it difficult to deliver Windows features on non-Windows platforms--Microsoft's "Halloween files"
|
|
|
|
|
Could somebody explain what the AAL is? Is it just the name of this specific Application Framework project being discussed.
I'd like to see some built-in Unit Testing functionality in the new framework. I have written a few generic classes for testing and I now find them indispensible. Another thing that might be useful is some built in scripting. I think somebody may have already mentioned this, but the scripting could be related to the Testing so we could test the End-Product dynamically.
We'll also have to write a few VC Application wizards to create a skeleton app for using the library/framework. Another thing we should look out for is to make the framework as CrossPlatform as possible, especially since even MS themselves are taking an interest in Linux these days.
|
|
|
|
|
John Oliver wrote:
Another thing we should look out for is to make the framework as CrossPlatform as possible
Shouldn't be too hard. With the GUI Library, it's (almost) impossible (because Windows Forms is not cross-platform), but here it should be fairly easy. I'm not going to do any of the Linux testing, though.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|
|
John Oliver wrote:
Could somebody explain what the AAL is?
Click on "my articles" and scroll down. There's several articles starting with "Application Automation Layer --". In other words, my pet application framework project.
Marc
Help! I'm an AI running around in someone's f*cked up universe simulator. Sensitivity and ethnic diversity means celebrating difference, not hiding from it. - Christian Graus Every line of code is a liability - Taka Muraoka Microsoft deliberately adds arbitrary layers of complexity to make it difficult to deliver Windows features on non-Windows platforms--Microsoft's "Halloween files"
|
|
|
|
|
http://www.sellsbrothers.com/
Regards,
Barry
|
|
|
|
|
|
Chris Sells mentioned you before in a previous blog. I'm surprised you'd never noticed!!
Regards,
Barry
|
|
|
|
|
Barry Lapthorn wrote:
I'm surprised you'd never noticed!!
Oh yes, I had noticed. It's just that fame is short lived in this fast paced world.
Marc
Microsoft MVP, Visual C#
MyXaml
MyXaml Blog
|
|
|
|
|
I would like to see an AF that will support P2P. Any framework that supports P2P would need a few basic features.
1. AutoDiscovery. The ability to find others automatically.
2. A decentralized system. No central server. This creates a weak spot. Think of 6 degrees of seperation here.
3. The ability to exchange information among peers. This would simply be some protocol or defined method for exchanging data. The specifics of the data are not important at this layer. The applications built on top of it would interpret it.
4. Events. The ability of the upper application to register some callbacks into the API for events. Some possible events might be notification of a peer joining and leaving the network.
5. Ability to form a co-op. By this I mean you have a general pool. This is anybody running the application. Individuals running the same framework should be able to form private, invite only co-ops within the network. Sort of like the jocks and the geeks in high school. Except neither is aware of the other's existance.
6. Ability to penetrate firewalls.
7. Ability to configure how it communicates over the network. By this I mean being able to run over TCP or UDP and the port(s) used. If everybody built an app using the framework and they all used the same port(s) there could be some problems.
8. Resolution of conflicting apps. By this I mean if two completely different apps are built on to of the framework and somehow choose the same port(s) etc, they should be able to talk to each other and realize that they aren't the same app. So perhaps a signature header in the autodiscovery protocol that identifies the type of application uniquely.
As for ideas for usage of this framework. I don't have any specific ones in mind. However, some uses could be collaboration tools, file sharing, distributed network storage, fault tolerant systems.
Imaging building a database on top of a P2P platform. Now everybody shares the load. Each peer stores a small piece of the whole pie. Several peers share the same information (think RAID). This provides the ability for fault tolerance and greater storage as the number of peers increase. You also make it possible to serve information from peers that are local therefore localizing network traffic.
What do ya think? Have an feeling it won't be voted up based upon the latest ideas showing up. However I think my ideas have merit. The thing I like about it is that it is something relatively new and a chance to learn something new. It's not a complete recreate of the wheel either.
--
"The money power of the country will endeavor to prolong its rule by preying upon the prejudices of the people until all wealth is concentrated in a few hands and the Republic destroyed."
-- Abraham Lincoln
|
|
|
|
|
Yeah, this AF idea could just expand into infinity, and it looks like that's already started.
Maybe we should just limit it to ways of connecting normally used code rather than writing a bunch of utility classes that people could use. (i.e. Write a set of interfaces with default implementations for managing plug-ins, commands, toolbar buttons, menus, documents, views, etc. This way, people can write plug-ins that'll replace or extend the default implementations, as well as invent completely new additions that would still fit perfectly into the architecture. (As most things are now, a new utility class invented by someone else needs to be hooked into a program from code rather than a simple configuration file.)) Don't you just love those extended parenthetic statements?
John
"We want to be alone when we hear too many words and we feel alone when it has been a while since anyone has spoken to us." Paul David Tripp -- War of Words
|
|
|
|
|
I agree, it should probably be cut down to a small, flexible design with only a couple of the ideas we have put forward.
But what do you think are the best ideas, Marc? This is your project to lead.
Jason Henderson latest CPP news
"If you are going through hell, keep going." - Winston Churchill
|
|
|
|
|
Jason Henderson wrote:
it should probably be cut down to a small, flexible design with only a couple of the ideas we have put forward
We also have to remember that people are volunteering their own time, so it has to be fun, short, and engaging.
I don't know if this will be engaging to everyone, but the idea that's crystalizing for me, after reading all these posts, is a framework implemented in C# that provides for the near painless integration of scripts for the purpose of unit testing, regression testing, prototyping, and workflow specification/changes. The .NET framework really makes this possible with its Reflection, Type, and Activator namespaces/classes, allowing "remote control" of methods, properties, parameters, etc.
(Pardon the sounding board). I think this is doable, interesting, uses some fun technologies, and results in a really useful product.
Comments?
Marc
|
|
|
|
|
Sounds good!
It could be used as a built-in debugging/testing apparatus even after a production release.
Over the last couple of years, I've really been pushing for better error logging and application logging in our apps and it makes a world of difference. Adding scripting support would really help our QA team.
What about MACRO recording? Kind of like outputting to your script language for latter playback.
Jason Henderson latest CPP news
"If you are going through hell, keep going." - Winston Churchill
|
|
|
|
|
I've been toying with the idea of using C# or VB as the scripting language for macros/scripting, since the VB/C# compilers come with the .NET framework.
"Blessed are the peacemakers, for they shall be called sons of God." - Jesus
"You must be the change you wish to see in the world." - Mahatma Gandhi
|
|
|
|