Tony Testa posted on February 24, 2008 15:18

It's a pretty well known fact that SharePoint 2007 exposes most of its Object Model through web services.  In my experience though, I always forget the address of the web services as well as forget which web services there are.  So with that being said, here is a link to the MSDN page listing the web services SharePoint2007 Web Services.  The link is handy....but it only tells you the methods, it doesn't always tell you the address to get to the web service at.

The web service .asmx files are located at "C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI"

Every SharePoint Site has a virtual directory known as "_vti_bin" which maps to the above directory.  Don't believe me?  Open up your IIS management console, go to one of your web apps, and look where "_vti_bin" maps to in the file system.

 

Here is a list of the web services:

Name URL Description
Administration http://<AdminSite>/_vti_adm/Admin.asmx

Ok....this one is the only different one out of the web services.  The Admin.asmx web service performs naturally...Admin functions thus it is behind your Central Admin site and require appropriate admin permissions.

Provides methods for managing a deployment of Microsoft Windows SharePoint Services, such as for creating or deleting site collections.

Alerts http://<Site>/_vti_bin/Alerts.asmx Provides methods for working with alerts for list items in a SharePoint site.
Authentication http://<Site>/_vti_bin/Authentication.asmx Specifies a client proxy that provides user authentication for SharePoint sites that use forms-based authentication.
Copy http://<Site>/_vti_bin/Copy.asmx Provides methods for copying files between SharePoint sites or within a SharePoint site.
Document Workspace http://<Site>/_vti_bin/Dws.asmx Exposes methods for managing Document Workspace sites and the data they contain.
Forms http://<Site>/_vti_bin/Forms.asmx Provides methods for returning forms that are used in the user interface when working with the contents of a list.
Imaging http://<Site>/_vti_bin/Imaging.asmx Provides methods that enable you to create and manage picture libraries.
List Data Retrieval http://<Site>/_vti_bin/DspSts.asmx Defines the filter used in a query against a data source provider.
Lists http://<Site>/_vti_bin/Lists.asmx Provides methods for working with lists and list data
Meetings http://<Site>/_vti_bin/Meetings.asmx Enables you to create and manage Meeting Workspace sites.
People http://<Site>/_vti_bin/People.asmx Provides methods for working with Principal objects.
Permissions http://<Site>/_vti_bin/Permissions.asmx Provides methods for working with the permissions for a site or list.
SharePoint Directory Management (in stssoap.dll) Provides classes that enable requests for various management operations for e-mail distribution groups.
Site Data http://<Site>/_vti_bin/SiteData.asmx Provides methods that return metadata or list data from sites or lists in Microsoft Windows SharePoint Services.
Sites http://<Site>/_vti_bin/Sites.asmx Provides a method for returning information about the collection of site templates on the virtual server.
Search http://<Site>/_vti_bin/spsearch.asmx The QueryService class is the entry point for calling the Search in Windows SharePoint Services Query web service.
Users and Groups http://<Site>/_vti_bin/usergroup.asmx Provides methods for working with users, role definitions, and groups.
Versions http://<Site>/_vti_bin/Versions.asmx Provides methods for working with file versions.
Views http://<Site>/_vti_bin/Views.asmx Provides methods for working with views of lists.
Web Part Pages http://<Site>/_vti_bin/WebPartPages.asmx Provides methods for working with Web Parts.
Webs http://<Site>/_vti_bin/Webs.asmx Provides methods for working with sites and sub sites.

Posted in: Sharepoint  Tags: ,

If anyone is in the VA Beach area on Feb 21st, stop by the Hampton Roads UG meeting.  I'll be presenting about how to use AJAX within your SharePoint Web Parts.  I presented on the same topic back at the Philly.Net Jan 2008 Code Camp and I think it went over really well, and one of the attendees runs the Hampton Roads UG, hence why I am presenting down there. 

Luckily for the attendees on thursday, I have updated the material to provide more "real world" examples, as well as some alternatives to using just using the straight MS ASP.NET AJAX framework to do AJAX.  I'll be including a few examples using jQuery, as well as the ICallbackHandler to do lightweight AJAX.  After attending Todd Bleekers' presentation on the same topic (I still feel mine is better of course!), he did turn me onto the ICallbackHandler idea.  Basically, it is a lightweight way to do AJAX style calls from your Web Parts, but as with everything AJAX related, it is to be used with caution. 

What I really want attendees to walk away with from this presentation, if they walk away with nothing else, is that SharePoint really is an "application platform" that you can develop on.  You can develop your apps using cutting edge technologies like AJAX and LINQ (my next upcoming presentation) for example, for those pieces of the app that need it.  But for the majority of your app, that 80% as they say, you can leverage what SharePoint comes with out of the box to achieve that 80%, and then use the other cutting edge technologies on that 20% of your app that really needs it.


Over at CodePlex, Microsoft has just released its own version of an IoC library named "Unity".  If your not familiar with the concept of IoC, A.K.A. Dependency Injection, it is the idea/model that within a multi-tiered application (which is almost the only type of .NET apps most people write these days), each layer should not have to know anything about the layer above, or below it. 

If you want to read more on the concepts behind it and history:

Inversion of Control

Dependency Injection

I like the trend that I see coming out of Microsoft with this recent release and the release of their MVC framework.  They seem to be really listening to the community and releasing "best practice" libraries and frameworks for use.  The "Alt.Net" movement really brings along with it some great ideas and ways of developing software, and IoC is big player in that.  What I think is REALLY the benefit here for all developers, is now that Microsoft has "backed" this concept, more managers and decision makers inside of companies will look differently upon using some of these technologies.  A lot of times when developers try and use or push new/"open source" technologies inside their companies, decision makers don't always give fair consideration unless the technology is from Microsoft.  Now that Microsoft has entered the arena, it might give developers more of a chance to put some of these technologies/concepts into use within their companies.


Posted in:   Tags:

Unfortunately due to weather, the Philly Office Geeks meeting was cancelled so I was never able to present about the SharePoint API's.  I was also pretty bummed because I got some pretty funny/geeky T-Shirts made up that I was going to give away after the speech.

On the plus side for you, is that I've placed my presentation slides and code samples up on this site.  The samples consist of a WinForms application that has roughly 12 examples how just SOME of the things that you can do with the SharePoint API.  I think that the samples do a good job of showing you some of the basic concepts around developing against the SharePoint API, as well as get show just how powerful and useful programming against the API's can be.  I frankly could have made up at least another 12 code samples (which I hope to finish and put up in the Code Samples section of this blog).  One of the samples I'd really like to build out is the backup sample.

I believe that the meeting will either be rescheduled, or else I'll present at another one of the monthly meetings, so all my work of preparing for the presentation won't be in vein.

PhillyOfficeGeeksSharePointAPI.zip (1.15 mb)


This post is HOPEFULLY premature and will be HOPEFULLY be updated at a later date. 

I attended the Microsoft Pre-Launch event for Visual Studio 2008 and as with every other person that attended, I was given a wealth of free swag.  The swag included 2 books, both of them focused on using Visual Studio Team Systems and the Agile methodology.  I won't get into the Agile methodology in this post, that's for a later post (but believe me, it's one thats been a long time coming).   Don't get me wrong, I'm not knocking the free swag...free swag is like free food...it has no calories! (Ok, I guess am technically knocking one of the books, but its not the authors persay, its more the principle of the matter)

What I am going to knock, is the lack of anything REMOTELY resembling a useful example, which I will dive into in a moment. 

Just to give you some background, I was skimming through one of the books this weekend and the authors wrote about a mock company that goes the route of adopting the Agile Methodology and in turn, Unit Testing.  Good for the mock company!  Unit testing is a great idea, one that I frankly wish that I was more motived/forced to implement (honestly no sarcasm implied here).  I really buy into the whole idea of unit testing and see how in subsequent iterations, those unit tests give you the piece of mind to walk away at 5PM on a friday and know that the code you changed at 4:59 didn't break anything.

Okay, now that I've let you know that I do indeed believe in Unit testing, here's my beef.  99% of every book/article I've read in the past 2 years on the subject of XP/Agile/Unit testing has given me PISS POOR examples of a unit test and how to implement one.  Such as the free book I recieved with the mock company that adopted the Agile methodology.  Their examples of "unit testing" comprised of "unit testing" a fake class that calculates area.  Don't take this personally, but if you don't know how to calculate area, get yourself back to high school....no....GRADE school.  Honestly, who DOESN'T know how to calculate area?!?!?!  With that being said, area is probably a good example to use to illustrate "unit testing" since everyone knows how to calculate it and how it SHOULD be calcuated.  What it DOESN'T illustrate is anything remotely resembling a "unit test" that I would do in my day to day job dealing with data driven applications!!!!!!!!!!!!!!!!!!!!  It would be NICE for once to see a unit test testing how many rows are in the returned datatable, or how many "widgets" were ordered by company X in June 2006 from the AdventureWorks database (isn't that the point of the AdventureWorks database? A common database that everyone Microsoft oriented is familiar with?).

Can anyone tell me the last time they actually wrote a function to calcuate area?  Probably not since Comp Sci 101 for christ sake!

What I would like to see from books and articles is examples that I can actually apply to my day to day work, not examples that I can apply to shit I probably wrote back in my high school programming class!  Now, I am a person that can openly criticize myself (in fact I PLEAD with you to disagree with me and debate issues!) and I can say that in some of my past postings, and especially presentations, I've presented BASIC examples that most likely anyone could have figured out themselves.  THAT is why I am making it publicly known that I am issuing myself a cease and descest order to simple examples that have no relavence in anyones day to day work.

From here on out, any postings/presentations that I create, I will NOT allow myself to provide people with examples that don't help them in their day to day lives.  I will most likely open with 1 MAYBE 2 easy examples to get the fundamentals out of the way, but after that, it's nothing but examples that you show you "advanced"/"day to day" concepts that you can go and apply moments later.  I myself want to read/hear about examples that I can put to good use, NOT how to do something I've known how to do since grade school!

All the above being said I am planning to "practice what I preach" and in my 2 upcoming presentations give the audience useful examples.  I've noticed in past presentations based on questions and feedback, that I am not presenting information that 75% of the audience doesn't already know.  The 75% of the people in the audience are there to hopefully gain a deeper understanding of the material, which in the past I don't feel that I've fully lived up to.  So come this tuesday (Feb 12th Office Geeks keynote), I plan to present some USEFUL examples to my audience.

 

All the above being said, here are some GOOD examples of articles written that actually give you USEFUL information:

Here are what I find to be some of the WORST examples of articles written that really don't tell you shit about how to use something: 

  • TBD 

Posted in:   Tags:
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2017 Tony Testa's World