კატეგორია არქივი: SharePoint გადაწყვეტილებები დიზაინი

აღების “mailto:” Metrics

I’m on a project where we need to collect metrics around a function named "Share a Story." The idea is very simple — თუ თქვენ ეძებს საინტერესო სტატია ინტრანეტით და უნდა, რომ იგი ვინმე, click a link labeled "Share this story" ელ ეს თქვენს buddy.

ჩვენ ითამაშა გარშემო საბაჟო ფორმით ამ მიზნით, თუმცა საბოლოოდ, საღი აზრი მოიგო დღეს და ჩვენ უბრალოდ გამოიყენოთ ნაცნობი <ტექნიკური კონფერენცია mailto:…> technique. (<href mailto:…> არის გასაკვირი ძლიერი ცოტა HTML; პრემიის სახით, ბმული მოაქვს ჩემს უკან ჩემი ძველი UNIX ადამიანი გვერდები დღით; აღნიშნული ინფორმაცია იყო დღის განმავლობაში!).

ეს ტექნიკა უზრუნველყოფს დიდი ინტერფეისით ბოლოს წევრებს, რადგან ისინი მისაღებად გამოიყენონ მათ იცნობს MS Outlook კლიენტს (ან რაც ელფოსტის კლიენტს დამონტაჟებულია).

რაც რამ უფრო რთული ჩვენზე ცუდი დეველოპერი სახის, რადგან ისინი კლიენტს * ასევე * სურს აწარმოებს ანგარიში მომავალში, რომელიც აჩვენებს რამდენად ხშირად წევრებს წილი მოთხრობები და კიდევ რაც ისტორიები გაუზიარეს ყველაზე ხშირად.

We whiteboarded a few potential solutions. My favorite is to carbon copy (CC) a SharePoint list. That way, the end user still gets the outlook client while we get to capture the event because we’ll get a copy of the email ourselves. There are some obvious drawbacks. The main problem is that the user could simply blank out or otherwise mangle the CC address. ხოლო, we need to manage that event library of emails. We have a scheduled job on the white board responsible for that cleanup.

თუ გაქვთ ჭკვიანი მიდგომა პრობლემის მოსაგვარებლად, გთხოვთ, ვუთხრა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

განსაზღვრა “დიდი” SharePoint მოთხოვნები

მოთხოვნით და პირობა დადო, I’ve uploaded my presentation on how to obtain "great" requirements from end users for SharePoint projects and implementations. It’s here: http://cid-1cc1edb3daa9b8aa.skydrive.live.com/self.aspx/SharePoint/Paul% 20Galvin% 20Great% 20Requirements.zip

მე გადავეცი ამ დროს SharePoint საუკეთესო პრაქტიკა კონფერენცია Feb 2009 (www.sharepointbestpractices.com). If you attended the conference, თქვენ ასევე მიიღოს ამ კონფერენციაზე DVD.

The presentation includes a lot of notes with most slides. It’s not just bullet points.

(აგრეთვე აქ ჩემი სხვა პრეზენტაცია მმართველობის საქმის შესწავლის: http://paulgalvin.spaces.live.com/blog/cns!1CC1EDB3DAA9B8AA!3099.entry

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

თვითმმართველობის სამსახურის საიტის შექმნის არის ზუსტად არ შექმნის თაობაზე საიტები

ბევრი SharePoint კონსულტანტი ტიპის, I’ve been exposed to a lot of SharePoint functionality. ზოგიერთი ჯერ, I dive pretty deep. Other times I just notice it as I’m flying by to another set of menu options. One of those is "self-service site creation." I haven’t had a need for it until this week.

ამ კვირაში, I need to solve a business problem which I think is going to become more common as companies loosen up and embrace more direct end user control over SharePoint. ამ შემთხვევაში, I’ve designed a site template to support a specific end user community. Folks in this community should be able to create their own sites at will using this template whenever the urge strikes them.

I recalled seeing "self-service site creation" before and I’ve always tucked that away in the back of my head thinking that "self service site creation" is SharePoint lingo meaning, obviously enough, something like "turn me on if you want end users to be able to create sites when they want to."

ასე რომ,, I turn it on, try it out and for me, it’s not creating sites. It’s creating site collections. Pretty big difference. That’s not what I want, not at all.

It is possible to let end users create new sub sites via a custom permission level. This is exactly where I would have gone in the first place except that the label "self-service site creation" label deceived me. Via twitter, I learn that it’s deceived others as well 🙂

I’m still working out how to provide a little bit of a more streamlined process while staying purely out of the box, but there’s a definite path to follow. Just don’t get distracted by that label.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

პროგრამები Tags:

Spinning დროებითი ვირტუალური WFE არის გართობა და მოგების

მე ვიყავი ერთ ერთი 20 ან 30 (ან იქნებ 100?) panelists ღამის New York SharePoint წევრი Group meeting. Instead of the usual presentation format, ეს იყო ყველაფერი Q&A between the audience and the panel members. Early on, მაიკლ Lotter გამაცნო ახალი იდეა და მინდოდა იზიარებს.

An audience member described how his company had paid a consultant to write an application for his company. The consultant wrote it as a console application using the SharePoint object model. შედეგად, this meant that the program had to be run on a server in the farm. This meant that anyone that wanted to use the app would have to log onto the server, do the work and log off. თავიდან, ეს არ იყო პრობლემა, მაგრამ მალე, უფრო და უფრო მეტი (არატექნიკური) users needed to use the utility. His question was (პერეფრაზირებას ვახდენ):

"What are my options? I don’t want to keep letting users log directly onto the server, მაგრამ მათ სჭირდებათ, რომ ფუნქცია."

მაიკლ Lotter ვარაუდით, რომ ის კონფიგურაციის ახალი ვირტუალური მანქანა, join it to the farm as a WFE and let users run the application from there.

This is a pretty stunning idea for me. Generalizing this solution brings to mind the notion of essentially temporary, almost disposable WFE’s. I think it’s a pretty neat concept. This temporary WFE can run a console application that uses the SharePoint object model. You could also use it to run stsadm commands. It doesn’t have to be part of regular local balancing. If it goes down or gets wrecked, you can just spin up a new one. I repeat myself, მაგრამ მე მხოლოდ უნდა ვთქვა, რომ ვფიქრობ, ეს მართლაც გარღვევა იდეა.

</ბოლო>

გამოწერა ჩემი დღიური.

გამომყვეს Twitter-ზე http://www.twitter.com/pagalvin

პროგრამები Tags:

მასშტაბური MOSS დოკუმენტაციის მართვის პროექტები: 50ლ დღეში, 10 მილიონი სულ

ეს გასული კვირის, ვინმეს კითხვაზე შემუშავების შესახებ SharePoint გარემო, რომელიც ხელს ამუშავებს საკმაოდ დიდი მოცულობის ახალი დოკუმენტები (10,000 +/- ამ შემთხვევაში). I don’t know much about this, მაგრამ thanks to this white paper, ვგრძნობ ბევრად უკეთესი ინფორმირებული.

ჩემთვის, this white paper is pretty much just a book mark at the moment, but I did start reading through it and thought I’d highlight my main take-away. SharePoint can be scaled to handle, at a minimum, this load:

  • 50k new documents per day.
  • 10 million documents total.

I write the 50k/10MM figures because they are easy enough to remember. As long as you know they are minimums, you won’t get into trouble. The maximums are at least 10 percent higher than that and with extreme tuning, possibly a lot higher.

მადლობა, Mike Walsh, once again for his weekly WSS FAQ updates and corrections post. If you’re not subscribed to it, you should seriously think about doing it.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags: ,

შენახვა ძველი საოფისე ფაილები SharePoint გამოყენება WebDAV — პრობლემები და აფიქსირებს

გასულ კვირასაც, ჩემი კოლეგის and I were doing some work for a client in NYC. We were testing a different aspects of a MOSS implementation using their "standard" სამუშაო მშენებარე (განსხვავებით ჩვენი ლაპტოპები). While doing that, ჩვენ შეუვარდნენ რამდენიმე შეცდომები, უნდა შეასრულოთ შემდეგი:

  • გახსენით MS Word დოკუმენტის მეშვეობით Windows Explorer (რომელიც იყენებს WebDAV).
  • გააკეთეთ ცვლილება.
  • გადავარჩინოთ ეს.

მოვედით გააცნობიეროს, რომ ზოგიერთი ჯერ (როგორც წესი, პირველად) ჩვენ გადავარჩინეთ დოკუმენტი, the save didn’t "stick." Save did not save. We would pull that document back up and our changes simply were not there.

ჩვენ არ გვესმის, ძირეული საკითხი ამ ეტაპზე, but we figured that we should make sure that the latest MS Office service pack had been installed on that work station. The IT folks went and did that. We went through the test again and we discovered a new problem. When we saved it, ჩვენ ახლა მოხდა ეს შეცდომა:

იმიჯი

ამჯერად, როგორც ჩანს, როგორც ყველა ცვლილება, სინამდვილეში, შენახული, whether we answered Yes or No to the scripts question.

ჩვენ საბოლოოდ ჰქონდა შევხედოთ ფაქტობრივი მობილური ოფისი და აღმოჩნდება, რომ სამუშაო გადიოდა საოფისე 2000 მომსახურების პაკეტი 3 რომელიც გვიჩვენებს up ქვეშ დახმარება -> About as "Office 2002".

მორალური ამბავი: მე ყოველთვის გამოიყენოთ ოფისი 2003 როგორც ჩემი მინიმალური საბაზისო საოფისე მობილური გამოყენებისას WebDAV და MOSS.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

(იყიდება საძიებო სისტემა მიზნებისათვის, ეს შეცდომა ის ტექსტი):

ხაზი: 11807

ჩარ: 2

შეცდომა: ობიექტის მხარს არ უჭერს ამ ქონების ან მეთოდი

კოდექსის; 0

მისამართი: http://sharepoint01/DocumentReview/_vti_bin/owssvr.dll?location=Documents/1210/testworddocument.doc&dialogview=SaveForm

გნებავთ გაგრძელდება გაშვებული სკრიპტები ამ გვერდზე?

SharePoint მიგრაციის რჩევა: გამოყენება “untagged მონაცემები” ნახვა იყიდება დამატებითი მიგრაციის

ერთ ან ჩემი პირველივე დღიურში შეტყობინება, I აღწერილი საერთო პროცესში ჩვენ მოჰყვა მიგრაცია დამკვეთის მხრიდან SPS 2003 to MOSS. A reader left a comment asking for more detail and here it is.

ამისათვის მიგრაციის პროექტი, ჩვენ გვქონდა, რათა იპოვოს კარგი გზა უნდა გადავიდეს ბევრი SPS 2003 documents over to MOSS. The initial load was easy enough. Create a new target document library in MOSS and use windows explorer to move the documents.

ეს არის ახალი დოკუმენტის ბიბლიოთეკა:

იმიჯი

Open up two windows explorers. Point the first at SPS 2003 and the second at the new document library in MOSS. The following screen shot shows this. Note that the top browser is actually pointing at my c:\დროებითი დისკზე, მაგრამ თქვენ წარმოიდგინეთ ეს მიუთითებს SPS 2003 დოკუმენტის ბიბლიოთეკა:

იმიჯი

ამის შემდეგ გადააადგილება ოპერაცია, ჩემი სამიზნე ასე გამოიყურება:

იმიჯი

Now it’s time to deal with the metadata. Assume we have just one column of metadata for these documents named "location." We can see from the above "all documents" view that the location is blank. It’s easy enough to use a data sheet view to enter the location, or even go into each document’s properties one by one to add a location. Let’s assume that there is no practical way to assign the location column a value automatically and that end users must do this by hand. უფრო მეტიც, მოდით ვივარაუდოთ, რომ არსებობს ასობით დოკუმენტის (იქნებ ათასობით) and that it will take many many days to update the metadata. As we all know, no one is going to sit down and work for four of five days straight updating meta data for documents. ამის ნაცვლად, they will break that out over a period of weeks or possibly longer. To facilitate this process, we can create an "untagged data" ნახვა როგორც ნაჩვენებია:

იმიჯი

ახლა, როცა ვინმე ზის ქვემოთ გაატარონ გამოყოფილი ყოველდღიურად საათში ან ორი tag მიგრაცია დოკუმენტები, they can use the "untagged documents" სანახავად ფოკუსირება მოეხდინა ძალისხმევა:

იმიჯი

როგორც წევრებს tag დოკუმენტები, მათ ჩამოაგდეს off ამ სიაში.

This notion of an untagged data view can also help with a class of data validation problem people inquire about on the forums. იმ ყუთში, there’s no way to prevent a user from uploading a document to MOSS and then not enter meta data. We can specify that a particular site column is mandatory and the user won’t be allowed to push the save button. თუმცა, თუ მომხმარებელი ატვირთვები და შემდეგ იხურება ბრაუზერი (ან იყენებს Windows Explorer ატვირთვა დოკუმენტი), ჩვენ არ შეგვიძლია ძალით შესახებ შესვლის მეტა მონაცემები (ერთხელ, იმ ყუთში).

This approach can be used to help with that situation. We can use a "poorly tagged data" view to easily identify these documents and correct them. Couple this with a KPI and you have good visibility to the data with drill-down to manage these exceptional circumstances.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

MOSS პატარა მეურნეობა მონტაჟი და კონფიგურაცია ომის ამბავი

ამ კვირაში, I’ve struggled a bit with my team to get MOSS installed in a simple two-server farm. Having gone through it, მე მაქვს უფრო დიდი მადლიერება სახის პრობლემები ხალხს ანგარიშს MSDN ფორუმი და სხვაგან.

საბოლოო ფერმის კონფიგურაციის:

  • SQL / ინდექსი / ინტრანეტის WFE შიგნით firewall.
  • WFE ამ DMZ.
  • გარკვეული firewall შორის DMZ ​​და შიდა სერვერზე.

სანამ ჩვენ დავიწყეთ პროექტის, we let the client know which ports needed to be open. During the give and take, წინ და უკან გამო, რომ, ჩვენ არასოდეს ღიად განაცხადა, ორი მნიშვნელოვანი რამ:

  1. SSL ნიშნავს გჭირდებათ მოწმობა.
  2. The DMZ server must be part of a domain.

Day ერთი, we showed up to install MOSS and learned that the domain accounts for database and MOSS hadn’t been created. To move things along, we went ahead and installed everything with a local account on the intranet server.

ამ ეტაპზე, ჩვენ აღმოვაჩინეთ, დაბნეულობა მეტი SSL მოწმობა და, სამწუხაროდ, decided to have our infrastructure guy come back later that week to continue installing the DMZ server. In საშუალო დრო, ჩვენ გადაწყვეტა არქიტექტორები გადავიდა დააჩქაროს ბიზნეს პერსონალი.

კვირის ბოლოს გადის და დამკვეთი იღებს მოწმობა.

ჩვენი ინფრასტრუქტურა ბიჭი გვიჩვენებს up და აღმოაჩენს, რომ DMZ სერვერზე არ შეუერთდა არც ერთი domain (ან პერიმეტრზე domain შეზღუდული ნდობის ან ინტრანეტის domain). We wasted nearly a 1/2 დღეს, რომ. If we hadn’t let the missing SSL certificate bog us down, we would have discovered this earlier. Oh well….

მეორე დღეს გადის და სხვადასხვა უსაფრთხოების კომიტეტების, დაინტერესებულ მხარეებს და (არც თუ ისე) უდანაშაულო bystanders ყველა თვლის, რომ ეს OK შეუერთდეს DMZ ​​სერვერზე ინტრანეტით domain (ეს POC, შემდეგ, არ პროდუქციის გამოსავალი).

Infrastructure guy comes in to wrap things up. This time we successfully pass through the the modern-day gauntlet affectionately known as the "SharePoint Configuration Wizard." We have a peek in central administration and … Yee Haw! … DMZ server is listed in the farm. We look a little closer and realize we broke open the Champaign a mite bit early. WSS services is stuck in a "starting" სტატუსი.

დიდხანს სიუჟეტი მოკლე, it turns out that we forgot to change the identity of the service account via central administration from the original local account to the new domain account. We did that, ხელახალი გაიქცა კონფიგურაციის ოსტატი და voila! We were in business.

</ბოლო>

გამოწერა ჩემი დღიური.

პროგრამები Tags:

სასწავლო Hard Way — DMZ WFE უნდა იყოს დომენის

მიუხედავად იმისა, რომ ეს არ არის სიტყვის ჭეშმარიტი, როგორც პრაქტიკული საკითხია, ინტერნეტ მიმართულ ვებგვერდი წინ დასრულდა DMZ უნდა იყოს domain (i.e. არა standalone სერვერზე თავისი პატარა სამუშაო ჯგუფი). It doesn’t need to be in the same domain as the internal WFE(s) და სხვა სერვერები (და ალბათ არ უნდა), but it needs to be a domain.

My colleagues and I spent an inordinate amount of time on a proposal which included SharePoint pre-requisites. This included a comprehensive list of firewall configurations that would enable the DMZ server to join the farm and so forth. სამწუხაროდ, we failed to add a sentence somewhere that said, to the effect, "the whole bloody point of this configuration is to allow your DMZ WFE server, in a domain, to join the internal farm."

A perfect storm of events, where we basically looked left when we might have looked right, conspired to hide this problem from us until fairly late in the process, thus preventing me from invoking my "tell bad news early" rule.

Sigh.

გამოწერა ჩემი დღიური.

პროგრამები Tags:

განმახორციელებელი ოსტატი / დეტალური ურთიერთობები გამოყენებით საბაჟო სიები

Forum users frequently as questions like this:

> გამარჯობა,
>
> გთხოვთ მითხრათ თუ არსებობს რაიმე საშუალება აშენება საბაჟო სიაში
> სამაგისტრო და დეტალურად ტიპის (ისევე როგორც ანგარიშფაქტურების) without using InfoPath.
>

SharePoint უზრუნველყოფს ზოგიერთი იმ ყუთში თვისებები, რომ მხარს ვუჭერთ სახის ბიზნესის მოთხოვნებს, როგორიცაა, რომ.

ზოგადად, one links two lists together using a lookup column. List A contains the invoice header information and list B contains invoice details.

Use additional lists to maintain customer numbers, product numbers, და ა.შ..

Use a content query web part (in MOSS only) and/or a data view web part to create merged views of the lists. SQL Server Reporting Services (SRS) is also available for the reporting side of it.

თუმცა, there are some important limitations that will make it difficult to use pure out-of-the-box features for anything that is even moderately complex. These include:

  • Size of related lookup lists vs. "smartness" of the lookup column type. A lookup column type presents itself on the UI differently depending on whether you’ve enabled multi-select or not. In either case, the out-of-the-box control shows all available items from the source list. If the source list has 1,000 ნივთები, that’s going to be a problem. The lookup control does not page through those items. ამის ნაცვლად, it pulls all of them into the control. That makes for a very awkward user interface both in terms of data entry and performance.
  • Lookups "pull back" one column of information. You can never pull back more than one column of information from the source list. მაგალითად, you cannot select a customer "12345" and display the number as well as the customer’s name and address at the same time. The lookup only shows the customer number and nothing else. This makes for an awkward and difficult user interface.
  • No intra-form communication. I’ve written about this here. You can’t implement cascading drop-downs, conditionally enable/disable fields, და ა.შ..
  • No cascading deletes or built-in referential integrity. SharePoint treats custom lists as independent entities and does not allow you to link them to each other in a traditional ERD sense. მაგალითად, SharePoint allows you to create two custom lists, "customer" and "invoice header". You can create an invoice header that links back to a customer in the customer list. მაშინ, you can delete the customer from the list. იმ ყუთში, there is no way to prevent this. To solve this kind of problem, you would normally use event handlers.

It may seem bleak, but I would still use SharePoint as a starting point for building this kind of functionality. Though there are gaps between what you need in a solution, SharePoint enables us to fill those gaps using tools such as:

  • თარიღის ელფოსტის. Use them to enforce referential integrity.
  • Custom columns: Create custom column types and use them in lieu of the default lookup column. Add paging, buffering and AJAX features to make them responsive.
  • BDC. This MOSS-only feature enables us to query other SharePoint lists with a superior user interface to the usual lookup column. BDC can also reach out to a back end server application. Use BDC to avoid replication. Rather than replicating customer information from a back end ERP system, use BDC instead. BDC features provide a nice user interface to pull that information directly from the ERP system where it belongs and avoids the hassle of maintaining a replication solution.

    BDC is a MOSS feature (not available in WSS) and is challenging to configure.

  • ASP.NET web form: Create a full-featured AJAX-enabled form that uses the SharePoint object model and/or web services to leverage SharePoint lists while providing a very responsive user interface.

The last option may feel like you’re starting from scratch, but consider the fact that the SharePoint platform starts you off with the following key features:

  • Security model with maintenance.
  • Menu system with maintenance.
  • "Master table" (i.e. საბაჟო სიები) with security, built-in maintenance and auditing.
  • ძიება.
  • Back end integration tools (BDC).

If you start with a new blank project in visual studio, you have a lot of infrastructure and plumbing to build before you get close to what SharePoint offers.

I do believe that Microsoft intends to extend SharePoint in this direction of application development. It seems like a natural extension to the existing SharePoint base. Microsoft’s CRM application provides a great deal of extensibility of the types needed to support header/detail application development. Although those features are in CRM, the technology is obviously available to the SharePoint development team and I expect that it will make its way into the SharePoint product by end of 2008. If anyone has an knowledge or insight into this, გთხოვთ დატოვოთ კომენტარი.

</ბოლო>