| Comments

You take the blue pill and the story ends.  You wake in your bed and you believe whatever you want to believe.  You take the red pill and you stay in Wonderland and I show you how deep the rabbit-hole goes.

well, i took the red pill.

as of around march 7 i'll be working for microsoft.  no, not on the engineering side of things (so i don't have the rigorous interviews that are legend -- although i still had to endure a “day” [note: day=day as in 8-5] of interviews back to back with some whiteboard code questions, etc...but not as detailed as someone in a product role would) but rather on the evangelism side of things.

i'm excited about this new role and hope that i can be successful at it...more later!

| Comments

a second great tool i've been using lately...llblgen pro (www.llblgen.com).

first: our team got sick of saying “LLBLGen Pro” when referring to the tool and the code it generated...so we affectionately named it “cool j“ (yeah, you can see the deduction of the name...started out being ll cool j, etc.)

i consider myself always a skeptic.  i am used to certain things and usually stick to them.  you can imagine my skepticism when a teammate decided we use an ORM tool for data access/code generation.

what!? no way, those things don't work

of course my argument had no weight since i had no evidence to the fact that the ORM tools sucked.  my teammate had evaluated a number of them and found LLBLGen Pro to be the best one out there from a feature/support perspective.

as with any ORM tool, your data model has to be solid...so we spent a lot of time on that.  once completed, “cool j“ interpreted everything and generated the required data access layers for us -- and using them is a breeze.  our project currently has only one stored procedure due to a long running process.

what!? you aren't using stored procs?! are you an idiot? everyone knows in-line sql is stupid, unsecure, hard to support, etc....

that's what i thought as well (again, my comfort zone) until i really did my research.  you see, database is not my strongest point beyond the basics...so i had to see the proof for myself.  well, what i found is that all the arguments for stored procs vs. dynamic sql statements aren't entirely valid and are based on a lot of assumptions of how dynamic sql statements are build and executed. (for a good synopsis, check out: http://www.theserverside.net/news/thread.tss?thread_id=31953)

“cool j” is awesome here.  you see it leverages sp_executesql so that the statements are cached and it uses parameterized queries.  additionally, the dynamic sql generated includes ONLY the updates required, because “cool j” has the capability of understanding what attributes of the entities are dirty and need to be updated.

in a nutshell, i'm a believer.  this tool (along with others: http://timheuer.com/blog/archive/2005/02/11/1670.aspx) has really helped accellerate my development allowing me to concentrate on core business functionality.  yes i'm still comfortable doing certain things my way, but i'm learning more and more about the generated code from “cool j” and ways of making it better based on my designs.

check it out.

| Comments

inspired by scott hanselmen's post about What Great .NET Developers Ought to Know, as well as the rush of interviews i've been conducting lately to fill sharepoint positions, i started compiling a list of questions for what a sharepoint consultant developer/architect (or fill in your own title) ought to know...here it is...

please comment on more questions -- this was my 30 second list that i'll be adding to.

What SharePoint consultants Ought to Know

Everyone who can spell SharePoint

what is SharePoint?
  • what is the difference between SharePoint Portal Server and Windows SharePoint Services?
  • what is a document library?
  • what is a meeting workspace?
  • what is a document workspace?
  • what is a web part?
  • Mid-level SharePoint Consultant

    • what is the difference between a document library and a form library?
    • what is a web part zone?
    • how is security managed in SharePoint?
    • how are web parts developed?
    • what is a site definition?
    • what is a template?
    • how do you install web parts?
    • what is the difference between a site and a web?
    • what are the differences between web part page gallery, site gallery, virtual server gallery and online gallery?
    • what is the GAC?
    • what is a DWP?
    • what is CAML?
    • what are themes?
    • what is presence?
    • can web parts be connected? if so, how?
    • what is a personal view and what is a shared view?
    • what is an STP file?
    • what is an FWP file?
    • can you upload MP3's to SharePoint?
    • how does SharePoint support MS Outlook integration?
    • how can you extend lists in SharePoint?
    • explain the document versioning in SharePoint document libraries

    Senior SharePoint Consultant

    • where are web part resources contained?
    • what are the different installation methods for deploying web parts? and what are the pros/cons?
    • what is a ghosted/unghosted page?
    • how is site data stored?
    • where is metadata for a web stored?
    • what is an audience and describe the use?
    • what are the trust levels and what is the default trust associated with SharePoint?
    • what are the two logging mechanisms for usage statistics?
    • what functionality does owssup.dll provide for client side activities?
    • what is the difference between a site owner and a site administrator?
    • what is STSAdm and what can it be used for?
    • can WSS search subsites?
    • can you register alerts for users?
    • are PDFs searchable?

    SharePoint Architect

    • what is a SharePoint farm?
    • describe a large deployment
    • how can you synchronize custom Active Directory attributes to SharePoint?
    • if it is anticipated that our organization would need to store 1 terrabyte of documents, what is the recommended configuration and storage requirement?
    • describe the implementation of SharePoint and Project Server
    • what are the BKMs for workflow and SharePoint?
    • explain how you would deploy SharePoint on an extranet
    • what is the BKM for maximum number of virtual servers configured for SharePoint on a single box?
    • what are the migration strategies for moving sites around?
    • what are the archiving strategies?
    • describe the search strategies
    • can you implement forms-based authentication with SharePoint?
    • describe how single sign-on works

    | Comments

    after looking at build automation tools like BuildIt.NET and others and looking at the tasks of configuring, etc. as well as the rigidness of what they were build *for*, i began searching elsewhere.

    i was referred to finalbuilder (www.finalbuilder.com)

    i've been playing around with it for a while and really like it.  it integrates with almost all major source control providers as well as common .net “stuff” (like vs.net and reversioning the assemblyinfo file).

    it is really full-featured and i've created automated scripts that get the latest from source control, reversion based on certain variables (timestamps and input params--but this could also be script-based), reversions the assemblyinfo classes for a solution (or individual projects), compiles in a configurable build, copies the new build to a version folder, labels the source control build, uploads the completed (successful) build to a server and notifies someone of completion.

    really cool stuff and super easy to setup and configure.

    if you are looking for build automation, check out www.finalbuilder.com

    | Comments
    frans takes a lash at the argument...good position on both sides: http://www.theserverside.net/news/thread.tss?thread_id=31953