Արագ եւ Simple: Տրամադրում է վեբ կայք: Օգտագործելով Sharepoint օբյեկտային մոդելի C #

I tried searching for a little snippet code that would show how I can create a new SPWeb in a site collection. I didn’t find it as quickly or easily as I expected so I thought I’d slap together a little entry on the subject.

Այս կոդը ստեղծում է նոր Վիքի կայքը:

 SPSite siteCollection;

    siteCollection = նոր SPSite("Http :/://conchang-o9l8qi");

    SPWeb w = siteCollection.OpenWeb();

    w.Webs.Add("Xyzzy", "Xyzzy վերնագիրը Փնտրել",
        "Xyzzy նկարագիրը", 1033, SPWebTemplate.WebTemplateWIKI, սուտ, սուտ);

Իմ Սկզբնական որոնումները ձախողվեց, քանի որ ես էի փնտրում, արտահայտություններ, ինչպես «դրույթի վեբ կայքը օգտագործելով Sharepoint օբյեկտային մոդելը" and the like.

Եթե ​​դուք որոնել քանզի «Webs.Add()", ձեզ գտնել մի շարք խիստ օգտակար բլոգային գրառումները, MSDN articles and SDK documentation that go into depth on this subject. I definitely recommend Այս կայքը.

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Ինտեգրվել Sharepoint ձեւավորմամբ Workflows է վեբ ծառայություններ

Ինձ խաղալ ամբողջ հետ, մաքսային գործողությունների Sharepoint դիզայներ որոշ ժամանակ (տես այստեղ ոմանց համար մանրամասն կազմի, եթե այդ շահերը ձեզ).

Իմ ներկա նախագծին, we need to do some fairly heavy lifting and we want to use declarative SPD workflow to manage the associated business process.

Երկար պատմությունը կարճ, this is entirely possible. I extended my Codeplex project to invoke a "helper service" and now we can invoke a web service directly from an SPD workflow.

Ահա ստորագրությունը:

 հասարակություն լարային Դիսպետչեր(
        Guid WebID, // Անցել են Runtime միջավայրում
        Guid SiteID, // Անցել են Runtime միջավայրում
        լարային ListID, // Անցել է RTE (Չգիտեմ, թե ինչու սա մի տող, ոչ մի GUID)
        int ListItemID, // Անցել է RTE.
        լարային XmlMessage) // Անցել օգտագործողի կողմից հայտարարված SPD.

Սա լծակները այն փաստը, որ մենք կարող ենք ստանալ կարեւոր աշխատանքի արդյունքում տեղեկություններ, նման կայքում, Ցուցակը ID, եւ այլն:. This is well documented in several places for those of you interested in creating your own custom actions. The idea is to extract the XML string as provided by the user to dispatch an appropriate procedure. Fun stuff!

Տխուր, սա ակնհայտորեն մեկ տոմս ներքեւ "Loosey Goosey" ԱՄՆ - օրինակը հողի, but it’s better than hitting a brick wall 🙂

Արդյոք այն հակա - օրինակ, եթե դուք դա անել, նույնիսկ եթե դուք գիտեք, թե դա հակահայկական օրինակը?

I hope to wrap this inside Codeplex in the near future. If you’re interested in me doing so, Ինձ խառնել (փոստ կամ թողնել մեկնաբանություն) and I’ll be that more enthusiastic about doing it 🙂

</վերջ>

Անդամագրվել իմ բլոգում.

Կիրակի Զվարճալի: “Զարմանում եմ, եթե Ձեր գաղտնաբառը …”

Ես վերջերս գնել ճաշ իմ եղբորը (ըստ սովորության) and we ended up talking about funny things that we did at our respective colleges. At my alma mater, Lafayette College, the academic support IT department had a very inclusive way about it. We were given a LOT of rope and I took advantage of that at times.

Երկու իմ սիրած հիշողությունները կապված են իմ լավ ընկեր, Gabe. He had made the terrible mistake of telling people his freshman year that "I’m a freshman, բայց ես Sophomore կանգնած" շնորհիվ տարբեր առաջատար Գովազդի դասերի է տարել, եւ այլն:. Many of us were similarly situated but we didn’t talk about it so much. His senior year, երբ մենք ներկայացրել նրան մարդկանց, we’d say "This is Gabe. He’s a Senior, but he has Sophomore standing".

The college had some Sun workstation/servers running X-Window. They had gigantic monitors and the engineers used them for CAD and other boring engineer stuff. We CS people used them to learn programming and, Իհարկե, է խաղալ խաղեր.

Մենք չէինք նման համակարգչային անօգնական ինժեներների շատ, այնքան մեր սիրելի բաներ անել, որ պետք է telnet է վանդակում էին եւ վարում X-Eye on them. This would pop up a pair of eyes that followed the mouse around on the screen. You could pop up even more and have literally a dozen or more of the X-eye applications running. Try not to laugh out loud when a hapless engineer is trying to close X-eye after X-eye and muttering under his breath about it 🙂

We also played X-trek on those boxes. Դա, դուք պետք է բեռնել աղբյուրը, get various dependencies wherever you could find them and build it. I wasn’t a sophisticated C programmer, but I could read header files. I was looking through these and found directives like "#DEFINE MAX_TORPEDO_DISTANCE 10". I played around with that increase range and power for phases and torpedoes, կրկին կառուցվել է այն, իսկ հետո քանդվել Gabe հաջորդ անգամ էինք խաղում.

Gabe էր նաեւ մի մեծ երկրպագու է հեռուստատեսային շոու, որը կոչվում է Blake-ի 7. I had never seen it, բայց դա չի խանգարում ինձ պնդելով, որ Dr. Who is the superior show. The arguments would get heated at times 🙂

Մի օր, it occurred to me that I could probably guess his UNIX password. I sat down next to him one day and announced in a loud tone, "I’m going to guess your password right now, Gabe." "Yeah, իրավունք" was his answer. I then logged in, մտան նրա օգտվողին ID -, դիմել է նրան,, տպագրվեն եւ ասաց բարձրաձայն, "I wonder if it’s B-L-A-K-E-7" ? Touch typing has never paid off as handsomely as it did that day.

Հաջորդ շաբաթ (կամ շուտով): More computer room antics from college.

Ունեք որեւէ կիսվել? Leave a comment or email me and I’ll publish them here.

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Փոքր Public Հայտարարություն: Windows Live անվտանգության պարամետրերը, եւ շփումների Տիեզերական սեփականատերերին

Ստանում եմ մի բուռ է հաղորդագրություններից են անհատների միջոցով Ներկառուցված "ուղարկել հաղորդագրություն" ֆունկցիան Microsoft առաջարկում կենդանի բացատների (որը նույնպես ընթանում է իմ սեփական օրագիրը) Ամեն ամիս.

Մոտ մեկ երրորդը ժամանակ, those users have secured their live spaces account such that I cannot reply. This is some kind of anti-spam feature I assume.

</վերջ>

Պարզ բացատրություն: “Value չի ընկնում շրջանակներում սպասվող տիրույթում է.”

ԹԱՐՄԱՑՆԵԼ: An anonymous poster left a great comment about internal names. Be sure to read it.

Երբ աշխատում միջոցառման ստացողի եւ այլ կոդը, որը հղում Sharepoint ցուցակի նյութեր միջոցով օբյեկտային մոդելը, Ես հաճախ սխալներ, որոնք առաջացնում այդ սխալը է: Runtime:

Error բեռնում եւ վազում միջոցառումը ընդունիչ Conchango.xyzzyEventReceiver է xyzzy, Տարբերակ = 1.0.0.0, Մշակույթ = չեզոք, PublicKeyToken = 0dc50a750396c3ac. Additional information is below. : Value does not fall within the expected range.

I think this is a fairly generic error that is potentially caused many different ways. Սակայն, one simple explanation is that I’m referencing a field incorrectly. If the name of the field is "Due Date", Ես պետք է հղում, որ նման այս իրադարձության ստացողի:

properties.ListItem["Due Date"]

Երբ ես տառասխալ անել կամ օգտագործել սխալ դեպքը, երբ հիշատակում դաշտը, SharePoint generates the above mentioned runtime error. Օրինակ,, սա սխալ է:

properties.ListItem["due Date"]

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

End User Quick Tip: Տեսակավորել դիտում փաստաթղթի Գրադարան, Ցուցակ, եւ այլն:.

Մենք կարող ենք, պետք է ստեղծել եւ մի շատ դիտում SharePoint ցուցակներում (Փաստաթղթաշրջանառության գրադարաններ, Պատվերով ցուցակները, եւ այլն:). SharePoint always lists available views in alphabetical order. We cannot change this using out of the box functionality. If it can be done via customization (եւ ես վստահ չեմ, որ այն կարող է), դա հեռու է տեխնիկական ձեր տիպիկ վերջը մասին.

Եթե ​​ցանկանում եք վերահսկել կարգը, որի SharePoint ցուցակներում առկա տեսակետները, պարզապես prepend համար կամ Նամակ դիտիր անունը, ինչպես:

1 – Ըստ նյութական տեսակը
2 – Բոլոր փաստաթղթերը
3 – Due Date

-կամ-

A – Ըստ նյութական տեսակը
B – Բոլոր փաստաթղթերը
C – Due Date

I have also created views whose purpose is strictly to feed a KPI. I have been following this naming convention:

Z_KPI_[նկարագրություն]

That causes my "KPI" դիտում են ներքեւի մասում ցանկում.

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags: ,

Կիրակի Զվարճալի: “Երբ ես փոքր տղա”

Որպես ծնող, somewhere along the line I discovered the "When I was a little boy" trick.

Իմ որդին, հավանաբար չորս կամ հինգ ժամանակ, էր նվագում մի փուչիկ է եւ նման շատ փոքր է, որ տղաների հետ խաղալ փուչիկներով, he popped it. He was very upset. The world had come to an end. I said to him, "when I was little boy, Ես ունեի մի փուչիկ, եւ այն popped եւ, ի վերջո,, I got a new balloon." It seemed to help him cope with his loss and led to a fun talk about what it was like when I was a little boy.

That worked well as a consolation technique and I used it a several times over the next period of time. I did get into trouble once when his Monster Rancher 3 creature died. I talked about how my dog, Իշխան, had died in a car accident. Այս անգամ, նրա պատասխանն էր, "Now I feel bad about two things!" I shied away from using the "when I was a little boy" տեխնիկան եւ մխիթարության հետո.

Նախքան մահացած dog միջադեպի, սակայն, I had also started to use the technique to convince him to do chores. "When I was a little boy, I had to go out and get the newspaper", "clean my room", "get Mommy her coffee cup", եւ այլն:.

Սա էլ էր բավականին հաջող մի քիչ, but he started to increasingly rebel against the tyranny of my childhood. One event, մասնավորապես, marked the end. I told him to bring the garbage cans from curb back to the garage. He argued and I responded, "When I was a little boy, I had to take the garbage back to the garage." He responded, "Oh yeah! Well when you were a little boy, որ STUPID!".

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Views ու սյուները վերաբերյալ ցուցակներում փաստաթղթերի գրադարանների չի կարելի ապահովել

ԹԱՐՄԱՑՆԵԼ (02/29/08): Այս նոր նախագիծը codeplex թվում է ապահովելու մեթոդ ապահովելու անհատական ​​սյունյակները: http://www.codeplex.com/SPListDisplaySetting. If you have any experience working with it, խնդրեմ թողնել մեկնաբանություն.

Ֆորումի հաղորդագրություններ փակցնողները հաճախ հարց նման: "I have a manager view and and a staff view of a list. How do I secure the manager view so that staff can not use it?"

Նրանք նաեւ հաճախակի ուղղել առնչվող հարցեր: "I want to secure a specific metadata column so that only managers may edit that column while others may not even see it."

These answers apply to both WSS 3.0 եւ MOSS:

  • Sharepoint չի ապահովում out-of-the-տուփի աջակցություն ապահովելու տեսակետները.
  • Sharepoint չի ապահովում out-of-the-տուփի աջակցություն անվտանգության սյուների.

There are several techniques one can follow to meet these kinds of security requirements. Here’s what I can think of:

  • Use out-of-the-box item level security. Views always honor item level security configuration. Event receivers and/or workflow can automate security assignment.
  • Use personal views for "privileged" Դիտումներ. These are easy enough to set up. Սակայն, due to their "personal" բնություն, these need to be configured for each user. Use standard security configuration to prevent anyone else from creating a personal view.
  • Օգտագործեք տվյալների դիտեք վեբ մասը եւ իրականացնել որոշակի AJAXy անվտանգության դրվագ լուծմանը.
  • Գլորում Ձեր ցուցակ ցուցադրման ֆունկցիոնալությունը եւ ներառում անվտանգության դրվագ է սյունակի մակարդակով.
  • Փոփոխել տվյալների մուտքի ձեւերը եւ օգտագործման JavaScript տեխնոլոգիա հետ համատեղ անվտանգության մոդելի իրականացնել շարասյունը մակարդակով անվտանգության դրվագ.
  • Use an InfoPath form for data entry. Implement column-level security trimming via web service calls to SharePoint and conditionally hide fields as needed.
  • Գլորում Ձեր ASP.NET տվյալների մուտքի գործառույթ է իրականացնում սյունակի մակարդակի անվտանգության դրվագ.

Ոչ մեկը, այդ տարբերակներից են այդքան մեծ, բայց գոնե մի ճանապարհ է հետեւել, եթե անհրաժեշտ է, նույնիսկ, եթե դժվար.

Նկատի ունեցեք,: Եթե ​​Դուք որեւէ իջնում ​​այդ ուղիները, don’t forget about "Actions -> Open with Windows Explorer". You want to be sure that you test with that feature to make sure that it doesn’t work as a "back door" եւ հաղթել Ձեր անվտանգության համակարգը.

Եթե ​​ունեք այլ գաղափարներ կամ փորձ, ինչպես ապահովող սյունակներում կամ Դիտումներ, խնդրեմ փոստին ինձ կամ թողնել մեկնաբանություններ եւ ես նորացնել հայտարարությունը ինչպես նաեւ համապատասխան.

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Quick Հուշում: BDC ADF տարբերակ թվերը Ձեր Friend

Եթե ​​Դուք ձեռքի կոդավորման ADF ֆայլեր, եւ անում ենք կոդի / ներմուծման / test ցիկլերի, use the version number to make your life easier.

Ես ատում ընդունել այն:, սակայն մինչեւ այս շաբաթ, I was always deleting the ADF and re-importing it. This would break my business data columns and make me re-wire them. All unnecessary.

File this under "it’s obvious once you see it".

Օրինակ:

<LobSystem
xmlns:xsi="http :/://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http :/://schemas.microsoft.com/office/2006/03/BusinessDataCatalog BDCMetadata.xsd" Տիպ="WebService" Տարբերակ="1.2.0.0" Անուն="xyzzyDocumentReview" xmlns="http :/://schemas.microsoft.com/office/2006/03/BusinessDataCatalog">

Փոխել այդ տարբերակը եւ վերագրանցում ներմուծման եւ գործող բիզնես տվյալները շարասյունը օգտագործում է նորացված տարբերակը ինքնաբերաբար առանց լրացուցիչ կարգավորումների պահանջվել.

</վերջ>

Անդամագրվել իմ բլոգում.

Արորդիների Tags:

Լուծում: BDC picker Ցույց միայն մեկ շարասյունը արդյունքները

Իմ ին պատրաստվում փորձերի ապահովելով ավելի օգտակար Փնտրել շարասյունը, օգտագործելով BDC, I hit a wall with the BDC picker. If you haven’t see it, the BDC picker is similar to a people picker except that it works with columns of type "business data".

Դուք մուտք picker սեղմելով բացված գրքի պատկերիկի վրա բիզնես տվյալների սյունակի ինչպես ցուցադրված է:

պատկեր

The above image shows a business data column called "Master Document Id". That column is connected, միջոցով BDC, to a web service. The web service returns two columns of information: Document ID and Title. The business purpose here is to provide a "this document is based on" ֆունկցիա. Users select a "master" փաստաթուղթ, եւ երբ դրանք փրկելու համար, միջոցառում ընդունիչ պատճենները meta տվյալների դաշտերը պարտադիր են Ուղեկցող վարպետի.

Ըստ դեֆոլտի, the BDC picker looks like this when I search for a document whose ID = "38":

clip_image002

Դա օգտակար, but not good enough. People don’t think in terms of IDs, they think in terms of titles and/or other meta data. The picker allows you to search on other columns (e.g. Վերնագիր) բայց չի ցույց փաստացի ցուցակի այն գտել, ուղղակի նրանց DocId ինչ `ինչպես ցուցադրված է այստեղ,:

clip_image002[1]

(Էկրանի անկյունագիծը shot ոչ այնքան մեծ, քանի որ ես չեմ ընտրել այն որոնումը որը վերադառնում որեւէ վավեր արդյունքները, բայց դուք կարող եք տեսնել, որ եթե գտել որոշ արդյունքներ, որ դա ցույց են տվել, DocId ի, ոչ որոնում).

I searched high and low for the answer to this and failed. Իմ գործընկեր, այդ պատվարժան Jonathan Bradshaw, had faced and solved this issue. When I reached out to him for help, Նա նշեց, ինձ ճիշտ ուղղությամբ.

Configure the picker to show multiple columns via the "ShowInPicker" Գույքը է ADF:

<Սեփականություն Անուն="ShowInPicker" Տիպ="System.Boolean">ճիշտ</Սեփականություն>

Ավելի մանրամասն:

  <!-- Վերնագիր -->
  <TypeDescriptor TypeName="System.String" Անուն="Վերնագիր" >
    <LocalizedDisplayNames>
      <LocalizedDisplayName LCID="1033">Վերնագիր</LocalizedDisplayName>
    </LocalizedDisplayNames>
    <Հատկություններ>
      <Սեփականություն Անուն="DisplayByDefault" Տիպ="System.Boolean">ճիշտ</Սեփականություն>
      <Սեփականություն Անուն="ShowInPicker" Տիպ="System.Boolean">ճիշտ</Սեփականություն>
    </Հատկություններ>
  </TypeDescriptor>

Setting this property does introduce a minor problem. As soon as you set it once, you need to set it for every column you want to show. Իմ դեպքում,, BDC picker showed DocId by default. Սակայն, once I added "ShowInPicker" Ինչպես վերնագրի, DocId no longer displayed. I solved that by explicitly setting the ShowInPicker property for Doc ID.

Ահա արդյունքը:

պատկեր

(I’ll explain the odd-looking "168 – CamlSchema.xsd" construction in a future blog post. Մի խոսքով, դա concatenated տողը որը թույլ է տալիս մի փոքր ավելի լավ Օգտվողի փորձ).

Իհարկե, որոնք գրված այս բլոգ - գրառմանը, I just did a search for "ShowInPicker" եւ գտնվել է բազմաթիվ քանակին, այդ թվում `այս մեկը: http://msdn2.microsoft.com/en-us/library/ms583986.aspx. It explains the meaning of that property along with some other good BDC stuff.

</վերջ>

Անդամագրվել իմ բլոգում!

Արորդիների Tags: