Rozwiązanie problemu: “FileNotFoundException” Z mojego odbiornikiem funkcji.

Pracowałem na funkcję w zeszłym tygodniu, że dodać kilka odbiorników przypadku wystąpienie określonej listy. (I blogowane trochę o tym tutaj listy odbiornika).

Przy użyciu wiersza polecenia, Z błąd nie może zainstalować funkcję (ale można znaleźć poniżej w ukrytych błąd). Kiedy próbował wdrożyć funkcję na stronie, MOSS spornej "FileNotFoundException" błąd. Ten wpis w blogu zawiera opis jak go rozwiązał.

Jest to błąd, który MOSS pokazał mnie w przeglądarce sieci web:

Funkcja "b2cb42e3-4f0a-4380-aaba-1ef9cd526f20’ nie można zainstalować ponieważ ładowanie zestawu odbiornika zdarzeń "xyzzyFeatureReceiver_0" nie powiodło się: System.IO.FileNotFoundException: Nie można załadować pliku lub wirtualny plik dziennika ' xyzzyFeatureReceiver_0’ lub jednej z jego zależności. System nie może odnaleźć określonego pliku.
Nazwa pliku: "xyzzyFeatureReceiver_0’
w System.Reflection.Assembly.nLoad(AssemblyName nazwa_pliku, Ciąg codeBase, Dowody assemblySecurity, Zespół locationHint, StackCrawlMark& stackMark, Logiczna throwOnFileNotFound, Logiczna forIntrospection)
w System.Reflection.Assembly.InternalLoad(AssemblyName elementu assemblyRef, Dowody assemblySecurity, StackCrawlMark& stackMark, Logiczna forIntrospection)
w System.Reflection.Assembly.InternalLoad(Ciąg assemblyString, Dowody assemblySecurity, StackCrawlMark& stackMark, Logiczna forIntrospection)
w System.Reflection.Assembly.Load(Ciąg assemblyString)
w Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()
OSTRZEŻENIE: Montaż wiązania rejestrowanie jest wyłączone OFF.
Aby włączyć rejestrowanie, ustawić wartość rejestru [HKLMSoftwareMicrosoftFusion!EnableLog] (DWORD) do 1.
Uwaga: Istnieje niektóre kary wydajności związanych z rejestrowanie.
Aby wyłączyć tę funkcję, Usuń wartość rejestru [HKLMSoftwareMicrosoftFusion!EnableLog].

Rozwiązywanie problemów z programem Windows SharePoint Services z.

Wiem, jak celowo spowodować błąd ten: nie należy instalować wirtualny plik dziennika w pamięci podręcznej GAC. Ale, to było w pamięci podręcznej GAC. Normalnie instalowania zestawów w pamięci podręcznej GAC, przeciągając je do c:\windowsassembly folderów przy użyciu Eksploratora windows. Nigdy nie czułem 100% komfortowe robić iż ponieważ zawsze myślę, że gacutil istniały z powodu … tak próbowałem, że. To nie ma różnicy.

Przeszukiwane Internets i znaleźć na stanowisku tym: http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2243677&SiteID=1

Plakat się stało się przy użyciu tych samych bit głównego kodu (z książki wewnątrz WSS z tej listy) tak to było znakiem nadziei. Jednakże, Sugerowanie wykończeniowe Zgromadzenie z [montaż: ] dyrektywy nie ma sensu do mnie. Próbowałem i tak, i miałem rację. To nie ma różnicy.

Potem zauważyłem, że moja definicja klasy nie był publiczny. Zrobiłem to za publiczne i że nie ma różnicy.

Następny, Ja poszedłem do problemów umożliwienia "Zgromadzenie wiązanie awarii dziennik" (w następstwie pomocne i dokładne instrukcje pod warunkiem) i to jest gdzie wszystko zaczęło się ciekawie. Log pokazuje mi, że runtime jest wyszukiwanie wszędzie na tym serwerze do mojego zestawu. To nawet wydaje się być to wyszukiwanie w mojej apteczce. Ale … on nie będzie go wyszukać w pamięci podręcznej GAC.

Umieścić na moim kurtka zimowa i ponownie go do poszukiwania Internets i znaleźć, że ktoś miał ten problem zbyt. Długich dyskusji w tym księgowania peters off na nic i nie może znaleźć rozwiązanie.

Przenoszę mój zespół w jednym z miejsc, które dziennik twierdzi, to jest wyszukiwanie i trochę więcej postęp. Jestem nagrodzone nowy błąd w przeglądarce, podczas ja próbować wobec przyśpieszyć ten cecha:

Nie można utworzyć obiektu odbiornik funkcji z zestawu "xyzzyFeatureReceiver_0", Wpisz "Conchango.xyzzyFeatureReceiver" dla funkcji b2cb42e3-4f0a-4380-aaba-1ef9cd526f20: System.ArgumentNullException: Wartość nie może być zerowy.
Nazwa parametru: Typ
w System.Activator.CreateInstance(Typ, Logiczna nonPublic)
w System.Activator.CreateInstance(Typ)
w Microsoft.SharePoint.Administration.SPFeatureDefinition.get_ReceiverObject()

Rozwiązywanie problemów z programem Windows SharePoint Services z.

Czas na jedną podróż ostatni do Internets!

Tym razem dowiedzieć się, wystarczająco właściwie, że MOSS kwestie ten błąd, ponieważ wirtualny plik dziennika nie jest w pamięci podręcznej GAC.

Chcę, aby uzyskać coś pozytywne z tej i spróbuj się trochę dumny, że została utworzona Ścigany instrukcje MSIL zestawów, ale to nie działa. Jestem po prostu zły. Znalazłem się mrucząc "jajko czy kura" pod my breath.

W końcu zdecydować do punt. I stworzyć zupełnie nowy projekt i Kopiuj/wklej kod z incredible-cloaked-from-the-GAC-assembly projektu pracy nad nowy projekt. (Mam szukać kompilacji flagę o nazwie coś w stylu „Ukryj z zestawu wiążące Jeśli zainstalowany w pamięci podręcznej GAC" ale nie może odnaleźć jednego).

Zainstalować funkcję i go uaktywnić i … to działa! Tak, po tym wszystkim, Miałem na zasadzie "restart’ mój projekt. Jest to kolejny powód dlaczego I hate komputerów.

Dowiedzieć się coś pożytecznego z tego. Miał Instalowanie funkcji przy użyciu wiersza polecenia stsadm cały dzień i zostały z wykorzystaniem "-życie" Opcja z przyzwyczajenia. Z jakiegoś powodu, I nie używać opcji - force gdy zainstalowałem nowego projektu. Tym razem, I did faktycznie, prawdziwie zapominać wobec kopiować ten nowy projekt wirtualny plik dziennika w pamięci podręcznej GAC. W rezultacie, Mimo że odebrano tego FielNotFoundException"" błąd. Tym razem, I got it z stsadm, nie podczas ja wypróbowany wobec przyśpieszyć ten cecha za pośrednictwem przeglądarki sieci web. Tak, -życie faktycznie pełni dwie role. To pozwala ponownie zainstalować funkcję istniejących. To również pozwala na zainstalowanie buggy funkcja, która nie może pracować w czasie wykonywania przez pomijanie błąd. To chyba mówi tyle gdzies w pomocy, ale nigdy nie zauważyłem.

</koniec>

Technorati znaczniki: ,

Sunday Funny: Do góry 10 Sposoby irytacja własną żonę

  1. Kup brokuły, gdy wiadomo, istnieje już więcej niż zadowalającą w lodówki.
  2. Iść do biegać. Ochłodzić się. Zdjąć czyste poduszkę i zastąpić T-shirt. Przykryć czystą poduszkę.
  3. Podczas jazdy, Poproś powinny pójdziemy niewłaściwy sposób dół jednokierunkowego.
  4. Dla 15 lata, każdą niedzielę sugeruje, że żona można odwiedzić Muzeum, Express niespodzianka muzea są otwarte na Sunday's.
  5. Dla 15 lata, od czasu do czasu sugerują będzie w lokalnej księgarni w niedzielę. Wyrazić zdziwienie, że nie są otwarte na niedzielę (Wielkie dzięki Blue ustawowe!).
  6. Wykorzystanie 20 punkty do 3 kolei punkt.
  7. Na chłodny wczesnym popołudniem Fall, wchodzisz do pokoju i włączyć klimatyzację. Skarżą się, że jest zimno. Kiedy żona mówi, "następnie Dlaczego włączeniu który, Silly" i pobiera ją wyłączyć, złapać ciepłe miejsce, które miała na kanapie. Dodatkowe punkty, jeśli ona nie zrealizować można to znacznie później.
  8. Open up może pyszne białego albakory i zjeść ciastko prosto z puszki, na łóżku, W nocy.
  9. Przejdź do kuchni, podczas gdy żona jest jedzenie obiad, otwarcie szuflada na sztućce i pchania kuchenne do żony krzyki, "co szukasz!"
  10. Po otrzymaniu nowej wizytówki, potajemnie umieszczać w całym domu: Pod łóżkiem, w przypadkach poduszka, wewnątrz kawy kubki, w jej portfel, w kieszeni Herb, samochód rękawiczki przedziałów, komorze — wszędzie można myśleć.
  11. Zapisać wpisy blogu o własną żonę.
  12. Budzić.
  13. W trakcie spacerów po ulicach Nowego Jorku, być o alercie dla "chrupiący" obiekty na ziemi. Mając na względzie szczególne obawy własną żonę, osiągną w dół tak, jakby wybierz jedną up up i poproś, "hmm, Zastanawiam się, co to znaczy?" (Być przygotowany do żony do ciała slam ty jakby ona to że agent secret service ochrona prezydenta od snajpera lub ty znajdziesz się na plecach na chodniku).
  14. Dwa razy objedź parkingu szuka miejsca. Wiesz, że już naprawdę hit zapłacić brudu, gdy twój syn na tylnym siedzeniu krzyczy, "Oh nie! On robi ponownie!"
  15. Zapis "10 pierwszych" listy, które nie mają 10 elementy.

===

Premia żona żart:

Dwóch mężczyzn współpracowników wyjść na lunch. Jeden z nich mówi, inne, "Let loose krępujących pomyłkowa innych nocy."

"Pomyłkowa? Co to jest?"

"Dobrze, Kiedy jesteśmy zakończone jedzenie, Kelnerka przyszedł i zadawane jak możemy lubiła naszych posiłków. I oznaczało powiedzieć, "Kocham piersi z kurczaka’ ale zamiast tego powiedział 'Kocham Twoje piersi'. Byłem tak zawstydzony."

"Ah," jego współpracownikiem odpowiedział:. "Miałem to samo co zdarzyć się do mnie w ten weekend z moją żoną. Jedliśmy śniadanie, chciałem zapytać ją przekazać masła, ale zamiast tego I screamed na jej, ' Jesteś zrujnował mi życie!’"

</koniec>

Technorati znaczniki:

Identyfikator zdarzenia 1023: “System Windows nie może załadować biblioteki extensible counter DLL MSSCNTRS”

AKTUALIZACJA (04/08/08): Wydaje mi się rozwiązać ten problem. Z wiersza polecenia, Został uruchomiony "c:\windowssystem32lodctr /R" zgodnie z wpisu o InstallShield problemów oraz że wydaje się rozwiązać go dla mnie.

Zauważyłem który lately, mój pulpit serwera wentylator nigdy się nie wyłącza. Wiem, że kiedyś się wyłączyć. Ja bra³ pewien chwila wobec sprawdzanie ono na zewnątrz zauważyłem, że VMware proces został uruchomiony spójną 20% wykorzystania na jeden z CPU. Sprawdzić dziennik zdarzeń i zobaczyłem te błędy w dzienniku aplikacji dzieje kilkadziesiąt razy na minutę:

System Windows nie może załadować biblioteki extensible counter DLL UGatherer, pierwszy wpis DWORD w sekcji danych jest kod błędu systemu Windows.

System Windows nie może załadować biblioteki extensible counter DLL UGTHRSVC, pierwszy wpis DWORD w sekcji danych jest kod błędu systemu Windows.

System Windows nie może załadować biblioteki extensible counter DLL MSSCNTRS, pierwszy wpis DWORD w sekcji danych jest kod błędu systemu Windows.

Jeśli I drążenie w szczegóły jednego z tych wiadomości, I get to:

Źródła: Perflib

Typ: Błąd

Kategoria: Brak

Identyfikator zdarzenia 1023

Zrobiłem kilka badań i było pewne wskazówki, że może to być problem uprawnień w zakresie dostępu do bibliotek DLL w danym. Bawił się z tych rzeczy, ale nie może wpływać na rzeczy w sposób pozytywny więc dałem się na to.

VMware miał zostały nagging mnie o wykonywanie aktualizacji przez dość długi czas, tak I jotted dół wersja miała po zainstalowaniu (najwyraźniej "1.0.1 budować 29996") i zrobiłem update. To ja ulepszony wobec v1.04. Niestety, nie rozwiązała problemu.

Można zatrzymać szalone liczby wiadomości będzie mój dziennik aplikacji jeśli ja zamykaæ w dó³ usługa o nazwie "Usługa autoryzacji VMware". To pozwala mi z pomocą oprogramowania VMware, tak … nie takie wielkie możliwości.

System operacyjny hosta jest Windows XP 64 nieco.

Myślę, że to zawsze stało, ale nie Przypominam sobie określonego zdarzenia, które mogły doprowadzić do niego.

Dlatego właśnie I hate komputerów.

</koniec>

Technorati znaczniki:

Szybkie & Łatwe: Zmień nazwę załadowany plik przy użyciu Model obiektowy programu SharePoint za pośrednictwem odbiorca zdarzeń

AKTUALIZACJA: To działa, ale istnieją znaczne ograniczenia, które są opisane w komentarzach. To jeszcze może być przydatne w niektórych przypadkach.

AKTUALIZACJA 2: W bieżącym projekcie, użytkownicy zawsze przesłać dokumenty. W rezultacie, Nie ja biegaæ w pewien problem gdzie MS Word pracuje i myśli, że plik został przemianowany na to. Popaść w problem, "plik został zmodyfikowany przez kogoś innego" i rozwiązać to poprzez flagę typu proste semafor. Użytkownik potrzebować wobec zmienić pole danych meta z domyślnej wartości na coś innego. Itemupdated() Odbiornik szuka prawidłowej wartości przed faktycznie świadczącego zmiany nazwy i od tamtego czasu, Nie miał żadnych problemów. Może się wahać.

Mam klienta wymóg, aby zmienić nazwę plików przesłane do określonej biblioteki dokumentów odpowiadają szczególnym konwencji nazewnictwa. API nie podać nazwy"()" Metoda. Zamiast tego, używamy "MoveTo(…)". Tutaj jest trochę minimalny kod, aby osiągnąć:

 publiczne zastępowanie nieważne ItemAdded(SPItemEventProperties właściwości)
        {
            SPFile f = właściwości.ListItem.File;

            f.moveTo(właściwości.ListItem.ParentList.RootFolder.Url + "/xyzzy.doc");
            f.Update();

        }

Trochę trudne, tylko jest "właściwości. ListItem.ParentList.RootFolder.Url". MoveTo() Metoda wymaga adresu URL. Że tłuczone ciąg punktów mnie do głównego folderu mój obecny biblioteki dokumentów. To pozwala mi uniknąć wszelkich twardych kodowania w moim przypadku odbiornika.

To jest bardziej użyteczne wersja, która działa tak samo, ale przypisuje nazwę pliku "Tytuł":

 publiczne zastępowanie nieważne ItemAdded(SPItemEventProperties właściwości)
        {
            DisableEventFiring();

            // Tytuł ten element można przypisać nazwę pliku, sam.
 // UWAGA: Ten przydział musi nastąpić przed możemy modyfikować sam plik.
 // Wywołanie aktualizacji() na SPFile wydaje unieważnia właściwości
 // jakimś sensie.  Aktualizacje "Tytuł" nie powiodło się, dopóki zmienić (i aktualizacja() Wywołanie)
 // zostały przeniesione z przodu zmiany do nazwy pliku.
            właściwości.ListItem["Tytuł"] = właściwości.ListItem.File.Name;

            właściwości.ListItem.Update();

            SPFile f = właściwości.ListItem.File;

            // Pobierz rozszerzenia pliku.  Potrzebujemy który później.
 ciąg spfileExt = Nowy FileInfo(f.Name).Rozszerzenie;

            // Zmień nazwę pliku elementu listy ID i rozszerzenie pliku służy do przechowywania
 // część jego nienaruszone.
            f.moveTo(właściwości.ListItem.ParentList.RootFolder.Url +
                "/" + właściwości.ListItem["IDENTYFIKATOR"] + spfileExt);

            // Zatwierdzić przeniesienie.
            f.Update();

            EnableEventFiring();
        }

Forum dyskusyjne: Wymuszanie najlepszych praktyk zgodności nietrywialne środowiska MOSS

Członkiem, "Znak", rozpoczęła się potencjalnie interesujące dyskusji grupy dyskusyjnej, koncentrując się na "ustanawiające doskonałą zarządzania SharePoint od początku" dla 35,000 środowiska użytkownika.

Dyskusja jest tutaj: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop na nad i przyczyniają się!

</koniec>

Adres URL do własnej działania nie są wyowietlane dla nowych funkcji

Jestem nadal w zwyczaju crafting pliki XML funkcji ręcznie, ponieważ jest to dość nowy do mnie. Nie chcą polegać na narzędzie front-end że robi rzeczy, których nie rozumiem (on powiedział jak napisał wpisu blogu za pomocą narzędzia, który nie rozumie).

Dzisiaj, Ja był trudny wobec dodać niestandardowe działania na stronie Ustawienia, ale to po prostu nie pojawiają się. Można zainstalować funkcję i zobaczyć go w funkcji witryny, ale I uaktywniany (bez błędu) po prostu nie widoczna na menu rozwijanego.

I wreszcie zrealizowane I błędnie napisane "SharePoint" w atrybucie lokalizacji <CustomAction> węzeł. Jest to plik źle elements.xml:

<?XML Wersja="1.0" kodowanie="UTF-8" ?>
<Elementy xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Identyfikator="SiteActionsToolbar"
 Identyfikator GroupId="SiteActions"
 Lokalizacja="Microsoft.SharePoint.StandardMenu"
 Sekwencja="100"
 Tytuł="Cześć!"
 Opis="Menu niestandardowe działania dodawana funkcja."
 ImageUrl="_layouts/images/menuprofile.gif">

    <UrlAction Adres URL="http://www.xyzzy.com"/>

  </CustomAction>
</Elementy>

Dobre:

<?XML Wersja="1.0" kodowanie="UTF-8" ?>
<Elementy xmlns="http://schemas.Microsoft.com/SharePoint/">
  <CustomAction
 Identyfikator="SiteActionsToolBar"
 Identyfikator GroupId="SiteActions"
 Lokalizacja="Microsoft.SharePoint.StandardMenu"
 Sekwencja="100"
 Tytuł="Cześć!"
 Opis="Menu niestandardowe działania dodawana funkcja."
    >
    <UrlAction Adres URL="http://www.xyzzy.com"/>
  </CustomAction>
</Elementy>

That one took me a good two hours to figure out 🙂

Zabrać solace na tym, że niektóre dzień w przyszłości, I be mogli powiedzieć z wyroku skazującego, "back in the day, Musiałem spacerem po trzech mil hill w śniegu (Boso!) Aby wdrożyć niestandardowych funkcji MOSS. Dzieci, nie wiesz, jak łatwe masz! Zjeżdżaj z mojego trawnika!"

Can't wait.

</koniec>

Technorati znaczniki: ,

Statystyka blogu

Myślałem, że niektórzy ludzie mogą być zainteresowani w mój blog statystyki. Można użyć kopalni jako punkt odniesienia do porównania własnego.

Używam mojego bloga na windows żyć przestrzenie. Zbierać statystyki dla mnie i nie wiem, jakiś sposób, aby kontrolować, które. To dobrze, w takim stopniu, w jakim idzie, ale to jest dość ograniczone, że nie można zrobić wiele rzeczywistych analiz z nim. Ja byłby miłość, na przykład, Aby być w stanie wygenerować listę moich najbardziej często trafienie posty, ale nie można tego zrobić bez wygórowane proces ręczny. Jeśli ktoś wie lepiej, Proszę mi powiedzieć.

Live spacje stan tell me: Trafienia ogółem na dzień, licznik odwiedzin na tydzień i sumie hity od dzień zero. To także mówi mi co lud, aby dostać się do mojego bloga (np.. Google, Łącze forum MSDN, itp).

Pod pewnymi względami, "hit" jest oczywiste. Jeśli czytasz zdanie to teraz, niemal z pewnością już zarejestrowano jako pojedynczy hitem.

RSS jest trochę mylące. Z jednej strony, Widzę, że poszczególne hits RSS cały dzień. Ale, Również zobaczyć RSS "wymiata". Skos jest, gdy widzę 20 lub 30 Hits RSS wszystkich w ciągu jednego lub dwóch drugiego okna. Zakładam, że są zautomatyzowane rzeczy jak google sprawdzanie mojej witrynie, być może przeglądarek innych osób … Nie jestem pewien. Są one zdecydowanie pewnego rodzaju proces automatycznego. Nie mogę powiedzieć, Jednakże, jak wielu z moich odwiedzin są zautomatyzowane i ile mają rzeczywisty człowieka po drugiej stronie. Chyba co najmniej 100 hity na dzień są automatyczne.

Do liczb!

27 Lipca I napisał mojego pierwszego wpisu blogu, 2007.

Napisane około 60 wpisy blogu od tego czasu, więcej niż 50 z których bezpośrednio dotyczą programu SharePoint.

Zacząłem śledzić moje trafień w arkuszu kalkulacyjnym codziennie pod koniec września.

Miesięczne rozpoczyna się od:

Pierwszym tygodniu: Trafienia ogółem
Października 1,234
Listopada 2,162
Grudnia 3,071
Stycznia 2008 4,253

Ogółem według miesiąca

Miesiąca Trafienia ogółem
Października 6,620
Listopada 11,110
Grudnia 13,138

Wysokiej wody znaków

Typ Trafienia ogółem
Best Day 958
Najlepszy tygodnia 4,253
Trafienia ogółem ponieważ Day Zero 42,438

Jestem zainteresowany innych’ Statystyki. Jeśli zależy Ci dzielić się w komentarzach, Prosimy!

</koniec>

Technorati znaczniki:

W niedzielę rano śmieszne: “tak, tak, tak. Bla, bla, bla.”

Około sześciu lat temu, mój 4 letni syn i ja byliśmy oglądać na górze Discovery channel "ataków rekinów" specjalne (ewentualnie ten jeden). Był bardzo młody w punkcie i zawsze byłem zaniepokojony, co on może zobaczyć na pokaz jak to i jak on może zająć to. Nie chcę, żeby rozwijać, na przykład, wszelkie szczególne obawy wody lub klepać coś niewłaściwego do jego przyjaciół i ewentualnie spowodować jego przyjaciel dziecka sieci się skruszy.

Odkrycie obsługuje te rodzaje przedmiotów bardzo dobrze. Nie chodzi o tworzenie strach przed czymś, ale raczej pokazują, jak niezwykły jest rekina do ataku na ludzi.

Tak, oglądamy go i tu jest ten jeden szczególnie straszny atak udziałem mała dziewczynka. Jako odkrycie buduje dramat ataku, mój syn (kto zawsze był bardzo nerwowy tak), jest coraz bardzo podekscytowany. I zrobić kilka dźwięków o tym, jak niezwykłe jest rekina do ataku na ludzi, i jak źle Biedna dziewczyna musi czuć się. Jestem stara się wyjaśnić, że ludzie odzyskać od tych wydarzeń i stać się silniejszym za to. Jednakże, Miał błędnie jego podniecenie. On nie martwił się o dziewczynę w ogóle. Zamiast tego, natomiast klaskanie w dłonie, mówi do mnie, "Rekiny kocham go! To wspaniale. On jest cudowny. Jego marzenie się spełni!"

Myślałem, że to było zabawne, ale również bardzo niepokojące. Z jednej strony, Byłem zadowolony — nawet trochę dumny — że mógł mieć silne uczucia empatii, Cross gatunek choć mogą one być. Jako ludzie, musimy rozwijać nasze "empatycznym mięśnie" tak mówią lub będziesz koniec jak Ten facet 🙂 On the other hand, czuje się krzyż gatunków empati wobec gatunek, który był wykazujące zachowanie nie sprzyja do własnej. Był naprawdę walczą z tym gdy narrator używane słowo "paradygmat". Mój syn podniósł się i zapytał mnie, co to znaczy.

To nie jest takie łatwe słowo do opisania do czterech lat, ale ja dał ono pewien próbować. Kiedy myślę o słowo "paradygmat", Thomas Kuhn nie jest nigdy moje myśli. Czytałem Struktura rewolucji naukowych z powrotem na Lafayette i lepiej lub gorzej, słowo "paradygmat" jest w ciąży z dodatkowe znaczenie dla mnie. (Coś w rodzaju słowo "kontakt" po wysłuchaniu głosu film telefon mi powiedzieć, gdzie można zobaczyć Ten film [Myślałem, że książka była lepsza]; Zawsze mówię sobie, "KONTAKT!" kiedykolwiek zobaczyć lub usłyszeć ktoś powiedzieć "kontakt").

Mimo to, Staram się wyjaśnić mu definicję Kuhnian, że jest "to historyczny ruch myśli" i że jest to "sposób myślenia o liczbie wbudowanych założeń, które są trudne do ucieczki dla ludzi żyjących w tym czasie." Oczywiście, nie można mówić jak do czterech lat, więc staram się kolejno zdefiniować go na mniejsze kawałki i uczucie raczej dumny z siebie, jak to zrobić. (Po prostu wiedział że ktoś spoza uczelni obchodzi, że czytałem Kuhn!).

Jestem tylko ocieplenie do tego zadania, kiedy on przerywa mi. Machając ręką w moim kierunku ogólne i nigdy nie biorąc jego oczu od kolejnego ataku rekina brutalne, on po prostu mówi, "tak, tak, tak. Bla, bla, bla.".

So much for that 🙂

W tym momencie, Zdecydowałem się uciec, retorycznie mówiąc, Usiądź wygodnie, i cieszyć się obserwacją rekinów atakować ludzi z mojego syna.

</koniec>

Technorati znaczniki:

Przełącz widok na podstawie identyfikatora użytkownika w formularzu programu InfoPath

Mieliśmy opracowany formularza programu InfoPath, z wielu widoków do obsługi nowych Wynajem / na pokład proces. Kiedy firma wynajmuje nową osobę, dział IT i innych grup trzeba podjąć działania (Konfigurowanie listy płac, umożliwienia dostępu do odpowiednich aplikacji, Zlokalizuj biurko, itp). Używamy na formie, ale inny widok formularza dla każdej z tych funkcji.

W tej firmie, Większość ludzi zaangażowanych w proces biznesowy IT-bystry, więc kiedy oni dostępu do formularza, ich widok domyślny jest "menu" widok z przycisków, które kierują je do ich szczególnych funkcji. Jednakże, nam potrzebne uprościć do bezpośredniego przełożonego wynajem nowy. Ta osoba nie powinna zobaczyć rzeczy związanych z IT. W zasadzie, ona powinna zobaczyć tylko jeden widok formularza i nawet nie ma opcji aby zobaczyć inne poglądy.

W naszym przypadku, bezpośrednie Menedżera konta jest bezpośrednio powiązana z postaci dzięki uprzejmości skontaktować się selektora (co jestem zawsze chcą nazwać "ludzie picker" z jakiegoś powodu).

Kroki są następujące:

1. W trybie projektowania, Przejdź do menu Narzędzia-> Opcje formularza-> Otwieranie i zapisywanie.

2. Wybierz "zasady".

3. Utwórz nową regułę, w której akcja jest "Przełącz się na widok" i którego stan wykorzystuje nazwę użytkownika() Funkcja.

Nazwa użytkownika() zwraca "simple" Nazwa użytkownika bez domeny. Czy zalogować się do programu SharePoint przy użyciu poświadczeń "domainpagalvin", Nazwa użytkownika() zwraca wartość "pagalvin".

Kontakt z selektor zawiera trzy bity informacji o kontakt. "AccountID" część jest najbardziej przydatne dla tego scenariusza. Jedyną rzeczą, która sprawia, że jest to nawet trochę z wyzwaniem jest to, że kontakt z selektora (w moim środowisku tak) zwraca identyfikator domeny i użytkownika, Podobnie jak w "domainpagalvin". To zabezpiecza nas przed tym warunku równości prosta od AccountID ("domainpagalvin") nigdy nie będzie równa użytkownika() ("pagalvin").

My puszka metalowa dostać wokoło ten za pomocą "zawiera" operatora: AccountID zawiera nazwę użytkownika().

Możemy go dalej i pre-pend zakodowane domeny przed nazwa użytkownika() funkcja, aby sprawdzić nasze równości i wyeliminować ryzyko pewien fa³szywy pozytywny na zawiera operator.

Mamy naprawdę jak automatyczne przełączanie widoku dla innych użytkowników na podstawie ich członkostwa grup zabezpieczeń AD. Na przykład, gdy członek "to Analytics" Grupa uzyskuje dostęp do formularza, automatycznie Przełącz do widoku IT Analytics. Nie mieliśmy czasu, aby je wdrożyć, ale moja pierwsza myśl jest stworzenie serwisu, który miałby Metoda jak "IsMemberOfActiveDirectorySecurityGroup", przekazać nazwę użytkownika() i Powrót powrót true lub false. Ma ktoś inne, Więcej sprytny pomysł? Jest tam dowolnej funkcji programu SharePoint, które możemy wykorzystać z programu InfoPath do tego ustalenia?

</koniec>

Technorati znaczniki:

Przypadkowo dodanie kodu do formularza programu InfoPath; Celowo to usunięcie

Podczas pracy z przycisków na formularzu, często dodajemy zasady. Dostęp do edytora zasad z właściwości przycisku.

Po kliknięciu w okolicy: szybko, łatwo przypadkowo kliknąć na "Edytuj formularz kod" zamiast "zasad …".

Po raz pierwszy zrobił to, Anulowane, z edytora kodu. Jednakże, Kiedy próbował opublikować formularz trochę a później, jest wymagane, aby opublikować jako szablonu formularza zatwierdzonego przez administratora" (Zaawansowane)". Faktycznie nie każdy programowania i absolutnie nie chce przejść przez proces zatwierdzania niepotrzebne. Byłem trochę paniki w tym czasie ze względu na ograniczenia czasowe. Aby ominąć to, Po prostu przywrócić poprzedniej kopia zapasowa i nadal. Niedawno widziałem kilka blogu o ludzi wchodząc w postaci XML, aby dostosować rzeczy i bałem się, że będę musiał zrobić coś podobnego.

Dzisiaj, Zrobił to jeszcze raz. Tym razem, Miał trochę więcej czasu na moje ręce i znalazłem, że można łatwo cofnąć to.

Przejdź do:

Narzędzia-> Opcje formularza-> Programowanie: "Usuń kod"

To nie dostać dużo łatwiej niż.

</koniec>