Welcome to MSDN Blogs Sign in | Join | Help

News

  • I am Rajashekhar, I work as a Technology Architect in Microsoft. My job exposes me to a myriad situations both good and bad. Read on what goes on on a daily basis in my current avatar.

Old BlogSpot

Can Infopath replace ASP.Net as a UI for 3 tier applications...

I have been having animated discussions on using Infopath as the frontend for 3 tier applications. Infopath forms are very good XML consumers, throw a schema at it and it throws back a rich UI. They are also fantastic XML generators. If you want to use ASP.NET instead, you will have to do the custom XML parsing yourself and also have to handle the code for generating the UI and the bindings.

Lets suppose we have a situation where in you have some predefined schema's of data that need to be captured. You are using XML capable DB server like SQL2005. Also assume that you have a well defined set of business components that implement all the necessary logic for creation of the business entities (as XML schema instances) and also you have your DB accept predefined schema instances through users. Here comes the big lollypop...all your clients already have Office 2003 (SP1) installed.... 

In this situation, would it not be easier to just snap on a web services facade on the business layer and then have Infopath access this facade? Or would ASP.NET web pages be the way to go...

I know i am trying to compare apples and oranges here, but the crux of the matter is that Infopath templates can be published with some logic in them, they can saved onto a users machine and submitted once the user is online....they represent a paradigm shift with respect to usage of Smartclients as opposed to browser based thin clients. But, and its a big but in this case, does Infopath usage be justified as an optimum solution, how would users react to accessing a crucial applications through Infopath without any 'comfort feeling' of having either a Windows Forms app or a web site that would logically give them some feeling of a real application?

On the usage aspect, i feel, users ( and developers alike) are not used to the idea of 'not' having a windows form client or a web application. Today most developers seem to think that any 3 tier application development has to have a Web interface, they have to have a HTTP endpoint and some submits and some page navigation etc etc...I have participated in one too many discussion where developers vehemently oppose any idea of anything else other than a browser based client ( leave alone Infopath) as the UI, my experiences prompt me to ask these questions:

  • Why do developers feel that all application development is only Web application development?
  • Am I isolated in these experiences?
  • Are there others who have experienced such situation?
  • Am I missing something here that is glaringly evident to everybody else on this side of the planet?

Any ideas???

Posted: Wednesday, January 12, 2005 3:53 AM by Anonymous

Comments

Geoff Appleby said:

I can't say i've ever considered using InfoPath as a front end, only as a means to an end.
You certainly aren't alone, however, in thinking that web applications are not the be-all and end-all. At my job we have a few different n-tier apps, that would perform amazingly better with a winforms front end instead of using a browser (the beauty of the setups, however, is that you can have both - so long as the driving business layer is in it's own webservice or somesuch place :)
I would love to throw our web front ends away from these, and roll out a desktop app to each user - but unfortunately in our case at least, we have no control over the desktop environments of the users, and while we can be assured of them having IE6, we can't be assured yet that they have the .net framework installed :(
# January 12, 2005 4:27 AM

Rajashekhar SC said:

I have control over the users desktops. They are all installed with Office 2003 SP1 and have what it takes to run Infopath beautifully.

Again, why this has to be either Web Forms or a Windows Form as the UI layer...why cant it be neither...why cant it be some MS Office application?
# January 12, 2005 4:54 AM

Barry Dorrans said:

Of course application development is not all web UIs, it's just it can be the lowest common denominator for a bunch of situations.

What I believe you're proposing is Infopath as another, albeit limited, smart client.

If you're heading down the smart client route then all your business logic will be exposed as services anyway, if you head down the SQL2005 route you could even expose various stored procedures as SOAP services (although I'm still thinking about this and my gut feeling is hell no), so InfoPath is just another consumer, and should be no different to your web site, your pocket PC app or your WinForms app. You just have to present it like that.
# January 12, 2005 5:48 AM

Rajashekhar SC said:

Interesting comment....I am working with SOAP Services of SQLServer 2005 and from my limited exposure to it so far, i think its quite cool. I guess one can also use WSE concepts with the SQLServer2005 Wev Services. Combine it with Service Broker and you have a very good platform for Services development. I am quite excited and am working on a small POC for a trivial WorkFlow application.
# January 12, 2005 6:26 AM

Gilboa Wonder said:

I am sorry to disrupt the total harmony waving through the posts...
I am a great believer in web interfaces, in the flexibility they can confer, in the bare concept of a universal rendering language.

Of course microsoft is here to try and regain control over the computing stations...too late for them.

There is absolutely no advantage in having a WinForm/InfoPath interface, because:

* WebForms today allow very rich user experience (just look at Microsoft SharePoint and try to implement it as WinForm app...)

* WebForms don't require Windows, .NET framework, Office 2003 or any other software, so it can run on any device or operating system.

* WebForms don't require installation on the client computer. Now, you may argue that a lot has improved (especially the ClickOnce technology from MS), but still, starting your application from icons cluttered on the desktop or from enormous "programs" menu list is very cumbersome, to say the least. The world has adapted a coherent style of starting an interface - from the browser's favorites menu. In addition, exposing your hard drive is still a risk.

* People are sick from managing computers. Just imagine if 10% of the web sites people consume were implemented as Windows applications. What chaos could it be as far as TCO is concerned. Managing disk space, fragmentation, anti-virus scans, registry hell, you name it.

* The world is going towards reality of connectivity, openness and free competition. Microsoft can not and will not change this.

I know most of you here make a living developing Microsoft based solutions. That does not mean you should betray your customer's wallet, correct architectural design and personal morals.

Gilboa (fake name, Billy sign my paycheck too)
# January 12, 2005 6:59 AM

Barry Dorrans said:

Gilboa,

Web sites are no a silver bullet. Lets take an example (suitably anonymised if you can excuse that) of a system I've, umm, lets say seen.

Customer has a requirement to gather appointments for that day, including detailed files on the person being visited and what needs to be done. As each appointment progresses user must enter data in a form based application concerning the results of the appointment. Data must be synced back to central servers as soon as possible.

But there's a problem; the user is out of reach of the internet a lot of the time, so a system is required that will queue updates and send them out once the user can connect to the internet again (via GPRS, local lan, whatever).

So how will a web site implement that? You have to be on-line to enter data, and the user cannot get on-line. Should the user have to wait till all their appointments are done, then come back to a remote office to enter the results? Should the user have to pull over to a hotspot, start a laptop, login, get a net connection, then fill in a web form?

You say that

* WebForms today allow very rich user experience (just look at Microsoft SharePoint and try to implement it as WinForm app...)

* WebForms don't require Windows, .NET framework, Office 2003 or any other software, so it can run on any device or operating system.

Except the rich user experience (be it nice drop downs, uploading files, or rich text editors) require uplevel browsers (or in sharepoints case it's IE, or forget it), and the reliance on an uplevel browser does require a certain class of device.

It's horses for courses here. Sure there are advantages to webforms, just as there are advantages to smart clients, or monolithic programs. There are also advantages to VT220s and applications running on a VAX/780.
# January 12, 2005 9:35 AM

Shirantadka Rajashekhar said:

One of the most useful use-cases in favor Smartclients (and not in favor of web apps) is Online/Offline capabilities. There are a lot of users out there who are connected intermittently and would still like to use the app. Barry has beautifully explained one of those situations.

Web Applications are cool! XHTML and related technologies have revolutionized the way browser applications feel and look. But there is still a dependency whether its a specific version of ActiveX or JVC or even the browser.

I guess we are all living in times where users mature fast and want newer expereinces. (Ofcourse not yet ready to pay for all the cool things...but thats a different argument altogether)

And Infopath is just a small baby step towards that goal...
# January 12, 2005 11:56 AM
Anonymous comments are disabled
Page view tracker