jwcolby
jwcolby at colbyconsulting.com
Sun Aug 30 10:20:46 CDT 2009
Shamil, I understand that only people who have problems write comments about the problems they have. I also understand that if someone uses VS.Net to write both ends of the channel then the probability of problems drops dramatically. I would not characterize such comments a "junk" however, I believe that such problems are very real, particularly when you are dealing with disparate technologies on either end. The article itself was found in the C# start page, and he was having problems using .Net to try to talk to a service created in some other technology (from the little I actually understood). What I found daunting was the gobbledegook of terms and technologies being discussed. It certainly appeared to me that the majority of these "junk" comments were .Net developers trying to use .Net to subscribe (if that is the correct phrase) to services that were created in some other technology. Who had to do so for business reasons, in their work. John W. Colby www.ColbyConsulting.com Shamil Salakhetdinov wrote: > Hi John, > > I did read comments from the ref you quoted here - they are a usual "junk" - > I mean real developers who use MS software do not waste time on writing > comments how bad this MS software is :) I can assure you (as many other > developers here) it's not that bad as you can find reading all that "junk > comments". > > BTW, I liked this comment, which I classify as very helpful, and coming from > experienced developer (as I also am BTW :)O: > > <<<<<<<<<< > Ben Kloosterman, 21 June 2009, 20:38:34 (Pacific Standard Time, UTC-08:00) > > The problem is not with WCF (or Axis) but with people who choose overly > complicated scenarios. WCF is far superior to Axis though because Services > framework allow things people use them. > > eg > - Security 95% of the time no transport security/encryption is sufficient. > - Use custom headers dont fudge it like the article , this method is very > common . > - Use complicated types , inheritcance , interfaces , collections etc .. > KISS and use the DTO pattern. ( DOnt pollute your business domain with the > need to tranport it) > > The big advantage REST has is you cant do the fancy things but everything > you can do with REST you can do with WCF and keep it or even more simple. > > Ben > > And BTW, my current proposal is to use SOAP (ASP.NET 2.0) Web Services for > starters - they are easier to start with = you can create such Web Services > within VS2008. Later on you can convert them to WCF/REST web services - > you'll just need to change interface/façade in most of the cases. > > And a sample Web Service I created here is exactly a SOAP web service: > > http://shamils-4.hosting.parking.ru/MSAccess/MSAccessWebService.asmx > > You can find comments on its interface in P.S. of this message. And you can > consume this web service using sample code I provided in my previous > postings within this thread. (All the C# code for this Web Service including > comments is about 270+ code lines long - and that's all you have to write - > no need to code manually .wsdl etc. ) > > Some of my experience with Web Services: > > 1) One of my overseas customers (WA) did use web service running on my > hosting site (Moscow, Russia, and it runs within common application pool) > for several months. And this web service was queried dozen times within a > second from his programs running on 5+ computers from his LAN there. Result: > no any major trouble at all. > > 2) Another customer does use web service developed here to synchronize > two-way "field-force automation" local MS SQL Express databases with central > MS SQL database running behind large ASP.NET application. No problem. > > Etc. > > Recap: Stop reading "junk comments", start acting. > > Thank you. > > -- > Shamil > > P.S. Sample web service interface (Note: this sample web service was made in > one go, without any "heavy load" on brain cells, within a couple of hours > including several times of (XCOPY) deployment on ASP.NET hosting site, > testing etc. - I mean with some more work it can be done 100% "bullet-proof" > but even now it should be strong enough - you can test it): > > /// <summary> > /// Test method - Hello, World! > /// </summary> > /// <returns>String 'Hello MS Access World!'</returns> > [WebMethod] > public string HelloWorld() > > /// <summary> > /// Stores given file in Web service memory > /// </summary> > /// <param name="fileName">File name</param> > /// <param name="fileText">File text</param> > /// <returns>Stored file length if file stored successfully, > /// otherwise throws ApplicationException </returns> > /// <exception cref="ApplicationException">fileName parameter is null or > empty</exception> > /// <exception cref="ApplicationException">fileText parameter is null or > empty</exception> > /// <exception cref="ApplicationException">fileName parameter's value length > exceeds 255 chars</exception> > /// <exception cref="ApplicationException">fileText parameter's value length > exceeds 100KB chars</exception> > /// <remarks> > /// If the total length of stored files exceed 3MB then web service deletes > /// stored files until there will be enough space to store a new file. > /// </remarks> > [WebMethod] > public int StoreFile(string fileName, string fileText) > > /// <summary> > /// Gets stored on web service side file > /// </summary> > /// <param name="fileName">File name</param> > /// <returns>Stored file text if file retrieved successfully, > /// otherwise throws ApplicationException </returns> > /// <exception cref="ApplicationException">fileName parameter is null or > empty</exception> > /// <exception cref="ApplicationException">fileName parameter's value length > exceeds 255 chars</exception> > /// <exception cref="ApplicationException">{fileName} - file not > found</exception> > [WebMethod] > public string GetFile(string fileName) > > /// <summary> > /// Delets stored on web service side file > /// </summary> > /// <param name="fileName">File name</param> > /// <returns>True if file deleted successfully, > /// otherwise throws ApplicationException </returns> > /// <exception cref="ApplicationException">fileName parameter is null or > empty</exception> > /// <exception cref="ApplicationException">fileName parameter's value length > exceeds 255 chars</exception> > /// <exception cref="ApplicationException">{fileName} - file not > found</exception> > [WebMethod] > public bool DeleteFile(string fileName) > > /// <summary> > /// Gets Web Service usage statistics > /// </summary> > /// <returns></returns> > [WebMethod] > public string GetWebServiceUsageStatistics() > > /// <summary> > /// Gets 'Lorem Ipsum...' text > /// </summary> > /// <param name="amount">Speficies amount of <paramref name="what" > parameter/></param> > /// <param name="what">Defines generation units: words, paras, bytes, > lists</param> > /// <returns></returns> > [WebMethod] > public string GetLoremIpsumText(long amount, string what) > > > -----Original Message----- > From: dba-vb-bounces at databaseadvisors.com > [mailto:dba-vb-bounces at databaseadvisors.com] On Behalf Of jwcolby > Sent: Sunday, August 30, 2009 5:21 AM > To: Discussion concerning Visual Basic and related programming issues. > Subject: Re: [dba-VB] Access data across the internet > > http://www.hanselman.com/blog/BreakingAllTheRulesWithWCF.aspx > > Read all the comments at the bottom. > > John W. Colby > www.ColbyConsulting.com > > <<< snip>>> > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 4380 (20090829) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.esetnod32.ru > > > > _______________________________________________ > dba-VB mailing list > dba-VB at databaseadvisors.com > http://databaseadvisors.com/mailman/listinfo/dba-vb > http://www.databaseadvisors.com > >