Mga Archive ng kategorya: Uncategorized

SharePoint Pinakamahusay na Kasanayan sa Conference, “Mga Pinakamahusay na Kasanayan,” at ang Elephant sa Room

I was lucky to attend and present at last week’s SharePoint Best Practices conference. I’m still new to the whole speaking "thing" at, nang tapat, I was a bit nervous for the first half while I sweated out waiting to speak myself. That sort of nervous feeling made it a little hard for me to pay attention to the presenters (hindi ko na pinansin ang mga ito). Sa halip, Nakatutok ako nang kaunti pa sa mga dadalo.

Conferences always set my mind racing and there was a lot take in at this one. This conference was excellent. I think it was unusual in several ways. It wasn’t a heavy developer conference. There were certainly dev parts to it, ngunit sa tingin ko ito ay hindi bababa sa 60% nakatuon sa mga di-dev isyu, maybe as high as 80%. I think that speaks to the evolving nature of the SharePoint market. Companies are implementing SharePoint in a variety of ways and they are looking for guidance on how to do it right. And not just guidance on how to create features/solutions (na ngayon sa pamamagitan ng, ay napakahusay itinatag).

I believe the conference was tremendously valuable to most everyone that attended and I know that the organizers plan to do the conference again early next year.

Nagkakaproblema sinabi na, I believe there was a missed opportunity which I hope the next conference addresses. I say it’s a missed opportunity, but that’s not a bad thing. Discovering a community need is in and of itself a good thing. The conference discussed a number of best practices in a variety of areas such as governance, pagsasanay, kinakailangan pagtitipon, hanapin, pag-unlad, impormasyon architecture, at iba pa. I think that the missed opportunity has to do with the "green field" pagpapalagay pinagbabatayan marami sa mga pinakamahusay na kasanayan.

Kapag makipag-usap namin tungkol sa berdeng patlang, we mean that SharePoint hasn’t gone into production and we’re starting with a clean slate. This is ideal because you can start straight away using best practices for defining and managing governance, impormasyon architecture, at iba pa. Gayunman … kung ano ang mangyayari kapag ikaw ay isa sa production na may ilang libong mga gumagamit (or 10’s of thousands) at hindi mo sundin ang mga pinakamahusay na kasanayan sa simula? I’ve seen companies with … ahem … isang napaka- kakaiba information architecture baked into their environment. I don’t think that this conference provided much guidance for organizations with that kind of problem (at hindi ko ibig sabihin lamang IA, ngunit pamumuno, hanapin, marami pang ibang lugar). Talaga, pag-alam mayroon kang problema ay isang malaking bahagi ng solusyon at iyon ay masyadong mahalaga.

I think that the online SharePoint community hasn’t done much to address this either. I know I have not. It’s a very hard problem to solve at many levels. Technically it’s hard. Budget-wise it’s hard. Culturally, it’s hard. Gayunman, it’s probably a bigger real world problem than most. Since the conference ended, I’ve been thinking about these kinds of problems and how one would solve them. There has to be a better answer than, "uninstall and reinstall" at ang komunidad ay kailangang harapin ito sa ulo.

I think that this a great opportunity for the blogging community and experienced thought leaders to lay out some guidance on how to repair their environments. I think there’s a small but non-zero risk that SharePoint could end up with a bad and enduring reputation as a result of poorly architected implementations that fail due to poor governance, IA, at iba pa.

</dulo>

Mag-subscribe sa aking blog.

SharePoint Dashboard Online Seminar

Aking Mga kaibigan online, Mark Miller at sa paglipas ng End User SharePoint (www.endusersharepoint.com) ay tumatakbo sa isang libreng isang oras na naka-target seminar, tulad siya palaging ginagawa, at the SharePoint End User community. It takes place at 1pm EDT. Details are here: http://www.endusersharepoint.com/?p=785

Ko na nakaupo sa sa isa sa kanyang mga online na seminar noong nakaraang buwan at ito ay tapos na lubos na rin at kung ikaw ay interesado sa ilang mga napaka-praktikal na impormasyon sa dashboard sa SharePoint, Ako ba na ito ay nagkakahalaga ng 1 oras na pamumuhunan.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags: ,

FBA at SQL Server: Ang Pag-ibig Story

My colleague has been working on a web part in an FBA environment. Among other things, the web part pulls some data from SQL server. The grand plan for this project dictates that a DBA configures data level security in SQL (as opposed to embedding a user ID in a SQL query or some other approach).

The problem is that SQL server doesn’t know anything about our FBA environment so it can’t trust us. We solved this problem by, para sa kakulangan ng isang mas mahusay na salita, manually impersonating an AD user so that we could connect to SQL such that SQL data level security works.

Even though FBA is an ASP.NET feature, we SharePoint Nation people have taught the various search engines that if you’re querying for FBA, you must mean you want know how to configure FBA in SharePoint. I failed to find find any information on how to enable an FBA oriented ASP.NET application to communicate with SQL in the way we needed.

In the course of researching this, we re-read this article: ASP.NET Impersonation

More research led us to this codproject article: http://www.codeproject.com/KB/cs/cpimpersonation1.aspx

That helped us write our code, which I’ve included below. It’s not the most elegant stuff, ngunit ito ay nagtrabaho. I hope you find it helpful.

Narito ang code na nagtrabaho para sa amin:

protektado void btnSearchCarrier_Click(object sender, EventArgs e)
 {
 sumubok
 {
 ImpersonateUser iU = bago ImpersonateUser();
 // TODO: Replace credentials
 iU.Impersonate("DomainName", "UserName", "Password");

//
 CODE
//

 iU.Undo();
 }
 abutin (Exception hal)
 {

 }
 }

// Using Impersonation class as mentioned below.

publiko klase ImpersonateUser
 {
 [DllImport("advapi32.dll", SetLastError = totoo)]
 publiko statik extern bool LogonUser(
 String lpszUsername,
 String lpszDomain,
 String lpszPassword,
 int dwLogonType,
 int dwLogonProvider,
 ref IntPtr phToken);

 [DllImport("kernel32.dll", Charset = CharSet.Auto)]
 pribado extern statik bool CloseHandle(IntPtr handle);

 pribado statik IntPtr tokenHandle = bago IntPtr(0);
 pribado statik WindowsImpersonationContext impersonatedUser;

 // Kung isama mo ang code na ito sa isang DLL, siguraduhin na hinihiling na ito
 // Nagpapatakbo ng may FullTrust.
 [PermissionSetAttribute(SecurityAction.Demand, Pangalanan = "FullTrust")]
 publiko walang bisa gayahin(string DOMAINNAME, string username, string password)
 {
 sumubok
 {

 // Gamitin ang function na unmanaged LogonUser upang makuha ang token ng user para sa
 // ang tinukoy na user, domain, at password.
 const int LOGON32_PROVIDER_DEFAULT = 0;

 // Pasadong ang parameter na ito ay nagsasanhi sa LogonUser upang lumikha ng isang pangunahing token.
 const int LOGON32_LOGON_INTERACTIVE = 2;
 tokenHandle = IntPtr.Zero;

 // Hakbang -1 Tawagan LogonUser upang makakuha ng handle sa isang token sa pag-access.
 bool returnValue = LogonUser(
 Username,
 pangalan ng domain,
 password,
 LOGON32_LOGON_INTERACTIVE,
 LOGON32_PROVIDER_DEFAULT,
 Property tokenHandle); // tokenHandle - bagong security token

 kung (maling == returnValue)
 {
 int magpabasa = Marshal.GetLastWin32Error();
 Console.WriteLine("LogonUser call failed with error code : " +
 karapatan);
 magtapon bagong System.ComponentModel.Win32Exception(karapatan);
 }

 // Hakbang - 2
 WindowsIdentity newId = bago WindowsIdentity(tokenHandle);
 // Hakbang -3
 impersonatedUser = newId.Impersonate();

 }
 abutin (Exception hal)
 {
 Console.WriteLine("Exception occurred. " + ex.Message);
 }
 }


 /// <buod>
 /// Paghinto ng pagpapanggap
 /// </buod>
 publiko walang silbi ang I-undo()
 {
 impersonatedUser.Undo();
 // Magbakante ang mga token.
 kung (tokenHandle != IntPtr.Zero)
 CloseHandle(tokenHandle);
 }
 }

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Idinadagdag sa ang tradisyonal na kaalaman: SSRS nagsasabi sa Akin “rsAccessDenied”, Pero … MERON ko Talagang May Access

Ilang linggo pabalik, I was working with my developer colleague on a project involving SQL Server Reporting Services plug-in for MOSS. He was developing a web part that provides a fancy front-end to the report proper (ang pangunahing tampok sa pagiging isang matalino lookup sa isang parameter na may ilang libong mga halaga mahahanap sa likod nito).

Ito ay mahusay na gumagana sa kapaligiran ng pagbuo ngunit sa pagsubok user pagtanggap (UAT) kapaligiran, it wouldn’t work. Firing up the debugger, Gusto naming makita ang mga detalye tulad ng pagbubukod na ito:

Ang mga pahintulot na ibinigay sa gumagamit 'UAT_domain mosssvc' ay hindi sapat para gawin ang kilos.(rsAccessDenied).

Kung gagawin mo ang isang live na paghahanap sa itaas error, you find it’s quite common. Scarily common. The worst kind of common because it has many different potential root causes and everyone’s suggested solution "feels" karapatan. We probably tried them all.

Sa aming kaso, the problem was that we had done a backup/restore of DEV to UAT. Somewhere in the data, something was still referring to "DEV_domain" (instead of the updated "UAT_Domain"). We created a new site, Idinagdag ang web bahagi at na malutas ang aming mga problema.

Sana ito ay i-save ang isang tao ng isang oras o dalawang down ang linya.

</dulo>

Mag-subscribe sa aking blog.

Technorati Tags:

Minor Anunsyo ng Pampublikong: Windows Live Mga Setting ng Seguridad at Pakikipag-ugnay sa May-ari ng Space

I receive a handful of messages from individuals via the built-in "send a message" function na ang Microsoft ay nagbibigay ng live na may mga puwang (saan Nagho-host din ang aking blog) bawat buwan.

Tungkol sa isang-katlo ng mga oras, those users have secured their live spaces account such that I cannot reply. This is some kind of anti-spam feature I assume.

</dulo>

Sigurado “Hindi Kilalang Pagkakamali” Mensahe Talagang Mas mahusay na Hihigit Trace Stack?

Ako ay nagbabasa ng blog post Madhur kung paano ito isalansan paganahin ang display trace at ngayon ako nagtataka: bakit hindi kami palaging magpapakita ng isang stack trace?

Sino ang dumating up na may mga panuntunan at bakit namin sundin ito?

End users will know something is wrong in either case. At least with a stack trace, maaari nilang pindutin ang control-printscreen, copy/paste into an email and send it to IT. That would clearly reduce the time and effort required to solve the issue.

</dulo>

Technorati Tags:

Ito ay Bakit hindi ko Nagustuhan Paggamit ng Tool Araw ng Zero

http://groups.google.com/group/microsoft.public.sharepoint.portalserver.development/browse_thread/thread/41e8cbe4f15e8b4c/76506ea401403e35?#76506ea401403e35

Kung ang tool ay paggawa bagay na hindi mo maintindihan at pagkatapos ito nabigo sa hakbang n ng isang hindi kilalang bilang ng mga hakbang, ikaw ay patay sa tubig…

</dulo>

Technorati Tags:

ID ng Kaganapan 1023: “Windows ay hindi maaaring-load ang extensible counter MSSCNTRS DLL”

I-UPDATE (04/08/08): I seem to have solved this problem. From the command line, I ran "c:\windows system32 lodctr / R" bilang sa bawat isang entry ng pakikipag-usap tungkol sa InstallShield problema at na Lumilitaw na malulutas ito para sa akin.

Ako napansin na kanina lamang, my desktop/server fan never turns off. I know it used to turn off. I took a moment to check it out noticed that the a VMware process was running a consistent 20% utilization on one of the CPU’s. I checked the event log and saw these errors in the application log happening dozens of times per minute:

Windows ay hindi maaaring-load ang extensible counter DLL UGatherer, ang unang DWORD sa data seksyon ay ang code Windows error.

Windows ay hindi maaaring-load ang extensible counter DLL UGTHRSVC, ang unang DWORD sa data seksyon ay ang code Windows error.

Windows ay hindi maaaring-load ang extensible counter MSSCNTRS DLL, ang unang DWORD sa data seksyon ay ang code Windows error.

Kung ako mag-drill sa mga detalye ng isa sa mga mensaheng iyon, Nakukuha ko ito:

Pinagmulan: Perflib

Uri: Mali

Kategorya: Wala

ID ng Kaganapan 1023

I did some research and there was some indication it could be a permission problem in terms of access to the DLLs in question. I played around with that stuff but could not affect things in a positive way so I gave up on that.

VMware ay mapag-angil sa akin tungkol sa pagsasagawa ng isang update para sa lubos ng ilang oras, kaya ako jotted down na ang bersyon ko ay naka-install (apparently "1.0.1 build 29996") and did the update. This upgraded me to v1.04. Sadly, hindi ito maayos ang isyu.

I can stop the insane number of messages going to my application log if I shut down a service named "VMware Authorization Service". This prevents me from using the VMware software, kaya … not such a great option.

Ang host na operating system ay Windows XP 64 kaunti.

Hindi sa tingin ko ito ay palaging nangyari, ngunit hindi ko isipin ang anumang partikular na kaganapan na maaaring humantong sa ito.

Ito ang dahilan kung bakit ako mapoot mga computer.

</dulo>

Technorati Tags:

Forum ng Talakayan: Pagpapatupad ng Pinakamahusay na Kasanayan Pagsunod sa mga non-walang halaga Moss Kapaligiran

Ang isang kapwa, "Mark", has started up a potentially interesting newsgroup discussion focusing on "establishing excellent SharePoint Governance from the start" para sa isang 35,000 gumagamit kapaligiran.

Ang mga talakayan ay dito: http://groups.google.com/group/microsoft.public.sharepoint.portalserver/browse_thread/thread/6d9a738d981af772/1c390b15c5407db6?#1c390b15c5407db6

Pop sa ibabaw at mag-ambag!

</dulo>