New Zealand's new Copyright Law presumes 'Guilt Upon Accusation' and will Cut Off Internet Connections without a trial. is against this unjust law - help us

A Space for All Things .NET Related

GeekPost Monthly Newsletter Volume 2 Issue 1

By James Hippolite, in , posted: 8-Mar-2010 09:59

Geek Post

Volume 2 Issue 1

January 2010

Hippolite Musings

Tena Koutou Katoa,

Last year, I started this newsletter.  I managed 11 weeks before year end.  This was a bit much, so this year I will probably end up doing monthly.  I have two months to catch up on.  Here goes.


Developer News

Grenada Village Online

This is where I continue the saga of documenting my learnings from actually putting a web site "out in the wild" (I usually code within a nice, safe, Intranet).

This month I learned how to actually implement Profile, Membership and Role providers. 

  • The first learning was that there are three providers!
  • Secondly, put it all in the Web.config (see below). 
  • Point all three providers to the one connection string for your application's database. 
  • Then, create all the objects (tables, views & stored procedures) that the Providers expect to find there. 
  • The code for creating a script to generate the objects is this: aspnet_regsql -S (local) -E -A all -sqlexportonly <filename>
<system.web> <profile enabled="true"> <properties> <add name="FirstName" type="string"/> <add name="LastName" type="string"/> <add name="HomePhone" type="string"/> <add name="CellPhone" type="string"/> <add name="StreetNo" type="string"/> <add name="StreetName" type="string"/> </properties> <providers> <clear/> <add name="AspNetSqlProfileProvider" connectionStringName="GrenadaVillageConnection" applicationName="GrenadaVillage" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </profile> <siteMap defaultProvider="default"> <providers> <clear/> <add name="default" type="System.Web.XmlSiteMapProvider" siteMapFile="web.sitemap" securityTrimmingEnabled="true" /> </providers> </siteMap> <membership> <providers> <clear/> <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="GrenadaVillageConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="true" applicationName="GrenadaVillage" requiresUniqueEmail="false" passwordFormat="Hashed" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="1" passwordAttemptWindow="10" passwordStrengthRegularExpression=""/> </providers> </membership> <!-- Set compilation debug="true" to insert debugging symbols into the compiled page. Because this affects performance, set this value to true only during development. --> <roleManager enabled="true"> <providers> <clear/> <add name="AspNetSqlRoleProvider" connectionStringName="GrenadaVillageConnection" applicationName="GrenadaVillage" type="System.Web.Security.SqlRoleProvider, System.Web, Version=, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" /> </providers> </roleManager> <compilation debug="true"> <assemblies> <add assembly="System.Core, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add assembly="System.Xml.Linq, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> <add assembly="System.Data.DataSetExtensions, Version=, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> </assemblies> </compilation> <!-- The <authentication> section enables configuration of the security authentication mode used by ASP.NET to identify an incoming user. --> <authentication mode="Forms"> <forms protection="All" ></forms> </authentication> <identity impersonate="true"/> <!-- The <customErrors> section enables configuration of what to do if/when an unhandled error occurs during the execution of a request. Specifically, it enables developers to configure html error pages to be displayed in place of a error stack trace. <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.aspx"> <error statusCode="403" redirect="NoAccess.aspx" /> <error statusCode="404" redirect="FileNotFound.aspx" /> </customErrors> --> <pages> <controls> <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </controls> </pages> <httpHandlers> <remove verb="*" path="*.asmx"/> <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> <add verb="GET,HEAD" path="ScriptResource.axd" validate="false" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpHandlers> <httpModules> <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> </httpModules> </system.web>

Telecom News

XT has developed a glitch.

People are working on it.

I'm not directly a cause nor a cure for the problem.

We're all being impacted in some way or other.  For example, Production change requests are under closer scrutiny to ensure nothing exacerbates the situation.

That's all I have to say on this subject at this time.

Product News

ReSharper 5.0 for Visual Studio 10

Can't wait to get VS10 RTM, so I can upgrade ReSharper!

Partner News

I met Telecom's new Microsoft Technical Account Manager

His name is Antony Willis.


Situations Vacant

Customer Service Representative- Faults Mobile- 26th April
  • Requisition ID - CUS020ZB
  • NZ-Auckland
  • Permanent - Full-time
  • Job Posting 08/Mar/10
Complex Billing Specialist
  • Requisition ID - INF022CU
  • NZ-Christchurch
  • Permanent - Full-time
  • Job Posting 05/Mar/10
Systems Engineer - Networks
  • Requisition ID - ENG0209K
  • NZ-New Plymouth
  • Permanent - Full-time
  • Job Posting 05/Mar/10

Training News

In January, I sat and passed Exam 70-561
  • TS: Microsoft .NET Framework 3.5, ADO.NET Application Development
  • Should have been easy, but there was a whole lotta extra stuff
  • e.g. Sync Framework, LINQ and ORM with the Entity Framework
Skills Being Measured This exam measures your ability to accomplish the technical tasks listed below. The percentages indicate the relative weight of each major topic area on the exam. Connecting to Data Sources (12 percent) Manage connection strings. May include but is not limited to: using the ConnectionStringBuilder; leveraging the ConfigurationManager; protecting the connection string; using Security Support Provider Interface (SSPI) or SQL Server authentication; correctly addressing the SQL Server instance; managing "User Instance" and AttachDBfilename Manage connection objects. May include but is not limited to: managing connection state, managing connection pool; implementing persistent data connections; implementing Multiple Active Result Sets (MARS); encrypting and decrypting data Work with data providers. May include but is not limited to: limitations, behaviors, performance, installation issues, deployment issues; ODBC, Microsoft OLE DB, SqlClient, managed providers, third-party providers, native providers Connect to a data source by using a generic data access interface. May include but is not limited to: System.Data.Common namespace classes Handle and diagnose database connection exceptions. May include but is not limited to: implementing try/catch handlers Selecting and Querying Data (22 percent) Build command objects. May include but is not limited to: building Parameters collections; using input and output parameters and return values; selecting an appropriate CommandType action; selecting an appropriate Execute method; using the CommandBuilder class; choosing appropriate CommandBehavior Query data from data sources. May include but is not limited to: writing queries to solve assigned problems; implementing data paging; sorting, filtering, and aggregating data Retrieve data source data by using the DataReader. May include but is not limited to: retrieving data from SELECT statements; retrieving data from stored procedures; working with multiple result sets Manage data by using the DataAdapter or the TableAdapter. May include but is not limited to: retrieving data from SELECT statements; retrieving data from stored procedures; working with multiple result sets; working with JOIN products; creating updatable DataAdapters and TableAdapters; modifying TableAdapter Fill methods Execute an asynchronous query. May include but is not limited to: handling asynchronous events Handle special data types. May include but is not limited to: Binary Large Objects (BLOBs); Filestream, Spatial, Table Value Parameters Query data sources by using LINQ. May include but is not limited to: extended method; CLR delegate; lambda expressions; classes of the System.LINQ.Expressions namespace Manage exceptions when selecting data. May include but is not limited to: identifying and resolving syntax errors; security exceptions Modifying Data (24 percent) Manage transactions. May include but is not limited to: selecting an appropriate transaction isolation level; participating in local transactions; participating in distributed transactions; using declarative transactions Manage data integrity. May include but is not limited to: cascading updates or cascading deletes; auto number management; server-generated value management; client-side data validation; business rules, constraints Update data. May include but is not limited to: update data by using stored procedures; update dataSets to data source; managing concurrency Manage exceptions when modifying data. May include but is not limited to: resolve exceptions from data integrity, constraint, or referential integrity violations; data locking conflicts; data collision issues Transform data by using LINQ. May include but is not limited to: aggregation operators; JOIN operator, QUERY operator, LIKE, etc. Synchronizing Data (15 percent) Monitor event notifications. May include but is not limited to: implement notifications by using SqlDependency or SqlNotificationRequest Cache data. May include but is not limited to: SqlCacheDependency, Local Data Cache Manage update conflicts between online data and offline data. Partition data for synchronization. Implement Synchronization Services. May include but is not limited to: SyncAgent, SyncTable, ClientSyncProvider, ServerSyncProvider, SyncAdapter Working with Disconnected Data (16 percent) Manage occasionally connected data. Programmatically create data objects. May include but is not limited to: DataTable; DataSet Work with untyped DataSets and DataTables. May include but is not limited to: populating a DataSet or DataTable Expose a DataTableReader from a DataTable or from a DataSet. Work with strongly typed DataSets and DataTables. Object Relational Mapping by Using the Entity Framework (11 percent) Define and implement an Entity Data Model. May include but is not limited to: mapping schemas and storage metadata; EDM Generator Query data by using Object Services. May include but is not limited to: querying data as objects and shaping results; working with objects; managing the Object Context; customizing objects Map data by using the Entity SQL Language. May include but is not limited to: manually define mapping files; execute an Entity SQL Query by using EntityCommand Access entity data by using the EntityClient Provider. May include but is not limited to: managing EntityConnection; creating EntityCommand; executing a query by using EntityDataReader; managing EntityTransaction

Trainer News

Nothing new



Nothing New


Events Schedule

In this section, I highlight dates, times and venues of events either I am presenting at, or of interest to METTLE.  I'm available for bookings.

Date Event Venue Speaker
11-Jan-2010 First day back at work Telecom Wellington James
19-Jan-2010 Exam 70-561 Auldhouse, Wellington James
25-29 Jan 2010 SharePoint 2010 Ignite for Developers Microsoft, Wellington Wayne Ewington
22-26 Feb 2010 Exchange 2010 Training Auldhouse, Wellington ?
22-Mar-10 Microsoft Visual Studio 2010 Launch All Over The World Various
21-23 April 2010 PASS European Conference Neuss, Germany Various
18-May-10 NZ SharePoint Conference Bay of Plenty Lots


Digging Whales

We had recently moved from Tennessee to Mississippi. Our four-year-old son, Jeep, came home from church one Sunday, excited about the Sunday school lesson. "My teacher taught us all about the whales," he announced.
"You mean Jonah and the whale?" my wife asked.
"No," he said, "Jacob and the whales."
"I think it was Jonah," my wife corrected. "He was swallowed by a whale in the ocean."
But Jeep knew his lesson. "No, it was Jacob. He moved out into the desert and when he got thirsty, he dug some whales."

-Pat Apel, Hazlehurst, Mississippi. Christian Reader, "Kids of the Kingdom."

Other related posts:
Geek Post Monthly Newsletter Volume 2 Issue 11
Geek Post Monthly Newsletter Volume 2 Issue 3
Geek Post Monthly Newsletter Volume 2 Issue 2

Add a comment

Please note: comments that are inappropriate or promotional in nature will be deleted. E-mail addresses are not displayed, but you must enter a valid e-mail address to confirm your comments.

Are you a registered Geekzone user? Login to have the fields below automatically filled in for you and to enable links in comments. If you have (or qualify to have) a Geekzone Blog then your comment will be automatically confirmed and shown in this blog post.

Your name:

Your e-mail:

Your webpage:

JamesHip's profile

James Hippolite
New Zealand

Welcome to my technical blog. 

Here, I attempt to distill the Microsoft Certified Professional Developer knowledge I have accumulated since first qualifying MCP in 1996.  This blog started on 13 September 2007 as an off-shoot from my mixed up personal blog.  But it took a shot in the arm from Scott Hanselman's talk at TechEd New Zealand 08 "32 Ways To Make Your Blog Suck Less".