Showing posts with label Web Development. Show all posts
Showing posts with label Web Development. Show all posts

Tuesday, May 20, 2008

Windows Workflow still immature

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??

kick it on DotNetKicks.com Shout it

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

kick it on DotNetKicks.com Shout it

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

kick it on DotNetKicks.com Shout it

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

kick it on DotNetKicks.com Shout it

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

kick it on DotNetKicks.com Shout it

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.

kick it on DotNetKicks.com Shout it

Thursday, June 08, 2006

Quirks of the XmlHttp object

As useful as the XmlHttp object is, it also has its quirks. They really only show up though if you don't treat it nicely. Here is a list of some quirks http://www.quirksmode.org/blog/archives/2005/09/xmlhttp_notes_r.html
 
One interesting and very useful part of XmlHttp is the responseXml field. This field is an XML DOM object that is automatically populated if the content returned from the Http request is "text/xml". Very cool! I have found it is also faster than creating your own XmlDom object and then loading the Xml.

kick it on DotNetKicks.com Shout it

The XmlHttp object

A while ago I was wanting to find out a bit more about the XmlHttp object for JavaScript. This page provides a nice introduction to using the XmlHttp object to provide rich web interfaces.
 

kick it on DotNetKicks.com Shout it