I have been spending the last couple of weeks looking at how to integrate Microsoft Windows Workflows into my ASP.Net website. It is a basic usage of workflow - implement a state machine, do some processing on state initialisation, maybe fire an email or reminder here and there. It all sounds great on the surface and it basically works. But there are a few things that will just mean that it isn't workable in my site.
You see I have long running workflows, let's say longer than a week. They might hang around waiting for user input, a client to phone back, fill in a web form or something of that nature. However I am taking an agile approach to this particular development - releasing little functionality increments for the client. The problem is that workflows are tied to assembly versions, and my assembly versions are changing all the time. Not to mention that the workflow structure is also changing all the time.
So what do I do? Something like Ruurd Boeke suggests could pass, but hell that is a lot of work, considering I'll be doing this every two weeks or so. I don't have a good solution, so for the moment it is shelved. I'll just implement a basic state flag on my object and then provide a generic mechanism for faking the state flow. If things are designed right then I should be able to reuse any code in workflow activities once it all gets running. I'll try to use workflows for some of the short tasks that are required, just to make sure I am still getting my feet wet with the technology.
This seems like a typical trend for Microsoft to release something that is really, really beta (nay, alpha?) to gauge public opinion and then develop it a production standard later on. Windows workflows seem to me like they are nowhere near ready for production systems.
Do you have an opinion??
Tuesday, May 20, 2008
Windows Workflow still immature
Posted by
Unknown
0
comments
Labels: Annoyances, ASP.Net, Web Development, Windows Workflow
Thursday, March 06, 2008
Internet Explorer 8 introduces Web Activities
Microsoft has released a beta version of its popular web browser Internet Explorer. Internet Explorer 8 touts its offering of more CSS compatibility, better developer debugging integration, Web Activities, WebSlice. It will be interesting to see how these new IE extensions, such as Activities and Slices will be accepted by a community that is seeing increasing browser share for Mozilla Firefox.
A decade on from previous browser compatibility wars between Netscape and Internet Explorer, web developers might be a little more weary of developing web pages that are for exclusive, or optimised use in Internet Explorer. At least I hope so. Standards are standards for a reason and I personally don't want to develop for the four main browsers (IE6, IE7, IE8, Firefox) instead of three. Hopefully the much talked about standard compliance mode won't be watered down too much in subsequent releases.
Article: IE 8 Beta 1 Released
Download IE8: http://www.microsoft.com/windows/products/winfamily/ie/ie8/readiness/Install.htm
Posted by
Unknown
0
comments
Labels: Browsers, Web Development
Tuesday, January 29, 2008
Gzip compressing using Response Filter
Good post on building a response filter for implementing gzip compression across your whole web site. Be sure to read the comments to find if it is suitable to your application first!
More on GZip compression with ASP.NET Content - Rick Strahl's Web Log
Posted by
Unknown
0
comments
Labels: ASP.Net, C#, Web Development
Sunday, October 28, 2007
DataFormat Strings with GridView and BoundField
Like Rick I find myself forgetting all those little tricks that have to be done to get a project working. So here is my reminder...
Formatting fields with GridView and BoundField
Posted by
Unknown
0
comments
Labels: ASP.Net, Tips, Web Development
Monday, October 22, 2007
Implementing network credentials for ReportViewer
When the reporting control is not hosted under the same credentials as the reporting server, the network credentials need to be set for a ReportViewer control. Here is an easy way to do that.
reportViewer.ServerReport.ReportServerCredentials.NetworkCredentials readonly - MSDN Forums
Posted by
Unknown
1 comments
Labels: ASP.Net, Reporting Services, Web Development
Tuesday, August 14, 2007
Tips and Tricks with Microsoft AJAX
Wicked Code: UpdatePanel Tips and Tricks -- MSDN Magazine, June 2007
Recently I had my first experience with Microsoft AJAX. In previous incarnations I have written many websites with 'traditional' AJAX using Xml-Http and some client side scripting.
The first thing that struck me about Atlas was that is wasn't lightweight. At all. Sending complete page state and a full page lifecycle. It seemed to me that it was a recipe for writing a really unscalable website without even knowing it. If you don't know what type of load this will place on our bandwidth or server, then I would suggest not doing anything with UpdatePanels and update timers! The use of these controls should be well thought out rather than liberal.
Take for example the task of updating a control when a value is selected in another control. Using Microsoft AJAX this would involve a complete postback of page state and page lifecycle on the server. Now consider when the user is using the keyboard to scroll through the contents of the controlling listbox. That's one postback and page lifecycle for each value that is scrolled over. Eeek! Not my idea of scalable.
In this case it might be better to consider a more traditional AJAX approach. Note that this doesn't mean writing all of the client-side script and the webservice yourself. The Microsoft AJAX toolkit can provide some features to help you. This article presents some options for hooking up a client-side event with a more traditional lightweight approach using the ScriptService and PageMethods.
These are something that are well worth the investigation if you are considering using Microsoft AJAX toolkit extensively on your site. A little bit of fore-thought can go a long way.
Posted by
Unknown
0
comments
Labels: AJAX, ASP.Net, Web Development, Web Services
Thursday, June 08, 2006
Quirks of the XmlHttp object
Posted by
Unknown
0
comments
Labels: Javascript, Web Development
The XmlHttp object
Posted by
Unknown
0
comments
Labels: Javascript, Web Development