Subscribe: Vince Blasberg's Blog
http://weblogs.asp.net/vblasberg/rss.aspx
Added By: Feedage Forager Feedage Grade B rated
Language: English
Tags:
dallas  event  great  grid  level  list  new  silverlight  team  time  user group  user  version  vince  work  wpf  xaml 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Vince Blasberg's Blog

Vince Blasberg's Blog



SQL, WCF, WPF, TFS, CLR, CSS, HTML, JS, etc.



 



Still Around - Technically

Wed, 27 Aug 2014 06:26:00 GMT

Yes, I'm still around.  I've been getting deeper and wider with my technical abilities over the past few years.  I'm always thrilled to work on SSIS, SSAS, HTML5, CSS3, jQuery, KendoUI, etc.  On the other side of life, I'm working on neuroplasticity by juggling and learning the piano.  The piano and music theory are similar to developing software so it's something to enjoy as often as possible.

It's always fun to learn more.

-Vince




Watch a Sea Turtle on the Windows Phone

Wed, 14 Mar 2012 06:03:00 GMT

Chris Rajczi and Michael Perry worked very hard on the Sea Turtle application for the last few Dallas XAML User Group meetings. The application can be reviewed on the Marketplace at http://windowsphone.com/s?appid=c1ccc254-5735-471e-96c0-88a0d89d3a80.

So if you are reading this…please do two things:

  1. Download the free Sea Turtle Conservancy application by searching for 'Sea Turtle App'.
  2. Rate and Review the application.

The application code can be found on the Dallas XAML User Group past meetings section.  You can also review the past few newsletters on the Dallas XAML User Group site to see more details.

Thanks,
-Vince




I Have a Blog!!!!

Wed, 14 Mar 2012 05:49:00 GMT

Sure I have a blog, but all of my time is spent working on cool work or contributing to the Dallas XAML User Group.  I write the newsletters and maintain everything including the momentum, hopefully.

Feel free to drop by the Dallas XAML User Group on our monthly meetings, surf to the site and watch one of our videos, or read a newsletter if you have time.  There is also a nice list of webcast and podcast resources.

So there...  Guilt subsided for not contributing to the blog much.

-Vince
Dallas XAML User Group
http://www.DallasXAML.com




A Technical Packrat

Sat, 10 Dec 2011 18:51:00 GMT

My name is Vince and I'm a technical packrat.  ( Hello Vince.... )

I have notes from the first Dallas .Net User Group meeting in 2001 and the first Microsoft MSDN meetings in Dallas around 1998.  I have an ascii chart in my wallet but soon to be on my phone.  I have books related to project management in the late 80's.  I still have 8086 assembly and SQL 6.5 books.

    Why?  I'm a technical packrat.

After 20 years of development, I actually know who I am and what I want to focus on.  Technology moves like a train around mountains, but it still moves forward.  Some good advise I've heard is that if we don't read it in 3 months, throw it out.  It feels good to throw away obsolete things that no one needs.  A trip to the local Goodwill will be a relief.

What's in your wallet?

-Vince




Windows Phone Mango Release - Finally Upgraded

Tue, 11 Oct 2011 05:07:00 GMT

After several attempts, I finally got my Windows Phone 7 updated to the Mango release.  It kept failing and reported an error C1010007.  That error indicates that the cable is bad or not the original cable.  I finally tried again and kept touching the phone every minute or two.  The upgrade continued and finally finished.  I suspect the phone goes to sleep during the upgrade. 

Hope this helps others upgrade easier.  It's something to remember for the next upgrade.

-Vince




The .Net Micro Framework Event in Dallas

Fri, 29 Jul 2011 05:33:00 GMT

This is a mention of the event that came and went last weekend for the .Net Micro Framework here in Dallas at the Improving Enterprises offices.  Shawn Weisfeld worked on the event for the last 6 months.  Shawn pushed the moderately priced package from FEZ that proved to be an excellent product.  We all met last Saturday and went through some exercises to understand how to develop most of the basic tasks to interact with the plug and play hardware.  When the day was over, we all had a great understanding of how to create .Net application with Visual Studio 2010 and deploy to this device.  It's so much easier than the Windows CE deployments.  All this to say that if anyone has a project that needs low-power consumption hardware integration, the FEZ boards are a great solution with C# and Visual Studio.  I think one of the coolest things on the board is not the ethernet, infrared, or color touch screen but the serial port integration.  There are still so many integrations needed for existing serial port devices.  Just plug this in and with .Net get you the rest of the way to a solid solution. The Products Visual Studio 2010 with SP 1 (any version will work even the Free C# Express edition) Microsoft .NET Micro Framework 4.1 SDK GHI Electronics NETMF 4.1 SDK TeraTermFEZ Ultimate Kit - The plug and play training package. Then there's an ebook with suggested projects for our cool new geek toy.  http://www.ghielectronics.com/downloads/FEZ/FEZ_Internet_of_Things_Book.pdfNow I'm off off build something great with C# of course.-Vince[...]



Never SELECT * from Entity Framework called Stored Procedures

Sun, 22 May 2011 01:23:00 GMT

The Entity Framework can help us create an efficient Data Access Layer or a horribly inefficient one. 

It's worth mentioning that if we use Entity Framework to call a stored procedure that returns a database derived Entity using a SELECT * (star), we will have that horribly inefficient DAL.  Of course, as we've been told for years, SELECT * is 99.0% wrong with 1% for those dynamic field cases.  With EF calling a stored procedure, it's really wrong.

SQL Profiler will show us that the store procedure does return all records as fast as it can, barring a badly written stored procedure or low SQL server memory.  Entity Framework unfortunately does not assume all fields have returned.  EF then calls back with the defined primary key for each record.  This means that for a stored procedure that returns 1 million rows in one connection, actually returns 2 million rows with 2 million and one database server calls / connections from the application layer.  Try it on a 3 record table sometime to see that it calls SQL Server 4 times for three rows even when we use a stored procedure.  Enterprise DBA's will complain as they should.  If there is an obscure switch to avoid this, I couldn't find it.

The Moral of the Story:

  • Always define fields from the SELECT statement even if SQL 2005 and greater does optimize it for us.
  • Use SQL Profiler to look at the number of calls and the I/O count of each call.

-Vince




Containing Silverlight Lists and DataGrids in the Browser Window

Sun, 01 May 2011 22:30:00 GMT

In a typical Silverlight line-of-business application we have Lists, Grids, DataGrids, and StackPanels.  We populate a list and it flows down and off the browser page.  When we have a ScrollViewer, it will scroll the whole page including edit controls and graphics and not just the list that's tall and flowing off the page.  The good news is that we can easily contain the list in the viewable area with the few simple steps listed below. Remove the ScrollViewer from the page if it exists. Contain all upper area graphics and edit controls in a RowDefinitions of explicit size or Auto. Contain the lower List(s) in a final Grid RowDefinition with the Star notation to fill the remainder of the window using the outer-most Grid as a parent container. Optionally specify for the List properties,  VerticalAlignment="Top" and VerticalContentAlignment="Stretch".  Otherwise the List and its borders will stretch to the bottom of the screen even if it has no items.  Either way may be preferred.  The following screen shots demonstrate this with a simple GridSplitter to size either side.  Notice the List on the left is using two rows compared to the list on the right.  The list on the right isn’t flowing to the bottom and uses only one row.  Both lists flow to the bottom of the browser window and no further, regardless of the number of items.XAML rocks.-Vince Runtime:    Designer:       XAML:                                                                                                                                    



Dallas GiveCamp 2011

Tue, 18 Jan 2011 05:44:00 GMT

Dallas GiveCamp came and went this last weekend.  It was my second GiveCamp and was very rewarding.  Our team created a site for the Tarrant County Birth Network.  Jon and I quickly explained the resulting web site and sat down, but I forgot to present and thank the team.  So this is a very weak attempt to thank them after the event.

Thanks to the Dallas GiveCamp team for a fun weekend.

  • Jonathan Keith - Developer
  • Nick Coombs - Developer
  • Rick Michaels – Developer
  • Sridhar – Very helpful floating developer
  • Shannon Blackwell - The very active charity representative
  • Jaime Grassi - Business Analyst
  • Vince Blasberg (myself) – Developer

The GiveCamp weekend was very unusual, thankfully.  There were many challenges from the first moment until the last.  In the end we at least accomplished one big thing.  We enabled the charity with a CMS that will grow as their needs grow.  They now have a huge network of .Net developers around the world that can easily develop and support them.  When they switch over to the new site, there is no doubt the requirements document will grow and there will be developers like our team to help them.

What is the Tarrant County Birth Network?
http://tcbirthnetwork.org/
The Tarrant County Birth Network is a community organization to provide information about, and advocacy for evidence-based, Mother-Friendly care for expectant Tarrant County families seeking a healthy, informed, and enjoyable pregnancy and birth.

What is GiveCamp
http://dallasgivecamp.org/
GiveCamp is a weekend-long event where software developers, designers, and database administrators donate their time to create custom software for non-profit organizations.

I hope to see everyone there next year.

-Vince




Videos from My Past Presentations

Wed, 01 Sep 2010 05:23:00 GMT

Shawn Weisfeld has recorded several presentations that I've been fortunate enough to present at various times.  Shawn also stalks other active community speakers with that camera of his.  Check out the complete list on the INETA Champs live site at http://newlive.ineta.org/.  That's more than enough video content to fill a Saturday night or skip the Monday night football.


Here is a list of my presentations at http://newlive.ineta.org/Presentation/Speaker/26

 

Nuts and Bolts in XAML Part 1 - 7/6/2010
http://newlive.ineta.org/Presentation/ViewVideo/110


Nuts and Bolts in XAML Part 2 - 8/3/2010
http://newlive.ineta.org/Presentation/ViewVideo/122


Working with Data in Silverlight - 6/18/2010
http://newlive.ineta.org/Presentation/ViewVideo/106


Understanding Databinding with XAML in WPF and Silverlight - 3-2-2010
http://newlive.ineta.org/Presentation/ViewVideo/36
http://newlive.ineta.org/Presentation/ViewVideo/37
http://newlive.ineta.org/Presentation/ViewVideo/38




RIA Services - Solutions to 'The remote server returned an error: NotFound'

Wed, 30 Jun 2010 05:52:00 GMT

Isn't it great when the answers are out there?  I finally got a Google hint and overcame this one.  So here are a few reasons that I encountered and overcame this error.  We can easily reproduce (and often fix) this error.  This occurs on the asynchronous return from a Silverlight 4 to RIA services.  It's as if for any of the few reasons it fails, the call just gets aborted and we get a head-scratching "Not Found".  We can sometimes even hit a debugger breakpoint in the Domain Service that gets the IQueryable call and wonder why the server appears to work in the debugger.

Here are a few suggestions to help.

  1. Returning too much data for the object graph.  Solution: Edit the 'maxItemsInObjectGraph' setting in the web.config.
  2. Throwing an unhandled error on the service logic.  It can't get back to the client.  Solution: Comment out logic and see if the call succeeds.
  3. Solution: Only enable Anonymous authentication.  The request can then avoid authentication errors and possibly return successfully.  This one got me again tonight when deployed a new client’s project for the first time.  It also confused several of us at the Dallas Silverlight and WP7 DevCamp that I mentored at the other day.   The project will work great in the local development server but when deployed to IIS, we get a Not Found error.  So try disabling the Forms and Basic Authentication with only Anonymous enabled.  I'm convinced that this is the most likely reason for most people.

Hope this helps others with this unintuitive error message....Hopefully it's "Now Found".

-Vince




Silverlight OOB - CheckAndDownloadUpdateAsync

Sat, 12 Jun 2010 20:01:00 GMT

I’ve been looking at the Silverlight Out-Of-Browser support and the easy update feature.  In the current version, we’re given the method, CheckAndDownloadUpdateAsync().  This method does a lot for us but is rather limited.  With an asynchronous method and no parameters, what can we expect?  With a huge team in Redmond working for us and trying to meet deadlines, we get what we get.  In the spirit of sharing, here’s what I see so far. Features: Detect network connectivity (and sometimes it fails miserably…) Connect to the original authorized URL that it was installed from Download the new XAP file and compare the current version against the downloaded version from the manifest Detect the current Silverlight version vs. the new version’s Silverlight version If a failure occurs, failure exception types are provided for recovery such as “PlatformNotSupportedException” Limitations: Can’t interrupted the request.  So when it times out, we wait for it. Can’t download the update and make it optional to install and replace the currently running XAP.  A flag to just detect a newer version would be better.  This would allow the UI to show the current version and available update version. Returns a false for the “UpdateAvailable” property for several reasons such as the new XAP is not signed, is a newer Silverlight Version, or various other errors.  We must then look at *ALL* of the possible error class types placed in the error collection.  A bunch of try-catches are therefore necessary.  The try-catches do the job as long as we have every possible error type in a catch.  An enum for the actual error reason may be better. Can’t revert to a previous stable version and have it install over a newer bad version.  It makes sense, but real development teams have recovery plans when updating production versions. Q: What if we want to make the newer XAP file replacement optional?   Here are some thoughts. Not everyone wants to increase the newer version number for a rollback version.  The Silverlight client can call the web server to get the new version number using other networking connectivity options.  The server call could be as complicated as a WCF service, ASMX service, Web Method call, or an HTTPRequest to get the online version information.  Getting the version from the server could be as complicated as reading the newer version’s manifest file, read the new file date and time, or newer folder date and time.  It could be as simple as getting a text file that has only the expected Silverlight version and the new XAP version.  If the major or minor version is different, then the Silverlight client can act appropriately such as displaying an update message box or button to perform the CheckAndDownloadUpdateAsync() call.  The only issues I can imagine would be security issues of calling back to a “different” server where a ClientAccessPolicy.xml file is required.  If it were HTTPS from the install, the new version check call may to an HTTP.  The different server could also include “WWW” or not include it and therefore require the ClientAccessPolicy.xml file.  The simple version text file can be automatically generated in the Silverlight application build script.  This way DEV, QA, and Production can generate and test it easily without requiring the file to be edited every time it gets deployed.  This may not allow a previous version to replace a new bad version (users install updates with the Silverlight plugin, not our code) but it does get closer so the installed version can stop working or corrupting data until they uninstall and reinstall the previous version.  A rollb[...]



Silverlightpalooza - The DFW Silverlight and WP7 DevCamp

Thu, 27 May 2010 04:17:00 GMT

Teresa Burger and Chris Koenig are heading up a great event on Jun 18th and 19th called the DFW Silverlight and WP7 DevCamp.  It is two full days (Friday and Saturday) of Silverlight and Windows Phone 7 fun.  Yes - I said fun.  I'll be one of the available on-site mentors both days. It will be at our favorite hang-out, the  Microsoft headquarters in Dallas.  There will be prizes and lots of experience to be gained.  So if you want to join in the fun and learning, please register now before it is filled.  After two days of Silverlight and WP7, there’s still a Sunday left to ride the motorcycle.  So it definitely will be a great weekend.


http://silverlightpalooza.dynamitesilverlight.com/


-Vince




Dallas XAML UG Samples for Data Binding

Sun, 04 Apr 2010 07:38:00 GMT

The Dallas XAML User Group is holding their second meeting on April 6th 2010.  We will be spending most of the time on our laptops practicing data binding techniques for WPF and Silverlight.  The completed samples are uploaded and ready to review before the meeting.  The theme for samples is a GoldWing reseller.  Can you guess which sweet Orange motorcycle that I own and love to ride around Texas, Oklahoma, and Arkansas with my wife?

(image)




WPF Routed Events – Bubbling Several Layers Up

Tue, 30 Mar 2010 06:03:00 GMT

Recently, the WPF question of the day for me was how to bubble up a toggle button event through several layers with less code.  In WPF we can easily add layers without worrying about wiring up delegates for each level. Most of the blogs and MSDN help pages were detailed but not obvious.  This simple example shows how a registered event in the lowest level user control can bubble up for a top level parent to handle the event.  The example bubbles up an event from the QueueButton user control (Level 4) to View2 (Level 3) , then View1 (Level 2), then the top parent Window1 (Level 1) .  There is no code behind nor any delegates to maintain at any level except the firing control and any listeners.  We should be able to add any number of views in the visual tree and still avoid any extra work.  The event is a Bubble event and not Tunnel, but that is an example for another day.  Tunneling can be thought of (informally) as a falling bubble from the top level of the visible tree to the source.  This lets each level receive the event like bubble up does, but knowing that the parent control had an option of acting on the event. I hope this simple example helps someone keep the WPF code clean and simple. -Vince Window1 - Level 1 - The Top Level Listener: XAML:                                                               The Single Code-Behind Method: private void Window_EnableQueue(object sender, RoutedEventArgs e){    QueueButton queueButton = e.OriginalSource as QueueButton;    if (null != queueButton)        ToggleStateTextBlock.Text = "Toggle Button IsChecked = " + queueButton.IsChecked.Value.ToString();}   View1 - Level 2:  (No Code Behind in View1)                               View2 - Level 3: (No Code Behind in View2)






Good Times on the New Contract

Sat, 06 Mar 2010 07:12:00 GMT

Just a note to the blog to say that my current contract has been going well.  I'm working on contract direct from with own company, FreshMetrics, LLC.  I get to have lunch with Rob Vetter (C# MVP) from next door.  We get to catch up on user group stuff more often now.  The work is great and the team is very serious about the art of software.  It's much more silo'd and quiet than what I'm used to, but that can be a good thing.  I've been heads down with systems analysis, user interviews, and plenty of documentation before building the final application.  It's refreshing to actually have the license to discover instead of hack and go, then wonder when unit tests come into the picture if at all.  I've been pushing myself to do things right with analysis, peer review, and now I'm almost done with unit testing.  Yes - true TDD.  It's been hard not hitting the WPF and WCF services first, but the application is much better already.

The users of this application are asking for features that are easily created in a WPF - click once application.  So I finally started the DallasXAML User Group this week and it's helped at work so far for the WPF portion and the work has helped with the Silverlight User Group site that I created and deployed.  But that's the next blog entry...

 




Catching Up

Fri, 01 Jan 2010 02:32:00 GMT

Today was my last day on the extended Intuit contract.  Now I’m off to find the next great team to work with.  If anyone has projects that can be outsourced or new contracts, I’m looking.

I worked with a really great team at Intuit since February to build some features in their web sites, improve some windows services and processes, and create a few interesting web services.  All of the work entailed features and improvements to the high volume credit card transaction system.  The last two projects were the most fun.  The most recent was a WCF-based API that will be publicly available to all Intuit merchants.  The project before that was a WCF-based credit card validation service that will be available to every TurboTax 2010 installation.  I’ve had a great time with Intuit's IMS team.

Meanwhile, back at the ranch, I’ve been working on a commercial Silverlight-RIA Service project and my own long-term WPF project.  I worked for many hours this week to get more comfortable in Expression Blend 3.0.  It’s awkward for an avid Visual Studio user like me but worth the initial hurdle.  I've been very comfortable in Microsoft tools since Visual C++ 1.0 beta.  Expression Blend has so many hidden features that it's still going to take a while to get proficient.

Tonight I’m working on the new Visual Studio 2010 Web Deployment Packaging feature to more easily create and install a web site and database.  There’s always something to do with today's technology.

Caught Up,
-Vince

 




Another Contract Ends - Hanging Out the Shingle

Wed, 14 Oct 2009 06:13:00 GMT

My current contract at Intuit is ending in a few weeks.  I'm heading into a possible slow period so it's a good time to catch the blog up a little.  If nothing else but to remind myself what I've been doing through this year since leaving Notion Solutions.   I've been subcontracting through CraftLogic at Inutit's IMS division since last February.  In that time, I've delivered a few minor API service offerings for internal and external distribution, a few really great features, and a whole lot of maintenance to their existing high volume credit card transaction systems and web sites.  With a new framework to streamline development and support, I'm not needed as much and neither are most other contractors that would hope to join such a great team.  So I'm off to new ventures and adventures.   Other than their "Team Building" activities that make the team a real blast to work with, here are a few high level take-a-ways that I've had the pleasure of. A refresher of Socket Development that I used to be devoted to  (no C++ this time) Leveraging MSMQ for Speed and Reliability The ability to really, really, really tweak those stored procedures.  And I thought I was good before I had TSQL script reviews... What is Red Faction and is it ok to lose to someone named Rambo every time???   Any other details would start explaining the optimized and very secure processes at Innovative Merchant Solutions.  Let's just say that they are deeply committed to their work and it's been a pleasure and education working with every one of them at IGS.   By the way, CraftLogic has also been a great company to work with while contracting at Intuit.  They handle everything without distracting contractors like myself from the real work.  I went corp-to-corp and really appreciate their partnership.  Also as an independent contractor, I've worked on a few other commercial applications through a consulting company named Chordial Solutions.  That kept my skills fresh with ASP.NET AJAX, Entity Framework, and SSIS.   In the last year I've also made great progress in the integration system software that I've imagined for about 10 years.  In my own opinion, it's very unique, innovative, and valuable as a supplemental BPM and ETL system.  It's been a great enabler to gain serious experience with WPF, Silverlight, RIA Services and so much more.   In these past few months, I've brought considerable value to everyone's offering, including my own FreshMetrics, LLC.   So if you find a need for a serious contract developer, please contact me through the FreshMetrics web site.  I look forward to my next adventure with another great team.   -Vincehttp://FreshMetrics.com  [...]



Life as an Independent Consultant

Thu, 12 Mar 2009 05:07:00 GMT

It’s been almost a month since I left Notion Solutions to embark on a new adventure of driving an independent consulting company.  Chris Menegay was the greatest to work with at Notion, so I truly appreciate what I learned and gave back to them.  With the new gig it’s not all easy.  There are some ups and downs that have been a challenge.  The hardest parts have been expensive insurance policies, a formal payroll, and becoming a registered Microsoft partner for an upcoming product.  With all of that behind us, it’s just work, work, work.

I’ve been holding two contracts now to make the startup ends meet.  With one client, I’m performing back-end socket, threading, and SQL work.  With the other client, I’m performing high level ASP.NET and SQL SSIS work.  To top that, I’m also advising and assisting one client with TFS configuration, one of my biggest passions.  I’m using Subversion with the other client.  So I’m keeping the skills going across the board.  This is what it’s all about (and making a profit).  Now I’m wondering how to add more hours in the day to get the work done without hiring an employee.  In consulting, as many consultants would know from experience, you must give the client their dollar’s worth or it’s back to the W2 and the nine-to-five.  It almost sounds good, but I do like being around people more than being a cubicle mushroom that a W2 tends to make you.  So that's where I'm at in this long history of blog entries.  Enough about me.

-Vince