Geeks With Blogs

About Me:
I am a Female SharePoint Developer (a platinum unicorn). I have been working with SharePoint since I attended the Portal University in 2005. I hold a BA in Computer Science from the University of Missouri - Kansas City. I love playing Rockband, organizing user group meetings, working with code, attending events as a speaker or organizer, and having bizarre conversations about geek things with cool people. If you have any comments or questions fill out the contact form and I will try my best to help.

The Guide of a MOSSLover Becky Isserman's Blog

I have a couple posts coming to this respect, but I had the displeasure of working with Apache, SVN, and Perl these past few weeks.  First off I tried learning Perl when I was 16 years old and it never took.  I couldn’t understand it.  I still don’t understand half of what it does and why you would use it over any other scripting language.  The most I ever used it prior to these past few weeks was AOL .eml forms back in the day ( yeah I know I’m not proud of my 17 year old self).  I feel like I’ve been sitting pretty in my C# and ASP .Net world.  This project was like a refresher of what I could be doing right now had I never been introduced to the .Net and SharePoint world.

So first off I had do all these insane configurations.  You complain that SharePoint takes forever to configure correctly…DONOT ever complain to me about SharePoint.  Apache and Subversion are 10x more painful to install.  I swear when I installed these two technologies I had no idea what I was doing.  What is even better is that I had to statically set the IP for Apache, so that it would not conflict with IIS.  IIS is basically the Apache of the Microsoft world so the two just don’t like each other.  I also had to set the port number for Apache to some obscure port that was not 80 obviously the port conflicts due to IIS monopolizing it.  Oh yeah and did I mention the guide is not straight forward so you have to go into Event Viewer and the Apache and SVN error log files and basically google each error message.  Eventually I got past all that insanity after about 2 days of configuration and I had a base environment.

Now at this point you wonder how do I get Perl to work.  For me I need to create an Authentication script for SVN that ties into a .Net Webservice that will tie into a Membership Provider.  As I said before I had no idea what I was doing.  I didn’t know a lick of Perl.  So I started by researching how to use Perl with Apache and how to hit a webservice using Perl.  I came across a couple of items that could help me throughout the process.  First off you want to install Active Perl, which is Perl for windows.  You have to put it in the usr/bin folder on your main drive.  Then what you want to do is remove all the IP address static junk you added, but remember to save it for later so you can add it back.  Type in “PPM” in run and you will get a list of all the mods available for Perl.  I noticed that mod_perl is a must have for Apache and Perl scripting.  It makes things run faster and has a whole library that you can access tailored specifically for working with Apache.  You need to right click on every prerequisite.  I also found a great webservice module called SOAP::Lite that helped me pull the data from the webservice later on.  Remember to right click on this module and then when you think you downloaded all the modules no you did not.  You have to tell it to run all the actions.  This will actually download the modules.  If you left on your static ips you cannot download these items because you cannot hit the internet.  So now you think your done right?

No you’re not even close, because you now need to go into the Apache configuration files and add some lines of text to tell Apache to recognize mod_perl.  You also need to download a .so file and put it in the Apache directories.  If you download the wrong one and reference it or mess up your configuration files when you try and start the Apache 2 service it will not budge and send you an obscure error message.  If you get some crazy error message you need to go into the logs directory and open the error text file.  If you are lucky you might get a nice clean error message that means something.  If not well good luck you are going to be shooting in the dark for a few days.

So now I finally got everything setup and I had to figure out the syntax.  This part was tricky because there are not a ton of blog posts an forums or documentation on this open source stuff.  Everyone was calling there stuff wrong and from what I understand hitting a .Net webservice can be buggy at times with Perl.  So at this point I downloaded a Perl Editor called Perl Express and started shooting in the dark.  I wrote the entire module and I added it to the configuration files as the Authentication Handler for SVN.  I got all kinds of crazy errors that I stepped through with the error logs.  Each one more obscure than the last message.  It felt like I was shooting at something with a blind fold.  Finally I got to a point where I thought everything worked, however it was not popping up a username and password dialog box.  So finally after hitting another 800 websites and trying different things it popped up the username and password.  I received no more error messages and I thought the script was working.

I was so dead wrong, because the parameters had the username and password, however they were not passing them into the webservice.  I spent an entire week trying to figure out what was going on reading forums and blog posts.  No one had any documentation.  Last night I finally thing hey what about the namespace in my webservice.  Some people say you can use tempuri and other people just don’t use it at all.  I decided to change my namespace to the uri plus the folder up to the asmx file.  Finally everything works, so namespace apparently cannot be the default or Soap::Lite will not pass in the parameters.  If you do a debug and a trace it will print the XML out correctly and everything will act fine until you want to pass in parameters.  It was cool when everything worked, but I hate the open source world.  The documentation is horrendous.  At least Microsoft gives us MSDN and the people posting blogs are at least somewhat better.   Plus I missed my debugger.  I was using Fiddler and Apache error log files.  At least with .Net I can attach a debugger and step through code.  Maybe there is a way to do it in Perl, but I just don’t see it being easy.  It just felt like too much work for something so simple.

If you are reading this blog post please take this with you that you could be working with Perl or Python or even PHP rather than .Net.  It could be 10x worse.  If you are working with SharePoint and complaining I will yell at you if you even begin to tell me how horrible the developer experience is right now.  It could be so much worse guys.  Don’t complain.  You have it good.  We could be working with punch cards or open source.  Our salaries could be so much worse.  Appreciate what you have, because it could go away in a heart beat.

Posted on Wednesday, January 13, 2010 3:15 AM MOSS , Personal | Back to top

Comments on this post: Don’t Complain About SharePoint If You’ve Never Touched Open Source…

# re: Don’t Complain About SharePoint If You’ve Never Touched Open Source…
Requesting Gravatar...
Most of your complaints are regarding a) running Apache on Windows in coexistence with IIS, b) attempting to call a .NET SOAP 1.1 web service using a non-.NET stack. .NET's and Java's SOAP implementations are known to be problematic between platforms. .NET also has the advantage of having an ABSOLUTELY BEAUTIFUL web service proxy generator (web references), which I haven't seen elsewhere.

I agree with the heart of your argument, that those of us who experience pain in SharePoint and think the pain is exclusive to SharePoint...the thinking is wrong. There is certainly pain elsewhere.

But if you're going to re-discover Perl, might I suggest that avoiding Membership Providers, .NET web services, .NET, and Windows entirely would ease your pain?
Left by Peter on Jan 13, 2010 10:18 AM

# re: Don’t Complain About SharePoint If You’ve Never Touched Open Source…
Requesting Gravatar...
To be fair a lot of this pain is due to Apache on windows. SVN, Apache and Perl aren't native to windows and instead were ported. Since the environments of *nix and windows can be vastly different, you have to jump through hoops to get anything runnning on a windows box because running Apache on win in the first place was an afterthought.

If the SVN repository was running on a *nix box it probably would have been smoother, but I still see your point. The documentation for open source doesn't always match with a specific binary version, so the functionality could be different. You still most likely would have had issues with the namespace in the service, but that's a whole other issue. Even with standards like SOAP every vendor has their own implementation.
Left by blaird on Jan 15, 2010 4:48 AM

# I have totally different experience
Requesting Gravatar...
Ok, so I've never used SharePoint but I have set up Apache and IIS on a windows box. I also run the office SVN from a Windows 7 machine that uses both IIS ad Apache. I had no problem setting these up as I found excellent tutorials on line and got the whole thing working in under half a day.

As for the Perl thing again I;ve never used it.

I should say that I have also seen IIS and Tomcat (from Apache) working well together to support a Java and JSP based site. All of this is possible and a lot easier than the experience you had.

Finally, I have used PHP to connect to .Net WebServices before and it's never been a problem for me. Maybe I got lucky, maybe you got unlucky. Either way I don't share yuor experience.
Left by nathj07 on Aug 10, 2011 9:01 AM

Your comment:
 (will show your gravatar)

Copyright © MOSSLover | Powered by: