These are the customer-reported issues addressed in this version:
Visual Studio crashes when you open a solution with a test project.
Visual Studio Freezes in Debug with Chrome.
Failure to install HelpViewer.
UI delay while typing R code.
C# 7.0 Regression in Tuples.
Xamarin - Dynamic Type Platform not supported exception.
Xamarin – Dynamic object is not supported.
Xamarin - Xamarin.iOS: ArgumentNullException for instruction parameter in Mono.Linker's MarkException() method.
دوران رنسانس NET.
First, the decoupling of .NET from Windows
Second, the newfound focus on CLR performance
Third, moving .NET’s tooling to a cross-platform model
Fourth, the .NET user base is embracing the OSS ecosystem as a whole
Fifth, in general the direction on .NET development is pushing users further down into the details of the stack
Sixth, Microsoft’s platform work being done out in the open
کتابخانه DotSpatial
DotSpatial is a geographic information system library written for .NET Framework. It allows developers to incorporate spatial data, analysis and mapping functionality into their applications or to contribute GIS extensions to the community.
DotSpatial provides a map control for .NET and several GIS capabilities including:
- Display a map in a .NET Windows Forms.
- Open shapefiles, grids, rasters and images.
- Render symbology and labels.
- Reproject on the fly.
- Manipulate and display attribute data.
- Scientific analysis.
- Read GPS data.
In short, we’re making Xamarin’s cross-platform tools available in
Visual Studio, from Community up through Enterprise at no additional
cost and we’re open-sourcing the Xamarin SDK – the core of the Xamarin
toolchain. In addition, we’re making Xamarin’s services (for example,
Test Cloud and Xamarin University) available along with the existing
Microsoft mobile DevOps capabilities.
https://blog.xamarin.com/xamarin-for-all/?utm_medium=social&utm_campaign=blog&utm_source=twitter&utm_content=xamarin-for-all
کتابخانه sysend.js
Tested on GNU/Linux in Chromium 34, FireFox 29, Opera 12.16 (64bit)
معرفی DevDocs
- برای انتخاب مستندات خود Select documentation را در گوشه سمت چپ کلیک کنید
- لازم نیست حتما از ماوس خود استفاده کنید. به لیست کلیدهای میانبر مراجعه شود
- جستجوی سایت از fuzzy searching پشتیبانی میکند. مثلا جستجوی عبارت "bgcp" مطالب "background-clip" را جستجو میکند
- برای اینکه در مستندات خاصی جستجو کنید، نام یا مخفف آن را وارد کرده سپس Tab را فشار دهید
- برای جستجو از مرورگر خود هم میتوانید استفاده کنید. پروتکل Open Search پشتیبانی میشود
- از طریق موبایل هم میتوانید به این سایت دسترسی داشته باشید. افزونه ای هم برای کروم وجود دارد
- برای دریافت خبرنامهها یا عضو شوید یا @DevDocs را در توییتر دنبال کنید
- DevDocs رایگان و متن باز است
- CSS
- DOM
- DOM Events
- HTML
- HTTP
- JavaScript
برای اینکه متوجه بشیم دادههای دیتابیس ما آلوده شده یا نه میتونیم یک همچین کوئری رو اجرا کنیم :
DECLARE @search_string VARCHAR(100), @table_name SYSNAME, @table_id INT, @column_name SYSNAME, @sql_string VARCHAR(2000) SET @search_string = 'display:none' DECLARE tables_cur CURSOR FOR SELECT name, object_id FROM sys.objects WHERE type = 'U' OPEN tables_cur FETCH NEXT FROM tables_cur INTO @table_name, @table_id WHILE (@@FETCH_STATUS = 0) BEGIN DECLARE columns_cur CURSOR FOR SELECT name FROM sys.columns WHERE object_id = @table_id AND system_type_id IN (167, 175, 231, 239) OPEN columns_cur FETCH NEXT FROM columns_cur INTO @column_name WHILE (@@FETCH_STATUS = 0) BEGIN SET @sql_string = 'IF EXISTS (SELECT * FROM ' + @table_name + ' WHERE [' + @column_name + '] LIKE ''%' + @search_string + '%'') PRINT ''' + @table_name + ', ' + @column_name + '''' EXECUTE(@sql_string) FETCH NEXT FROM columns_cur INTO @column_name END CLOSE columns_cur DEALLOCATE columns_cur FETCH NEXT FROM tables_cur INTO @table_name, @table_id END CLOSE tables_cur DEALLOCATE tables_cur
Roles, Description Articles, Subject
DECLARE @search_string VARCHAR(100), @table_name SYSNAME, @table_id INT, @column_name SYSNAME, @sql_string VARCHAR(2000) SET @search_string = 'display:none' -- The spammy text to search for. DECLARE tables_cur CURSOR FOR SELECT name, object_id FROM sys.objects WHERE type = 'U' OPEN tables_cur FETCH NEXT FROM tables_cur INTO @table_name, @table_id WHILE (@@FETCH_STATUS = 0) BEGIN DECLARE columns_cur CURSOR FOR SELECT name FROM sys.columns WHERE object_id = @table_id AND system_type_id IN (167, 175, 231, 239) OPEN columns_cur FETCH NEXT FROM columns_cur INTO @column_name WHILE (@@FETCH_STATUS = 0) BEGIN SET @sql_string = 'IF EXISTS (SELECT * FROM [' + @table_name + '] WHERE [' + @column_name + '] LIKE ''%' + @search_string + '%'') PRINT '' update [' + @table_name + '] set [' + @column_name + '] = substring([' + @column_name + '], 1, charindex(''''<'''', [' + @column_name + '])-1) where [' + @column_name + '] like ''''%<%''''''' --PRINT @sql_string EXECUTE(@sql_string) FETCH NEXT FROM columns_cur INTO @column_name END CLOSE columns_cur DEALLOCATE columns_cur FETCH NEXT FROM tables_cur INTO @table_name, @table_id END CLOSE tables_cur DEALLOCATE tables_cur
و خروجی به این صورت حاصل شد :
update [Roles] set [Description] = substring([Description], 1, charindex('<', [Description])-1) where [Description] like '%<%' update [Articles] set [Subject] = substring([Subject], 1, charindex('<', [Subject])-1) where [Subject] like '%<%'
و هر دو دستور رو اجرا کردم و دادهها ترمیم پیدا کردن.
نکته مهم : تمامی موارد گفته شده جنبه تستی داره چون آلوده شدن و ترمیم شدن به صورت دستی رخ داده و روی هیچ دیتابیس واقعی آلوده شده تست نشده.
EF Code First #4
Cannot open database "Test" requested by the login. The login failed. Login failed for user 'sa'.
Database.SetInitializer(new MigrateDatabaseToLatestVersion<CommonContext, Configuration>());
AngularJS #1
CoffeeScript #11
کامپایل خودکار CoffeeScript
همانطور که گفته شده CoffeeScript یک لایه میان شما و جاوااسکریپت است و هر زمان که فایل CoffeeScript تغییر کرد، باید به صورت دستی آن را کامپایل کرد. خوشبختانه CoffeeScript روشهای دیگری را برای کامپایل کردن دارد که به وسیله آن میتوان چرخهی توسعه را بسیار سادهتر نمود.
در قسمت اول گفته شد، برای کامپایل فایل CoffeeScript با استفاده از coffee به صورت زیر عمل میکردیم:
coffee --compile --output lib src
حال به کامپایل خودکار CoffeeScript توجه کنید.
Cake
Cake یک سیستم فوق العاده ساده برای کامپایل خودکار است که مانند Make و Rake عمل میکند. این کتابخانه همراه پکیج coffee-script npm نصب میشود و برای استفاده با فراخوانی cake اجرا میشود.
برای ایجاد فایل tasks در cake که Cakefile نامیده میشود، میتوان از خود CoffeeScript استفاده کرد. برای اجرای cake با استفاده از دستور [cake [task] [options میتوان عمل کرد. برای اطلاع از لیست امکانات cake کافی است دستور cake را به تنهایی اجرا کنید.
وظایف را میتوان با استفاده از تابع task، با ارسال نام و توضیحات (اختیاری) و تابع callback، تعریف کرد. به مثال زیر توجه کنید:
fs = require 'fs' {print} = require 'sys' {spawn} = require 'child_process' build = (callback) -> coffee = spawn 'coffee', ['-c', '-o', 'lib', 'src'] coffee.stderr.on 'data', (data) -> process.stderr.write data.toString() coffee.stdout.on 'data', (data) -> print data.toString() coffee.on 'exit', (code) -> callback?() if code is 0 task 'build', 'Build lib/ from src/', -> build()
همان طور که مشاهده میکنید پس از تغییر در فایل CoffeeScript باید به صورت دستی cake build را فراخوانی کنیم که این دور از حالت ایده آل است.
خوشبختانه دستور coffee پارامتر دیگری به نام watch-- دارد که به وسیله آن میتوان تمامی تغییرات یک پوشه را زیر نظر گرفت و در صورت نیاز دوباره کامپایل انجام شود. به مثال زیر توجه کنید:
task 'watch', 'Watch src/ for changes', -> coffee = spawn 'coffee', ['-w', '-c', '-o', 'lib', 'src'] coffee.stderr.on 'data', (data) -> process.stderr.write data.toString() coffee.stdout.on 'data', (data) -> print data.toString()
task 'open', 'Open index.html', -> # First open, then watch spawn 'open', 'index.html' invoke 'watch'
option '-o', '--output [DIR]', 'output dir' task 'build', 'Build lib/ from src/', -> # Now we have access to a `options` object coffee = spawn 'coffee', ['-c', '-o', options.output or 'lib', 'src'] coffee.stderr.on 'data', (data) -> process.stderr.write data.toString() coffee.stdout.on 'data', (data) -> print data.toString()
Cake یک روش عالی برای انجام وظایف معمول به صورت خودکار است، مانند کامپایل فایلهای CoffeeScript است. همچنین برای آشنایی بیشتر میتوانید به سورس cake نگاهی کنید.