|
dotNETZone.gr Weblogs
-
Σήμερα (1/1/2010) έλαβα ένα mail από το MVP Program το οποίο με ενημέρωνε ότι έγινα MVP στον SQL Server. Ήταν το πρώτο και μοναδικό mail που πήρα για το 2010 και με γέμισε χαρά, ικανοποίηση αλλά και υποχρεώσεις για το μέλλον. Θα ήθελα να ευχαριστήσω όλους σας για αυτό και ιδιαίτερα τον Νάσο Κλαδάκη και την Μάρθα Πετροπούλου για την βοήθεια τους και την προτροπή τους στο να προσπαθήσω για τον τίτλο αυτό. ΚΑΛΗ ΧΡΟΝΙΑ ΣΕ ΟΛΟΥΣ...
|
-
Technics and policy about the back button. more...
|
-
-
At the latest event an issue was raised about dependency at runtime. more...
|
-
-
Μετά από αρκετές αποτυχημένες προσπάθειες, στο να συνδυάσω Type constructor polymorphism και LINQ syntax, αποφάσισα να δοκιμάσω τις ίδιες ιδέες σε F#. Η F# υλοποίηση είναι ακριβώς ίδια με την αντίστοιχη σε C#, με την μονη διαφορα ότι το Monad generalization δουλεύει με το ειδικό syntax support που μας παρέχουν τα computation expressions. [<AbstractClass>] type MonadDef<'M when 'M :> MonadDef<'M>>() as this = let (>>=) m f = this .Bind(m, f) let unit v = this .Return v abstract member Return<'T> : 'T -> IMonad<'T,'M> abstract member Bind<'T, 'S> : IMonad<'T,'M> * ('T -> IMonad<'S,'M>) -> IMonad<'S,'M> member this .Then<'T, 'S>(firstM : IMonad<'T, 'M>, secondM : IMonad<'S, 'M>) : IMonad<'S, 'M> = firstM >>= fun _ -> secondM member this .Map<'T, 'S>(f : 'T -> 'S, m : IMonad<'T, 'M>) : IMonad<'S, 'M> = m >>= fun v -> unit (f v) member this .Apply<'T, 'S>(mf : IMonad<'T ->...
|
-
Έτοιμο το Moonlight 2! Το Moonlight είναι ένα open source project που δίνει τη δυνατότητα πρόσβασης σε περιεχόμενο Silverlight σε όσους τρέχουν Linux. Προς το παρόν είναι συμβατό με Silverlight 2 ωστόσο το πρώτο τρίμηνο του 2010 θα βγει preview του Moοnlight 3 και το τρίτο τρίμηνο θα βγει preview του Moonlight 4. Στο μεταξύ θα έχει βγει το Silverlight 5 αλλά αυτό είναι άλλη ιστορία… Για να βγει το Moonlight υπήρξε στενή συνεργασία Microsoft – Novell σε διάφορα επίπεδα. Για παράδειγμα η Microsoft διέθεσε τα test του Silverlight, άνοιξε την άδεια πρόσβασης για το Microsoft Media Pack (που περιέχει το περίφημο set από codecs) ενώ παράλληλα πλέον επιτρέπεται η διάθεση του Moonlight και από τρίτους distributors. Επίσης, το ωραίο είναι ότι υπάρχει και το αντίστοιχο Linux SDK κι έτσι οι Linuxάδες μπορούν ακόμα και να γράψουν SL εφαρμογές! Γι αυτό λένε ότι τα Χριστούγεννα είναι μέρες αγάπης… Moonlight...
|
-
Την Πέμπτη 10 Δεκεμβρίου έγινε στο Μέγαρο Μουσικής η επίσημη παρουσίαση των Windows 7, Windows Server 2008 R2, Exchange Server, στα πλαίσια της οποίας παρουσίασα τα Windows Mobile 6.5, με τα μάτια του developer. Φυσικά οι θεοί των παρουσιάσεων δεν ήταν καλοί μαζί μου για άλλη μια φορά και αποφάσισαν ότι το laptop μου δεν θα είχε internet. Όπως και να έχει, έχω εδώ [ Λήψη ] τα παραδείγματα για να τα τρέξει όποιος ενδιαφέρεται και να παίξει μαζί τους. Μέσα στο πακετάκι έχει κι ένα cab με το οποίο ενεργοποιείται το widget extension καθώς για λόγους security έχει απενεργοποιηθεί η αυτόματη εγκατάσταση των widget αρχείων. Για να τρέξετε τα παραδείγματα σε emulator δεν χρειάζετε να κάνετε κάτι. Τέλος, τα παραδείγματα widget με το twitter βασίζονται στη δουλειά του Mikael Söderström που θα βρείτε εδώ: http://weblogs.asp.net/mikaelsoderstrom/archive/2009/09/02/twitter-widget-for-windows-mobile-6-5.aspx...
|
-
I found MaxiVista through Scott Hanselman's post on multi-monitor productivity . I installed it a few days ago and I LOVE it already. It's not just that I can use my old laptop as a second monitor for my new one. It's not only working with Visual Studio 2010 spread across two screens. Or having TweetDeck on the second screen (oops, laptop) with VS 2008 on the primary screen (ooooops Laptop, laptop, laptop!). Multi-monitor debugging, side by side comparison of requirement documents and big excel sheets. Running VS on the primary, Team Explorer on the secondary screen. It is that MaxiVista allows you to switch between the second laptop's desktop and the primary's extended desktop just by pressing a key and still use the primary's keyboard and mouse. The clipboard also works across both laptops. If this isn't the easiest way to remotely control another PC, I don't know what is! If only I could do the same with Remote Desktop connections, I would be really happy!...
|
-
One of the latest features introduced on SQL Azure is the abillity to apply firewall settings on your database and allow only specific IP ranges to connect to it. This can be done through SQL Azure Portal or through code using stored procedures. If you want to take a look at which rules are active on your SQL Azure database, you can use: select * from sys.firewall_rules That will give you a view of your firewall rules. If you want to add a new firewall rule, you can use the "sp_set_firewall_rule". The syntax is "sp_set_firewall_rule <firewall_rule_name> <ip range start> <ip range end>". For example: exec sp_set_firewall_rule N'My setting','192.168.0.15','192.168.0.30' If you want to delete that rule, you can use: exec sp_delete_firewall_rule N'My setting' PK....
|
-
Πολλά events τον τελευταίο καιρό, τόσο από τη Microsoft Hellas, όσο κι από το community μας. Πριν να κλείσει το έτος, είπα να κάνω έναν απολογισμό. Ξεκινώντας από την αρχή της σεζόν, στα πλαίσια των DevDays της Microsoft Hellas, έχουμε και λέμε: 26 Οκτωβρίου, WPF: From Zero to F5 5 Νοεμβρίου 2009, Silverlight3: See the light! 26 Νοεμβρίου, Make Web Not War Παάλληλα, το community μας δεν πάει πίσω: 23 Σεπτεμβρίου, 32ο dotNETZone.gr Community Event: Windows Azure - Θεωρία και Πράξη 27 Οκτωβρίου, 33ο dotNETZone.gr Community Event: N-tier RIA applications με κλειστά τα μάτια 19 Νοεμβρίου, 34ο dotNETZone.gr Community Event: Why & How to optimize SQL Server for performance from design to query Και ας μην ξεχάσουμε το 1ο Architecture Days event στις 22 Οκτωβρίου: Reconnecting Computers with Business με τους πολύ σημαντικούς ομιλητές που σημείωσε μεγάλη επιτυχία. Πλέον, πριν να φτάσουμε στα Χριστούγεννα, έχουμε το μεγάλο event Join The New Efficiency στο Μέγαρο Μουσικής για την παρουσίαση Windows 7 , Windows Server...
|
-
When you have your service running on Windows Azure, the least thing you want is monitoring every now and then and decide if there is a necessity for specific actions based on your monitoring data. You want the service to be, in some degree, self-manageable and decide on its own what the necessary actions should take place to satisfy a monitoring alert. In this post, I’m not going to use Service Management API to increase or decrease the number of instances, instead I’m going to log a warning, but in a future post I’m going to use it in combination with this logging message, so consider this as a series of posts with this being the first one. The most common scenario is dynamically increase or decrease VM instances to be able to process more messages as our Queues are getting filled up. You have to create your own “logic”, a decision mechanism if you like, which will execute some steps and bring the service to a state that satisfies your condition because there is no out-of-the-box solution from Windows Azure....
|
-
In general, there are two kind of updates you’ll mainly perform on Windows Azure. One of them is changing your application’s logic (or so called business logic) e.g. the way you handle/read queues, or how you process data or even protocol updates etc and the other is schema updates/changes. I’m not referring to SQL Azure schema changes, which is a different scenario and approach but in Table storage schema changes and to be more precise only on specific entity types because, as you already now, Table storage is schema-less. As in In-Place upgrades, the same logic applies here too. Introduce a hybrid version, which handles both the new and the old version of your entity (newly introduced properties) and then proceed to your “final” version which handles the new version of your entities (and properties) only. It’s a very easy technique and I’m explaining how to add new properties and of course remove although it’s a less likely scenario. During my presentation at Microsoft DevDays “Make Web not War”, I’ve created...
|
-
This series of Web seminars is designed to quickly immerse you in the world of the Windows Azure Platform. You’ll learn what Azure is all about, including the fundamental concepts of cloud computing and Windows Azure. You’ll learn why you should target Windows Azure, and see the tangible business benefits you can gain by deploying your apps to the cloud. Enjoy It :-) http://www.msdev.com/Directory/SeriesDescription.aspx?CourseId=129...
|
-
In a previous post I’ve described what a VIP Swap is and how you can use it as an updating method to avoid service disruption. This particular method doesn’t apply to all possible scenarios and if not always, most of the times, during protocol updates or schema changes you’ll need to upgrade your service when its still running, chunk-by-chunk and without any downtime or disruption. By In-Place, I mean upgrades that take place during which both versions (old version and new version) are running side-by-side. In order to better understand the process below, you should read my “Upgrade domains” post in which there is a detailed description of what Upgrade domains are, how they affect your application, how you can configure the number of domains etc. To avoid service disruption and outage Windows Azure is upgrading your application domain per domain (upgrade domain that is). That will result in a particular state where your Upgrade Domain 0 (UD0) is running a newer version of your client/service/what_have_you and...
|
-
Windows Azure automatically divides your role instances into some “logical” domains called upgrade domains. During upgrade, Azure is updating these domains one by one. This is a by design behavior to avoid nasty situations. Some of the last feature additions and enhancements on the platform was the ability to notify your role instances in case of “environment” changes, like adding or removing being most common. In such case, all your roles get a notification of this change. Imagine if you had 50 or 60 role instances, getting notified all at once and start doing various actions to react to this change. It will be a complete disaster for your service. Source: MSDN The way to address this problem is upgrade domains. As I said, during upgrade Windows Azure updates them one by one and only the associated role instances to a specific domain get notified of the changes taking place. Only a small number of your role instances will get notified, react and the rest will remain intact providing a seamless upgrade experience...
|
-
Today, during my presentation at Microsoft DevDays “Make Web not War” I had a pretty nice question about concurrency and I left the question somehow blurry and without a straight answer. Sorry, but we were changing subjects so fast that I missed it and I only realized it on my way back. The answer is yes, there is concurrency. If you examine a record on your table storage you’ll see that there is a Timestamp field or so called “ETag”. Windows Azure is using this field to apply optimistic concurrency on your data. When you retrieve a record from the database, change a value and then call “UpdateObject”, Windows Azure will check if timestamp field has the same value on your object as it does on the table and if it does it will update just fine. If it doesn’t, it means someone else changed it and you’ll get an Exception which you have to handle. One possible solution is retrieve the object again, update your values and push it back. The final approach to concurrency is absolutely up to the developer and varies between...
|
-
Performing an in-place upgrade on Windows Azure to change your service definition file it’s not possible unless you stop the service, upgrade and then start it again. Otherwise you can do a VIP Swap. VIP stands for Virtual IP and VIP swaps can be either done by the Developer portal or using the Service Management API by calling “Swap Deployment” method. If you use VIP Swap and as long as you the endpoints between the old and new service definition are identical, the upgrade process is seamless and pretty straightforward without any service interruption. But if, for example, you introduce a new endpoint or delete and older one, then this process is not possible and you have to stop, upgrade, start. So, how can you perform this operation from the Developer portal. Simply logon to your account, go to Summary page, open your target project, open the service and then upload the new service definition file on Staging. Now, if you click Run on Staging, both versions of your service will work just fine (one in Production,...
|
-
It’s been a while since Windows Azure caught the attention of a broader audience rising all kinds of questions from the most simple “How do I access my table storage” to the most complex and generic “How do I optimize my code to pay less”. Although there is a straight answer on the first one, that’s not the case on the second. Designing an application has always been a fairly complex scenario when it comes to high scale enterprise solutions or even on mid-sized businesses. There are a few things to consider when you’re trying to “migrate” your application to the Azure platform. You should have in mind that, you literally pay for your mistakes. As long as you’re not a developer account, which by the way “pay” but in a different way, you are getting charged on a pay as you go model for various things, like Transactions, Compute hour, Bandwidth and of course storage. Oh and database size on SQL Azure. So every mistake that you make, let’s say un-optimized code producing more messages/transactions that necessary,...
|
-
Its been a while since Windows Azure caught the attention of a broader audience rising all kinds of questions from the most simple “How do I access my table storage” to the most complex and generic “How do I optimize my code to pay less”. Although there is a straight answer on the first one, that’s not the case on the second. Designing an application has always been a fairly complex scenario when it comes to high scale enterprise solutions or even on mid-sized businesses. There are a few things to consider when you’re trying to “migrate” your application to the Azure platform. You should have in mind that, you literally pay for your mistakes. As long as you’re not a developer account, which by the way you “pay” but in a different way, you are on a pay as you go model for various things, like Transactions, Compute hour, Bandwidth and of course storage. Oh and database size on SQL Azure. So every mistake that you make, let’s say un-optimized code producing more messages/transactions that necessary, you pay for it....
|
-
The CodePlex Foundation today announced the creation of the first Foundation project gallery, the ASP.NET Open Source Gallery, and the acceptance of the first project into that gallery, the ASP.NET Ajax Library project . more...
|
-
It's been a interesting week for Windows Azure. Since last Friday (13th of November) the latest Windows Azure Tools was released and strangely the installer was marked to be a 1.0 release although I'm not sure it really is one. Project Dallas has been announced which is a MarketPlace for Vendors to publish their Azure Services for consuming and start making money out of it. SQL Azure Data Sync Beta 1 was released. You can use it to synchronize cached data on your offline client with SQL Azure on the cloud just like using any other Synchronization Adapter/Manager on Microsoft Sync Framework. In order to install it and mess around with samples you need Microsoft Sync Framework 2.0 SDK. .NET Services was renamed to Windows Azure AppFabric to match terms with Windows Server AppFabric which includes former named projects Velocity and Dublin in one single product. .NET Services consist of Access Control (Claims based authentication) and a Service bus to communicate with other applications. New APIs were released to...
|
-
It's been a interesting week for Windows Azure. Since last Friday (13th of November) the latest Windows Azure Tools was released and strangely the installer was marked to be a 1.0 release although I'm not sure it really is one. Project Dallas has been announced which is a MarketPlace for Vendors to publish their Azure Services for consuming and start making money out of it. SQL Azure Data Sync Beta 1 was released. You can use it to synchronize cached data on your offline client with SQL Azure on the cloud just like using any other Synchronization Adapter/Manager on Microsoft Sync Framework. In order to install it and mess around with samples you need Microsoft Sync Framework 2.0 SDK. .NET Services was renamed to Windows Azure AppFabric to match terms with Windows Server AppFabric which includes former named projects Velocity and Dublin in one single product. .NET Services consist of Access Control (Claims based authentication) and a Service bus to communicate with other applications. New APIs were released to...
|
-
Περιμένεις το Silverlight 3 πώς και πώς για να ξεκινήσεις την επόμενη RIA εφαρμογή σου και όταν αυτό συμβεί δεν έχεις προλάβει να την τελειώσεις κι βγαίνει το Silverlight 4! Ναι, ανακοινώθηκε σήμερα στην PDC. Φυσικά, στην TechEd ρωτούσα τον Tim Heuer στο Ask The Experts για το πότε το Silverlight θα αποκτήσει features και αυτός σφίγγα να μου λέει “στο μέλλον” κι ούτε κουβέντα παραπάνω! Και από τη μια τσαντίζομαι που ήδη με απασχολεί το θέμα του update της εφαρμογής για να παίζει στο νέο runtime αλλά από την άλλη, μόλις βλέπω όλα τα καλούδια που μας φέρνει η νέα έκδοση, μου περνάει… Δεν είναι καλό αυτό για τη ψυχική υγεία ενός developer, καταλήγει σε σχιζοφρένεια! Πάρτε μια ιδέα για το τι φέρνει η νέα έκδοση: http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx http://channel9.msdn.com/learn/courses/Silverlight4/...
|
-
Πρόσφατα έλαβα ένα mail ενημερωτικό από την Microsoft που μέσα σε όλα τα άλλα είχε και αυτό Spec Explorer is a model-based testing tool that runs as an add-in to Visual Studio for modeling software behavior and analyzing that behavior by graphical visualization, model checking, and generating standalone test code from models. Επειδή μου άρεσε το μοιράζομαι με εσάς Download Spec Explorer for Visual Studio Επίσης εδώ θα βρείτε και άλλα ίσως χρήσιμα εργαλεία....
|
|
|
|