Yet again I haven’t posted for a while and after both South Florida and Orlando Code camps, both excellent events, well setup and run by their respective volunteer groups, I need to post my talks. So for those of you that listened to my talks at South Florida I apologize for the delay, for those from Orlando, your in luck, I’m posting the next day.
NuGet is a Visual Studio Addin and accompanying toolkit to manage open source packages. The addin allows developers a one stop shop (think app marketplace) to search for and install open source toolkits and in some cases some free toolkits from commercial companies. This addin also gives access to updates both minor and major and safe ways to remove a toolkit no longer used. The other part of NuGet is the toolkit that allows a developer to create and package their own toolkits, either open source published to the NuGet main repository for all or closed source in a private repository. I cover aspects of using NuGet to install, update and delete packages and then look at creating and publishing packages and then finally the creation of a private repository for those of us in the commercial world who want to leverage the technology behind NuGet put do not want to distribute our company IP.
Presentation (PPTX) NuGet – What is it and why should I use it in my enterprise
Code (ZIP) NuGet – Code
This is the file (document) format behind Microsoft Office 2007/2010 i.e. docx, xlsx, pptx. These files are actually renamed zipped containers. Inside the container are loosely coupled xml files i.e. if you know the format, you can infer what is in each file and how they relate. These XML files follow the OpenXML spec’s which is a series of XML markup ‘languages’ (schemas). In the presentation I show a couple of simple Hello World examples for Word and Excel, then go into a more complex example showing how to build up an Excel spreadsheet from scratch and the importance of the order of building elements. Remembering that these are XML files and there is a XML schema that must be followed. If you don’t then at best, the files fail to load and at worst it ends up killing you application. After this I then demonstrate why this is the hard way and show the easier way to create and validate files.
Presentation (PPTX) OpenXml – Do It YourSelf Office
Code (ZIP) OpenXml Code
And while I posting, I forgot to post about Tallahassee code camp. Those in Florida will know that the code camp is in our states capital, right down town at FSU. So it’s a great location. I have to give a big shout out to Saqib Rokadia for all his and Capital City .NET User Group of Florida’s hard work at putting on this small but enthusiastic code camp. I enjoyed presenting and even more so listening to speakers from the north Florida and other southern states area. Here in central Florida we get all the speakers from Florida at our code camps, but going to either one of the northern FL (Tally or Jacksonville) code camps, gives you a chance to here those speakers from outside Florida. For those of you who haven’t made it this far north, I would suggest you try next year, it’s a lot of travel, but a lot of fun. I presented on OpenXML (see my other posts for code) which was I hope well received. Nobody threw any tomato’s so I guess I did OK. The other presentations I went to I enjoyed and learned a lot, some of which I even remember.
Throughout this year and a half of getting into making presentations at code camp, I’ve met a lot of great people, great speakers, great organizers, great sponsors and also great attendees. I encourage anyone to make a presentation on their favorite technology, it doesn’t have to be brand spanking new, there are plenty of people just getting the chance to look into MS technologies, so give it a try. Also support and promote your local code camp, it’s a great way to learn new or older technology and a great place to network with other like minded techies. In the current economic climate it’s not a bad thing to broaden your techie network.
As a developer working for a commercial tax software company there is no time when we are not, to excuse the phrase, ‘Balls to the Walls’. Creating and updating tax software is a year round constant update cycle. Both the federal government, state and city governments are constantly changing there tax rules and you need to get these changes out to customers both in time to meet the regulation changes but more importantly time for the customer to create their returns with the rules in sufficient time. I work for a company called Vertex Inc, in the Sarasota FL office, where we work on compliance (direct) tax. For those in the know this is Fed forms 1120, 1065, etc, equivalent (sort of) to personal tax forms 1040. But we also deal with all state and city forms in this same realm. Our corporate HQ is in Berywn, PA, where they deal with all other variants of tax i.e. payroll, sales, etc. Is it exciting? Well that depends on what you think exciting is. We always have work to do (more than can be done in reality), we always have tight deadlines, which we cannot move. It’s no use publishing our software 5 days after regulations have deemed a tax return must be posted, more like 2 months prior, to give customers a chance to finish up their returns. But we do deal with windows apps, web apps, inter site communications, which have got to be reliable, remember there’s millions if not more at stake here and the federal government has no sense of humor regarding outages Plus we are always looking at new ways to enable our customers to create their returns in the most efficient and accurate ways possible. So application integration is a major concern. So if you are in the Berwyn, PA or Sarasota, FL areas and are looking for a new challenge looks us up. It may not be sexy software by most peoples standards but we have to deliver on time, with quality, without failure, oh and did I say our firm offers excellent benefits and vacation. Ok, enough of the company promotion, note that these are my own opinions, but what I meant to aim this blog post at is that I’m going to start a series on using NUGET in the enterprise environment. Ill be looking at everything from NUGET basics to how to integrate into a corporate build environment. Will this all work, I have no idea, but it is something I’ve thought is a worthwhile exercise. Now that my group (commonly know as the Portals group, we deal with anything web related and office integration) has expanded in size (three times bigger), I have the bandwidth to look at more strategic changes, so this is where I’m starting. I will given time, bandwidth and OK’s from the PTB, move into other strategic changes, including MEF, EF, etc. While these may not be new, I want to look at these from an actual implementation viewpoint.
Well, so far it’s been an interesting Tech Ed in Atlanta. The conference center layout has been likened to a marathon. Lot’s of seriously long walks between classes not to mention the most confusing architecture know to man. Nothing like entering from the ground floor in conference hall A, walking through on the same level to conference hall B, only to have to go downstairs to level B4, with another 3 levels below this. Confused your will be, at the end, you will be fit.
Microsoft has done a great job of lifting themselves from the cheapness of the least conference (no hot breakfast anyone) to excelling at feeding the hungry masses this year. Class contention is always a problem, too many interesting talks at one point and not enough at another. Missing from TechEd is the big giveaway to all those attending, PDC, Mix they all get stuff, but for TechEd… forget it.
Of note this year is a great turnout by all the vendors, for which a special mention goes out to GrapeCity. The corporate HQ is in Japan and as we all know they have suffered greatly from the earthquake. I encourage all to visit their website and donate to the relief effort. But this did not stop them from having the best booth at Tech Ed. Did I say they have a pool table with a 2 times champion showing off trick shots. Pretty cool. But the best is the cookbook, a wonderful volume packed with recipes from fellow geeks around the US, and if you are lucky, you can get signed copies. As Tech Ed give aways goes, this definitely rates as one of the more unusual but more useful. I don’t know about the rest of you but the flashing pens are fun and last for a few days before meeting their demise in the garbage but the cookbook I will keep and use.
With this years code camp in Orlando, Florida, we now have the two biggest Microsoft technology based code camps in the United States. Way to go Florida. Just like the South Florida code camp, this code camp was well run, with a great selection of presentations from some of the best speakers in the country. OK, I’m biased but after having attended quite a few other conferences and presentations of one sort or another we are very lucky to have a great group of gifted speakers and all those volunteers who run the code camps that we all benefit from.
Don’t forget to check out DevFish’s site aka Joe Healy for all the news on Florida events from our resident Microsoft Developer Evangelist.
At the Orlando .NET Code Camp (the second largest in the US, the largest being South Florida), I did a presentation on OpenXml which is the format behind Office 2007/2010. At this session I was asked a question to which I had no answer.
The question was ‘If I have a password protected Excel from either 2007 or 2010 file, can I use the trick of renaming a file to a zip and then examining the XML to extract the information in that spreadsheet. Well I could not answer this but noted it down for later. So after a little investigation here are my findings.
There are three level’s of password protection offered in Excel (note that I’m using Excel 2010, so there may be differences in 2007). Under the review ribbon bar section, in the Changes tab, there are two of the three options
- Protect sheet – which protects the data in a particular sheet, it can also include formatting, adding/deleting rows and columns, etc
- Protect workbook – which protects the structure of the workbook i.e. the number of sheets, window layout, etc
These two options protect the spreadsheet but the file can still be easily opened by end users and worked with no password required. So renaming the spreadsheet to a zip file, opening it up and editing the xml files I located and removed the protection that these options add. After opening back up in Excel, everything works as expected from an unprotected spreadsheet. Not unsurprising as these options are not meant to protect sensitive documents, only to stop a user changing the document through carelessness or whatever. I will leave it to you, to figure out which xml file contains the protection element.
The third option is also confusingly called Protect Workbook, but is located under the File/Info tab. From this you can password protect a file such that it cannot be opened without specifying a password. I presumed that after password protecting the file, and saving what I would have is a password protected zip file masquerading as an Excel document. So I renamed it to a zip extension and attempted to open it. Well that didn’t work, that may just be that I’m using an older version of a zip package or more likely MS is encrypting the entire zip file after creation. This was interesting and although not quite what I expected, the file is protected as expected.
So you cannot retrieve the contents of a password protected spreadsheet for which you have forgotten that password by simply renaming it to .ZIP and opening it.
By the time your read this I should have completed two presentations at the South Florida code camp.
This presentation show how to construct OData providers using WCF Data services and consuming them using Silverlight and WPF. These providers include Entity Framework, Reflection and Customer providers. Also demo’d are Query and Change Interceptors which are used to filter queries and modify data.
Presentation (PPTX) ODATA – Building Providers
Code (ZIP) ODATA Code
This presentation show how to construct Office documents using Open XML and specifically looking at Excel spreadsheets. Demo’d are Hello World in Excel and Word, then going deeper into constructing a fully functional Excel spreadsheet.
Presentation (PPTX) OpenXml – Do It YourSelf Office
Code (ZIP) OpenXml Code