What’s involved in setting up ASP.NET security? well it depends who you ask and what you want to do. It is interesting to see that something so important causes many developers to stumble. How do you set up a basic registration page? how do you maintain what roles or memberships a person has? how do you set a page to be secure? Well, join me February 11 (EST) [which again means 4am for the Aussies, 7am for the Kiwi's, 6pm for the Brits] for a fast paced, hard hitting webinar that takes you through some of the basic implementations of securing your ASP.NET website. Full details available here. Don’t worry if you can’t make it, the session will be recorded an put on the DevExpress Youtube channel as well.
Latest Entries »
Sometime last year I wrote a post on PDF Viewers and the difficulty in choosing one that was inexpensive, easy to implement and performant. Since that time DevExpress released a PDF Viewer for WinForms, WPF and XAML, so I thought it time to add them into the equation.
- – - – - – - -
Ok, it was a simple enough feature to add. A viewer that would allow PDF’s to be shown on screen. Already in my toolkit I had the SyncFusion control, but after a couple of quick tests I found the speed to be woeful and thus started the painful process of looking for a control to use.
A number of vendors offer PDF creation, manipulation, annotations etc, but not viewing.
I was most disappointed that DevExpress did not have anything in their swag, which means the project in question is now only 99% DX This is the cool part, the project can go back to 100% DX
The list came down to
- DevExpress (www.DevExpress.com)
- Gnostice (www.gnostice.com)
- Atalasoft (www.atalasoft.com)
- DynamicPDF (www.dynamicpdf.com)
- Aspose (www.aspose.com)
- ActivePDF (www.activepdf.com)
- Deaja (www.daeja.com)
- Snowbound Software (snowbound.com)
- Bluebeam Q (www.bluebeam.com)
- PDFTron (www.pdftron.com)
- GDPicture (www.gdpicture.com)
- SyncFusion (www.syncfusion.com)
- O2 Solutions (www.o2sol.com)
So what was I looking for ? a .Net Assembly that could be added to my project, capable of adding a control to a WinForm to display/interact/print existing PDF’s. It would be nice to add annotations and stamps to documents someday. Whilst price had to be balanced, licensing was important. Royalty Free distribution is a must.
How would I test? install a demo version of the product, create a viewer control on my form, set the properties, load a pdf, zoom and print. All the PDF’s tested would be live client data, the sort of thing that would be used in the final product, varying in size, content and properties. If the project could not be put together in 30minutes or less then the product was too complicated.
The litmus test is being able to do as much of the above as possible without referring to the documentation.
Dismissed straight away because of what I thought were hideous websites were Deaja and Bluebeam. In the world of technology when your primary clients would be developers, you need something that is informative and stylish. Both these products would have been rejected on price/licensing if they had made it through round one, although to be fair, Bluebeam didn’t really fit the bill as far as a .Net library was concerned.
The list continued to get smaller as products whittled down…
: Snowbound – license pricing too high;
: PDFTron – restrictive licensing, too expensive;
: activePDF – confusing web site, licensing model complex and no pricing available
: DynamicPDF – restrictive licensing
: Atalasoft – PDF Reader SDK too expensive (price vs functionaltiy)
The following products made it through to testing
: Syncfusion – easy to implement, very slow in performance
This was the product that started me down the slippery slope of viewers, I was startled that with a $1700 price tag (for single product), the performance was dreadful.
: O2 Solutions – too hard to build a testing demo
After installing the product things look promising, until I tried to add some code. The documentation was poor, it was simply too hard to try and build the demo.
: Aspose – looked really promising, until you try and build a demo !
A single 10mb dll? I was a little surprised by how hard it was to try and create a viewer. There was nothing to add to the toolbox, the website is verbose and confusing, the forums turned up nothing. After 30minutes of trying to get something to happen I simply gave up and put it in the too hard basket.
: Gnostice – easy to implement, crashed in demo app and slow performance
The Gnostice library was easy to install and quick to implement in the project. The methods and properties were discoverable and the demo was built in a matter of minutes, unfortunately when opening one of the PDF’s we got booted with an exception, and other PDF’s were very slow.
: GdPicture – complex product matrix, confusing mix of sdk and plugins, but FAST !
GdPicture nearly got thrown out because of the complicated product matrix, I already had a partner license so I persevered – and glad I did. It looks confusing with the large number of options available, I wasn’t sure which product I needed, or plug-ins, but GdPicture has a royalty-free license, a major plus. GdPicture installed quickly, and a test app could be produced easily. Performance was fantastic. Best of all, it did not get in the way of our interface, a simple container that allowed me to add the buttons and functionality required on the form.
If it’s just PDF viewing you want then the $950 license is one of the most economical on the market, if you want image manipulation as well as viewer then GdPicture still hold the lead, however,
The NEW Winner !
: DevExpress – as an existing DevExpress customer the PDF Viewer when released was automatically included in my subscription, however, for a WinForms implementation I would have had to pay just $899 which included a LOT of additional controls, not just PDF. At time of writing, the version of the PDF Viewer worked extremely well, it was faster than everyone tested except GdPicture, but the royalty free licensing makes it really attractive. I was able to drag the control onto my form and set a few properties, everything worked, but what was really cool, was the ability (from the SmartTag) to auto create either a Toolbar or Ribbon bar with file, navigation and zoom functionality.
- – - – - – - – -
In summary, the majority of vendors seem to favour a limited license instead of a royalty free one, which was disappointing, a number seemed to think that high pricing was the way to go. I still think for wanting a basic feature there are too many hoops to jump through, especially when you consider that PDF Viewing on OS X, iOS (iPhone/iPad) is native, no additional libraries or costs required. It also seems component vendors need to think about their web sites when offering some of this stuff, it is a jungle out there.
I do hope that DevExpress have a note on a story board somewhere that shows “create pdf viewer” !
It was really encouraging to see DevExpress enter the market with a viewer early 2013 (beta) and in less than 12 months deliver a low cost, powerful PDF Viewer.
It’s no secret that I think an application should be built with one set of tools, I’ve been running the 100% DX challenge for 18 months now, so imagine how excited I am about the 13.2 release of the DevExpress controls!!! There are so many new things to be delivered it’s like Christmas came early. What’s more, I get the honor of sharing with the world all the newest products and features for our WinForms, WPF, and Windows 8 XAML toolset… I’m not going to give everything away today, but there are some exciting things coming, including enhancements to our grid controls across all three platforms, a Spreadsheet and PDF Viewer for WPF and so much more. Intrigued? Join me live December 2, at 10am (PST), that makes it 4am for the Aussies, 7am for the Kiwi’s and 6pm for the Brits. Even if you can’t make the live session, register so you can receive notification on the replay via YouTube.
If you want to deploy an iOS application provisioned under an enterprise license on an IIS box the steps are simple enough:
- Create a folder where the .ipa file will be stored such as \inetpub\wwwroot\myApp
- Create a manifest (.plist) file, here is an example of what that should look like
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://www.yourdomain.com/myApp/myApp.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.yourdomain.myApp</string> <key>bundle-version</key> <string>1.12.08.1200</string> <key>kind</key> <string>software</string> <key>title</key> <string>myApp</string> </dict> </dict> </array> </dict> </plist>
- Next step would be to create a link in your web page that points to the manifest file you just created, notice it is a special type of scheme:
... <a href="itms-services://?action=download-manifest&url=http://www.yourdomain.com/myApp/myApp.plist"> Tap Here to Install myApp</a> ...
Now if you tried to click on the link at this stage you would start receiving errors. So the next thing to do is add a couple of extensions into your MIME types
.ipa – application/octet-stream
.plist – text/xml
Done, you can now browse to the page on your iPhone/iPad/iPod and install your newly provisioned enterprise application.
WHAT ABOUT AZURE? I did mention Azure in the title of the post, so what’s different if you want to deploy via a Azure Website?
Technically, nothing is different, you still need the manifest file, and you still need to set up the href. The caveat here is that you cannot edit MIME Types in your Azure admin area.
Thankfully it is not a difficult thing to overcome. You can add your MIME Type directly to the web.config file
... <system.webServer> <staticContent> <mimeMap fileExtension=".ipa" mimeType="application/octet-stream" /> <mimeMap fileExtension=".plist" mimeType="text/xml" /> </staticContent> </system.webServer> ...
Now your enterprise application can be distributed using the power of Azure Websites
I remember writing my first mobile app for the Psion Series II, it started my passion for mobile devices. So it was no surprise to the family when I started writing apps for the iPhone all the way back in 2009. There were countless hours spent reading documentation, trying to get things to compile, and banging my head on the desk wondering what the strange language called Objective-C was all about. Apple have made it somewhat easier with advancements in Xcode & iOS (especially embedding Interface Builder), there have been some great tutorials written, as well as 100′s of books, but where should you start? The answer is WintellectNOW! I recently had the honour of producing a quick primer on ‘Building Your First iOS App with Objective-C‘ and for a short time you can see it for free I would also encourage you to have a look at some of the other awesome videos on the site. Register and use the coupon USHER-13 and you can access *everything* for free for 14 days.
Join Mark Miller, Rory Becker and myself demonstrating the power of CodeRush Templates, recently described as Snippets on Steroids. In this webinar, we will be taking a deep dive into how templates work, how to create your own templates within minutes as well as answering your questions. As usual it’s a tough start time for Aussies but it will be available on the DevExpress YouTube channel later in the day. Register here Tuesday Oct 22nd @ 10am (PDT)
I’ve written before about the amazing power of CodeRush and why I prefer it over other tools. A lot of people still ask me what its all about, what are the things that keep popping up on their IDE? Well, On October 1, Mark Miller (Chief Scientist IDE Team and all round cool guy!) and I will be presenting an entry to CodeRush, taking you through a fresh install of this powerful toolset, showing what it’s all about, how to maximise your productivity with templates, refactoring, duplicate code detection, visual debugger and more.
If you passionate about your craft (and you should be), then be part of this webinar, ask your questions live and get answers from the key man himself. Register today.
For more information on CodeRush, visit the product page here
How cool is it to think that you can write one application (albeit in HTML5/JS) and deploy it to all three major Mobile OS’s, using DevExtreme, I will be creating an application that targets iOS, WM8 and Android. One thing I wanted to do was to access the hardware layer of the device with the underlying framework, so I’m going to access the location services. Using a web service to deliver some addresses I will then show where you are and where the destination is on a map.
Join me for a cool geek session, just register here.
Sept 10, at 10am – Pacific Daylight Time (GMT-7) [the webinar page does a great job of converting to your local time]
Oh, for those in Australia it’s a 3am start but we’ll post a link to the whole thing on our YouTube channel afterwards.
Every now and then I come across an application or utility that I think is amazing. Doesn’t have to have an all singing, all dancing interface, but do something really well.
SQLBackupAndFTP is one of those programs. There are a couple of really cool things about this package. Firstly is the price, it’s affordable and well worth its weight in USB keys. Only $69 for a professional licence, or $149 for a lifetime license. Anyone who needs to back-up their SQL server on a schedule basis (and let’s face it, who doesn’t need to) should be using this package.
It’s easy and quick to setup,
The schedule function just works. Once you have configured your destinations, it really is just set and forget. Everyday an email pops into the inbox advising the success (or failure) of the scheduled backup. I prefer to send multiple destinations, both on the local file system and remote FTP. The program has support for Local/Network, FTP, Dropbox, Google Drive and Amazon.
But wait, there’s more…
As part of the installation is the One-Click SQL Restore tool. Now this is cool. When we need to look at clients data, it quite literally is a one click process. I just point the program to a zip copy of the .bak file (which was produced automatically from SQLBackupAndFTP) and whomp, it gets restored. No hassles, no messy dialogs. If you need more options and control, it’s all there under the hood waiting.
ANYONE who has a SQL database that requires backup (read: ANYONE who has a SQL database) should be using this product.
And so begins a new chapter…
Evident in the pages of this blog is my passion for cool tools, with a definite bias towards the DevExpress tool set. Well today, I am proud to announce that I loved them so much I joined the DevExpress team as a Technical Evangelist for Asia Pacific. In other words I get to tell lots more people how cool the tools are
There is so much happening in the developer community at the moment, such as Windows 8, Surface, Mini iPad, iPhone 5, DXTREME, DXv2 12.2, its a great time to able to share my knowledge with people and help teams prepare for the next big phase in our ever evolving industry.
So does this mean the ‘Keeping IT Real’ blog will stop ? – NO, it may be quiet for a little while, but there will always be something to talk about. What I would encourage you to do though is also frequently visit my new blog home… DevExpress.Paul
For those that haven’t heard it mentioned yet (where have you been hiding?), check out the new DXTREME product suite introduced on September 17th, it is one of the coolest things to hit your IDE since CodeRush.
I plan on doing a couple of discovery videos to help demystify multi-channel development, so stay tuned.
A big thank you to all those people who have helped me reach this DXciting new chapter, and a definite big thank you to Dave Mendlen for the chance to work along side some of the smartest, geekiest, coolest people on the planet !