Scott Hanselman

BizSpark - Free Software and Production Licenses for Startups in the Startup Phase

January 27, '09 Comments [21] Posted in ASP.NET | ASP.NET MVC | Cloud | Programming | VB | Windows Client
Sponsored By

BizSpark LogoLast November, Microsoft started a new program called BizSpark for startups that's pretty sweet. It's pretty not-too-evil also.

If you are a small business and you sell a product or service to your customers, you might want to check it out. Here's the criteria:

  • Actively engaged in development of a software-based product or service that will form a core piece of its current or intended business.
  • Privately held, and in business for less than 3 years.
  • Less than US $1 million in annual revenue.

What do you get?

Here's what you get from the program:

Development Tools, Platform Technologies and Production Licenses

  • All the software included in the Microsoft® Visual Studio® Team System Team Suite (VSTS) with MSDN Premium subscription
  • Expression Studio Version 2
  • VSTS Team Foundation Server (standard edition)
  • Production use rights to host a “software as a service” solution (developed during participation in the BizSpark Program, on any platform) over the Internet, with regard to the latest versions of Microsoft products including:
    • Microsoft Windows Server® (all editions up to and including Enterprise)
    • Microsoft SQL Server (all editions)
    • Microsoft Office SharePoint Portal Server
    • Microsoft System Center
    • Microsoft BizTalk Server
    • Microsoft Dynamics CRM (coming soon)
  • In addition to the core program offering, BizSpark startups will be eligible for other Microsoft offerings, such as:
    • Microsoft Azure Services Platform - The Azure Services Platform is the collection of Foundational, Developer and Live Platform Service such as Windows Azure, Live Mesh, Compute Services, Storage Services, Workflow Services, Identity Services, Connectivity Services, SQL Data Services. All developers will have access to the Azure Services Platform developer tools which includes the local development fabric.

After three years, they assume you've either succeeded and are making money, or you're gone. If you're around and you want to continue, you pay for your MSDN subscriptions the regular way, and if you want to keep using your production licenses, you pay for those using the Service Provider Licensing program.

If you want in, you need to find a sponsor, and there's a list on the site. If you can't find one, though, Bill Staples (a General Manager at MSFT) can sponsor you (details on his site, click "Contact Me" under his picture) which is nice of Bill.

BizSpark is for companies that SELL something (product or service), not for pure consulting companies, but if your consulting company has at least one product or service, that appears to meet the criteria.

I asked folks on Twitter to see if they were using it and if it was a good thing, and everyone said it was a good program. It's a messed up economic time, and I think BizSpark would be an easy way to get a small business or startup idea of the ground without thinking about software licensing for 3 years. If you've got an idea for a business, or you already have a business, this could be the program for you. Tell Bill I sent you (he's one of my many bosses, so be nice and don't get me sacked) and he'll help you get setup.

Are you in this program? Is it a good thing? Leave a comment.

Update: The guy at MSFT who runs the program is Julien Codorniou and feel free to email him at julienco at microsoft.com with questions. Mention my name for free candy (not really).

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Painful Reminder: Focus on Core Competencies (and Back Stuff Up)

January 27, '09 Comments [38] Posted in Musings
Sponsored By

Backup your stuff! Two interesting and unrelated things happened this weekend in my circle of influence.

Lesson: Back Up Your Stuff or Die.

First, an errant unsigned driver install caused my beloved Lenovo T60p to start Blue Screening on Boot Up. My subconscious knew what was doing on, but I got nailed anyway.

However, my tuckus was saved by Windows Home Server (again). Yeah, yeah, blah blah, Microsoft Shill, blah, blah, Time Machine, whatever. The WHS is rocking awesome. I don't even think about it until I totally need it. I booted off the recovery CD and I was given the choice of 4 different backups in the last week. I was up and running within an hour, everything working perfectly. It's like Norton Ghost and Acronis without the hassle.

Do you back up? How often? What happens if your house burns down tomorrow and your business is run out of your house? Where are your digital photos? Videos? Memories? Tax forms and insurance details? What is your family backup strategy?

Backup your computers - that means a full system image. There's lots of ways to do this and one of them is built into Vista. You likely have this on your computer (and your parent's computer) and didn't know it. Hit the start menu, type "Backup" and go to the Backup and Restore Center. Take an external drive over to your relative's house, make them feed you dinner, and backup up an image of their entire machine.

Backup and Restore Center

Better yet, get Mom and Dad some kind of automatic server like WHS or some online backup like Mozy. Again, I point to having a family backup strategy. I'm using Mozy now, but I'm looking for a good system that also supports Windows Home Server and won't break the bank.

Lesson: Do what you're good at and let other folks do what they are good at. Netsource!

The second thing was that I got a call from my cousin who works for a small (maybe 20-30 people) real estate management company. At some point in the past, someone setup an Exchange Server or some kind of Mail system for them. The truth and identity of the man is shrouded in mystery and the mists of time. (Stop me if this sounds familiar to you.) The machine runs great and the little company forgets about it. They forget about the mail server that has become as important to their little company as air and power.

Hanselman Backup Strategy Fast forward to last week and lightning strikes. Literally. Power was cut and the machines are all fried. Now the mail server reboots and reboots and they haven't gotten email in days. Who set it up? What was his name? Where are the backups? Where is this week's mail? What can we do? What was wrong with this tragic situation? Well, lots of things, but ultimately this:

They were running something in house that wasn't their core competency. They are a property management shop. What are they running their own mail server for? Historically, it was the only option and I'm sure it seemed like a good idea at the time.

I recommended they look at a hosted mail solution. The couple of hundred (thousand?) dollars it's going to cost them to fix this debacle, they could pay for a hosted solution for a year.

Outsource your freaking mail. It's 2009. I use GAFYD. I've tried Live Custom Domains. Both are great and are a complete no-brainer for any business under 100 people. Some folks say these works for as many as 500 users and some Universities have happily outsourced all their mail. I use UserVoice for a Customer Feedback Forum on BabySmash. I use ORCSWeb to host my websites. My advertising is now outsourced to The Lounge Advertising Network. You can use .netInvoice to handle all your invoicing if you like. I manage phone calls with GrandCentral. I could do ALL of these things myself, but I'm not good at them.

There are so many great services that you can "netsource" for a fraction of what it would cost for you to do yourself.

I'm convinced these two basic tips/lessons/nuggets/whatever can save you piles of money when applied intelligently.  Do you agree, Dear Reader?

Related Posts:

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

A year with an Amazon Kindle (and new Kindle Cases)

January 25, '09 Comments [17] Posted in Reviews
Sponsored By

image It's been almost a year (well, 11 months) with my Amazon Kindle. I still use it every day, so that's a pretty good litmus test. I'm also looking for a good Kindle replacement case, so that's also good.

I use the Kindle to read the NYTimes, and a few blogs. I've read about two dozen books on it this last year, about 15 purchased from Amazon and the rest were free e-Books. I take it on every business trip, I read books while brushing my teeth, it goes everywhere with me. It's light, convenient and wonderful.

The Good:

  • Coverage. Anyway I've gone in the states, I've had good coverage and no trouble getting new books. There isn't complete coverage, but if you make sure to download whatever books you want for your trip before you head into the boonies, you'll cool. I loaded up before a trip to South Africa, turned off the radio, and used it happily disconnected for weeks.
  • Battery Life. The battery really lasts for thousands of page-turns. Remember that it doesn't use really any power at all if the pages aren't turning. It'll stay on standby (with the radio switch off) for days and days.
  • Flexibility. I read lots of books, some purchased from Amazon (the rule of thumb is that they are 25%-50% less because there's no molecules) and some free books formatted for the Kindle. It also like that your kindle gets an email address so you can email @kindle.com and whatever you send it (PDF, DOC, etc) will just show up on your Kindle.
  • The Screen: It's been said before, but truly, eInk is awesome. It's nearly as clear as paper, but more importantly, it's just easy to read. No more eye strain than a regular newspaper.
  • Convenience: The best example of the Kindle being awesome is being at an airport bookstore, browsing the books, reading the backs, then buying the book for 50% off and having it appear on the Kindle in literally seconds, then walking on a plane. It's positively evil.

The Bad:

  • Build Quality. It's still ugly and feels just a smidge cheap. It's no iPhone or Blackjack 2 or Dell Mini 9. It kind of flexes like a plastic ice tray from the freezer. It doesn't feel solid. I wish it was aluminum or something. They REALLY need to pull it together and get some Apple-level hardware build quality for the Kindle 2.
  • Screen Margins: There's a little wasted space (maybe 1/4") on the screen, acting as a margin for the text. I think the small size of the screen wouldn't bother me as much if they let me control that margin. There's probably 15-20% more screen I could get if I ran the text up closer.
  • Programming Books: The screen and reformatting doesn't serve itself well for technical books and there's no monospaced font, so just don't plan on reading coding books on this device.
  • Jeff Bezos and my Wallet: In case you haven't realized, the Kindle is THE ultimate One-Click Purchasing Device. It is literally a dotted line directly from Jeff Bezo's bank account to mine. Don't forget that. To be clear, I'm cool with it, but it's important to be aware.
  • Case. The standard Kindle case really sucks. There's an indentation in the back of the Kindle and a small plastic tab on the Kindle case and they are supposed to work together to hold the Kindle in the case, apparently by will power. It's mediocre at best and I immediately looked to replace it...which leads me to...

Replacement Kindle Cases

I've looked all over at replacement Kindle cases. I've tested some, tried out all the ones at Borders and other specialty bookstores, read all the reviews on Amazon, and based on a recommendation from Steven "Doc" List, decided to try three cases from WaterField. They are a little boutique in San Francisco and I've heard good things. I also like small companies that make one thing.

They've got three Kindle cases (as well as laptop bags, etc, etc). They've got a SlipCase in a number of colors, which is just that - a slip-in case. The sleeve is nice and includes screen protection via a sheet of plastic sewn in on one side, so I wouldn't feel bad about throwing it in my backpack at all. It's also a nice textured nylon and has a place for a pen. None of their cases are the kind that attach directly to the Kindle, so you won't be reading AND holding the case at the same time.

I went back and forth on this issue in my mind. I thought I wanted a book-style case that would somehow attach itself to the Kindle. However, since there isn't really a good secure way to attach something to the Kindle and I wasn't interested in the whole "sticky velcro" way of thinking, I decided WaterField had done the right thing. Anything that attached directly to the Kindle would have been cheesy. The Kindle is easier to read when its weight hasn't doubled by the weight of an attached case.

There's a "SleeveCase" (the names are a little confusing) that is a little bigger, but provides more protection. It's pictured above. This is interesting because it's actually big enough to hold the Kindle AND the original Kindle book-style Case. I wouldn't feel comfortable throwing my Kindle and it's regular case in a bag - it'd be destroyed. However, this larger replacement case could hold it as well as my headphones and maybe a small Moleskine notebook.

Then there's the full-on Travel Case. This thing is European. It's a man-bag. A murse. It's too big for the Kindle (although their website says it's big so it'll hold all the accessories) but it's the perfect dimensions for my Dell Mini 9. Well, near perfect. Like 99% the right size. The zippers graze the plastic as you put the Mini 9 in and out, but what's nice is that the Mini 9 can go on the inside, and the Kindle fits nicely on the outside pocket. Perfect for one day business trips with no baggage. Just make sure you wear nice shoes or folks will talk! ;)

I've been using the SleeveCase and the TravelCase (the SlipCase got returned) for the last week and I'm digging it. I'll be taking these on all my one day trips as well as using them for those days when I work from Starbucks. Way smaller than a backpack and I'm thrilled at the extra bonus that the Mini 9 and Kindle fit in the same bag.

Thanks to Doc List (on twitter) for his suggested to look hard at WaterField Bags. He likes his.

Related Posts

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Hanselminutes Podcast 147 - The new WPF-based Text Editor in Visual Studio 2010 - Interview with a Dev

January 23, '09 Comments [4] Posted in Podcast | WPF
Sponsored By

image Scott is on campus this week and bumps into Noah Richards, a "lowly" (his word) dev on the new editor in Visual Studio 2010. They sit down and Scott gets an education on how it's put together, built, componentized and shared using C#, WPF and MEF.

Subscribe: Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

Do also remember the complete archives are always up and they have PDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is our sponsor for this show!

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NET and Windows Forms. Enjoy the versatility of our new-generation Reporting Tool. Dive into our online community. Visit www.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

ASP Dynamic Data Preview - More ways to exploit ADO.NET Data Services for fun and profit

January 19, '09 Comments [11] Posted in ASP.NET | ASP.NET Dynamic Data | ASP.NET MVC
Sponsored By

There's lots of interesting stuff going on in the ASP.NET team, and you can usually learn/glean/figure out most of it (if you're interested) by poking around the Codeplex ASP.NET site. They update it all the time, and you can watch their thinking. They put all sorts of stuff up there, ideas they are floating, directions they are considering and (really early) previews of those ideas and directions in the form of code. It's not production ready, more brainstorming - that's why it's on CodePlex, and why they don't exactly advertise the heck out of it.

There's a release of ASP.NET Dynamic Data 4.0 Preview 2 that was quietly put up just a month ago with this scary disclaimer:

NOTE: These previews contains features that may not be in the next version of the framework. These previews are not production quality and should be used at your own risk.

Dynamic Data 4.0 Preview 2

imageLet's poke around the SampleProject Solution that's included with this preview download. There's five projects showing off a number of new feature possibilities.

  • BusinessLogicDataSource – A showcase for a new BusinessLogicDataSource that combines customizability of ObjectDataSource with the flexibility of LINQ and the IQueryable interface. Also, a new QueryExtender feature allowing high-level query composition in markup is demonstrated.
    I don't really like the name for this (at all) but it's brainstorming at this point.
  • DataServicesServer and DataServicesClient - illustrates the use of ADO.NET Data Services with Dynamic Data. This is the stuff I think is really interesting and what I'll focus on in this post.
  • DynamicDataFuturesSample - contains the existing Dynamic Data Futures sample that has been available. This sample does not add any new functionality in comparison to the old Futures project except for running on new Dynamic Data assemblies.
  • SampleProject – Shows the next generation of Dynamic Data features including support for Entity Framework and Linq to SQL inheritance, many to many support for Entity Framework, Entity templates and the new templated filters that are based on the QueryExtender.

The two I'm interested in are the DataServicesServer and Client.

Quick Review

Before I talk about them, let's review some of the things we can, as developers, choose from in .NET 3.5 on the Data side. You've got lots of choices:

  • Linq to SQL (Server): If you don't mind your objects being nearly 1:1 with data model, it's fast and easy to use. Stackoverflow.com uses it. Some folks are freaking out thinking it's "dead." But I think that's silly. More on that later. I use it all the time. Know what it can do, know what it's not good for.
  • Entity Framework: If you want more control over what your Data Access Layer (DAL) objects look like, and there's not a 1:1 relationship between your objects and the database. If you are using not just SQL Server, but other databases like Oracle, etc.
  • Your own thing: Lots of folks write their own DALs with DataReaders loading objects, etc. I used to do this with CodeSmith generating all the boring stuff.
  • NHibernate (OSS): Define your Domain, define a mapping (from a number of possible ways) and configure.
  • Subsonic: Can be used two ways, as an regular ORM (Object Relational Mapper) or as a no-code DAL provider.

On the Web side, you can make your "angle-brackets" and HTML UIs ;) a number of ways:

  • ASP.NET Web Forms - Programming the web with a controls and event model.
    • Classic Demo: Drag a grid, drag a data source, setup some binding markup. Boom, page.
  • ASP.NET MVC - Testable, extensible. Control over your markup and your programming model.
    • Classic Demo: Write a test, fail, fix, pass. Create a model, create a view, hook up the controller. Boom, page.
  • ASP.NET Dynamic Data - Dynamically generating sites using templates over a meta-model.
    • Classic Demo: File | New ASP.NET Dynamic Data site. Let it know about your Data Context. Edit the templates to test. Boom, site.

If you aren't generating UI angle-brackets, but rather data-specific angle-brackets, like XML, or even JSON, you can use:

  • ADO.NET Data Services (codename: Astoria): You can take any IQueryable objects and get a nice AtomPub/REST Web Service interface based on WCF (Windows Communication Foundation). This isn't a database-specific technology; you can make data services just with List<MyObject>. Anything with a LINQ provider can be a service. Astoria is a great way to take a client application that may have needed direct database access and turn it into an app that talks HTTP over Port 80. It's also a great way to get JSON back for your jQuery ajax() calls or by using ADO.NET Data Services direct Javascript support.

image

Mix and Match

For the most part, you can happily mix and match these different technologies as much as you like. That means you can use ASP.NET MVC with NHibernate, or Web Forms with Subsonic.

Some have some requirements, usually an interface to implement or a provider to provide. For example, if you have an IQueryable (LINQ) implementation, you can use ADO.NET Data Services. If you've got LINQ for Subsonic, you get ADO.NET Data Services for free. If you want Updates, you implement IUpdateable. (Here's a LINQ to SQL IUpdateable implementation, and why you should care.)

However, ASP.NET Dynamic Data does a LOT of stuff for you. It needs a complete "meta-model" populated that describes the data and needs to understand how to update that data. It's pretty specific to the underlying database (or ORM, or whatever) technology, so you need a provider that is specific. That DataModelProvider (and a few others) get the metadata from your source and pass it to ASP.NET Dynamic Data. ASP.NET 3.5 SP1 ships with providers for Entity Framework and Linq to SQL.

You could implement your own, if you have an existing database/access technology. Someone could write some NHibernate or Subsonic providers, then get all the Dynamic Data stuff to sit on top.

I really like keeping my websites from having direct access to the database, at least when I'm doing big Enterprise work. One of the rules the security guys always drilled into us was to assume that the web server has already been compromised. Basically, assume they (the baddies) OWN (or PWN) it, and code appropriately. There's a number of ways to do this, but one way to limit access to your database is to create a very limited Web Services/REST interface to be called from the Web Server.

Back to ASP.NET Dynamic Data. There's no provider that lets you point ASP.NET Dynamic Data to a ADO.NET Data Service...except there is in this preview.

The Preview Projects - DataServicesClient and DataServicesServer

If you check out the web.config of the DataServicesClient project, you can see he's added client-side assembly redirects to force the loading of his private builds of two assemblies:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.ComponentModel.DataAnnotations" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="3.5.0.0" newVersion="99.0.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Web.DynamicData" publicKeyToken="31bf3856ad364e35"/>
<bindingRedirect oldVersion="3.5.0.0" newVersion="99.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

There's two changed files with the goofy build number of 99.0.0.0. Those are preview DLLs. After this, it  looks pretty much like a standard Dynamic Data ASP.NET site.  There's a client-side DataContext generated from a standard, unchanged, ADO.NET Data Service and it gets registered in the Global.asax:

MetaModel model = new MetaModel()
model.RegisterContext(
new DataServiceDataModelProvider(
typeof(NORTHWNDModel.NorthwindClientEntities)),
new ContextConfiguration() { ScaffoldAllTables = true });

The Dynamic Data system gets all its meta-model information from the DataServiceDataModelProvider pass in there. It's currently in Microsoft.Web.Misc.dll along with some other very telling (at least at the time, but surprising no one noticed) stuff like "RedDogDataServiceContext" and "SDSDataServiceContext." (The last one is a silly name, expanding to SQL Data Service Data Service Context. ;) )

But not just Dynamic Data, WebForms, too

In the DynamicData Templates, there's a reference to a new DataSource control called DataServiceLinqDataSource. That's included in this preview. This is cool because it not only hooks up nicely to the templates, but it can be used outside Dynamic Data. You can use it in Web Forms just like this using a ListView or GridView or whatever.

<asp:GridView ID="GridView1" runat="server" DataSourceID="GridDataSource"
AutoGenerateEditButton="true" AutoGenerateDeleteButton="true"
AllowPaging="True" AllowSorting="True">
</asp:GridView>

<asp:DataServiceLinqDataSource ID="GridDataSource"
ContextTypeName="NORTHWNDModel.NorthwindClientEntities" TableName="Products"
runat="server" EnableDelete="true" EnableUpdate="true">
</asp:DataServiceLinqDataSource>

This way you can use ADO.NET Data Services wherever. In markup, in code-behind, in Dynamic Data sites, or some combination of them all - staying off the database directly and talking REST (AtomPub) Web Services instead from you Web Services, so you go from this:

image

To this:

image

Again, bask in the wonderful Paint-y ness of my lovingly created high-quality diagrams.

I personally think that this is an important addition and fills a hole. If you agree and think it should be a part of something in the future, tell Scott Hunter (crush him with email!) the Program Manager for ASP.NET Dynamic Data. He put this release up for feedback, so contact him if you've got ideas, comments or feel strongly about something. Or leave a comment here and I'll tell him.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

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