Code Camp is coming to Colorado#

Code Camp is a great way for the dev community to share and learn information that is interesting to them.  I have attended two (Seattle and Portland) and I’m looking forward to participating in this one.

For more details go to http://frontrangecodecamp.com/.

Monday, February 27, 2006 3:20:04 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Two days of sitting and all I got was a SCRUM Master Cert#
The last two days I have been in SCRUM Master training, it was a lot of sitting.  I like to measure training based on if I know more going out than I did going in.  Even though it was long and sometimes boring I did know more going out than going in.  For me I could of gotten the information I did in a half day but it took two days, oh well in the past now.  If you have read any books on SCRUM then the first day is really boring.  The second day picked up and there was some good discussions.  It was encouraging seeing many executives there getting something out of the course.  I met some great people that I will hopefully keep in touch with.
Friday, February 24, 2006 3:49:04 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

What to do when code rush templates are missing#

Today an interesting thing happened to me.  My CodeRush templates disappeared.  To you code rush experts the solution is obvious, but I’m new to CodeRush.  So the first thing I did was open the Options dialog for CodeRush and went to the templates item.  Nothing, so I tried right clicking on the template item, Nothing.  After uninstalling and reinstalling and still having the same result I revisited the Options dialog.

Solution:

Open the Options dialog and select templates in the left nav pane.  In the right pane Right click in the Templates list view and select “Import Templates…”.  Navigate to “C:\Program Files\Developer Express Inc\DXCore for Visual Studio .NET\1.1\Bin\Settings\Editor\Templates” and select “templates.CSharp.xml”

Wednesday, February 22, 2006 2:58:01 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

CSLA 2.0 beta Released#
I’m definitely a little late on this but i just noticed that a beta of CSLA for .NET 2.0 has been released.
Wednesday, February 22, 2006 12:07:41 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Funny things in life#

A few nights ago I was sitting on the sofa and my wife came home and looked very excited and yelled

“I’m switching teams!”

I was a bit puzzled, turns out it was about work.

Tuesday, February 21, 2006 3:43:42 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Ruby anyone?#
One of my goals this year is to learn Ruby, well my wife is beating me to it.  This weekend she purchased the Ruby on Rails book and is looking forward to learning it.  Hopefully she is up to the challenge of answering all my questions about Ruby.
Monday, February 20, 2006 4:57:52 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

MSBuild: Using CreateItem and CreateProperty#

A coworker just found a problem in our build scripts, our ItemGroups were not getting evaluated at the time they were actually used.  After a little digging my coworker found that ItemGroups and Properties are evaluated when the msbuild file loads.  So our issue was our ItemGroup referred to a directory structure that was not created until later in the msbuild file, so the ItemGroup was empty when evaluated.  To get the newly created directory structure and files use the CreateItem task.

Example:

  <!-- Evaluate the contents of the ClientPublishDir now -->
  <CreateItem Include="$(ClientPublishDir)\**\*">
   <Output TaskParameter="Include" ItemName="ClickOnceFiles"/>
  </CreateItem>

More on this here.

Friday, February 17, 2006 4:17:42 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Reporting Services: Folder Share Subscription Exception#

I have been deal with a very strange problem for the past couple of days with subscriptions in reporting services.  I have been trying to get the Folder Share subscription to work before I move on to creating a custom delivery method but I kept getting the exception:

“The report server has encountered a configuration error. See the report server log files for more information.”

So I looked in the log file and saw:

“ReportingServicesService!subscription!10!02/16/2006-08:53:46:: Microsoft.ReportingServices.Diagnostics.Utilities.RSException: The report server has encountered a configuration error. See the report server log files for more information. ---> Microsoft.ReportingServices.Diagnostics.Utilities.ServerConfigurationErrorException: The report server has encountered a configuration error. See the report server log files for more information.
   at Microsoft.ReportingServices.Authorization.Native.GetAuthzContextForUser(IntPtr userSid)…”

So the call to the Authz.dll was failing with the current user which happens to be a domain account.  Next I found this article on Microsoft site.  Of course for the hotfix you have to contact MS. 

SOLUTION:

From reading the above article it came to me, if it fails using any account other than the account that the account Reporting Services is running under 

  •  just run your app pools and the reporting services windows service under the same account.
  • then change the Reports (Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager) and ReportServer (Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer) web.config files so the “impersonation” is to false.

NOTE:  I changed both the Reports and ReportServer web.config so I could use the web service interface as well as the report manager interface to make subscriptions.

Well that fixed my issue and now I can make folder share subscriptions without a problem.  On to making a custom delivery method.

Thursday, February 16, 2006 4:52:17 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Third party control woes#

On previous projects I looked to third party control suites to give the UI a fancy look without having to put in the effort to build it.  If I got lucky the third party control suite added some cool functionality that would make that application more usable for the end user.  I have had good success with Janus controls; they were fairly straight forward and added some zing to the app.  This is not too say there was not some learning involved with using them but it came quickly.

On my current project the client chose to use Infragistics; what a pain in the ass.  I would be happy to not have to look at their controls for a long time (I will not be so lucky).  We have had some very strange problems such as the UltraLabel leaking through tab pages and usability issues such as the numeric edit defaults to clearing out the current value as soon as the user sets focus on it.  On the dev side they could of not possibly made the controls harder to use with the naming conventions.  I don’t see why they could not follow the .NET framework’s lead and name properties appropriately.  A good example is the “visible” property on a control which we are all used to and Infragistics using instead a property named “hidden”.  These naming misnomers are all over Infragistics and it drives me nuts.  Now if you want to allow adding of records to a grid you have to dig deep in the property structure until you find the right one buried in a property group called Overrides.

Now some ranting on the structure of the classes the Infragistics controls derive from.  There is definitely common functionality among controls, most controls have a property that has something to do with style (i.e. Office 2003, XP…).  It would be nice to loop through controls and set this style property on all infragistics controls to change the appearance of the application.  Well that is hard to do when each control has its own class where this “style” (sometimes it is named differently) property resides.  So I figured they at least have an interface for these common properties, no such luck.  So if you want to loop Infragistics controls and change “common” properties (such as the style) you better be ready to write a switch statement to check the control type and cast often.

As I’m quickly becoming a fan of CodeRush and already building plugins for it I think the next control suite I’m going to dig into is DevExpress’s.  Some good advice I can give is be familiar with third party controls and what they can do but use the .NET controls first and only go to third party controls when you have a good reason to use them.

Monday, February 13, 2006 3:30:15 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Delivering a UI#

I just got done reading Coding Horrors post on The UI is the application and I was kind of surprised by some of the comments.  When it comes to UI and delivering it to the customer I take a very common sense approach, deliver small end to end pieces of functionality that the end user can test.  It does no one any good to build a full UI with no functionality or to build all the back end crap without a UI.  Why no one that has commented on the above post shares this opinion is beyond me.  Currently we deliver new functionality both on the web and smartclient every two weeks for the client to test and give feedback.

With that said, there definitely is a time and place to bring in a graphic designer.  For my current project we just did this so our style sheets would get all set up, but this did not slow down our development and did not take away time from the dev team.  A good UI person should be able to spruce up a web site in a day or so.  Of course dialing in a UI is always an ongoing process.

I bet your are impressed that I didn’t mention Agile

Sunday, February 12, 2006 11:44:09 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Disabling the annoying BEEP#

How many of you really hate the “BEEP” when a message box comes up when an error occurs?  This is really annoying when you are working in a war room and playing music and a loud “BEEP” is spewed from your computer.  The other day one of my co worker let me in on how to disable it.

  • Step1:  Got to “My Computer->Properties->Hardware->Device Manager”
  • Step 2:  In Device Manager choose “View->Show hidden devices”
  • Step 3:  Expand “Non-Plug and Play Drivers”
  • Step 4:  Under “Non-Plug and Play Drivers” select the “Beep” and right click and select “Disable”.
Saturday, February 11, 2006 2:44:18 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

Finally bit the bullet!#

With JetBrains not getting out a decent build of ReSharper for 2.0 I finally spent the money and bought CodeRush.  Now I just need to sit down and learn everything it can do.  So far it is kick ass, but this is just day two.

Tuesday, February 07, 2006 3:47:53 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

CAB: Control Disposed Service#

I created this service a little while ago and I figured I would share it since I have seen some people discussing this.  What this service does is when a smartpart, workspace or placeholder is disposed it removes it from the workitem.  After you  download the code you have to add the following lines of code to your application class.

  protected override void AddServices()
  {
        this.RootWorkItem.Services.AddNew<ControlDisposedService, IControlDisposedService>();

        base.AddServices();
  }

   protected override void AddBuilderStrategies(Builder builder)
   {
        builder.Strategies.Add(new ControlDisposedStrategy(), BuilderStage.Initialization);

        base.AddBuilderStrategies(builder);
   }

Hope this helps some people out there.

Tuesday, February 07, 2006 2:49:34 AM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

test post3#
this is a test post3
Sunday, February 05, 2006 3:57:41 PM (GMT Standard Time, UTC+00:00) #    Comments [0]  | 

 

CAB: Usng the StateChanged Attribute#

On the CAB message board I see a lot of people talking about State and dependency injection.  I don’t see many people talking about the StateChanged attribute.  Using this attribute can yield an easily maintainable and extensible workitem.

In my case I had many views and presenters that all depended on the same state.  The state was initially null until the user selected an item.  To leverage the StateChanged attribute I created a new presenter base class which contained the below:

    protected abstract void UpdateDataSources(Customer customer);

    [StateChanged(“Customer”)]
    public void CustomerStateChanged(object sender, StateChangedEventArgs args)
    {
        UpdateDataSources(args.NewValue as Customer);
     }

All my presenters that need to now when the customer changed get notified via the UpdateDataSources method.  In the presenters that receive the call to “UpdateDataSources” just update the datasources for the view.  In the view you should be using a binding source so you just need to set the DataSource of the BindingSource.

In my scenario I did not need State injection but if you do the presenter base class may look something like:

   public abstract Customer UpdateDataSources { set; }

   [StateChanged(“Customer”)]
   public void CustomerStateChanged(object sender, StateChangedEventArgs args)
   {
      UpdateDataSources(args.NewValue as Customer);
   }

This way you can just use a property with the State attribute and get it updated when the State changes.

I’m also thinking of combining the StateAttribute and the StateChangedAttribute into one new attribute, but for now it works fine the way it is.

Friday, February 03, 2006 3:25:25 AM (GMT Standard Time, UTC+00:00) #    Comments [1]  | 

 

All content © 2008, John Luif
On this page
This site
Calendar
<November 2008>
SunMonTueWedThuFriSat
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
Archives
Sitemap
Blogroll OPML
Disclaimer

Powered by: newtelligence dasBlog 2.1.8102.813

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

Send mail to the author(s) E-mail

Theme design by Jelle Druyts